diff options
| author | Scott Mansell <phiren@gmail.com> | 2016-09-07 17:44:16 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-09-07 17:44:16 +1200 |
| commit | 42e91dd8158debea2fc0cde3991092a233ced137 (patch) | |
| tree | 3c50eae42d0efb06450d2812f82ebe5a86a3cb3c /Source/Core/VideoBackends/D3D12/PSTextureEncoder.cpp | |
| parent | 62d7a698da178307c43a54f1342754277380417f (diff) | |
| parent | f5c70a4b2706a153580ffe2f7d6b6a4a03c67b99 (diff) | |
Merge pull request #4189 from phire/efb_linear_downsampling
EFB2RAM: Downsample higher resolutions with linear filtering.
Diffstat (limited to 'Source/Core/VideoBackends/D3D12/PSTextureEncoder.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D12/PSTextureEncoder.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/D3D12/PSTextureEncoder.cpp b/Source/Core/VideoBackends/D3D12/PSTextureEncoder.cpp index d07c884e7d..25c5dd92c5 100644 --- a/Source/Core/VideoBackends/D3D12/PSTextureEncoder.cpp +++ b/Source/Core/VideoBackends/D3D12/PSTextureEncoder.cpp @@ -151,8 +151,11 @@ void PSTextureEncoder::Encode(u8* dst, u32 format, u32 native_width, u32 bytes_p D3D::command_list_mgr->SetCommandListDirtyState(COMMAND_LIST_STATE_PS_CBV, true); - // Use linear filtering if (bScaleByHalf), use point filtering otherwise - if (scale_by_half) + // We also linear filtering for both box filtering and downsampling higher resolutions to 1x + // TODO: This only produces perfect downsampling for 1.5x and 2x IR, other resolution will + // need more complex down filtering to average all pixels and produce the correct result. + // Also, box filtering won't be correct for anything other than 1x IR + if (scale_by_half || g_ActiveConfig.iEFBScale != SCALE_1X) D3D::SetLinearCopySampler(); else D3D::SetPointCopySampler(); |
