diff options
author | gdkchan <gab.dark.100@gmail.com> | 2023-02-07 13:55:59 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-07 13:55:59 -0300 |
commit | f8beeeb7d3dca796d05a2ab1d7a8f1af3b7e3fb5 (patch) | |
tree | 7294400929602602eb7b2959e09d3ef12ad11228 /Ryujinx.Graphics.Vulkan/TextureView.cs | |
parent | cb250162cb47536120a963acdc2672d09e147edf (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.cs | 14 |
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); } |