Commit Graph

3719 Commits

Author SHA1 Message Date
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