summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/program_header.h
diff options
context:
space:
mode:
authorGravatar FernandoS272021-04-04 09:38:15 +0200
committerGravatar ameerj2021-07-22 21:51:26 -0400
commit73cb17f41bf019df504d2d2af4ebdf45aa3201c6 (patch)
tree97ca7cbbefaae73eb77d6e91bbcac4dbe4238c3a /src/shader_recompiler/program_header.h
parentshader: Implement indexed attributes (diff)
downloadyuzu-73cb17f41bf019df504d2d2af4ebdf45aa3201c6.tar.gz
yuzu-73cb17f41bf019df504d2d2af4ebdf45aa3201c6.tar.xz
yuzu-73cb17f41bf019df504d2d2af4ebdf45aa3201c6.zip
shader: Implement indexed Position and ClipDistances
Diffstat (limited to '')
-rw-r--r--src/shader_recompiler/program_header.h45
1 files changed, 42 insertions, 3 deletions
diff --git a/src/shader_recompiler/program_header.h b/src/shader_recompiler/program_header.h
index ce65fc1a4..15f43f2d8 100644
--- a/src/shader_recompiler/program_header.h
+++ b/src/shader_recompiler/program_header.h
@@ -69,7 +69,20 @@ struct ProgramHeader {
69 union { 69 union {
70 struct { 70 struct {
71 INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA 71 INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA
72 INSERT_PADDING_BYTES_NOINIT(1); // ImapSystemValuesB 72
73 union {
74 BitField<0, 1, u8> primitive_array_id;
75 BitField<1, 1, u8> rt_array_index;
76 BitField<2, 1, u8> viewport_index;
77 BitField<3, 1, u8> point_size;
78 BitField<4, 1, u8> position_x;
79 BitField<5, 1, u8> position_y;
80 BitField<6, 1, u8> position_z;
81 BitField<7, 1, u8> position_w;
82 BitField<0, 4, u8> first;
83 BitField<4, 4, u8> position;
84 u8 raw;
85 } imap_systemb;
73 86
74 union { 87 union {
75 BitField<0, 1, u8> x; 88 BitField<0, 1, u8> x;
@@ -99,7 +112,20 @@ struct ProgramHeader {
99 INSERT_PADDING_BYTES_NOINIT(5); // ImapFixedFncTexture[10] 112 INSERT_PADDING_BYTES_NOINIT(5); // ImapFixedFncTexture[10]
100 INSERT_PADDING_BYTES_NOINIT(1); // ImapReserved 113 INSERT_PADDING_BYTES_NOINIT(1); // ImapReserved
101 INSERT_PADDING_BYTES_NOINIT(3); // OmapSystemValuesA 114 INSERT_PADDING_BYTES_NOINIT(3); // OmapSystemValuesA
102 INSERT_PADDING_BYTES_NOINIT(1); // OmapSystemValuesB 115
116 union {
117 BitField<0, 1, u8> primitive_array_id;
118 BitField<1, 1, u8> rt_array_index;
119 BitField<2, 1, u8> viewport_index;
120 BitField<3, 1, u8> point_size;
121 BitField<4, 1, u8> position_x;
122 BitField<5, 1, u8> position_y;
123 BitField<6, 1, u8> position_z;
124 BitField<7, 1, u8> position_w;
125 BitField<0, 4, u8> first;
126 BitField<4, 4, u8> position;
127 u8 raw;
128 } omap_systemb;
103 129
104 union { 130 union {
105 BitField<0, 1, u8> x; 131 BitField<0, 1, u8> x;
@@ -148,7 +174,20 @@ struct ProgramHeader {
148 174
149 struct { 175 struct {
150 INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA 176 INSERT_PADDING_BYTES_NOINIT(3); // ImapSystemValuesA
151 INSERT_PADDING_BYTES_NOINIT(1); // ImapSystemValuesB 177
178 union {
179 BitField<0, 1, u8> primitive_array_id;
180 BitField<1, 1, u8> rt_array_index;
181 BitField<2, 1, u8> viewport_index;
182 BitField<3, 1, u8> point_size;
183 BitField<4, 1, u8> position_x;
184 BitField<5, 1, u8> position_y;
185 BitField<6, 1, u8> position_z;
186 BitField<7, 1, u8> position_w;
187 BitField<0, 4, u8> first;
188 BitField<4, 4, u8> position;
189 u8 raw;
190 } imap_systemb;
152 191
153 union { 192 union {
154 BitField<0, 2, PixelImap> x; 193 BitField<0, 2, PixelImap> x;