i965: compute scratch space size correctly for Gen9+
authorKevin Rogovin <kevin.rogovin@intel.com>
Tue, 12 Dec 2017 12:17:27 +0000 (14:17 +0200)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 12 Dec 2017 18:02:43 +0000 (10:02 -0800)
Fixes: 8ecdbb61360 "i965: Pretend there are 4 subslices for compute shader threads on Gen9+."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104005
Signed-off-by: Kevin Rogovin <kevin.rogovin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Eero Tamminen <eero.t.tamminen@intel.com>
src/mesa/drivers/dri/i965/brw_program.c

index 6aa41009e744c7fc60f9bed66efae63dcc2ec6c2..5b168c25e3d74bd50ac452b6871e20dff17fbea5 100644 (file)
@@ -368,9 +368,13 @@ brw_alloc_stage_scratch(struct brw_context *brw,
        *
        * According to the other driver team, this applies to compute shaders
        * as well.  This is not currently documented at all.
+       *
+       * brw->screen->subslice_total is the TOTAL number of subslices
+       * and we wish to view that there are 4 subslices per slice
+       * instead of the actual number of subslices per slice.
        */
       if (devinfo->gen >= 9)
-         subslices = 4;
+         subslices = 4 * brw->screen->devinfo.num_slices;
 
       /* WaCSScratchSize:hsw
        *