mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	gl_rasterizer_cache: validate surface in mipmap/cubemap if the children is not validated yet
This commit is contained in:
		
							parent
							
								
									88a011ec8e
								
							
						
					
					
						commit
						e3b6bf93bc
					
				
					 1 changed files with 6 additions and 0 deletions
				
			
		|  | @ -1412,6 +1412,9 @@ Surface RasterizerCacheOpenGL::GetTextureSurface(const Pica::Texture::TextureInf | ||||||
| 
 | 
 | ||||||
|             if (watcher && !watcher->IsValid()) { |             if (watcher && !watcher->IsValid()) { | ||||||
|                 auto level_surface = watcher->Get(); |                 auto level_surface = watcher->Get(); | ||||||
|  |                 if (!level_surface->invalid_regions.empty()) { | ||||||
|  |                     ValidateSurface(level_surface, level_surface->addr, level_surface->size); | ||||||
|  |                 } | ||||||
|                 state.ResetTexture(level_surface->texture.handle); |                 state.ResetTexture(level_surface->texture.handle); | ||||||
|                 state.Apply(); |                 state.Apply(); | ||||||
|                 glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, |                 glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, | ||||||
|  | @ -1504,6 +1507,9 @@ const CachedTextureCube& RasterizerCacheOpenGL::GetTextureCube(const TextureCube | ||||||
|     for (const Face& face : faces) { |     for (const Face& face : faces) { | ||||||
|         if (face.watcher && !face.watcher->IsValid()) { |         if (face.watcher && !face.watcher->IsValid()) { | ||||||
|             auto surface = face.watcher->Get(); |             auto surface = face.watcher->Get(); | ||||||
|  |             if (!surface->invalid_regions.empty()) { | ||||||
|  |                 ValidateSurface(surface, surface->addr, surface->size); | ||||||
|  |             } | ||||||
|             state.ResetTexture(surface->texture.handle); |             state.ResetTexture(surface->texture.handle); | ||||||
|             state.Apply(); |             state.Apply(); | ||||||
|             glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, |             glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue