Isaac Marovitz
4e5cf38009
Image shader gen support
2024-09-28 19:03:01 -04:00
Isaac Marovitz
b44167d12a
Shader cache support
2024-09-28 19:03:01 -04:00
Isaac Marovitz
eb2dae561f
Make dotnet format happy
2024-09-28 19:03:01 -04:00
Isaac Marovitz
1287098b8b
GAL ResourceUsage Changes
...
TODO: Guest Barrier Defer
2024-09-28 19:03:01 -04:00
Isaac Marovitz
9f2c99fcfa
Better vertex buffer management
2024-09-28 19:03:01 -04:00
Isaac Marovitz
a6f5f2f82b
Fix LOD
2024-09-28 19:03:01 -04:00
Isaac Marovitz
655823ecc7
Better index buffer management
2024-09-28 19:03:01 -04:00
Isaac Marovitz
18a1741348
Formatting cleanup
2024-09-28 19:03:01 -04:00
Isaac Marovitz
b734c81683
Formatting
2024-09-28 19:03:01 -04:00
Isaac Marovitz
6e80cc6caa
Update binding model description comment
2024-09-28 19:03:01 -04:00
riperiperi
ea30e543e6
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-28 19:03:01 -04:00
Isaac Marovitz
e3468d35b6
Fix invariant position not doing its job
2024-09-28 19:03:01 -04:00
riperiperi
d22feff1d2
implement compressed/uncompressed copy, fix other copies, fix int/uint output shaders ( #33 )
2024-09-28 19:03:01 -04:00
Isaac Marovitz
9d866ff282
Fix blend state optimisation breaking attachments
...
Fixes SM3DW
2024-09-28 19:03:01 -04:00
riperiperi
fd0329f2eb
Fix warnings
2024-09-28 19:03:01 -04:00
riperiperi
468ab8242f
Maintain identity swizzle view of textures for rendering
2024-09-28 19:03:01 -04:00
riperiperi
7b9b23e500
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-28 19:03:01 -04:00
Isaac Marovitz
0c1acb5107
Cleanup + Format
2024-09-28 19:03:01 -04:00
Isaac Marovitz
8e8dcf0d7f
Fix trying to reserve size 0 in staging buffer
2024-09-28 19:03:01 -04:00
Isaac Marovitz
9f0a468f55
Fix zero buff not being reset
2024-09-28 19:03:01 -04:00
Isaac Marovitz
ab79959975
Dirty Arg Buffers on Program Change
2024-09-28 19:03:01 -04:00
Isaac Marovitz
de5bf3a141
Least allocations in the west
2024-09-28 19:03:01 -04:00
Isaac Marovitz
5e8606c89a
Don’t use Enum.HasFlag
2024-09-28 19:03:01 -04:00
Isaac Marovitz
daee63c451
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-28 19:03:01 -04:00
Isaac Marovitz
971c270bcf
Update comment for Metal
2024-09-28 19:03:01 -04:00
Isaac Marovitz
6aff6401fb
Don’t do inline vertex buffer updates
...
Somehow broke zero buff MTLVertexDescriptor, but fixes broken geoemtry so I’m pushing anyway
2024-09-28 19:03:01 -04:00
riperiperi
6f6ccb7898
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-28 19:03:01 -04:00
riperiperi
2511bf1e4c
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-28 19:03:01 -04:00
Isaac Marovitz
80f9a5d0da
Dont bind images in texture slots
2024-09-28 19:03:01 -04:00
Isaac Marovitz
ed4f7a5602
Stop depth/stencil blits from crashing everything
2024-09-28 19:03:01 -04:00
riperiperi
edceb1607f
Fix Geometry/TFB on compute, Buffer Textures, add Window Resizing ( #28 )
2024-09-28 19:03:01 -04:00
riperiperi
e02df72323
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-28 19:03:01 -04:00
Isaac Marovitz
9d26aa8d06
Fragment input interpolation qualifiers
...
Fixes Mario’s shadow in SMO
2024-09-28 19:03:01 -04:00
Isaac Marovitz
c8c4fd730d
CommandBufferBarrier
2024-09-28 19:03:01 -04:00
riperiperi
e27ade5aee
Add constrained border colours to samplers ( #26 )
2024-09-28 19:03:01 -04:00
Isaac Marovitz
b33c1ae22f
Don’t bind byte format converted index buffers at requested index
2024-09-28 19:03:01 -04:00
Isaac Marovitz
242fcc2481
Render target deduplication
...
not sure if this is working
2024-09-28 19:03:01 -04:00
Isaac Marovitz
ef4a2fb3b5
Fix CBP not doing its job
...
Thanks peri (again)
2024-09-28 19:03:01 -04:00
Isaac Marovitz
c4731c0555
Fix blend descriptors not dirting render pipeline
...
Thanks peri
2024-09-28 19:03:01 -04:00
Isaac Marovitz
0c562a2c50
Support non-index quad draws
...
Fixes Deltarune
2024-09-28 19:03:01 -04:00
Isaac Marovitz
ab1e02c56a
Be better about memory
2024-09-28 19:03:01 -04:00
Isaac Marovitz
a264d9273d
Fix stencil clears
2024-09-28 19:03:01 -04:00
Isaac Marovitz
05189c7749
Enable Alpha Test workaround on Metal
2024-09-28 19:03:01 -04:00
Isaac Marovitz
b7ddb693bc
Fix Cull FrontAndBack
2024-09-28 19:03:01 -04:00
Isaac Marovitz
a60643620d
Warning about host map buffer creation
2024-09-28 19:03:01 -04:00
Isaac Marovitz
113e721cce
Fix fragment point_coord in
2024-09-28 19:03:01 -04:00
Isaac Marovitz
c8308d27f1
Argument Buffers ( #24 )
...
* Stuff
* More arg buffer stuff
* Fixes
* Rebase
* Pass storage buffers to inline functions
* Fix binding
* Fix typo + Fix a couple shaders
* Enforce ids
* Dispose
* Mark used buffers as resident
* Update depth clear shader
* Fix non-contiguous struct defs
* Update ChangeBufferStride
* Fix StorageBuffer assignments
* Fix odyssey crash
* Retain buffer bindings
* Pad Std140
* Set texture data with safe buffers
* Clone buffers
* Always declare vert in
* Stop clears from breaking OpenGL games
* Fix depth clear
* Use invariant position
* Horribly inefficient texture & sampler arg buffers
* Fix missing struct access
* Minimise rebinds as much as possible
* Build arg buffers on staging buffer
2024-09-28 19:03:01 -04:00
Isaac Marovitz
a71b5f1a3a
VoteAllEqual, FindLSB/MSB
2024-09-28 19:03:01 -04:00
Isaac Marovitz
b094d34575
Fix vertex “built-ins”
...
Only declare main func out in main
Fix simd_ballot
Fix thread_index_in_simdgroup outside of compute
Fix atomic operations
instance_index
2024-09-28 19:03:01 -04:00
Isaac Marovitz
4578ee53d3
Actually clear the right render target
2024-09-28 19:03:01 -04:00