diff options
author | Kenneth Graunke <[email protected]> | 2014-08-14 22:36:45 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-07-13 19:56:49 -0700 |
commit | 8ec5a4e4a4a32f4de351c5fc2bf0eb615b6eef1b (patch) | |
tree | 00cf4d1e9f0c0ce9197f5440a865e36240eaaedc /src/intel/compiler | |
parent | 86bd3fd864a8383e1d6823114da422f6a948bf1e (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.h | 6 |
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; }; |