|
|
@ -480,33 +480,6 @@ public: |
|
|
}; |
|
|
}; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
bool IsShaderConfigEnabled(std::size_t index) const { |
|
|
|
|
|
// The VertexB is always enabled. |
|
|
|
|
|
if (index == static_cast<std::size_t>(Regs::ShaderProgram::VertexB)) { |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
return shader_config[index].enable != 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
union { |
|
|
|
|
|
struct { |
|
|
|
|
|
INSERT_PADDING_WORDS(0x45); |
|
|
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
|
u32 upload_address; |
|
|
|
|
|
u32 data; |
|
|
|
|
|
u32 entry; |
|
|
|
|
|
u32 bind; |
|
|
|
|
|
} macros; |
|
|
|
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x188); |
|
|
|
|
|
|
|
|
|
|
|
u32 tfb_enabled; |
|
|
|
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x2E); |
|
|
|
|
|
|
|
|
|
|
|
std::array<RenderTargetConfig, NumRenderTargets> rt; |
|
|
|
|
|
|
|
|
|
|
|
struct ViewportTransform { |
|
|
struct ViewportTransform { |
|
|
f32 scale_x; |
|
|
f32 scale_x; |
|
|
f32 scale_y; |
|
|
f32 scale_y; |
|
|
@ -542,7 +515,18 @@ public: |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
std::array<ViewportTransform, NumViewports> viewport_transform; |
|
|
|
|
|
|
|
|
struct ScissorTest { |
|
|
|
|
|
u32 enable; |
|
|
|
|
|
union { |
|
|
|
|
|
BitField<0, 16, u32> min_x; |
|
|
|
|
|
BitField<16, 16, u32> max_x; |
|
|
|
|
|
}; |
|
|
|
|
|
union { |
|
|
|
|
|
BitField<0, 16, u32> min_y; |
|
|
|
|
|
BitField<16, 16, u32> max_y; |
|
|
|
|
|
}; |
|
|
|
|
|
u32 fill; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
struct ViewPort { |
|
|
struct ViewPort { |
|
|
union { |
|
|
union { |
|
|
@ -557,6 +541,35 @@ public: |
|
|
float depth_range_far; |
|
|
float depth_range_far; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
bool IsShaderConfigEnabled(std::size_t index) const { |
|
|
|
|
|
// The VertexB is always enabled. |
|
|
|
|
|
if (index == static_cast<std::size_t>(Regs::ShaderProgram::VertexB)) { |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
return shader_config[index].enable != 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
union { |
|
|
|
|
|
struct { |
|
|
|
|
|
INSERT_PADDING_WORDS(0x45); |
|
|
|
|
|
|
|
|
|
|
|
struct { |
|
|
|
|
|
u32 upload_address; |
|
|
|
|
|
u32 data; |
|
|
|
|
|
u32 entry; |
|
|
|
|
|
u32 bind; |
|
|
|
|
|
} macros; |
|
|
|
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x188); |
|
|
|
|
|
|
|
|
|
|
|
u32 tfb_enabled; |
|
|
|
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x2E); |
|
|
|
|
|
|
|
|
|
|
|
std::array<RenderTargetConfig, NumRenderTargets> rt; |
|
|
|
|
|
|
|
|
|
|
|
std::array<ViewportTransform, NumViewports> viewport_transform; |
|
|
|
|
|
|
|
|
std::array<ViewPort, NumViewports> viewports; |
|
|
std::array<ViewPort, NumViewports> viewports; |
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x1D); |
|
|
INSERT_PADDING_WORDS(0x1D); |
|
|
@ -575,18 +588,6 @@ public: |
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x17); |
|
|
INSERT_PADDING_WORDS(0x17); |
|
|
|
|
|
|
|
|
struct ScissorTest { |
|
|
|
|
|
u32 enable; |
|
|
|
|
|
union { |
|
|
|
|
|
BitField<0, 16, u32> min_x; |
|
|
|
|
|
BitField<16, 16, u32> max_x; |
|
|
|
|
|
}; |
|
|
|
|
|
union { |
|
|
|
|
|
BitField<0, 16, u32> min_y; |
|
|
|
|
|
BitField<16, 16, u32> max_y; |
|
|
|
|
|
}; |
|
|
|
|
|
u32 fill; |
|
|
|
|
|
}; |
|
|
|
|
|
std::array<ScissorTest, NumViewports> scissor_test; |
|
|
std::array<ScissorTest, NumViewports> scissor_test; |
|
|
|
|
|
|
|
|
INSERT_PADDING_WORDS(0x15); |
|
|
INSERT_PADDING_WORDS(0x15); |
|
|
|