intel/fs: Don't assume packed dispatch for fragment shaders on XeHP.
authorFrancisco Jerez <currojerez@riseup.net>
Sat, 16 Oct 2021 21:33:51 +0000 (14:33 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Tue, 11 Jan 2022 02:27:41 +0000 (18:27 -0800)
The current packed dispatch assumptions for fragment shaders seem to
be the reason that the fs-readFirstInvocation-uint-loop Piglit
test-case for the ARB_shader_ballot extension fails on DG2 in
combination with the patches in this series that enable pixel pipe
hashing (thanks Jordan for reporting the regression).  I've confirmed
that the brw_fs_test_dispatch_packing() test fails on DG2 hardware for
fragment shaders, while it succeeds for other shader stages,
indicating that the PSD hardware no longer guarantees packed dispatch.
Disable it.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13569>

src/intel/compiler/brw_compiler.h

index ac10255..76f339e 100644 (file)
@@ -1945,7 +1945,7 @@ brw_stage_has_packed_dispatch(ASSERTED const struct intel_device_info *devinfo,
        */
       const struct brw_wm_prog_data *wm_prog_data =
          (const struct brw_wm_prog_data *)prog_data;
-      return !wm_prog_data->persample_dispatch;
+      return devinfo->verx10 < 125 && !wm_prog_data->persample_dispatch;
    }
    case MESA_SHADER_COMPUTE:
       /* Compute shaders will be spawned with either a fully enabled dispatch