aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Vulkan/TextureView.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2023-02-07 13:55:59 -0300
committerGitHub <noreply@github.com>2023-02-07 13:55:59 -0300
commitf8beeeb7d3dca796d05a2ab1d7a8f1af3b7e3fb5 (patch)
tree7294400929602602eb7b2959e09d3ef12ad11228 /Ryujinx.Graphics.Vulkan/TextureView.cs
parentcb250162cb47536120a963acdc2672d09e147edf (diff)
Support safe blit on non-2D textures (#4374)1.1.603
* Support safe blit on non-2D textures (except multisample) * Change safe blit with different levels and layers to match CmdBlitImage path * Remove now unused variables * Multisample safe blit support
Diffstat (limited to 'Ryujinx.Graphics.Vulkan/TextureView.cs')
-rw-r--r--Ryujinx.Graphics.Vulkan/TextureView.cs14
1 files changed, 5 insertions, 9 deletions
diff --git a/Ryujinx.Graphics.Vulkan/TextureView.cs b/Ryujinx.Graphics.Vulkan/TextureView.cs
index 3ee19675..e58b743d 100644
--- a/Ryujinx.Graphics.Vulkan/TextureView.cs
+++ b/Ryujinx.Graphics.Vulkan/TextureView.cs
@@ -368,20 +368,16 @@ namespace Ryujinx.Graphics.Vulkan
bool isDepthOrStencil = dst.Info.Format.IsDepthOrStencil();
- if (VulkanConfiguration.UseSlowSafeBlitOnAmd &&
- (_gd.Vendor == Vendor.Amd || _gd.IsMoltenVk) &&
- src.Info.Target == Target.Texture2D &&
- dst.Info.Target == Target.Texture2D)
+ if (VulkanConfiguration.UseSlowSafeBlitOnAmd && (_gd.Vendor == Vendor.Amd || _gd.IsMoltenVk))
{
_gd.HelperShader.Blit(
_gd,
src,
- dst.GetIdentityImageView(),
- dst.Width,
- dst.Height,
- dst.VkFormat,
+ dst,
srcRegion,
dstRegion,
+ layers,
+ levels,
isDepthOrStencil,
linearFilter);
@@ -501,7 +497,7 @@ namespace Ryujinx.Graphics.Vulkan
return CreateViewImpl(info, firstLayer, firstLevel);
}
- private TextureView CreateViewImpl(TextureCreateInfo info, int firstLayer, int firstLevel)
+ public TextureView CreateViewImpl(TextureCreateInfo info, int firstLayer, int firstLevel)
{
return new TextureView(_gd, _device, info, Storage, FirstLayer + firstLayer, FirstLevel + firstLevel);
}