mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-28 01:52:29 -06:00
pica/regs: layout geometry shader configuration regs
All the register meanings are derived from ctrulib (3dbrew is outdated for most of them)
This commit is contained in:
parent
c2466a2f19
commit
db309b2423
2 changed files with 39 additions and 2 deletions
|
@ -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,
|
||||||
|
|
|
@ -24,9 +24,16 @@ struct ShaderRegs {
|
||||||
|
|
||||||
INSERT_PADDING_WORDS(0x4);
|
INSERT_PADDING_WORDS(0x4);
|
||||||
|
|
||||||
|
enum ShaderMode {
|
||||||
|
GS = 0x08,
|
||||||
|
VS = 0xA0,
|
||||||
|
};
|
||||||
|
|
||||||
union {
|
union {
|
||||||
// Number of input attributes to shader unit - 1
|
// Number of input attributes to shader unit - 1
|
||||||
BitField<0, 4, u32> max_input_attribute_index;
|
BitField<0, 4, u32> max_input_attribute_index;
|
||||||
|
BitField<8, 8, u32> input_to_uniform;
|
||||||
|
BitField<24, 8, ShaderMode> shader_mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Offset to shader program entry point (in words)
|
// Offset to shader program entry point (in words)
|
||||||
|
|
Loading…
Reference in a new issue