Keaton-Ryujinx/Ryujinx.Graphics.GAL
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
..
Multithreading Vulkan: Don't flush commands when creating most sync (#4087) 2022-12-29 15:39:04 +01:00
AddressMode.cs
BlendDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
BlendFactor.cs
BlendOp.cs
BufferAssignment.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
BufferHandle.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
BufferRange.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Capabilities.cs Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
ColorF.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
CompareMode.cs
CompareOp.cs
CounterType.cs
DepthMode.cs
DepthStencilMode.cs
DepthTestDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
DeviceInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Extents2D.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Extents2DF.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Face.cs
Format.cs GPU: Add fallback when 16-bit formats are not supported (#4108) 2022-12-26 15:50:27 -03:00
FrontFace.cs
HardwareInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ICounterEvent.cs
ImageCrop.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
IndexType.cs
IPipeline.cs
IProgram.cs
IRenderer.cs Vulkan: Don't flush commands when creating most sync (#4087) 2022-12-29 15:39:04 +01:00
ISampler.cs
ITexture.cs
IWindow.cs
LogicalOp.cs
MagFilter.cs
MinFilter.cs
MultisampleDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Origin.cs
PolygonMode.cs
PolygonModeMask.cs
PrimitiveTopology.cs
ProgramLinkStatus.cs
ProgramPipelineState.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Rectangle.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Ryujinx.Graphics.GAL.csproj
SamplerCreateInfo.cs Fix Redundant Qualifer Warnings (#4091) 2022-12-10 21:21:13 +01:00
ScreenCaptureImageInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ShaderBindings.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ShaderInfo.cs
ShaderSource.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
StencilOp.cs
StencilTestDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
SupportBufferUpdater.cs
SwizzleComponent.cs
Target.cs
TextureCreateInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TextureReleaseCallback.cs
VertexAttribDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
VertexBufferDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Viewport.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ViewportSwizzle.cs