1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-07 16:54:14 +01:00

[d3d9] Fix ColorFill using sampler views for partial extents

Closes #1434
This commit is contained in:
Joshua Ashton 2020-02-13 23:31:48 +00:00 committed by Philip Rebohle
parent 02c79d892c
commit 2096a95262

View File

@ -1058,17 +1058,16 @@ namespace dxvk {
&& extent == mipExtent; && extent == mipExtent;
} }
Rc<DxvkImageView> imageView = dst->GetImageView(false); Rc<DxvkImageView> rtView = dst->GetRenderTargetView(false);
Rc<DxvkImageView> renderTargetView = dst->GetRenderTargetView(false);
VkClearValue clearValue; VkClearValue clearValue;
DecodeD3DCOLOR(Color, clearValue.color.float32); DecodeD3DCOLOR(Color, clearValue.color.float32);
// Fast path for games that may use this as an // Fast path for games that may use this as an
// alternative to Clear on render targets. // alternative to Clear on render targets.
if (isFullExtent && renderTargetView != nullptr) { if (isFullExtent && rtView != nullptr) {
EmitCs([ EmitCs([
cImageView = renderTargetView, cImageView = rtView,
cClearValue = clearValue cClearValue = clearValue
] (DxvkContext* ctx) { ] (DxvkContext* ctx) {
ctx->clearRenderTarget( ctx->clearRenderTarget(
@ -1077,8 +1076,11 @@ namespace dxvk {
cClearValue); cClearValue);
}); });
} else { } else {
if (unlikely(rtView == nullptr))
Logger::err(str::format("D3D9DeviceEx::ColorFill: Unsupported format ", dstTextureInfo->Desc()->Format));
EmitCs([ EmitCs([
cImageView = imageView, cImageView = rtView,
cOffset = offset, cOffset = offset,
cExtent = extent, cExtent = extent,
cClearValue = clearValue cClearValue = clearValue