Although gl_SampleMaskIn is declared as an array in GLSL, it is
effectively a 32 bit mask on all hardware supported by mesa, so the
array indexing is ignored (Thanks Glenn Kennard for the explanation).

Add a comment that the assert is not made superfluos by the else branch.

Corrects: piglit spec@arb_gpu_shader5@execution@samplemaskin-indirect for
debug builds (it already passed in release).

Signed-off-by: Gert Wollny <[email protected]>
---

 src/gallium/drivers/r600/sb/sb_bc_parser.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/r600/sb/sb_bc_parser.cpp 
b/src/gallium/drivers/r600/sb/sb_bc_parser.cpp
index 970e4141d5..b92e058daf 100644
--- a/src/gallium/drivers/r600/sb/sb_bc_parser.cpp
+++ b/src/gallium/drivers/r600/sb/sb_bc_parser.cpp
@@ -125,7 +125,9 @@ int bc_parser::parse_decls() {
                return 0;
        }
 
-       if (pshader->indirect_files & ~((1 << TGSI_FILE_CONSTANT) | (1 << 
TGSI_FILE_SAMPLER))) {
+       if (pshader->indirect_files &
+           ~((1 << TGSI_FILE_CONSTANT) | (1 << TGSI_FILE_SAMPLER) |
+          (1 << TGSI_FILE_SYSTEM_VALUE))) {
 
                assert(pshader->num_arrays);
 
@@ -135,6 +137,10 @@ int bc_parser::parse_decls() {
                                sh->add_gpr_array(a.gpr_start, a.gpr_count, 
a.comp_mask);
                        }
                } else {
+                       /* When the above assert is disabled and proper array 
info
+                        * is missing for some reason then, as a fallback, make 
sure
+                        * that all GPRs can be accessed indirectly.
+                        */
                        sh->add_gpr_array(0, pshader->bc.ngpr, 0x0F);
                }
        }
-- 
2.13.6

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to