From 63264ac23f3b9cfaa725cf90d995497ba1601449 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sat, 28 Nov 2015 21:33:47 +1000 Subject: 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. --- Source/Core/VideoBackends/D3D/XFBEncoder.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Source/Core/VideoBackends/D3D/XFBEncoder.cpp') 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"); -- cgit v1.2.3