mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-02-22 17:10:19 +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;
|
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++)
|
for (int level = 0; level < levels; level++)
|
||||||
{
|
{
|
||||||
var srcSl = new ImageSubresourceLayers(srcAspectFlags, (uint)srcLevel, (uint)srcLayer, (uint)layers);
|
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);
|
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(
|
public static void Copy(
|
||||||
|
|
Loading…
Reference in a new issue