mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-12 07:28:57 +01:00
PostProcessing: Don't use GS expansion shader for quad buffering w/ OpenGL
OpenGL doesn't render to a 2-layer backbuffer like D3D/Vulkan for quad-buffered stereo, instead drawing twice with the eye selected by glDrawBuffer() (see OGL::Renderer::RenderXFBToScreen).
This commit is contained in:
parent
e6ae204600
commit
e88c269d02
@ -714,11 +714,15 @@ bool PostProcessing::CompilePixelShader()
|
||||
|
||||
bool PostProcessing::CompilePipeline()
|
||||
{
|
||||
// OpenGL doesn't render to a 2-layer backbuffer like D3D/Vulkan for quad-buffered stereo, instead
|
||||
// drawing twice and the eye selected by glDrawBuffer() (see OGL::Renderer::RenderXFBToScreen).
|
||||
const bool use_quad_buffer_gs = g_ActiveConfig.stereo_mode == StereoMode::QuadBuffer &&
|
||||
g_ActiveConfig.backend_info.api_type != APIType::OpenGL;
|
||||
|
||||
AbstractPipelineConfig config = {};
|
||||
config.vertex_shader = m_vertex_shader.get();
|
||||
config.geometry_shader = g_ActiveConfig.stereo_mode == StereoMode::QuadBuffer ?
|
||||
g_shader_cache->GetTexcoordGeometryShader() :
|
||||
nullptr;
|
||||
config.geometry_shader =
|
||||
use_quad_buffer_gs ? g_shader_cache->GetTexcoordGeometryShader() : nullptr;
|
||||
config.pixel_shader = m_pixel_shader.get();
|
||||
config.rasterization_state = RenderState::GetNoCullRasterizationState(PrimitiveType::Triangles);
|
||||
config.depth_state = RenderState::GetNoDepthTestingDepthState();
|
||||
|
Loading…
x
Reference in New Issue
Block a user