|
|
@ -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, |
|
|
|