mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 08:59:03 -06:00 
			
		
		
		
	gl_state_tracker: Implement dirty flags for multisample
This commit is contained in:
		@@ -1130,6 +1130,13 @@ void RasterizerOpenGL::SyncColorMask() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void RasterizerOpenGL::SyncMultiSampleState() {
 | 
			
		||||
    auto& gpu = system.GPU().Maxwell3D();
 | 
			
		||||
    auto& flags = gpu.dirty.flags;
 | 
			
		||||
    if (!flags[Dirty::MultisampleControl]) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    flags[Dirty::MultisampleControl] = false;
 | 
			
		||||
 | 
			
		||||
    const auto& regs = system.GPU().Maxwell3D().regs;
 | 
			
		||||
    oglEnable(GL_SAMPLE_ALPHA_TO_COVERAGE, regs.multisample_control.alpha_to_coverage);
 | 
			
		||||
    oglEnable(GL_SAMPLE_ALPHA_TO_ONE, regs.multisample_control.alpha_to_one);
 | 
			
		||||
 
 | 
			
		||||
@@ -185,6 +185,10 @@ void SetupDirtyPolygonOffset(Tables& tables) {
 | 
			
		||||
    table[OFF(polygon_offset_clamp)] = PolygonOffset;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SetupDirtyMultisampleControl(Tables& tables) {
 | 
			
		||||
    FillBlock(tables[0], OFF(multisample_control), NUM(multisample_control), MultisampleControl);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SetupDirtyMisc(Tables& tables) {
 | 
			
		||||
    auto& table = tables[0];
 | 
			
		||||
 | 
			
		||||
@@ -216,6 +220,7 @@ void StateTracker::Initialize() {
 | 
			
		||||
    SetupDirtyBlend(tables);
 | 
			
		||||
    SetupDirtyPrimitiveRestart(tables);
 | 
			
		||||
    SetupDirtyPolygonOffset(tables);
 | 
			
		||||
    SetupDirtyMultisampleControl(tables);
 | 
			
		||||
    SetupDirtyMisc(tables);
 | 
			
		||||
 | 
			
		||||
    auto& store = dirty.on_write_stores;
 | 
			
		||||
 
 | 
			
		||||
@@ -65,6 +65,7 @@ enum : u8 {
 | 
			
		||||
    AlphaTest,
 | 
			
		||||
    PrimitiveRestart,
 | 
			
		||||
    PolygonOffset,
 | 
			
		||||
    MultisampleControl,
 | 
			
		||||
 | 
			
		||||
    Last
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user