diff options
author | Joshua Ashton <joshua@froggi.es> | 2020-02-14 02:31:48 +0300 |
---|---|---|
committer | Joshua Ashton <joshua@froggi.es> | 2020-02-14 02:43:18 +0300 |
commit | 98834413c3e1598d5b8d581c2680fbb77e5a9f49 (patch) | |
tree | 0301279cde21210372ff2eea7f200b3b97b3d8c8 | |
parent | 14d6717f4c659b18b43b9619d0082680849817fc (diff) |
[d3d9] Fix ColorFill using sampler views for partial extentsd3d9-colorfill-fix
Closes #1434
-rw-r--r-- | src/d3d9/d3d9_device.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/d3d9/d3d9_device.cpp b/src/d3d9/d3d9_device.cpp index dbfbaf21..37756e62 100644 --- a/src/d3d9/d3d9_device.cpp +++ b/src/d3d9/d3d9_device.cpp @@ -1058,17 +1058,16 @@ namespace dxvk { && extent == mipExtent; } - Rc<DxvkImageView> imageView = dst->GetImageView(false); - Rc<DxvkImageView> renderTargetView = dst->GetRenderTargetView(false); + Rc<DxvkImageView> 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 |