Mesa (master): intel/fs: Fix nir_intrinsic_load_barycentric_at_sample for SIMD32.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jan 10 19:43:11 UTC 2020


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

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Fri Dec 27 17:06:30 2019 -0800

intel/fs: Fix nir_intrinsic_load_barycentric_at_sample for SIMD32.

For uniform sample ID, only the first channel of msg_data will be
initialized.  We need to pass that component only to the SEND message
for SIMD lowering to unzip the descriptor source correctly.

Fixes several dozens of conformance test failures with SIMD32 fragment
shaders enabled, including:

dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_sample.dynamic_sample_number.*

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/intel/compiler/brw_fs_nir.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp
index 3564e9de7ba..3b05d424cbb 100644
--- a/src/intel/compiler/brw_fs_nir.cpp
+++ b/src/intel/compiler/brw_fs_nir.cpp
@@ -3597,7 +3597,7 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder &bld,
                                          FS_OPCODE_INTERPOLATE_AT_SAMPLE,
                                          tmp,
                                          fs_reg(), /* src */
-                                         msg_data,
+                                         component(msg_data, 0),
                                          interpolation);
          } else {
             /* Make a loop that sends a message to the pixel interpolater




More information about the mesa-commit mailing list