mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	maxwell_3d: Flatten cull and front face registers
This commit is contained in:
		@@ -76,8 +76,8 @@ void Maxwell3D::InitializeRegisterDefaults() {
 | 
			
		||||
    regs.stencil_back_mask = 0xFFFFFFFF;
 | 
			
		||||
 | 
			
		||||
    regs.depth_test_func = Regs::ComparisonOp::Always;
 | 
			
		||||
    regs.cull.front_face = Regs::Cull::FrontFace::CounterClockWise;
 | 
			
		||||
    regs.cull.cull_face = Regs::Cull::CullFace::Back;
 | 
			
		||||
    regs.front_face = Regs::FrontFace::CounterClockWise;
 | 
			
		||||
    regs.cull_face = Regs::CullFace::Back;
 | 
			
		||||
 | 
			
		||||
    // TODO(Rodrigo): Most games do not set a point size. I think this is a case of a
 | 
			
		||||
    // register carrying a default value. Assume it's OpenGL's default (1).
 | 
			
		||||
@@ -96,7 +96,7 @@ void Maxwell3D::InitializeRegisterDefaults() {
 | 
			
		||||
    regs.rasterize_enable = 1;
 | 
			
		||||
    regs.rt_separate_frag_data = 1;
 | 
			
		||||
    regs.framebuffer_srgb = 1;
 | 
			
		||||
    regs.cull.front_face = Maxwell3D::Regs::Cull::FrontFace::ClockWise;
 | 
			
		||||
    regs.front_face = Maxwell3D::Regs::FrontFace::ClockWise;
 | 
			
		||||
 | 
			
		||||
    mme_inline[MAXWELL3D_REG_INDEX(draw.vertex_end_gl)] = true;
 | 
			
		||||
    mme_inline[MAXWELL3D_REG_INDEX(draw.vertex_begin_gl)] = true;
 | 
			
		||||
 
 | 
			
		||||
@@ -432,21 +432,15 @@ public:
 | 
			
		||||
            GeneratedPrimitives = 0x1F,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        struct Cull {
 | 
			
		||||
            enum class FrontFace : u32 {
 | 
			
		||||
                ClockWise = 0x0900,
 | 
			
		||||
                CounterClockWise = 0x0901,
 | 
			
		||||
            };
 | 
			
		||||
        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;
 | 
			
		||||
        enum class CullFace : u32 {
 | 
			
		||||
            Front = 0x0404,
 | 
			
		||||
            Back = 0x0405,
 | 
			
		||||
            FrontAndBack = 0x0408,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        struct Blend {
 | 
			
		||||
@@ -1052,7 +1046,9 @@ public:
 | 
			
		||||
 | 
			
		||||
                INSERT_UNION_PADDING_WORDS(1);
 | 
			
		||||
 | 
			
		||||
                Cull cull;
 | 
			
		||||
                u32 cull_test_enabled;
 | 
			
		||||
                FrontFace front_face;
 | 
			
		||||
                CullFace cull_face;
 | 
			
		||||
 | 
			
		||||
                u32 pixel_center_integer;
 | 
			
		||||
 | 
			
		||||
@@ -1491,7 +1487,9 @@ ASSERT_REG_POSITION(index_array, 0x5F2);
 | 
			
		||||
ASSERT_REG_POSITION(polygon_offset_clamp, 0x61F);
 | 
			
		||||
ASSERT_REG_POSITION(instanced_arrays, 0x620);
 | 
			
		||||
ASSERT_REG_POSITION(vp_point_size, 0x644);
 | 
			
		||||
ASSERT_REG_POSITION(cull, 0x646);
 | 
			
		||||
ASSERT_REG_POSITION(cull_test_enabled, 0x646);
 | 
			
		||||
ASSERT_REG_POSITION(front_face, 0x647);
 | 
			
		||||
ASSERT_REG_POSITION(cull_face, 0x648);
 | 
			
		||||
ASSERT_REG_POSITION(pixel_center_integer, 0x649);
 | 
			
		||||
ASSERT_REG_POSITION(viewport_transform_enabled, 0x64B);
 | 
			
		||||
ASSERT_REG_POSITION(view_volume_clip_control, 0x64F);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user