intel/blorp: Assert levels and layers are in range
v2 (Jason Ekstrand): - Update commit title. - Check aux level and layer as well. v3 (Jason Ekstrand): - Move the non-aux layer check. Signed-off-by: Nanley Chery <nanley.g.chery@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> (v1) Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -66,6 +66,10 @@ brw_blorp_surface_info_init(struct blorp_context *blorp,
|
||||
unsigned int level, unsigned int layer,
|
||||
enum isl_format format, bool is_render_target)
|
||||
{
|
||||
assert(level < surf->surf->levels);
|
||||
assert(layer < MAX2(surf->surf->logical_level0_px.depth >> level,
|
||||
surf->surf->logical_level0_px.array_len));
|
||||
|
||||
info->enabled = true;
|
||||
|
||||
if (format == ISL_FORMAT_UNSUPPORTED)
|
||||
@@ -90,6 +94,9 @@ brw_blorp_surface_info_init(struct blorp_context *blorp,
|
||||
if (info->aux_usage != ISL_AUX_USAGE_NONE) {
|
||||
info->aux_surf = *surf->aux_surf;
|
||||
info->aux_addr = surf->aux_addr;
|
||||
assert(level < info->aux_surf.levels);
|
||||
assert(layer < MAX2(info->aux_surf.logical_level0_px.depth >> level,
|
||||
info->aux_surf.logical_level0_px.array_len));
|
||||
}
|
||||
|
||||
info->clear_color = surf->clear_color;
|
||||
|
@@ -707,10 +707,6 @@ blorp_ccs_resolve(struct blorp_batch *batch,
|
||||
struct blorp_params params;
|
||||
blorp_params_init(¶ms);
|
||||
|
||||
/* Layered and mipmapped fast clear is only available from Gen8 onwards. */
|
||||
assert(ISL_DEV_GEN(batch->blorp->isl_dev) >= 8 ||
|
||||
(level == 0 && layer == 0));
|
||||
|
||||
brw_blorp_surface_info_init(batch->blorp, ¶ms.dst, surf,
|
||||
level, layer, format, true);
|
||||
|
||||
|
Reference in New Issue
Block a user