Core/Memory: Only FlushAndInvalidate GPU if the page is marked as RasterizerCachedMemory
This commit avoids Invalidating and Flushing the GPU if the page is not marked as a RasterizerCache Page.
This commit is contained in:
		 Fernando Sahmkow
					Fernando Sahmkow
				
			
				
					committed by
					
						 FernandoS27
						FernandoS27
					
				
			
			
				
	
			
			
			 FernandoS27
						FernandoS27
					
				
			
						parent
						
							b31880dc5e
						
					
				
				
					commit
					50259d7bdc
				
			| @@ -43,8 +43,13 @@ static void MapPages(Common::PageTable& page_table, VAddr base, u64 size, u8* me | ||||
|  | ||||
|     // During boot, current_page_table might not be set yet, in which case we need not flush | ||||
|     if (Core::System::GetInstance().IsPoweredOn()) { | ||||
|         Core::System::GetInstance().GPU().FlushAndInvalidateRegion(base << PAGE_BITS, | ||||
|                                                                    size * PAGE_SIZE); | ||||
|         auto& gpu = Core::System::GetInstance().GPU(); | ||||
|         for (u64 i = 0; i < size; i++) { | ||||
|             const auto page = base + i; | ||||
|             if (page_table.attributes[page] == Common::PageType::RasterizerCachedMemory) { | ||||
|                 gpu.FlushAndInvalidateRegion(page << PAGE_BITS, PAGE_SIZE); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     VAddr end = base + size; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user