From 2096a95262330c6a57f0c3bb18c95f88cde07f48 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Thu, 13 Feb 2020 23:31:48 +0000 Subject: [PATCH] [d3d9] Fix ColorFill using sampler views for partial extents Closes #1434 --- src/d3d9/d3d9_device.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index 39a15bbc4..9dce4bedc 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -1058,17 +1058,16 @@ namespace dxvk { && extent == mipExtent; } - Rc imageView = dst->GetImageView(false); - Rc renderTargetView = dst->GetRenderTargetView(false); + Rc rtView = dst->GetRenderTargetView(false); VkClearValue clearValue; DecodeD3DCOLOR(Color, clearValue.color.float32); // Fast path for games that may use this as an // alternative to Clear on render targets. - if (isFullExtent && renderTargetView != nullptr) { + if (isFullExtent && rtView != nullptr) { EmitCs([ - cImageView = renderTargetView, + cImageView = rtView, cClearValue = clearValue ] (DxvkContext* ctx) { ctx->clearRenderTarget( @@ -1077,8 +1076,11 @@ namespace dxvk { cClearValue); }); } else { + if (unlikely(rtView == nullptr)) + Logger::err(str::format("D3D9DeviceEx::ColorFill: Unsupported format ", dstTextureInfo->Desc()->Format)); + EmitCs([ - cImageView = imageView, + cImageView = rtView, cOffset = offset, cExtent = extent, cClearValue = clearValue