forked from eden-emu/eden
		
	gl_state_tracker: Implement dirty flags for multisample
This commit is contained in:
		
							parent
							
								
									491ccb08df
								
							
						
					
					
						commit
						ec5b0560cb
					
				
					 3 changed files with 13 additions and 0 deletions
				
			
		|  | @ -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 | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 ReinUsesLisp
						ReinUsesLisp