| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1275,6 +1275,9 @@ bool GPU_HW::CompilePipelines(Error* error)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                const bool uv_limits = ShouldClampUVs(sprite ? m_sprite_texture_filtering : m_texture_filtering);
 | 
					 | 
					 | 
					 | 
					                const bool uv_limits = ShouldClampUVs(sprite ? m_sprite_texture_filtering : m_texture_filtering);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                const BatchTextureMode shader_texmode = static_cast<BatchTextureMode>(
 | 
					 | 
					 | 
					 | 
					                const BatchTextureMode shader_texmode = static_cast<BatchTextureMode>(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  texture_mode - (sprite ? static_cast<u8>(BatchTextureMode::SpriteStart) : 0));
 | 
					 | 
					 | 
					 | 
					                  texture_mode - (sprite ? static_cast<u8>(BatchTextureMode::SpriteStart) : 0));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                const GPUTextureFilter texture_filter = sprite ? m_sprite_texture_filtering : m_texture_filtering;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                const bool texture_filter_is_blended =
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                  (shader_texmode != BatchTextureMode::Disabled && IsBlendedTextureFiltering(texture_filter));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                const bool use_rov =
 | 
					 | 
					 | 
					 | 
					                const bool use_rov =
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  (render_mode == static_cast<u8>(BatchRenderMode::ShaderBlend) && m_use_rov_for_shader_blend);
 | 
					 | 
					 | 
					 | 
					                  (render_mode == static_cast<u8>(BatchRenderMode::ShaderBlend) && m_use_rov_for_shader_blend);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                const bool rov_depth_test = (use_rov && depth_test != 0);
 | 
					 | 
					 | 
					 | 
					                const bool rov_depth_test = (use_rov && depth_test != 0);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1282,11 +1285,11 @@ bool GPU_HW::CompilePipelines(Error* error)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                                                  GPUTransparencyMode::Disabled);
 | 
					 | 
					 | 
					 | 
					                                                                  GPUTransparencyMode::Disabled);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                const std::string fs = shadergen.GenerateBatchFragmentShader(
 | 
					 | 
					 | 
					 | 
					                const std::string fs = shadergen.GenerateBatchFragmentShader(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  static_cast<BatchRenderMode>(render_mode), static_cast<GPUTransparencyMode>(transparency_mode),
 | 
					 | 
					 | 
					 | 
					                  static_cast<BatchRenderMode>(render_mode), static_cast<GPUTransparencyMode>(transparency_mode),
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  shader_texmode, sprite ? m_sprite_texture_filtering : m_texture_filtering, upscaled, msaa,
 | 
					 | 
					 | 
					 | 
					                  shader_texmode, texture_filter, texture_filter_is_blended, upscaled, msaa, per_sample_shading,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  per_sample_shading, uv_limits, !sprite && force_round_texcoords, true_color,
 | 
					 | 
					 | 
					 | 
					                  uv_limits, !sprite && force_round_texcoords, true_color, ConvertToBoolUnchecked(dithering),
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ConvertToBoolUnchecked(dithering), scaled_dithering, disable_color_perspective,
 | 
					 | 
					 | 
					 | 
					                  scaled_dithering, disable_color_perspective, ConvertToBoolUnchecked(interlacing), scaled_interlacing,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  ConvertToBoolUnchecked(interlacing), scaled_interlacing, ConvertToBoolUnchecked(check_mask),
 | 
					 | 
					 | 
					 | 
					                  ConvertToBoolUnchecked(check_mask), m_write_mask_as_depth, use_rov, needs_rov_depth, rov_depth_test,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                  m_write_mask_as_depth, use_rov, needs_rov_depth, rov_depth_test, rov_depth_write);
 | 
					 | 
					 | 
					 | 
					                  rov_depth_write);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if (!(batch_fragment_shaders[depth_test][render_mode][transparency_mode][texture_mode][check_mask]
 | 
					 | 
					 | 
					 | 
					                if (!(batch_fragment_shaders[depth_test][render_mode][transparency_mode][texture_mode][check_mask]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                            [dithering][interlacing] = g_gpu_device->CreateShader(
 | 
					 | 
					 | 
					 | 
					                                            [dithering][interlacing] = g_gpu_device->CreateShader(
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |