[Mesa-dev] [PATCH v2] r600g/sb: Don't require array declarations for TGSI_FILE_SYSTEM_VALUE
Gert Wollny
gw.fossdev at gmail.com
Thu Sep 14 14:00:38 UTC 2017
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 at arb_gpu_shader5@execution at samplemaskin-indirect for
debug builds (it already passed in release).
---
- v1 was "r600/sb: remove superfluos assert", but this name doesn't make
sense anymore
- Submitter has no mesa git write access.
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 ae92a767b4..c7b9032049 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.5
More information about the mesa-dev
mailing list