Commit Graph

3731 Commits

Author SHA1 Message Date
Isaac Marovitz 1bb3f28504
SwizzleAdd (NOT TESTED) 2024-09-18 23:28:11 +02:00
Isaac Marovitz b4cf2d1cc9
Consolodate barriers 2024-09-18 23:28:10 +02:00
Isaac Marovitz 61c7d3bb9c
Shader Memory Barriers
Fixes some of the shader generation failures in Sonic Frontiers
2024-09-18 23:28:10 +02:00
Isaac Marovitz fdf5d49985
Image binding support
Kirby still has a problem with NaN 3D Texture
2024-09-18 23:28:10 +02:00
Isaac Marovitz 1500af5808
Image shader gen support 2024-09-18 23:28:10 +02:00
Isaac Marovitz 32a3d1df4d
Shader cache support 2024-09-18 23:28:09 +02:00
Isaac Marovitz a32b619f5c
Make dotnet format happy 2024-09-18 23:28:09 +02:00
Isaac Marovitz a8794b2d58
GAL ResourceUsage Changes
TODO: Guest Barrier Defer
2024-09-18 23:28:09 +02:00
Isaac Marovitz 02b9b92723
Better vertex buffer management 2024-09-18 23:28:08 +02:00
Isaac Marovitz 1b2097c6eb
Fix LOD 2024-09-18 23:28:08 +02:00
Isaac Marovitz 10c042b6ab
Better index buffer management 2024-09-18 23:28:08 +02:00
Isaac Marovitz fa9d38c779
Formatting cleanup 2024-09-18 23:28:07 +02:00
Isaac Marovitz f8e232404e
Formatting 2024-09-18 23:28:07 +02:00
Isaac Marovitz 1a56e4477a
Update binding model description comment 2024-09-18 23:28:07 +02:00
riperiperi 8369f15bf5
Fix preload cbs optimization (for real) (#34)
* Mostly fix preload cbs. There seems to be some random flickering...

* fix index buffer usage range

* fix missing preflush submit before present
2024-09-18 23:28:07 +02:00
Isaac Marovitz 6f440f53f4
Fix invariant position not doing its job 2024-09-18 23:28:06 +02:00
riperiperi 16a9b18c26
implement compressed/uncompressed copy, fix other copies, fix int/uint output shaders (#33) 2024-09-18 23:28:06 +02:00
Isaac Marovitz 5a8e070c04
Fix blend state optimisation breaking attachments
Fixes SM3DW
2024-09-18 23:28:06 +02:00
riperiperi e1568613af
Fix warnings 2024-09-18 23:28:06 +02:00
riperiperi 01094222c7
Maintain identity swizzle view of textures for rendering 2024-09-18 23:28:06 +02:00
riperiperi 4b95934fef
Fix a bunch of issues with texture copy and flush (#32)
* Fix a bunch of issues with texture copy and flush

* TextureCopy helper class, fix clear bug
2024-09-18 23:28:05 +02:00
Isaac Marovitz c92a9e0ae5
Cleanup + Format 2024-09-18 23:28:05 +02:00
Isaac Marovitz d111b152d1
Fix trying to reserve size 0 in staging buffer 2024-09-18 23:28:05 +02:00
Isaac Marovitz bf1884c259
Fix zero buff not being reset 2024-09-18 23:28:05 +02:00
Isaac Marovitz 19b089a236
Dirty Arg Buffers on Program Change 2024-09-18 23:28:05 +02:00
Isaac Marovitz 9a0d50817c
Least allocations in the west 2024-09-18 23:28:04 +02:00
Isaac Marovitz 4909b73332
Don’t use Enum.HasFlag 2024-09-18 23:28:04 +02:00
Isaac Marovitz 18a3ee16bb
Metal: Better Bindings (#29)
* Tell GAL to use Vk model (and break everything)

* ResourceBindingSegments

* Set information on backend caps

* Get ready to break everything

* Refactor EncoderStateManager

* Remove padding from helper shaders

* Fix ref array sizes

* Seperate vert & frag buffers

* Shader-side changes

* Fixes

* Fix some helper shader resource layouts

* Sort by binding id

* Fix helper shader layouts

* Don’t do inline vertex buffer updates

* Check for null storage
2024-09-18 23:28:04 +02:00
Isaac Marovitz 2507d351af
Update comment for Metal 2024-09-18 23:28:04 +02:00
Isaac Marovitz f59fae3612
Don’t do inline vertex buffer updates
Somehow broke zero buff MTLVertexDescriptor, but fixes broken geoemtry so I’m pushing anyway
2024-09-18 23:28:03 +02:00
riperiperi 117c5c1645
Create command buffers when rented rather than in advance (#31)
* Make it less likely to freeze, but the creation of the command buffer should probably be moved

* Create command buffers as they're rented rather than in advance
2024-09-18 23:28:03 +02:00
riperiperi e3dd174f28
Preload command speedup, Texture/buffer data flush, blit shader fix (#30)
* Move encoder state to be tied to command buffer, so preload and background cbs have their own encoder state

* Texture buffer/data flush, blit shader fix
2024-09-18 23:28:03 +02:00
Isaac Marovitz 459d1d6e54
Dont bind images in texture slots 2024-09-18 23:28:03 +02:00
Isaac Marovitz f3feabad2e
Stop depth/stencil blits from crashing everything 2024-09-18 23:28:03 +02:00
riperiperi a33187f7db
Fix Geometry/TFB on compute, Buffer Textures, add Window Resizing (#28) 2024-09-18 23:28:02 +02:00
riperiperi ac5932cd02
State and cache optimization (#27)
* WIP pipeline/depth state cache rework

* Fix some issues

* Fix some more default values

* Reduce allocations for state changes

* fix helpershader stuff

* explanation comment

* fix depth bias
2024-09-18 23:27:50 +02:00
Isaac Marovitz 88ce186191
Fragment input interpolation qualifiers
Fixes Mario’s shadow in SMO
2024-09-18 23:27:49 +02:00
Isaac Marovitz b950e12ab8
CommandBufferBarrier 2024-09-18 23:27:49 +02:00
riperiperi 5f1d3fd744
Add constrained border colours to samplers (#26) 2024-09-18 23:27:49 +02:00
Isaac Marovitz cb65fdf95a
Don’t bind byte format converted index buffers at requested index 2024-09-18 23:27:49 +02:00
Isaac Marovitz f61f587d37
Render target deduplication
not sure if this is working
2024-09-18 23:27:48 +02:00
Isaac Marovitz 55a5b1e75e
Fix CBP not doing its job
Thanks peri (again)
2024-09-18 23:27:48 +02:00
Isaac Marovitz 17a27cf59b
Fix blend descriptors not dirting render pipeline
Thanks peri
2024-09-18 23:27:48 +02:00
Isaac Marovitz e2c0b1b1ec
Support non-index quad draws
Fixes Deltarune
2024-09-18 23:27:48 +02:00
Isaac Marovitz ba21266a3e
Be better about memory 2024-09-18 23:27:47 +02:00
Isaac Marovitz ea95713056
Fix stencil clears 2024-09-18 23:27:47 +02:00
Isaac Marovitz 97c22e2f1a
Enable Alpha Test workaround on Metal 2024-09-18 23:27:47 +02:00
Isaac Marovitz 8a006514d3
Fix Cull FrontAndBack 2024-09-18 23:27:46 +02:00
Isaac Marovitz f16693e4e1
Warning about host map buffer creation 2024-09-18 23:27:46 +02:00
Isaac Marovitz 4dad6d12b9
Fix fragment point_coord in 2024-09-18 23:27:46 +02:00