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
Isaac Marovitz
b2fdb4cfdd
Big GetData()
...
Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2024-09-15 08:42:19 -04:00
Isaac Marovitz
c92b74e376
Fix Animal Crossing Crash
2024-09-15 08:42:19 -04:00
Isaac Marovitz
386f9b00a9
Instruction.Barrier
...
Whoops
Fix inline functions in compute stage
Fix regression
Declare SharedMemories + Only Declare Memories on Main Func
Lowecase struct
Avoid magic strings
Make function signatures readable
Change how unsized arrays are indexed
Use string builder
Fix shuffle instructions
Cleanup NumberFormater
Bunch of Subgroup I/O Vars
Will probably need further refinement
Fix point_coord type
Fix support buffer declaration
Fix point_coord
2024-09-15 08:42:19 -04:00
Isaac Marovitz
533c4c021d
PreloadCbs + FlushCommandsIfWeightExceeding
2024-09-15 08:42:19 -04:00
Isaac Marovitz
a4a8e317ec
Cleanup Pipeline
...
Housekeeping
More housekeeping
2024-09-15 08:42:19 -04:00
Isaac Marovitz
ad790e6bde
PersistentFlushBuffer + BackgroundResources
2024-09-15 08:42:19 -04:00
Isaac Marovitz
7c4ed084a3
Match S8UintD24Unorm to Depth24UnormStencil8
...
Kind of works for es2gears
2024-09-15 08:42:19 -04:00
Isaac Marovitz
144a19d686
Fix FEZ not showing anything
...
Does not fix the underlying shortcomings of the cache system
2024-09-15 08:42:19 -04:00
Isaac Marovitz
c4ecbe02b9
Clear cached converted buffers on signaled write
2024-09-15 08:42:19 -04:00
Isaac Marovitz
dd619f9f0b
FIx regression
2024-09-15 08:42:19 -04:00
Isaac Marovitz
477af39703
Helper shader cleanup
2024-09-15 08:42:19 -04:00
Isaac Marovitz
a74532b7c4
Use buffer manager for color blit
2024-09-15 08:42:19 -04:00
Isaac Marovitz
703c8c3139
Buffer Conversions ( #23 )
...
* Why is this not working
* Revert helper shader changes for now
* Byte Index Buffer Restride
2024-09-15 08:42:19 -04:00
riperiperi
0853353ad8
don't recreate render pipeline unless we're about to draw, pass view depth properly ( #22 )
2024-09-15 08:42:19 -04:00
Isaac Marovitz
dd203b84eb
Metal: Buffers Take 2 ( #21 )
...
* Basic BufferManager
* Start Scoped Command Buffers
* Fences stuff
* Remember to cleanup sync manager
* Auto, Command Buffer Dependants
* Cleanup
* Cleanup + Fix Texture->Buffer Copies
* Slow buffer upload
* Cleanup + Rework TextureBuffer
* Don’t get unsafe
* Cleanup
* Goddamn it
* Staging Buffer + Interrupt Action + Flush
2024-09-15 08:42:19 -04:00