|
@@ -147,7 +147,15 @@ struct PipelineRegs {
|
|
|
// Number of vertices to render
|
|
// Number of vertices to render
|
|
|
u32 num_vertices;
|
|
u32 num_vertices;
|
|
|
|
|
|
|
|
- INSERT_PADDING_WORDS(0x1);
|
|
|
|
|
|
|
+ enum class UseGS : u32 {
|
|
|
|
|
+ No = 0,
|
|
|
|
|
+ Yes = 2,
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ union {
|
|
|
|
|
+ BitField<0, 2, UseGS> use_gs;
|
|
|
|
|
+ BitField<31, 1, u32> variable_primitive;
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
// The index of the first vertex to render
|
|
// The index of the first vertex to render
|
|
|
u32 vertex_offset;
|
|
u32 vertex_offset;
|
|
@@ -218,7 +226,29 @@ struct PipelineRegs {
|
|
|
|
|
|
|
|
GPUMode gpu_mode;
|
|
GPUMode gpu_mode;
|
|
|
|
|
|
|
|
- INSERT_PADDING_WORDS(0x18);
|
|
|
|
|
|
|
+ INSERT_PADDING_WORDS(0x4);
|
|
|
|
|
+ BitField<0, 4, u32> vs_outmap_total_minus_1_a;
|
|
|
|
|
+ INSERT_PADDING_WORDS(0x6);
|
|
|
|
|
+ BitField<0, 4, u32> vs_outmap_total_minus_1_b;
|
|
|
|
|
+
|
|
|
|
|
+ enum class GSMode : u32 {
|
|
|
|
|
+ Point = 0,
|
|
|
|
|
+ VariablePrimitive = 1,
|
|
|
|
|
+ FixedPrimitive = 2,
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ union {
|
|
|
|
|
+ BitField<0, 8, GSMode> mode;
|
|
|
|
|
+ BitField<8, 4, u32> fixed_vertex_num_minus_1;
|
|
|
|
|
+ BitField<12, 4, u32> stride_minus_1;
|
|
|
|
|
+ BitField<16, 4, u32> start_index;
|
|
|
|
|
+ } gs_config;
|
|
|
|
|
+
|
|
|
|
|
+ INSERT_PADDING_WORDS(0x1);
|
|
|
|
|
+
|
|
|
|
|
+ u32 variable_vertex_main_num_minus_1;
|
|
|
|
|
+
|
|
|
|
|
+ INSERT_PADDING_WORDS(0x9);
|
|
|
|
|
|
|
|
enum class TriangleTopology : u32 {
|
|
enum class TriangleTopology : u32 {
|
|
|
List = 0,
|
|
List = 0,
|