summaryrefslogtreecommitdiffstats
path: root/src/intel/compiler
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2014-08-14 22:36:45 -0700
committerKenneth Graunke <[email protected]>2017-07-13 19:56:49 -0700
commit8ec5a4e4a4a32f4de351c5fc2bf0eb615b6eef1b (patch)
tree00cf4d1e9f0c0ce9197f5440a865e36240eaaedc /src/intel/compiler
parent86bd3fd864a8383e1d6823114da422f6a948bf1e (diff)
i965: Switch to absolute addressing for constant buffer 0.
By default, 3DSTATE_CONSTANT_* Constant Buffer 0 is relative to dynamic state base address. This makes it unusable for pushing UBOs. I'd like to be able to use all four push buffers. There is a bit in the INSTPM register (or CS_DEBUG_MODE2 on Skylake) which controls whether buffer 0 is relative to dynamic state base address, or simply a normal pointer. Setting that gives us full flexibility. We can't currently write this on Haswell and earlier, and will need to update the kernel command parser, and then do the whole version checking song and dance. Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/intel/compiler')
-rw-r--r--src/intel/compiler/brw_compiler.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_compiler.h b/src/intel/compiler/brw_compiler.h
index 3f383403883..e4c22e31177 100644
--- a/src/intel/compiler/brw_compiler.h
+++ b/src/intel/compiler/brw_compiler.h
@@ -100,6 +100,12 @@ struct brw_compiler {
* This can negatively impact performance.
*/
bool precise_trig;
+
+ /**
+ * Is 3DSTATE_CONSTANT_*'s Constant Buffer 0 relative to Dynamic State
+ * Base Address? (If not, it's a normal GPU address.)
+ */
+ bool constant_buffer_0_is_relative;
};