forked from suyu/suyu
GPU: Added registers for depth test and cull mode.
This commit is contained in:
parent
0f929762b3
commit
c1f55c32c8
1 changed files with 51 additions and 3 deletions
|
@ -280,6 +280,34 @@ public:
|
|||
UnsignedInt = 0x2,
|
||||
};
|
||||
|
||||
enum class ComparisonOp : u32 {
|
||||
Never = 0x200,
|
||||
Less = 0x201,
|
||||
Equal = 0x202,
|
||||
LessEqual = 0x203,
|
||||
Greater = 0x204,
|
||||
NotEqual = 0x205,
|
||||
GreaterEqual = 0x206,
|
||||
Always = 0x207,
|
||||
};
|
||||
|
||||
struct Cull {
|
||||
enum class FrontFace : u32 {
|
||||
ClockWise = 0x0900,
|
||||
CounterClockWise = 0x0901,
|
||||
};
|
||||
|
||||
enum class CullFace : u32 {
|
||||
Front = 0x0404,
|
||||
Back = 0x0405,
|
||||
FrontAndBack = 0x0408,
|
||||
};
|
||||
|
||||
u32 enabled;
|
||||
FrontFace front_face;
|
||||
CullFace cull_face;
|
||||
};
|
||||
|
||||
struct Blend {
|
||||
enum class Equation : u32 {
|
||||
Add = 1,
|
||||
|
@ -435,11 +463,21 @@ public:
|
|||
};
|
||||
} rt_control;
|
||||
|
||||
INSERT_PADDING_WORDS(0x31);
|
||||
INSERT_PADDING_WORDS(0x2B);
|
||||
|
||||
u32 depth_test_enable;
|
||||
|
||||
INSERT_PADDING_WORDS(0x5);
|
||||
|
||||
u32 independent_blend_enable;
|
||||
|
||||
INSERT_PADDING_WORDS(0x15);
|
||||
u32 depth_write_enabled;
|
||||
|
||||
INSERT_PADDING_WORDS(0x8);
|
||||
|
||||
ComparisonOp depth_test_func;
|
||||
|
||||
INSERT_PADDING_WORDS(0xB);
|
||||
|
||||
struct {
|
||||
u32 separate_alpha;
|
||||
|
@ -536,7 +574,13 @@ public:
|
|||
}
|
||||
} index_array;
|
||||
|
||||
INSERT_PADDING_WORDS(0xC7);
|
||||
INSERT_PADDING_WORDS(0x7);
|
||||
|
||||
INSERT_PADDING_WORDS(0x46);
|
||||
|
||||
Cull cull;
|
||||
|
||||
INSERT_PADDING_WORDS(0x77);
|
||||
|
||||
struct {
|
||||
u32 query_address_high;
|
||||
|
@ -743,13 +787,17 @@ ASSERT_REG_POSITION(vertex_buffer, 0x35D);
|
|||
ASSERT_REG_POSITION(zeta, 0x3F8);
|
||||
ASSERT_REG_POSITION(vertex_attrib_format[0], 0x458);
|
||||
ASSERT_REG_POSITION(rt_control, 0x487);
|
||||
ASSERT_REG_POSITION(depth_test_enable, 0x4B3);
|
||||
ASSERT_REG_POSITION(independent_blend_enable, 0x4B9);
|
||||
ASSERT_REG_POSITION(depth_write_enabled, 0x4BA);
|
||||
ASSERT_REG_POSITION(depth_test_func, 0x4C3);
|
||||
ASSERT_REG_POSITION(blend, 0x4CF);
|
||||
ASSERT_REG_POSITION(tsc, 0x557);
|
||||
ASSERT_REG_POSITION(tic, 0x55D);
|
||||
ASSERT_REG_POSITION(code_address, 0x582);
|
||||
ASSERT_REG_POSITION(draw, 0x585);
|
||||
ASSERT_REG_POSITION(index_array, 0x5F2);
|
||||
ASSERT_REG_POSITION(cull, 0x646);
|
||||
ASSERT_REG_POSITION(query, 0x6C0);
|
||||
ASSERT_REG_POSITION(vertex_array[0], 0x700);
|
||||
ASSERT_REG_POSITION(independent_blend, 0x780);
|
||||
|
|
Loading…
Reference in a new issue