mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-02-21 00:23:36 +00:00
Fix D32S8 copy workaround (AMD)
Fixes water in Pokemon Legends Arceus on AMD GPUs. Possibly fixes other things.
This commit is contained in:
parent
002bfc65ae
commit
f2b1cfe10c
2 changed files with 16 additions and 6 deletions
|
@ -329,7 +329,8 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
int dstLayers,
|
||||
int dstLevels,
|
||||
bool singleSlice,
|
||||
ImageAspectFlags aspectFlags)
|
||||
ImageAspectFlags aspectFlags,
|
||||
bool forFlush)
|
||||
{
|
||||
bool is3D = Info.Target == Target.Texture3D;
|
||||
int width = Info.Width;
|
||||
|
@ -343,7 +344,12 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
for (int level = 0; level < levels; level++)
|
||||
{
|
||||
int mipSize = GetBufferDataLength(Info.GetMipSize(level));
|
||||
int mipSize = Info.GetMipSize(level);
|
||||
|
||||
if (forFlush)
|
||||
{
|
||||
mipSize = GetBufferDataLength(mipSize);
|
||||
}
|
||||
|
||||
int endOffset = offset + mipSize;
|
||||
|
||||
|
|
|
@ -592,7 +592,8 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
1,
|
||||
levels,
|
||||
true,
|
||||
aspectFlags);
|
||||
aspectFlags,
|
||||
false);
|
||||
|
||||
BufferHolder.InsertBufferBarrier(
|
||||
gd,
|
||||
|
@ -618,7 +619,8 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
1,
|
||||
levels,
|
||||
true,
|
||||
aspectFlags);
|
||||
aspectFlags,
|
||||
false);
|
||||
|
||||
InsertImageBarrier(
|
||||
gd.Api,
|
||||
|
@ -680,7 +682,8 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
1,
|
||||
levels,
|
||||
true,
|
||||
aspectFlags);
|
||||
aspectFlags,
|
||||
false);
|
||||
|
||||
BufferHolder.InsertBufferBarrier(
|
||||
gd,
|
||||
|
@ -706,7 +709,8 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
1,
|
||||
levels,
|
||||
true,
|
||||
aspectFlags);
|
||||
aspectFlags,
|
||||
false);
|
||||
}
|
||||
|
||||
SlowBlit(d32SrcStorage, d32DstStorage, ImageAspectFlags.ImageAspectDepthBit);
|
||||
|
|
Loading…
Reference in a new issue