From: Francisco Jerez Date: Sat, 28 Dec 2019 01:06:30 +0000 (-0800) Subject: intel/fs: Fix nir_intrinsic_load_barycentric_at_sample for SIMD32. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cc0ea482adb3e035857dd126a5f1dd4298a8f632;p=mesa.git 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 --- 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