Commit graph

2259 commits

Author SHA1 Message Date
riperiperi
0fe19f51c0 Insert barriers around vkCmdBlitImage (may fix some amd flicker) 2022-06-17 22:42:38 +01:00
riperiperi
3f38a8526c Port #3019 2022-06-17 22:42:38 +01:00
riperiperi
2f066d1d6d Force device local storage for textures (fixes linux performance) 2022-06-17 22:42:38 +01:00
riperiperi
1e167788d4 Fix counter queue leak when game decides to use host conditional rendering 2022-06-17 22:42:38 +01:00
riperiperi
d14dbb0cff Use SupportBufferUpdater, add single layer flush 2022-06-17 22:42:38 +01:00
riperiperi
db5ac3488a Use circular queue for checking consumption on command buffers
Speeds up games that spam command buffers a little. Avoids checking multiple command buffers if multiple are active at once.
2022-06-17 22:42:38 +01:00
gdk
64d11d3574 Remove Intel bug workaround, it was fixed on the latest driver 2022-06-17 22:42:37 +01:00
gdk
f6a4fe8f5f Fix some validation errors around extended dynamic state 2022-06-17 22:42:37 +01:00
riperiperi
4d94b03622 Add single queue support
Multiqueue seems to be a bit more responsive on NVIDIA. Should fix texture flush on intel. AMD has been forced to single queue for an experiment.
2022-06-17 22:42:37 +01:00
riperiperi
dc0d0f49b1 Cleanup, disable device local buffers for now. 2022-06-17 22:42:36 +01:00
riperiperi
4994e50d1c Device local mapping for all buffers
May avoid issues with drivers with NVIDIA on linux/older gpus on windows when using large buffers (?)
Also some performance things and fixes issues with opengl games loading textures weird.
2022-06-17 22:42:36 +01:00
riperiperi
74f8ef93c7 Be a bit more careful with texture access flags, since it can be used for anything 2022-06-17 22:42:36 +01:00
riperiperi
066094241a Add barriers around vkCmdCopyImage
Write->Read barrier for src image (we want to wait for a write to read it)
Write->Read barrier for dst image (we want to wait for the copy to complete before use)
2022-06-17 22:42:36 +01:00
gdk
d3e7606a74 Validation layers should be enabled for any log level other than None 2022-06-17 22:42:35 +01:00
gdk
0dc5a48e6f Fix R4G4B4A4Unorm texture format permutation 2022-06-17 22:42:35 +01:00
gdk
4c7e6df7d1 Add alpha test emulation on shader (but no shader specialisation yet...) 2022-06-17 22:42:35 +01:00
gdk
9a95c3c3bc Update Spv.Generator 2022-06-17 22:42:35 +01:00
gdk
adfba37a3f Fix samplers with MinFilter Linear or Nearest (fixes New Super Mario Bros U Deluxe black borders) 2022-06-17 22:42:34 +01:00
gdk
5738b66b75 Don't make Intel Mesa pay for Intel Windows bugs 2022-06-17 22:42:34 +01:00
gdk
cd01a2f74a Fix triangle overlay on SMO, Captain Toad, maybe others? 2022-06-17 22:42:34 +01:00
riperiperi
393d0a6134 Update findMSB/findLSB to match master's instruction enum 2022-06-17 22:42:34 +01:00
riperiperi
5590811ea3 Don't throw when ending conditional rendering for now
This should be re-enabled when conditional rendering is enabled on nvidia etc.
2022-06-17 22:42:34 +01:00
riperiperi
23b8bd8642 Update counter queue to be similar to the OGL one
Fixes softlocks when games had to flush counters.
2022-06-17 22:42:33 +01:00
riperiperi
d55f664908 Fix PrimitivesGenerated query, disable Transform Feedback queries for now
Lets Splatoon 2 work on nvidia. (mostly)
2022-06-17 22:42:33 +01:00
riperiperi
51bd7454bd Update Silk.NET to version 2.10.1
Somehow, massive performance boost. Seems like their vtable for looking up vulkan methods was really slow before.
2022-06-17 22:42:33 +01:00
riperiperi
d4e4ae60d5 Update to .net6 2022-06-17 22:42:33 +01:00
riperiperi
76a5beeb70 Use current command buffer for unscaled copy (perf)
Avoids flushing commands and renting a command buffer when fulfilling copy dependencies and when games do unscaled copies.
2022-06-17 22:42:33 +01:00
riperiperi
f6c2f7a8d6 Fix storage buffers being lost when bindings are out of order
(also avoid allocations when changing bindings)
2022-06-17 22:42:33 +01:00
gdk
db3a28f731 Fix uniform buffers being lost when bindings are out of order 2022-06-17 22:42:32 +01:00
gdk
a9afcdfa10 Support format aliasing on SetImage 2022-06-17 22:42:32 +01:00
gdk
616f14c46d Fix rebase build break 2022-06-17 22:42:32 +01:00
gdk
ae783c5b5e Fix BGRA on OpenGL backend 2022-06-17 22:42:32 +01:00
gdk
5fbfa9a9bd DrawTexture support 2022-06-17 22:42:32 +01:00
riperiperi
e9222a426a Submit command buffer before Texture GetData. (UE4 fix) 2022-06-17 22:42:32 +01:00
gdk
fa24c41d32 Fix some tessellation related issues (still doesn't work?) 2022-06-17 22:42:32 +01:00
gdkchan
b7bf95c754 Workaround for AMD driver bug 2022-06-17 22:42:31 +01:00
gdkchan
c109410ccd New depth-stencil blit method for AMD 2022-06-17 22:42:31 +01:00
gdkchan
ceeb70a996 TextureStorage should hold a ref of the foreign storage, otherwise it might be freed while in use 2022-06-17 22:42:31 +01:00
riperiperi
c31dda3c1b Support multiple levels/layers for blit.
Fixes MK8D when scaled, maybe a few other games. AMD software "safe" blit not supported right now.
2022-06-17 22:42:31 +01:00
riperiperi
e0edaa177e Allow multithreading shaderc and vkCreateShaderModule
You'll only really see the benefit here with threaded-gal or parallel shader cache compile.

Fix shaderc multithreaded changes

Thread safety for shaderc Options constructor

Dunno how they managed to make a constructor not thread safe, but you do you. May avoid some freezes.
2022-06-17 22:42:31 +01:00
gdkchan
c6fbaf844e No need to initialize attributes on the SPIR-V backend anymore 2022-06-17 22:42:31 +01:00
gdkchan
4513e8b226 WIP Vulkan implementation 2022-06-17 22:42:30 +01:00
riperiperi
68f9091870
Account for res scale changes when updating bindings (#3403)
Fixes a regression introduced by the texture bindings PR.

Also renames TextureStatePerStage, as it's no longer per stage.
2022-06-17 17:41:38 -03:00
riperiperi
99ffc061d3
Optimize Texture Binding and Shader Specialization Checks (#3399)
* Changes 1

* Changes 2

* Better ModifiedSequence handling

This should handle PreciseEvents properly, and simplifies a few things.

* Minor changes, remove debug log

* Handle stage.Info being null

Hopefully fixes Catherine crash

* Fix shader specialization fast texture lookup

* Fix some things.

* Address Feedback Part 1

* Make method static.
2022-06-17 13:09:14 -03:00
gdkchan
d987cacfb7
Fix VIC out of bounds copy (#3386)
* Fix VIC out of bounds copy

* Update the assert
2022-06-17 12:01:52 -03:00
gdkchan
851f56b08a
Support Array/3D depth-stencil render target, and single layer clears (#3400)
* Support Array/3D depth-stencil render target, and single layer clears

* Alignment
2022-06-14 13:30:39 -03:00
gdkchan
b1bd6a50b5
Less invasive fix for EventFd blocking operations (#3394) 2022-06-12 09:29:12 +02:00
gdkchan
70895bdb04
Allow concurrent BSD EventFd read/write (#3385) 2022-06-11 14:58:30 -03:00
gdkchan
830cbf91bb
Ignore ClipControl on draw texture fallback (#3388) 2022-06-11 14:31:17 -03:00
gdkchan
9a9349f0f4
Fix instanced indexed inline draw index count (#3389) 2022-06-10 23:44:49 -03:00