diff options
| author | Stenzek <stenzek@gmail.com> | 2015-11-28 21:33:47 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2015-12-08 20:29:21 +1000 |
| commit | 63264ac23f3b9cfaa725cf90d995497ba1601449 (patch) | |
| tree | 2e3934b26e064f9e794006223ed4a2d3ee3c657c /Source/Core/VideoBackends/D3D/XFBEncoder.cpp | |
| parent | 5e803c3db3fa27b943d3d7789086789946eed6a7 (diff) | |
D3D: Fix EFB depth buffer copies, filtering on scaled EFB copies when MSAA is enabled, real XFB filtering
Since ResolveSubresource cannot be used with depth textures (and throws an error with the debug layer enabled), use a shader which selects the minimum depth value from all samples.
Changes the sampler by XFBEncoder to use a linear filter, rather than point, to match GL behavior.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/XFBEncoder.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D/XFBEncoder.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/Source/Core/VideoBackends/D3D/XFBEncoder.cpp b/Source/Core/VideoBackends/D3D/XFBEncoder.cpp index 560b13fa7a..a4fb947d5e 100644 --- a/Source/Core/VideoBackends/D3D/XFBEncoder.cpp +++ b/Source/Core/VideoBackends/D3D/XFBEncoder.cpp @@ -247,8 +247,7 @@ void XFBEncoder::Init() // Create EFB texture sampler D3D11_SAMPLER_DESC sd = CD3D11_SAMPLER_DESC(CD3D11_DEFAULT()); - // FIXME: Should we really use point sampling here? - sd.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT; + sd.Filter = D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT; hr = D3D::device->CreateSamplerState(&sd, &m_efbSampler); CHECK(SUCCEEDED(hr), "create xfb encode texture sampler"); D3D::SetDebugObjectName(m_efbSampler, "xfb encoder texture sampler"); |
