mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	maxwell_3d: implement MME shadow RAM
This commit is contained in:
		
							parent
							
								
									e5bb5d13c4
								
							
						
					
					
						commit
						dbfbe352e0
					
				@ -531,6 +531,13 @@ public:
 | 
			
		||||
            Fill = 0x1b02,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        enum class ShadowRamControl : u32 {
 | 
			
		||||
            Track = 0,
 | 
			
		||||
            TrackWithFilter = 1,
 | 
			
		||||
            Passthrough = 2,
 | 
			
		||||
            Replay = 3,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        struct RenderTargetConfig {
 | 
			
		||||
            u32 address_high;
 | 
			
		||||
            u32 address_low;
 | 
			
		||||
@ -674,7 +681,9 @@ public:
 | 
			
		||||
                    u32 bind;
 | 
			
		||||
                } macros;
 | 
			
		||||
 | 
			
		||||
                INSERT_UNION_PADDING_WORDS(0x17);
 | 
			
		||||
                ShadowRamControl shadow_ram_control;
 | 
			
		||||
 | 
			
		||||
                INSERT_UNION_PADDING_WORDS(0x16);
 | 
			
		||||
 | 
			
		||||
                Upload::Registers upload;
 | 
			
		||||
                struct {
 | 
			
		||||
@ -1265,6 +1274,9 @@ public:
 | 
			
		||||
        };
 | 
			
		||||
    } regs{};
 | 
			
		||||
 | 
			
		||||
    /// Store temporary hw register values, used by some calls to restore state after a operation
 | 
			
		||||
    Regs shadow_state;
 | 
			
		||||
 | 
			
		||||
    static_assert(sizeof(Regs) == Regs::NUM_REGS * sizeof(u32), "Maxwell3D Regs has wrong size");
 | 
			
		||||
    static_assert(std::is_trivially_copyable_v<Regs>, "Maxwell3D Regs must be trivially copyable");
 | 
			
		||||
 | 
			
		||||
@ -1458,6 +1470,7 @@ private:
 | 
			
		||||
                  "Field " #field_name " has invalid position")
 | 
			
		||||
 | 
			
		||||
ASSERT_REG_POSITION(macros, 0x45);
 | 
			
		||||
ASSERT_REG_POSITION(shadow_ram_control, 0x49);
 | 
			
		||||
ASSERT_REG_POSITION(upload, 0x60);
 | 
			
		||||
ASSERT_REG_POSITION(exec_upload, 0x6C);
 | 
			
		||||
ASSERT_REG_POSITION(data_upload, 0x6D);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user