ryujinx/Ryujinx.Graphics.OpenGL
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
..
Helper Replace DllImport usage with LibraryImport (#4084) 2022-12-15 18:07:31 +01:00
Image Minor improvement to Vulkan pipeline state and bindings management (#3829) 2022-11-10 13:38:38 -03:00
Queries ui: Fixes disposing on GTK/Avalonia and Firmware Messages on Avalonia (#3885) 2022-11-24 15:08:27 +01:00
BackgroundContextWorker.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
Buffer.cs Vulkan backend (#2518) 2022-07-31 18:26:06 -03:00
Constants.cs
Debugger.cs
DrawTextureEmulation.cs
EnumConversion.cs GPU: Always draw polygon topology as triangle fan (#3932) 2022-11-28 19:18:22 -03:00
FormatInfo.cs Make structs readonly when applicable (#4002) 2022-12-05 14:47:39 +01:00
FormatTable.cs Vulkan: Add ETC2 texture formats (#3576) 2022-08-16 15:42:42 +02:00
Framebuffer.cs OpenGL: Fix clears of unbound color targets (#3564) 2022-08-08 17:39:22 +00:00
Handle.cs
HwCapabilities.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
IOpenGLContext.cs
OpenGLRenderer.cs Vulkan: Add workarounds for MoltenVK (#4202) 2023-01-13 01:31:21 +01:00
PersistentBuffers.cs
Pipeline.cs GAL: Send all buffer assignments at once rather than individually (#3881) 2022-11-24 07:50:59 +00:00
Program.cs
ResourcePool.cs
Ryujinx.Graphics.OpenGL.csproj Use NuGet Central Package Management to manage package versions solution-wise (#4095) 2022-12-12 16:03:10 +01:00
Sync.cs GPU: Track buffer migrations and flush source on incomplete copy (#3952) 2022-12-01 16:30:13 +01:00
VertexArray.cs Ensure that vertex attribute buffer index is valid on GPU (#3942) 2022-11-30 18:06:40 -03:00
Window.cs ui: Fixes disposing on GTK/Avalonia and Firmware Messages on Avalonia (#3885) 2022-11-24 15:08:27 +01:00