mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +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;
|
return D3DERR_INVALIDCALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto EmitResolveCS = [&](const Rc<DxvkImage>& resolveDst) {
|
auto EmitResolveCS = [&](const Rc<DxvkImage>& resolveDst, bool intermediate) {
|
||||||
VkImageResolve region;
|
VkImageResolve region;
|
||||||
region.srcSubresource = blitInfo.srcSubresource;
|
region.srcSubresource = blitInfo.srcSubresource;
|
||||||
region.srcOffset = blitInfo.srcOffsets[0];
|
region.srcOffset = blitInfo.srcOffsets[0];
|
||||||
region.dstSubresource = blitInfo.dstSubresource;
|
region.dstSubresource = intermediate ? blitInfo.srcSubresource : blitInfo.dstSubresource;
|
||||||
region.dstOffset = blitInfo.dstOffsets[0];
|
region.dstOffset = intermediate ? blitInfo.srcOffsets[0] : blitInfo.dstOffsets[0];
|
||||||
region.extent = srcCopyExtent;
|
region.extent = srcCopyExtent;
|
||||||
|
|
||||||
EmitCs([
|
EmitCs([
|
||||||
@ -972,7 +972,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
if (fastPath) {
|
if (fastPath) {
|
||||||
if (needsResolve) {
|
if (needsResolve) {
|
||||||
EmitResolveCS(dstImage);
|
EmitResolveCS(dstImage, false);
|
||||||
} else {
|
} else {
|
||||||
EmitCs([
|
EmitCs([
|
||||||
cDstImage = dstImage,
|
cDstImage = dstImage,
|
||||||
@ -994,7 +994,7 @@ namespace dxvk {
|
|||||||
if (needsResolve) {
|
if (needsResolve) {
|
||||||
auto resolveSrc = srcTextureInfo->GetResolveImage();
|
auto resolveSrc = srcTextureInfo->GetResolveImage();
|
||||||
|
|
||||||
EmitResolveCS(resolveSrc);
|
EmitResolveCS(resolveSrc, true);
|
||||||
srcImage = resolveSrc;
|
srcImage = resolveSrc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user