mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-12 15:38:59 +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()
|
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 = {};
|
AbstractPipelineConfig config = {};
|
||||||
config.vertex_shader = m_vertex_shader.get();
|
config.vertex_shader = m_vertex_shader.get();
|
||||||
config.geometry_shader = g_ActiveConfig.stereo_mode == StereoMode::QuadBuffer ?
|
config.geometry_shader =
|
||||||
g_shader_cache->GetTexcoordGeometryShader() :
|
use_quad_buffer_gs ? g_shader_cache->GetTexcoordGeometryShader() : nullptr;
|
||||||
nullptr;
|
|
||||||
config.pixel_shader = m_pixel_shader.get();
|
config.pixel_shader = m_pixel_shader.get();
|
||||||
config.rasterization_state = RenderState::GetNoCullRasterizationState(PrimitiveType::Triangles);
|
config.rasterization_state = RenderState::GetNoCullRasterizationState(PrimitiveType::Triangles);
|
||||||
config.depth_state = RenderState::GetNoDepthTestingDepthState();
|
config.depth_state = RenderState::GetNoDepthTestingDepthState();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user