intel: Correct the BDW surface state size
authorNanley Chery <nanley.g.chery@intel.com>
Tue, 7 Mar 2017 19:17:05 +0000 (11:17 -0800)
committerNanley Chery <nanley.g.chery@intel.com>
Mon, 20 Mar 2017 16:43:44 +0000 (09:43 -0700)
The PRMs state that this packet is 16 DWORDS long. Ensure that the last
three DWORDS are zeroed as required by the hardware when allocating a
null surface state.

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/intel/isl/isl.c
src/mesa/drivers/dri/i965/gen8_surface_state.c

index 6eb1e93efd96ad01647c643c5e1f60c744daf247..b4bdf2059ac53b1e074ccbc9084baaf596d0bb13 100644 (file)
@@ -56,7 +56,7 @@ static const struct {
    [5] = {24, 32,  4},
    [6] = {24, 32,  4},
    [7] = {32, 32,  4, 24},
-   [8] = {52, 64, 32, 40},
+   [8] = {64, 64, 32, 40},
    [9] = {64, 64, 32, 40},
 };
 
index 501531d4ad4672526146d8c643b721b16723320b..f8682932172d5f7c703bd772b371db5869666913 100644 (file)
@@ -46,10 +46,9 @@ static uint32_t *
 gen8_allocate_surface_state(struct brw_context *brw,
                             uint32_t *out_offset, int index)
 {
-   int dwords = brw->gen >= 9 ? 16 : 13;
    uint32_t *surf = __brw_state_batch(brw, AUB_TRACE_SURFACE_STATE,
-                                      dwords * 4, 64, index, out_offset);
-   memset(surf, 0, dwords * 4);
+                                      64, 64, index, out_offset);
+   memset(surf, 0, 64);
    return surf;
 }