summaryrefslogtreecommitdiff
path: root/lib/gen9_render.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gen9_render.h')
-rw-r--r--lib/gen9_render.h38
1 files changed, 30 insertions, 8 deletions
diff --git a/lib/gen9_render.h b/lib/gen9_render.h
index 06d9718c..af3a2b3a 100644
--- a/lib/gen9_render.h
+++ b/lib/gen9_render.h
@@ -59,9 +59,15 @@ struct gen9_surface_state {
uint32_t depth:11;
} ss3;
- struct {
- uint32_t minimum_array_element:27;
- uint32_t pad0:5;
+ union {
+ struct {
+ uint32_t minimum_array_element:27;
+ uint32_t pad0:5;
+ } skl;
+ struct {
+ uint32_t decompress_in_l3:1;
+ uint32_t pad0:31;
+ } dg2;
} ss4;
struct {
@@ -116,6 +122,15 @@ struct gen9_surface_state {
uint32_t media_compression:1;
uint32_t pad2:1;
} tgl;
+
+ struct {
+ uint32_t pad0:14;
+ uint32_t disable_support_for_multi_gpu_partial_writes:1;
+ uint32_t disable_support_for_multi_gpu_atomics:1;
+ uint32_t pad1:14;
+ uint32_t memory_compression_enable:1;
+ uint32_t memory_compression_type:1;
+ } dg2;
} ss7;
struct {
@@ -138,15 +153,22 @@ struct gen9_surface_state {
uint32_t aux_base_addr_hi;
} ss11;
- /* register can be used for either
- * clear value or depth clear value
- */
struct {
- uint32_t clear_address;
+ /*
+ * compression_format is used only dg2 onward.
+ * prior to dg2 full ss12 is used for the address
+ * but due to alignments bits 0..6 will be zero
+ * and asserted in code to be so
+ */
+ uint32_t compression_format:5;
+ uint32_t pad0:1;
+ uint32_t clear_address:26;
} ss12;
struct {
- uint32_t clear_address_hi;
+ uint32_t clear_address_hi:16;
+ uint32_t pad0:16;
+
} ss13;
struct {