Isaac Marovitz
0945ea68fe
Make resource encoding less stupid
2024-12-23 21:44:34 -06:00
Isaac Marovitz
89c05ac239
Check for null resources before declaring them resident
2024-12-23 21:44:17 -06:00
Isaac Marovitz
fe4c77788f
Fix null sampler crash
2024-12-23 21:44:11 -06:00
Isaac Marovitz
8c2f3ae8d2
Auto-backed samplers
2024-12-23 21:44:02 -06:00
Isaac Marovitz
a710bcd874
Refactor binding logic + Bind image arrays
2024-12-23 21:43:49 -06:00
Isaac Marovitz
b1e5262893
Fix invalid depth stencil state when no depth stencil is present
...
Partially fixes Sonic Frontiers and Castlevania Dominus Collection
2024-12-23 21:43:32 -06:00
Isaac Marovitz
38b2cf9b83
Fix null resources breaking arg buffer alignment
2024-12-23 21:43:16 -06:00
Isaac Marovitz
967887d050
Upstream changes
2024-12-23 21:43:04 -06:00
Isaac Marovitz
3258a4bad1
Logic Operations
2024-12-23 21:43:00 -06:00
Isaac Marovitz
4a11cc9c7a
Rasterizer Discard + Multisample State
2024-12-23 21:42:47 -06:00
Isaac Marovitz
782299c123
Metal: Argument Buffer Pre-Pass ( #38 )
...
* Init
* Fix missing flags
* Cleanup
2024-12-23 21:42:44 -06:00
riperiperi
e8de1156eb
Patch some leaks and only perform copies on valid textures ( #37 )
2024-12-23 21:42:42 -06:00
Isaac Marovitz
7eaaeea999
Format
2024-12-23 21:42:38 -06:00
Isaac Marovitz
341e4e5fb1
Image Constant Fixes
...
Allows Mario Party Superstars to boot
2024-12-23 21:42:10 -06:00
Isaac Marovitz
80bb95dfb9
Shader Extra Set Support + Cleanup ( #36 )
...
Separate samplers are now supported and arrays in constant sets are bound
2024-12-23 21:41:39 -06:00
Isaac Marovitz
9d3fc82484
TextureArray & ImageArray Creation + State
2024-12-23 21:41:33 -06:00
Isaac Marovitz
421ba5448a
Properly register TextureBuffer usage + Store Auto ref
2024-12-23 21:41:12 -06:00
Isaac Marovitz
d650538138
Bind TextureBuffers
2024-12-23 21:40:53 -06:00
Isaac Marovitz
f5b82cd6dc
Fix image bindings
2024-12-23 21:40:36 -06:00
Isaac Marovitz
d42f0e5945
Image binding support
...
Kirby still has a problem with NaN 3D Texture
2024-12-23 21:40:22 -06:00
Isaac Marovitz
1f133040bd
Better vertex buffer management
2024-12-23 21:39:47 -06:00
Isaac Marovitz
fcd2adecc5
Better index buffer management
2024-12-23 21:39:43 -06:00
Isaac Marovitz
b468569665
Formatting cleanup
2024-12-23 21:39:36 -06:00
Isaac Marovitz
353a6ca4bb
Formatting
2024-12-23 21:39:31 -06:00
Isaac Marovitz
d2f965885a
Fix blend state optimisation breaking attachments
...
Fixes SM3DW
2024-12-23 21:39:07 -06:00
riperiperi
26da57cccd
Maintain identity swizzle view of textures for rendering
2024-12-23 21:39:03 -06:00
Isaac Marovitz
58527e02ee
Cleanup + Format
2024-12-23 21:38:54 -06:00
Isaac Marovitz
4d5b128a81
Fix trying to reserve size 0 in staging buffer
2024-12-23 21:38:46 -06:00
Isaac Marovitz
49a814a400
Fix zero buff not being reset
2024-12-23 21:38:42 -06:00
Isaac Marovitz
09546205b5
Dirty Arg Buffers on Program Change
2024-12-23 21:38:39 -06:00
Isaac Marovitz
d2a4a9e9a7
Least allocations in the west
2024-12-23 21:38:37 -06:00
Isaac Marovitz
d3f273cad1
Don’t use Enum.HasFlag
2024-12-23 21:38:35 -06:00
Isaac Marovitz
60722a1837
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-12-23 21:38:32 -06:00
Isaac Marovitz
144397c3da
Don’t do inline vertex buffer updates
...
Somehow broke zero buff MTLVertexDescriptor, but fixes broken geoemtry so I’m pushing anyway
2024-12-23 21:38:17 -06:00
riperiperi
879c93cf73
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-12-23 21:38:13 -06:00
riperiperi
4b53d18bef
Fix Geometry/TFB on compute, Buffer Textures, add Window Resizing ( #28 )
2024-12-23 21:38:00 -06:00
riperiperi
bbbc9e529d
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-12-23 21:37:58 -06:00
Isaac Marovitz
3b2beda27f
Don’t bind byte format converted index buffers at requested index
2024-12-23 21:37:48 -06:00
Isaac Marovitz
de8e03c350
Render target deduplication
...
not sure if this is working
2024-12-23 21:37:45 -06:00
Isaac Marovitz
16bc02ea2a
Fix blend descriptors not dirting render pipeline
...
Thanks peri
2024-12-23 21:37:41 -06:00
Isaac Marovitz
a9633981a8
Be better about memory
2024-12-23 21:37:36 -06:00
Isaac Marovitz
4f699ef96a
Fix Cull FrontAndBack
2024-12-23 21:37:07 -06:00
Isaac Marovitz
dae0f3cded
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-12-23 21:37:01 -06:00
Isaac Marovitz
9b138a413c
Actually clear the right render target
2024-12-23 21:36:54 -06:00
Isaac Marovitz
197184657f
Cleanup Pipeline
...
Housekeeping
More housekeeping
2024-12-23 21:36:44 -06:00
Isaac Marovitz
c911db8309
Fix FEZ not showing anything
...
Does not fix the underlying shortcomings of the cache system
2024-12-23 21:35:50 -06:00
Isaac Marovitz
b8779c6e09
Buffer Conversions ( #23 )
...
* Why is this not working
* Revert helper shader changes for now
* Byte Index Buffer Restride
2024-12-23 21:35:38 -06:00
Isaac Marovitz
dda746c0fb
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-12-23 21:35:33 -06:00
Isaac Marovitz
5423ad9ae1
Depth Bias
2024-12-23 21:35:13 -06:00
Isaac Marovitz
9ab2cd94c1
Fix Clear Viewport
2024-12-23 21:34:55 -06:00