riperiperi
bf94f4c7d6
Some optimizations to Spv.Generator
...
- Dictionary for lookups of type declarations, constants, extinst
- LiteralInteger internal data format -> ushort
- Deterministic HashCode implementation to avoid spirv result not being the same between runs
- Inline operand list instead of List<T>, falls back to array if many operands. (large performance boost)
TODO: improve instruction allocation, structured program creator, ssa?
2022-06-17 22:42:43 +01:00
riperiperi
12dec18f39
Reduce allocations for Spir-v serialization
...
Passes BinaryWriter instead of the stream to Write and WriteOperand
- Removes creation of BinaryWriter for each instruction
- Removes allocations for literal string
2022-06-17 22:42:43 +01:00
gdk
301ddec36f
SPIR-V: Use correct binding number on storage buffers array
2022-06-17 22:42:43 +01:00
gdk
e1d73cc560
SPIR-V: Geometry shader support
2022-06-17 22:42:42 +01:00
gdk
bd56998f4d
Re-enable BGRA (was not supposed to disable it)
2022-06-17 22:42:41 +01:00
gdk
3c949309e5
SPIR-V: Implement LoopContinue IR instruction
2022-06-17 22:42:41 +01:00
gdk
aa0913838d
SPIR-V: Set DepthReplacing execution mode when FragDepth is modified
2022-06-17 22:42:40 +01:00
gdk
97b179696b
SPIR-V: Fix ImageQuerySizeLod
2022-06-17 22:42:40 +01:00
gdk
a2e4b4b6d8
SPIR-V: Functions must always end with a return
2022-06-17 22:42:40 +01:00
gdk
be36f6fa5b
Correct GTK UI status bar positions
2022-06-17 22:42:40 +01:00
gdk
f1a1f477ef
Allow custom aspect ratio on Vulkan
2022-06-17 22:42:40 +01:00
gdk
7347642c05
More instructions + fixes on SPIR-V backend
2022-06-17 22:42:40 +01:00
gdk
9b779adf57
Better workaround for AMD vertex buffer size alignment issue
2022-06-17 22:42:39 +01:00
gdk
522e7933e8
Workaround for wrong last attribute on AMD (affects FFVII, STRIKERS1945, probably more)
2022-06-17 22:42:39 +01:00
gdk
36b3ab0741
Fix draw outside of render pass and missing capability
2022-06-17 22:42:39 +01:00
gdk
5a3695c968
Don't pause transform feedback for multi draw
2022-06-17 22:42:39 +01:00
gdk
52249e50dd
Fix transform feedback on Intel, gl_Position feedback and clears to inexistent depth buffers
2022-06-17 22:42:38 +01:00
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