diff options
| author | Connor McLaughlin <stenzek@gmail.com> | 2019-08-04 13:14:35 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-04 13:14:35 +1000 |
| commit | 4ccb4ef74fc8fd88b8fc62a2ec05ddb3fc84a94e (patch) | |
| tree | 21d48a082821d7326546a6469ef442a457f1dc52 /Source | |
| parent | 64c0ff576c6d3ea2ee35e6b6d7ea8c814442d53f (diff) | |
| parent | d78a9356d22b23c3d8f9438777b79af6dfb42f28 (diff) | |
Merge pull request #8283 from stenzek/d3d11-null-render-target
D3D11: Only use integer RTV when logic op is supported+enabled
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/VideoBackends/D3D/DXPipeline.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/Source/Core/VideoBackends/D3D/DXPipeline.cpp b/Source/Core/VideoBackends/D3D/DXPipeline.cpp index bc48ce061d..c8d3622aaa 100644 --- a/Source/Core/VideoBackends/D3D/DXPipeline.cpp +++ b/Source/Core/VideoBackends/D3D/DXPipeline.cpp @@ -55,10 +55,14 @@ std::unique_ptr<DXPipeline> DXPipeline::Create(const AbstractPipelineConfig& con vertex_shader->GetByteCode().size()) : nullptr; - return std::make_unique<DXPipeline>( - input_layout, vertex_shader->GetD3DVertexShader(), - geometry_shader ? geometry_shader->GetD3DGeometryShader() : nullptr, - pixel_shader->GetD3DPixelShader(), rasterizer_state, depth_state, blend_state, - primitive_topology, config.blending_state.logicopenable); + // Only use the integer RTV if logic op is supported, and enabled. + const bool use_logic_op = + config.blending_state.logicopenable && g_ActiveConfig.backend_info.bSupportsLogicOp; + + return std::make_unique<DXPipeline>(input_layout, vertex_shader->GetD3DVertexShader(), + geometry_shader ? geometry_shader->GetD3DGeometryShader() : + nullptr, + pixel_shader->GetD3DPixelShader(), rasterizer_state, + depth_state, blend_state, primitive_topology, use_logic_op); } } // namespace DX11 |
