diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/engines/maxwell_3d.h | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index c2db3154a..aab282b77 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h | |||
| @@ -34,6 +34,7 @@ public: | |||
| 34 | static constexpr size_t NumRenderTargets = 8; | 34 | static constexpr size_t NumRenderTargets = 8; |
| 35 | static constexpr size_t NumCBData = 16; | 35 | static constexpr size_t NumCBData = 16; |
| 36 | static constexpr size_t NumVertexArrays = 32; | 36 | static constexpr size_t NumVertexArrays = 32; |
| 37 | static constexpr size_t NumVertexAttributes = 32; | ||
| 37 | static constexpr size_t MaxShaderProgram = 6; | 38 | static constexpr size_t MaxShaderProgram = 6; |
| 38 | static constexpr size_t MaxShaderStage = 5; | 39 | static constexpr size_t MaxShaderStage = 5; |
| 39 | // Maximum number of const buffers per shader stage. | 40 | // Maximum number of const buffers per shader stage. |
| @@ -83,7 +84,14 @@ public: | |||
| 83 | } | 84 | } |
| 84 | } rt[NumRenderTargets]; | 85 | } rt[NumRenderTargets]; |
| 85 | 86 | ||
| 86 | INSERT_PADDING_WORDS(0x178); | 87 | INSERT_PADDING_WORDS(0xDD); |
| 88 | |||
| 89 | struct { | ||
| 90 | u32 first; | ||
| 91 | u32 count; | ||
| 92 | } vertex_buffer; | ||
| 93 | |||
| 94 | INSERT_PADDING_WORDS(0x99); | ||
| 87 | 95 | ||
| 88 | struct { | 96 | struct { |
| 89 | u32 address_high; | 97 | u32 address_high; |
| @@ -98,7 +106,18 @@ public: | |||
| 98 | } | 106 | } |
| 99 | } zeta; | 107 | } zeta; |
| 100 | 108 | ||
| 101 | INSERT_PADDING_WORDS(0x8A); | 109 | INSERT_PADDING_WORDS(0x5B); |
| 110 | |||
| 111 | union { | ||
| 112 | BitField<0, 5, u32> buffer; | ||
| 113 | BitField<6, 1, u32> constant; | ||
| 114 | BitField<7, 14, u32> offset; | ||
| 115 | BitField<21, 6, u32> size; | ||
| 116 | BitField<27, 3, u32> type; | ||
| 117 | BitField<31, 1, u32> bgra; | ||
| 118 | } vertex_attrib_format[NumVertexAttributes]; | ||
| 119 | |||
| 120 | INSERT_PADDING_WORDS(0xF); | ||
| 102 | 121 | ||
| 103 | struct { | 122 | struct { |
| 104 | union { | 123 | union { |
| @@ -146,7 +165,10 @@ public: | |||
| 146 | INSERT_PADDING_WORDS(1); | 165 | INSERT_PADDING_WORDS(1); |
| 147 | struct { | 166 | struct { |
| 148 | u32 vertex_end_gl; | 167 | u32 vertex_end_gl; |
| 149 | u32 vertex_begin_gl; | 168 | union { |
| 169 | u32 vertex_begin_gl; | ||
| 170 | BitField<0, 16, u32> topology; | ||
| 171 | }; | ||
| 150 | } draw; | 172 | } draw; |
| 151 | INSERT_PADDING_WORDS(0x139); | 173 | INSERT_PADDING_WORDS(0x139); |
| 152 | struct { | 174 | struct { |
| @@ -336,7 +358,9 @@ private: | |||
| 336 | "Field " #field_name " has invalid position") | 358 | "Field " #field_name " has invalid position") |
| 337 | 359 | ||
| 338 | ASSERT_REG_POSITION(rt, 0x200); | 360 | ASSERT_REG_POSITION(rt, 0x200); |
| 361 | ASSERT_REG_POSITION(vertex_buffer, 0x35D); | ||
| 339 | ASSERT_REG_POSITION(zeta, 0x3F8); | 362 | ASSERT_REG_POSITION(zeta, 0x3F8); |
| 363 | ASSERT_REG_POSITION(vertex_attrib_format[0], 0x458); | ||
| 340 | ASSERT_REG_POSITION(rt_control, 0x487); | 364 | ASSERT_REG_POSITION(rt_control, 0x487); |
| 341 | ASSERT_REG_POSITION(tsc, 0x557); | 365 | ASSERT_REG_POSITION(tsc, 0x557); |
| 342 | ASSERT_REG_POSITION(tic, 0x55D); | 366 | ASSERT_REG_POSITION(tic, 0x55D); |