Isaac Marovitz
698b64bd60
Image shader gen support
2024-09-15 08:42:19 -04:00
Isaac Marovitz
b31d46dd71
Shader cache support
2024-09-15 08:42:19 -04:00
Isaac Marovitz
3469ec036f
Make dotnet format happy
2024-09-15 08:42:19 -04:00
Isaac Marovitz
e76044cf75
GAL ResourceUsage Changes
...
TODO: Guest Barrier Defer
2024-09-15 08:42:19 -04:00
Isaac Marovitz
9bca68784c
Better vertex buffer management
2024-09-15 08:42:19 -04:00
Isaac Marovitz
1f07787ac2
Fix LOD
2024-09-15 08:42:19 -04:00
Isaac Marovitz
101c5b9fb5
Better index buffer management
2024-09-15 08:42:19 -04:00
Isaac Marovitz
f4ac7d4087
Formatting cleanup
2024-09-15 08:42:19 -04:00
Isaac Marovitz
57083dc8c1
Formatting
2024-09-15 08:42:19 -04:00
Isaac Marovitz
45100454a0
Update binding model description comment
2024-09-15 08:42:19 -04:00
riperiperi
8eacb14de5
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-15 08:42:19 -04:00
Isaac Marovitz
11f9b26254
Fix invariant position not doing its job
2024-09-15 08:42:19 -04:00
riperiperi
fc870fca28
implement compressed/uncompressed copy, fix other copies, fix int/uint output shaders ( #33 )
2024-09-15 08:42:19 -04:00
Isaac Marovitz
b24ecf03f2
Fix blend state optimisation breaking attachments
...
Fixes SM3DW
2024-09-15 08:42:19 -04:00
riperiperi
83f72741db
Fix warnings
2024-09-15 08:42:19 -04:00
riperiperi
4b47d7b5bc
Maintain identity swizzle view of textures for rendering
2024-09-15 08:42:19 -04:00
riperiperi
75b0ddf85b
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-15 08:42:19 -04:00
Isaac Marovitz
50284713eb
Cleanup + Format
2024-09-15 08:42:19 -04:00
Isaac Marovitz
4363fa0ced
Fix trying to reserve size 0 in staging buffer
2024-09-15 08:42:19 -04:00
Isaac Marovitz
dbda96f26c
Fix zero buff not being reset
2024-09-15 08:42:19 -04:00
Isaac Marovitz
e17e6ec994
Dirty Arg Buffers on Program Change
2024-09-15 08:42:19 -04:00
Isaac Marovitz
a47d9fd1d2
Least allocations in the west
2024-09-15 08:42:19 -04:00
Isaac Marovitz
3646e18076
Don’t use Enum.HasFlag
2024-09-15 08:42:19 -04:00
Isaac Marovitz
fd2e64c0c7
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-15 08:42:19 -04:00
Isaac Marovitz
25a4c375ad
Update comment for Metal
2024-09-15 08:42:19 -04:00
Isaac Marovitz
82eec9a147
Don’t do inline vertex buffer updates
...
Somehow broke zero buff MTLVertexDescriptor, but fixes broken geoemtry so I’m pushing anyway
2024-09-15 08:42:19 -04:00
riperiperi
411874ae4b
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-15 08:42:19 -04:00
riperiperi
fb5255fc17
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-15 08:42:19 -04:00
Isaac Marovitz
d4b1e95359
Dont bind images in texture slots
2024-09-15 08:42:19 -04:00
Isaac Marovitz
afc130fb88
Stop depth/stencil blits from crashing everything
2024-09-15 08:42:19 -04:00
riperiperi
40002a4a48
Fix Geometry/TFB on compute, Buffer Textures, add Window Resizing ( #28 )
2024-09-15 08:42:19 -04:00
riperiperi
3c25b87e1d
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-15 08:42:19 -04:00
Isaac Marovitz
bc3ec9ded8
Fragment input interpolation qualifiers
...
Fixes Mario’s shadow in SMO
2024-09-15 08:42:19 -04:00
Isaac Marovitz
534038d31f
CommandBufferBarrier
2024-09-15 08:42:19 -04:00
riperiperi
8dad2953a4
Add constrained border colours to samplers ( #26 )
2024-09-15 08:42:19 -04:00
Isaac Marovitz
43b27faf9d
Don’t bind byte format converted index buffers at requested index
2024-09-15 08:42:19 -04:00
Isaac Marovitz
963bbf7267
Render target deduplication
...
not sure if this is working
2024-09-15 08:42:19 -04:00
Isaac Marovitz
925897e163
Fix CBP not doing its job
...
Thanks peri (again)
2024-09-15 08:42:19 -04:00
Isaac Marovitz
70a05909ed
Fix blend descriptors not dirting render pipeline
...
Thanks peri
2024-09-15 08:42:19 -04:00
Isaac Marovitz
3b95361d75
Support non-index quad draws
...
Fixes Deltarune
2024-09-15 08:42:19 -04:00
Isaac Marovitz
5ea6442886
Be better about memory
2024-09-15 08:42:19 -04:00
Isaac Marovitz
4ec7062727
Fix stencil clears
2024-09-15 08:42:19 -04:00
Isaac Marovitz
e269be41aa
Enable Alpha Test workaround on Metal
2024-09-15 08:42:19 -04:00
Isaac Marovitz
2cb46a953b
Fix Cull FrontAndBack
2024-09-15 08:42:19 -04:00
Isaac Marovitz
f5db6ba50a
Warning about host map buffer creation
2024-09-15 08:42:19 -04:00
Isaac Marovitz
9b4a5ef939
Fix fragment point_coord in
2024-09-15 08:42:19 -04:00
Isaac Marovitz
5566979d5e
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-15 08:42:19 -04:00
Isaac Marovitz
3ad15aa114
VoteAllEqual, FindLSB/MSB
2024-09-15 08:42:19 -04:00
Isaac Marovitz
664d1efa18
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-15 08:42:19 -04:00
Isaac Marovitz
2dd5e272d7
Actually clear the right render target
2024-09-15 08:42:19 -04:00