Mesa (master): intel/blorp: Assert levels and layers are in range

Nanley Chery nchery at kemper.freedesktop.org
Mon Jun 26 18:22:49 UTC 2017


Module: Mesa
Branch: master
Commit: b46a07175823ec476505cb8a0f8c353e5183d748
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b46a07175823ec476505cb8a0f8c353e5183d748

Author: Nanley Chery <nanley.g.chery at intel.com>
Date:   Thu May 11 10:58:18 2017 -0700

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 at intel.com>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com> (v1)
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

---

 src/intel/blorp/blorp.c       | 7 +++++++
 src/intel/blorp/blorp_clear.c | 4 ----
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c
index 9c88658e8a..a426a030d2 100644
--- a/src/intel/blorp/blorp.c
+++ b/src/intel/blorp/blorp.c
@@ -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;
diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c
index efacadfebe..369e18726f 100644
--- a/src/intel/blorp/blorp_clear.c
+++ b/src/intel/blorp/blorp_clear.c
@@ -707,10 +707,6 @@ blorp_ccs_resolve(struct blorp_batch *batch,
    struct blorp_params params;
    blorp_params_init(&params);
 
-   /* 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, &params.dst, surf,
                                level, layer, format, true);
 




More information about the mesa-commit mailing list