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
Isaac Marovitz
72cbb41609
Big GetData()
...
Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2024-09-28 19:03:01 -04:00
Isaac Marovitz
e7fab91c69
Fix Animal Crossing Crash
2024-09-28 19:03:01 -04:00
Isaac Marovitz
97a36298fa
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-28 19:03:01 -04:00
Isaac Marovitz
03161d8048
PreloadCbs + FlushCommandsIfWeightExceeding
2024-09-28 19:03:01 -04:00
Isaac Marovitz
b1928461bb
Cleanup Pipeline
...
Housekeeping
More housekeeping
2024-09-28 19:03:01 -04:00
Isaac Marovitz
30b50a99e4
PersistentFlushBuffer + BackgroundResources
2024-09-28 19:03:01 -04:00