Ryujinx/Ryujinx.Graphics.Shader/Translation
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
..
Optimizations IPC refactor part 3+4: New server HIPC message processor (#4188) 2023-01-04 23:15:45 +01:00
AggregateType.cs Use vector outputs for texture operations (#3939) 2022-12-29 16:09:34 +01:00
AttributeConsts.cs Shader: Implement PrimitiveID (#4067) 2022-12-08 10:55:03 +01:00
AttributeInfo.cs Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
ControlFlowGraph.cs Rewrite shader decoding stage (#2698) 2021-10-12 22:35:31 +02:00
Dominance.cs Rewrite shader decoding stage (#2698) 2021-10-12 22:35:31 +02:00
EmitterContext.cs Use vector outputs for texture operations (#3939) 2022-12-29 16:09:34 +01:00
EmitterContextInsts.cs Implement remaining shader double-precision instructions (#2845) 2021-12-08 17:54:12 -03:00
FeatureFlags.cs Implement HLE macro for DrawElementsIndirect (#3748) 2022-11-16 14:53:04 -03:00
FunctionMatch.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
GlobalMemory.cs Shader: Add fallback for LDG from "ube" buffer ranges. (#4027) 2022-12-06 23:15:44 +00:00
RegisterUsage.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Rewriter.cs Use vector outputs for texture operations (#3939) 2022-12-29 16:09:34 +01:00
ShaderConfig.cs Shader: Add fallback for LDG from "ube" buffer ranges. (#4027) 2022-12-06 23:15:44 +00:00
ShaderHeader.cs IPC refactor part 3+4: New server HIPC message processor (#4188) 2023-01-04 23:15:45 +01:00
Ssa.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TargetApi.cs Allow shader language and target API to be specified on the shader translator (#2402) 2021-07-06 21:20:06 +02:00
TargetLanguage.cs shadertools: Prepare for new target Languages and APIs (#2465) 2021-07-18 12:49:39 +02:00
TranslationFlags.cs Stop using glTransformFeedbackVaryings and use explicit layout on the shader (#3012) 2022-01-21 12:35:21 -03:00
TranslationOptions.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Translator.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TranslatorContext.cs Move gl_Layer from vertex to geometry if GPU does not support it on vertex (#3866) 2022-11-18 23:27:54 -03:00