mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-02 04:29:14 +01:00
[d3d9] Correct resolve offset regions for intermediate StretchRect resolves
We don't want to use the dst info for these, given the blit will do that. Partially fixes #1637
This commit is contained in:
parent
e2ad3b1b20
commit
8e7df31878
@ -943,12 +943,12 @@ namespace dxvk {
|
||||
return D3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
auto EmitResolveCS = [&](const Rc<DxvkImage>& resolveDst) {
|
||||
auto EmitResolveCS = [&](const Rc<DxvkImage>& resolveDst, bool intermediate) {
|
||||
VkImageResolve region;
|
||||
region.srcSubresource = blitInfo.srcSubresource;
|
||||
region.srcOffset = blitInfo.srcOffsets[0];
|
||||
region.dstSubresource = blitInfo.dstSubresource;
|
||||
region.dstOffset = blitInfo.dstOffsets[0];
|
||||
region.dstSubresource = intermediate ? blitInfo.srcSubresource : blitInfo.dstSubresource;
|
||||
region.dstOffset = intermediate ? blitInfo.srcOffsets[0] : blitInfo.dstOffsets[0];
|
||||
region.extent = srcCopyExtent;
|
||||
|
||||
EmitCs([
|
||||
@ -972,7 +972,7 @@ namespace dxvk {
|
||||
|
||||
if (fastPath) {
|
||||
if (needsResolve) {
|
||||
EmitResolveCS(dstImage);
|
||||
EmitResolveCS(dstImage, false);
|
||||
} else {
|
||||
EmitCs([
|
||||
cDstImage = dstImage,
|
||||
@ -994,7 +994,7 @@ namespace dxvk {
|
||||
if (needsResolve) {
|
||||
auto resolveSrc = srcTextureInfo->GetResolveImage();
|
||||
|
||||
EmitResolveCS(resolveSrc);
|
||||
EmitResolveCS(resolveSrc, true);
|
||||
srcImage = resolveSrc;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user