Ryujinx/src
riperiperi ca59c3f499
Vulkan: Feedback loop detection and barriers (#7226)
* Vulkan: Feedback loop improvements

This PR allows the Vulkan backend to detect attachment feedback loops. These are currently used in the following ways:

- Partial use of VK_EXT_attachment_feedback_loop_layout
  - All renderable textures have AttachmentFeedbackLoopBitExt
  - Compile pipelines with Color/DepthStencil feedback loop flags when present
- Support using FragmentBarrier for feedback loops (fixes regressions from https://github.com/Ryujinx/Ryujinx/pull/7012 )

TODO:
- AMD GPUs may need layout transitions for it to properly allow textures to be used in feedback loops.
- Use dynamic state for feedback loops. The background pipeline will always miss since feedback loop state isn't known on the GPU project.
- How is the barrier dependency flag used? (DXVK just ignores it, there's no vulkan validation...)
- Improve subpass dependencies to fix validation errors

* Mark field readonly

* Add feedback loop dynamic state

* fix: add MoltenVK resolver workaround

fix: add MoltenVK resolver workaround

* Formatting

* Fix more complaints

* RADV dcc workaround

* Use dynamic state properly, cleanup.

* Use aspects flags in more places
2024-09-01 21:28:16 -03:00
..
ARMeilleure Fix deadlock in background translation thread shutdown (#7239) 2024-08-27 19:10:24 +02:00
Ryujinx Vulkan: Feedback loop detection and barriers (#7226) 2024-09-01 21:28:16 -03:00
Ryujinx.Audio Fix off-by-one on audio renderer PerformanceManager.GetNextEntry (#7139) 2024-07-31 22:22:11 -03:00
Ryujinx.Audio.Backends.OpenAL Migrate Audio service to new IPC (#6285) 2024-02-22 16:58:33 -03:00
Ryujinx.Audio.Backends.SDL2 replace ByteMemoryPool use with MemoryOwner<byte> and SpanOwner<byte> (#6911) 2024-06-15 23:00:13 +02:00
Ryujinx.Audio.Backends.SoundIo replace ByteMemoryPool use with MemoryOwner<byte> and SpanOwner<byte> (#6911) 2024-06-15 23:00:13 +02:00
Ryujinx.Common Vulkan: Feedback loop detection and barriers (#7226) 2024-09-01 21:28:16 -03:00
Ryujinx.Cpu Implement UQADD16, UQADD8, UQSUB16, UQSUB8, VQRDMULH, VSLI and VSWP Arm32 instructions (#7174) 2024-08-08 17:07:24 -03:00
Ryujinx.Graphics.Device Make HLE project AOT friendly (#7085) 2024-08-31 11:39:26 -03:00
Ryujinx.Graphics.GAL Clamp amount of mipmap levels to max allowed for all backends (#7197) 2024-08-12 17:45:25 -03:00
Ryujinx.Graphics.Gpu Fix incorrect depth texture 3D flag (#7262) 2024-09-01 17:58:01 -03:00
Ryujinx.Graphics.Host1x Add a separate device memory manager (#6153) 2024-01-22 17:14:46 -03:00
Ryujinx.Graphics.Nvdec Add a separate device memory manager (#6153) 2024-01-22 17:14:46 -03:00
Ryujinx.Graphics.Nvdec.FFmpeg editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
Ryujinx.Graphics.Nvdec.Vp9 editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
Ryujinx.Graphics.OpenGL Clamp amount of mipmap levels to max allowed for all backends (#7197) 2024-08-12 17:45:25 -03:00
Ryujinx.Graphics.Shader Fix shader RegisterUsage pass only taking first operation dest into account (#7131) 2024-07-30 21:57:55 -03:00
Ryujinx.Graphics.Texture replace ByteMemoryPool usage in Ryujinx.Graphics (#7129) 2024-08-03 19:50:53 +01:00
Ryujinx.Graphics.Vic Remove Vic Reference to Host1x (#6277) 2024-02-08 20:01:03 +01:00
Ryujinx.Graphics.Video editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
Ryujinx.Graphics.Vulkan Vulkan: Feedback loop detection and barriers (#7226) 2024-09-01 21:28:16 -03:00
Ryujinx.Gtk3 Vulkan: Feedback loop detection and barriers (#7226) 2024-09-01 21:28:16 -03:00
Ryujinx.Headless.SDL2 Vulkan: Feedback loop detection and barriers (#7226) 2024-09-01 21:28:16 -03:00
Ryujinx.HLE Make HLE project AOT friendly (#7085) 2024-08-31 11:39:26 -03:00
Ryujinx.HLE.Generators Make HLE project AOT friendly (#7085) 2024-08-31 11:39:26 -03:00
Ryujinx.Horizon Unlink server sessions from multi-wait when service stops processing requests (#7072) 2024-07-20 16:17:40 -03:00
Ryujinx.Horizon.Common Migrate Audio service to new IPC (#6285) 2024-02-22 16:58:33 -03:00
Ryujinx.Horizon.Generators Audio rendering: reduce memory allocations (#6604) 2024-04-07 18:07:32 -03:00
Ryujinx.Horizon.Kernel.Generators editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
Ryujinx.Input Fix another NullReferenceException (#6826) 2024-05-17 20:11:30 -03:00
Ryujinx.Input.SDL2 Input: Improve controller identification (#6029) 2024-01-22 17:02:44 -03:00
Ryujinx.Memory Replace and remove obsolete ByteMemoryPool type (#7155) 2024-08-05 21:09:08 -03:00
Ryujinx.SDL2.Common Load custom SDL mappings from application data folder (#6295) 2024-02-10 19:41:02 +01:00
Ryujinx.ShaderTools Allow texture arrays to use separate descriptor sets on Vulkan (#6870) 2024-05-26 13:30:19 -03:00
Ryujinx.Tests Implement UQADD16, UQADD8, UQSUB16, UQSUB8, VQRDMULH, VSLI and VSWP Arm32 instructions (#7174) 2024-08-08 17:07:24 -03:00
Ryujinx.Tests.Memory Delete old 16KB page workarounds (#6584) 2024-04-06 13:51:44 -03:00
Ryujinx.Tests.Unicorn editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00
Ryujinx.UI.Common Replace ImageSharp with SkiaSharp everywhere (#7030) 2024-08-31 11:32:53 -03:00
Ryujinx.UI.LocaleGenerator Infra: Capitalisation Consistency (#6296) 2024-02-11 03:09:18 +01:00
Spv.Generator editorconfig: Set default encoding to UTF-8 (#5793) 2023-12-04 14:17:13 +01:00