mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Correct depth compare with color formats for R32F
This commit is contained in:
		
							parent
							
								
									f14328bf0a
								
							
						
					
					
						commit
						b0aa8ad736
					
				| @ -111,11 +111,26 @@ std::size_t SurfaceParams::InnerMemorySize(bool force_gl, bool layer_only, | |||||||
|     params.pixel_format = PixelFormatFromTextureFormat(config.tic.format, config.tic.r_type.Value(), |     params.pixel_format = PixelFormatFromTextureFormat(config.tic.format, config.tic.r_type.Value(), | ||||||
|                                                        params.srgb_conversion); |                                                        params.srgb_conversion); | ||||||
| 
 | 
 | ||||||
|     if (params.pixel_format == PixelFormat::R16U && config.tsc.depth_compare_enabled) { |     if (config.tsc.depth_compare_enabled) { | ||||||
|         // Some titles create a 'R16U' (normalized 16-bit) texture with depth_compare enabled,
 |         // Some titles create a 'R16U' (normalized 16-bit) texture with depth_compare enabled,
 | ||||||
|         // then attempt to sample from it via a shadow sampler. Convert format to Z16 (which also
 |         // then attempt to sample from it via a shadow sampler. Convert format to Z16 (which also
 | ||||||
|         // causes GetFormatType to properly return 'Depth' below).
 |         // causes GetFormatType to properly return 'Depth' below).
 | ||||||
|         params.pixel_format = PixelFormat::Z16; |         if (GetFormatType(params.pixel_format) == SurfaceType::ColorTexture) { | ||||||
|  |             switch (params.pixel_format) { | ||||||
|  |             case PixelFormat::R16S: | ||||||
|  |             case PixelFormat::R16U: | ||||||
|  |             case PixelFormat::R16F: | ||||||
|  |                 params.pixel_format = PixelFormat::Z16; | ||||||
|  |                 break; | ||||||
|  |             case PixelFormat::R32F: | ||||||
|  |                 params.pixel_format = PixelFormat::Z32F; | ||||||
|  |                 break; | ||||||
|  |             default: | ||||||
|  |                 LOG_WARNING(HW_GPU, "Color texture format being used with depth compare: {}", | ||||||
|  |                             static_cast<u32>(params.pixel_format)); | ||||||
|  |                 break; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     params.component_type = ComponentTypeFromTexture(config.tic.r_type.Value()); |     params.component_type = ComponentTypeFromTexture(config.tic.r_type.Value()); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Fernando Sahmkow
						Fernando Sahmkow