Ryujinx/Ryujinx.Graphics.Gpu/Shader
riperiperi 8fa248ceb4
Vulkan: Add workarounds for MoltenVK (#4202)
* Add MVK basics.

* Use appropriate output attribute types

* 4kb vertex alignment, bunch of fixes

* Add reduced shader precision mode for mvk.

* Disable ASTC on MVK for now

* Only request robustnes2 when it is available.

* It's just the one feature actually

* Add triangle fan conversion

* Allow NullDescriptor on MVK for some reason.

* Force safe blit on MoltenVK

* Use ASTC only when formats are all available.

* Disable multilevel 3d texture views

* Filter duplicate render targets (on backend)

* Add Automatic MoltenVK Configuration

* Do not create color attachment views with formats that are not RT compatible

* Make sure that the host format matches the vertex shader input types for invalid/unknown guest formats

* FIx rebase for Vertex Attrib State

* Fix 4b alignment for vertex

* Use asynchronous queue submits for MVK

* Ensure color clear shader has correct output type

* Update MoltenVK config

* Always use MoltenVK workarounds on MacOS

* Make MVK supersede all vendors

* Fix rebase

* Various fixes on rebase

* Get portability flags from extension

* Fix some minor rebasing issues

* Style change

* Use LibraryImport for MVKConfiguration

* Rename MoltenVK vendor to Apple

Intel and AMD GPUs on moltenvk report with the those vendors - only apple silicon reports with vendor 0x106B.

* Fix features2 rebase conflict

* Rename fragment output type

* Add missing check for fragment output types

Might have caused the crash in MK8

* Only do fragment output specialization on MoltenVK

* Avoid copy when passing capabilities

* Self feedback

* Address feedback

Co-authored-by: gdk <gab.dark.100@gmail.com>
Co-authored-by: nastys <nastys@users.noreply.github.com>
2023-01-13 01:31:21 +01:00
..
DiskCache Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
HashTable Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
CachedShaderBindings.cs GPU: Swap bindings array instead of copying (#4003) 2022-12-04 18:18:40 +01:00
CachedShaderProgram.cs GPU: Swap bindings array instead of copying (#4003) 2022-12-04 18:18:40 +01:00
CachedShaderStage.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
ComputeShaderCacheHashTable.cs GPU: Eliminate CB0 accesses when storage buffer accesses are resolved (#3847) 2022-11-17 18:47:41 +01:00
GpuAccessor.cs Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
GpuAccessorBase.cs Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
GpuAccessorState.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
GpuChannelComputeState.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
GpuChannelGraphicsState.cs Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
GpuChannelPoolState.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ResourceCounts.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
ShaderAddresses.cs New shader cache implementation (#3194) 2022-04-10 10:49:44 -03:00
ShaderCache.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ShaderCacheHashTable.cs GPU: Use lazy checks for specialization state (#4004) 2022-12-04 18:41:17 +01:00
ShaderCacheState.cs Fix inconsistencies in progress reporting (#2129) 2021-03-22 19:40:07 +01:00
ShaderCodeAccessor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ShaderDumper.cs Removed unused usings. (#3593) 2022-08-18 18:04:54 +02:00
ShaderDumpPaths.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ShaderSpecializationList.cs GPU: Use lazy checks for specialization state (#4004) 2022-12-04 18:41:17 +01:00
ShaderSpecializationState.cs Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
TransformFeedbackDescriptor.cs Rename ToSpan to AsSpan (#3556) 2022-08-11 18:07:37 -03:00