summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_core/engines/maxwell_3d.h30
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
338ASSERT_REG_POSITION(rt, 0x200); 360ASSERT_REG_POSITION(rt, 0x200);
361ASSERT_REG_POSITION(vertex_buffer, 0x35D);
339ASSERT_REG_POSITION(zeta, 0x3F8); 362ASSERT_REG_POSITION(zeta, 0x3F8);
363ASSERT_REG_POSITION(vertex_attrib_format[0], 0x458);
340ASSERT_REG_POSITION(rt_control, 0x487); 364ASSERT_REG_POSITION(rt_control, 0x487);
341ASSERT_REG_POSITION(tsc, 0x557); 365ASSERT_REG_POSITION(tsc, 0x557);
342ASSERT_REG_POSITION(tic, 0x55D); 366ASSERT_REG_POSITION(tic, 0x55D);