mirror of
				https://github.com/hedge-dev/UnleashedRecomp.git
				synced 2025-10-30 07:11:05 +00:00 
			
		
		
		
	Prevent rendering ownership change between command lists. (#1486)
	
		
			
	
		
	
	
		
	
		
			Some checks are pending
		
		
	
	
		
			
				
	
				validate-internal / build (push) Waiting to run
				
			
		
		
	
	
				
					
				
			
		
			Some checks are pending
		
		
	
	validate-internal / build (push) Waiting to run
				
			This commit is contained in:
		
							parent
							
								
									49d3b675ed
								
							
						
					
					
						commit
						f5f92d0761
					
				
					 1 changed files with 8 additions and 0 deletions
				
			
		|  | @ -736,10 +736,13 @@ static void DestructTempResources() | |||
| } | ||||
| 
 | ||||
| static std::thread::id g_presentThreadId = std::this_thread::get_id(); | ||||
| static std::atomic<bool> g_readyForCommands; | ||||
| 
 | ||||
| PPC_FUNC_IMPL(__imp__sub_824ECA00); | ||||
| PPC_FUNC(sub_824ECA00) | ||||
| { | ||||
|     // Guard against thread ownership changes when between command lists.
 | ||||
|     g_readyForCommands.wait(false); | ||||
|     g_presentThreadId = std::this_thread::get_id(); | ||||
|     __imp__sub_824ECA00(ctx, base); | ||||
| } | ||||
|  | @ -1624,6 +1627,9 @@ static void BeginCommandList() | |||
|     commandList->setGraphicsDescriptorSet(g_textureDescriptorSet.get(), 1); | ||||
|     commandList->setGraphicsDescriptorSet(g_textureDescriptorSet.get(), 2); | ||||
|     commandList->setGraphicsDescriptorSet(g_samplerDescriptorSet.get(), 3); | ||||
| 
 | ||||
|     g_readyForCommands = true; | ||||
|     g_readyForCommands.notify_one(); | ||||
| } | ||||
| 
 | ||||
| template<typename T> | ||||
|  | @ -2749,6 +2755,8 @@ static std::atomic<bool> g_executedCommandList; | |||
| 
 | ||||
| void Video::Present()  | ||||
| { | ||||
|     g_readyForCommands = false; | ||||
| 
 | ||||
|     RenderCommand cmd; | ||||
|     cmd.type = RenderCommandType::ExecutePendingStretchRectCommands; | ||||
|     g_renderQueue.enqueue(cmd); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 squidbus
						squidbus