diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c b/src/mesa/drivers/dri/i965/intel_fbo.c index 2bbbc34114..e0f0c6720b 100644 --- a/src/mesa/drivers/dri/i965/intel_fbo.c +++ b/src/mesa/drivers/dri/i965/intel_fbo.c @@ -307,8 +307,11 @@ intel_alloc_private_renderbuffer_storage(struct gl_context * ctx, struct gl_rend irb->mt = intel_miptree_create_for_renderbuffer(brw, rb->Format, width, height, MAX2(rb->NumSamples, 1)); - if (!irb->mt) + if (!irb->mt) { + _mesa_warning(ctx, "Cannot create miptree, format: %s, width: %d, height: %d, samples: %d", + _mesa_get_format_name(rb->Format), width, height, rb->NumSamples); return false; + } irb->layer_count = 1; diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 8e50aabb3b..98e7b7e545 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -592,8 +592,10 @@ make_surface(struct brw_context *brw, GLenum target, mesa_format format, .tiling_flags = tiling_flags, }; - if (!isl_surf_init_s(&brw->isl_dev, &mt->surf, &init_info)) + if (!isl_surf_init_s(&brw->isl_dev, &mt->surf, &init_info)) { + _mesa_warning(&brw->ctx, "isl_surf_init_s failed!"); goto fail; + } /* Depth surfaces are always Y-tiled and stencil is always W-tiled, although * on gen7 platforms we also need to create Y-tiled copies of stencil for @@ -606,12 +608,16 @@ make_surface(struct brw_context *brw, GLenum target, mesa_format format, if (need_to_retile_as_linear(brw, intel_miptree_blt_pitch(mt), mt->surf.tiling, mt->surf.samples)) { init_info.tiling_flags = 1u << ISL_TILING_LINEAR; - if (!isl_surf_init_s(&brw->isl_dev, &mt->surf, &init_info)) + if (!isl_surf_init_s(&brw->isl_dev, &mt->surf, &init_info)) { + _mesa_warning(&brw->ctx, "retile_as_linear isl_surf_init_s failed!"); goto fail; + } } else if (need_to_retile_as_x(brw, mt->surf.size_B, mt->surf.tiling)) { init_info.tiling_flags = 1u << ISL_TILING_X; - if (!isl_surf_init_s(&brw->isl_dev, &mt->surf, &init_info)) + if (!isl_surf_init_s(&brw->isl_dev, &mt->surf, &init_info)) { + _mesa_warning(&brw->ctx, "retile_as_x isl_surf_init_s failed!"); goto fail; + } } } @@ -629,8 +635,10 @@ make_surface(struct brw_context *brw, GLenum target, mesa_format format, isl_tiling_to_i915_tiling( mt->surf.tiling), mt->surf.row_pitch_B, alloc_flags); - if (!mt->bo) + if (!mt->bo) { + _mesa_warning(&brw->ctx, "brw_bo_alloc_tiled failed!"); goto fail; + } } else { mt->bo = bo; } @@ -706,8 +714,13 @@ miptree_create(struct brw_context *brw, tiling_flags, mt_surf_usage(mt_fmt), alloc_flags, 0, NULL); - if (mt == NULL) + if (mt == NULL) { + _mesa_warning(&brw->ctx, "Failed to allocate surface, target: %d, fmt: %d, first_level: %d, last_level: %d, width: %d, height: %d, depth: %d, samples: %d, tiling_flags: %d", + target, mt_fmt, first_level, last_level, + width0, height0, depth0, num_samples, + tiling_flags); return NULL; + } if (needs_separate_stencil(brw, mt, format)) { mt->stencil_mt = @@ -717,6 +730,10 @@ miptree_create(struct brw_context *brw, alloc_flags, 0, NULL); if (mt->stencil_mt == NULL) { intel_miptree_release(&mt); + _mesa_warning(&brw->ctx, "Failed to allocate stencil surface, target: %d, fmt: %d, first_level: %d, last_level: %d, width: %d, height: %d, depth: %d, samples: %d, tiling_flags: %d", + target, MESA_FORMAT_S_UINT8, first_level, last_level, + width0, height0, depth0, num_samples, + ISL_TILING_W_BIT); return NULL; } } @@ -760,6 +777,7 @@ intel_miptree_create(struct brw_context *brw, */ if (mt->aux_usage != ISL_AUX_USAGE_CCS_D && !intel_miptree_alloc_aux(brw, mt)) { + _mesa_warning(&brw->ctx, "Failed to allocate aux surface, usage: %d", mt->aux_usage); intel_miptree_release(&mt); return NULL; }