mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-02-21 16:43:35 +00:00
Insert barriers around vkCmdBlitImage (may fix some amd flicker)
This commit is contained in:
parent
3f38a8526c
commit
0fe19f51c0
1 changed files with 28 additions and 0 deletions
|
@ -55,6 +55,20 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
|
||||
var filter = linearFilter && !dstInfo.Format.IsDepthOrStencil() ? Filter.Linear : Filter.Nearest;
|
||||
|
||||
TextureView.InsertImageBarrier(
|
||||
api,
|
||||
commandBuffer,
|
||||
srcImage,
|
||||
TextureStorage.DefaultAccessMask,
|
||||
AccessFlags.AccessTransferReadBit,
|
||||
PipelineStageFlags.PipelineStageAllCommandsBit,
|
||||
PipelineStageFlags.PipelineStageTransferBit,
|
||||
srcAspectFlags,
|
||||
srcLayer,
|
||||
srcLevel,
|
||||
layers,
|
||||
levels);
|
||||
|
||||
for (int level = 0; level < levels; level++)
|
||||
{
|
||||
var srcSl = new ImageSubresourceLayers(srcAspectFlags, (uint)srcLevel, (uint)srcLayer, (uint)layers);
|
||||
|
@ -81,6 +95,20 @@ namespace Ryujinx.Graphics.Vulkan
|
|||
layers = Math.Max(1, layers >> 1);
|
||||
}
|
||||
}
|
||||
|
||||
TextureView.InsertImageBarrier(
|
||||
api,
|
||||
commandBuffer,
|
||||
dstImage,
|
||||
AccessFlags.AccessTransferWriteBit,
|
||||
TextureStorage.DefaultAccessMask,
|
||||
PipelineStageFlags.PipelineStageTransferBit,
|
||||
PipelineStageFlags.PipelineStageAllCommandsBit,
|
||||
dstAspectFlags,
|
||||
dstLayer,
|
||||
dstLevel,
|
||||
layers,
|
||||
levels);
|
||||
}
|
||||
|
||||
public static void Copy(
|
||||
|
|
Loading…
Reference in a new issue