JinxRyu/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 Some code cleanup 2020-01-09 02:13:00 +01:00
BlendDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
BlendFactor.cs Some code cleanup 2020-01-09 02:13:00 +01:00
BlendOp.cs Fix incorrect GPU GL blend func values (#1612) 2020-10-13 14:45:41 +11:00
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 Some code cleanup 2020-01-09 02:13:00 +01:00
CompareOp.cs Initial support for the guest OpenGL driver (NVIDIA and Nouveau) 2020-01-09 02:13:00 +01:00
CounterType.cs Initial work 2020-01-09 02:13:00 +01:00
DepthMode.cs Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?) 2020-01-09 02:13:00 +01:00
DepthStencilMode.cs Some code cleanup 2020-01-09 02:13:00 +01:00
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 Initial work 2020-01-09 02:13:00 +01:00
Format.cs GPU: Add fallback when 16-bit formats are not supported (#4108) 2022-12-26 15:50:27 -03:00
FrontFace.cs Initial work 2020-01-09 02:13:00 +01:00
HardwareInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
ICounterEvent.cs Add a Multithreading layer for the GAL, multi-thread shader compilation at runtime (#2501) 2021-08-27 00:31:29 +02:00
ImageCrop.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
IndexType.cs Initial work 2020-01-09 02:13:00 +01:00
IPipeline.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
IProgram.cs Implement parallel host shader cache compilation. 2021-04-18 17:33:58 +01:00
IRenderer.cs Vulkan: Don't flush commands when creating most sync (#4087) 2022-12-29 15:39:04 +01:00
ISampler.cs Initial work 2020-01-09 02:13:00 +01:00
ITexture.cs GPU: Pass SpanOrArray for Texture SetData to avoid copy (#3745) 2022-10-08 12:04:47 -03:00
IWindow.cs Avalonia - Use embedded window for avalonia (#3674) 2022-09-19 15:05:26 -03:00
LogicalOp.cs Implement Logical Operation registers and functionality (#1380) 2020-07-10 14:23:15 -03:00
MagFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
MinFilter.cs Some code cleanup 2020-01-09 02:13:00 +01:00
MultisampleDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
Origin.cs Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00
PolygonMode.cs Initial tessellation shader support (#2534) 2021-10-18 18:38:04 -03:00
PolygonModeMask.cs Initial work 2020-01-09 02:13:00 +01:00
PrimitiveTopology.cs Initial work 2020-01-09 02:13:00 +01:00
ProgramLinkStatus.cs Implement parallel host shader cache compilation. 2021-04-18 17:33:58 +01:00
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 infra: Migrate to .NET 7 (#3795) 2022-11-09 20:22:43 +01:00
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 Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
ShaderSource.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
StencilOp.cs Add alternative "GL" enum values for StencilOp (#3321) 2022-05-05 21:16:58 +02:00
StencilTestDescriptor.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
SupportBufferUpdater.cs Rename ToSpan to AsSpan (#3556) 2022-08-11 18:07:37 -03:00
SwizzleComponent.cs Some code cleanup 2020-01-09 02:13:00 +01:00
Target.cs Copy dependency for multisample and non-multisample textures (#3382) 2022-06-05 14:06:47 -03:00
TextureCreateInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
TextureReleaseCallback.cs Initial work 2020-01-09 02:13:00 +01:00
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 Fix wrong face culling once and for all (#1277) 2020-05-28 09:03:07 +10:00