Commit Graph

3770 Commits

Author SHA1 Message Date
Isaac Marovitz fa9d38c779
Formatting cleanup 2024-09-18 23:28:07 +02:00
Isaac Marovitz f8e232404e
Formatting 2024-09-18 23:28:07 +02:00
Isaac Marovitz 1a56e4477a
Update binding model description comment 2024-09-18 23:28:07 +02:00
riperiperi 8369f15bf5
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-18 23:28:07 +02:00
Isaac Marovitz 6f440f53f4
Fix invariant position not doing its job 2024-09-18 23:28:06 +02:00
riperiperi 16a9b18c26
implement compressed/uncompressed copy, fix other copies, fix int/uint output shaders (#33) 2024-09-18 23:28:06 +02:00
Isaac Marovitz 5a8e070c04
Fix blend state optimisation breaking attachments
Fixes SM3DW
2024-09-18 23:28:06 +02:00
riperiperi e1568613af
Fix warnings 2024-09-18 23:28:06 +02:00
riperiperi 01094222c7
Maintain identity swizzle view of textures for rendering 2024-09-18 23:28:06 +02:00
riperiperi 4b95934fef
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-18 23:28:05 +02:00
Isaac Marovitz c92a9e0ae5
Cleanup + Format 2024-09-18 23:28:05 +02:00
Isaac Marovitz d111b152d1
Fix trying to reserve size 0 in staging buffer 2024-09-18 23:28:05 +02:00
Isaac Marovitz bf1884c259
Fix zero buff not being reset 2024-09-18 23:28:05 +02:00
Isaac Marovitz 19b089a236
Dirty Arg Buffers on Program Change 2024-09-18 23:28:05 +02:00
Isaac Marovitz 9a0d50817c
Least allocations in the west 2024-09-18 23:28:04 +02:00
Isaac Marovitz 4909b73332
Don’t use Enum.HasFlag 2024-09-18 23:28:04 +02:00
Isaac Marovitz 18a3ee16bb
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-18 23:28:04 +02:00
Isaac Marovitz 2507d351af
Update comment for Metal 2024-09-18 23:28:04 +02:00
Isaac Marovitz f59fae3612
Don’t do inline vertex buffer updates
Somehow broke zero buff MTLVertexDescriptor, but fixes broken geoemtry so I’m pushing anyway
2024-09-18 23:28:03 +02:00
riperiperi 117c5c1645
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-18 23:28:03 +02:00
riperiperi e3dd174f28
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-18 23:28:03 +02:00
Isaac Marovitz 459d1d6e54
Dont bind images in texture slots 2024-09-18 23:28:03 +02:00
Isaac Marovitz f3feabad2e
Stop depth/stencil blits from crashing everything 2024-09-18 23:28:03 +02:00
riperiperi a33187f7db
Fix Geometry/TFB on compute, Buffer Textures, add Window Resizing (#28) 2024-09-18 23:28:02 +02:00
riperiperi ac5932cd02
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-18 23:27:50 +02:00
Isaac Marovitz 88ce186191
Fragment input interpolation qualifiers
Fixes Mario’s shadow in SMO
2024-09-18 23:27:49 +02:00
Isaac Marovitz b950e12ab8
CommandBufferBarrier 2024-09-18 23:27:49 +02:00
riperiperi 5f1d3fd744
Add constrained border colours to samplers (#26) 2024-09-18 23:27:49 +02:00
Isaac Marovitz cb65fdf95a
Don’t bind byte format converted index buffers at requested index 2024-09-18 23:27:49 +02:00
Isaac Marovitz f61f587d37
Render target deduplication
not sure if this is working
2024-09-18 23:27:48 +02:00
Isaac Marovitz 55a5b1e75e
Fix CBP not doing its job
Thanks peri (again)
2024-09-18 23:27:48 +02:00
Isaac Marovitz 17a27cf59b
Fix blend descriptors not dirting render pipeline
Thanks peri
2024-09-18 23:27:48 +02:00
Isaac Marovitz e2c0b1b1ec
Support non-index quad draws
Fixes Deltarune
2024-09-18 23:27:48 +02:00
Isaac Marovitz ba21266a3e
Be better about memory 2024-09-18 23:27:47 +02:00
Isaac Marovitz ea95713056
Fix stencil clears 2024-09-18 23:27:47 +02:00
Isaac Marovitz 97c22e2f1a
Enable Alpha Test workaround on Metal 2024-09-18 23:27:47 +02:00
Isaac Marovitz 8a006514d3
Fix Cull FrontAndBack 2024-09-18 23:27:46 +02:00
Isaac Marovitz f16693e4e1
Warning about host map buffer creation 2024-09-18 23:27:46 +02:00
Isaac Marovitz 4dad6d12b9
Fix fragment point_coord in 2024-09-18 23:27:46 +02:00
Isaac Marovitz e6f4745bb5
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-18 23:27:45 +02:00
Isaac Marovitz 23b9a780ee
VoteAllEqual, FindLSB/MSB 2024-09-18 23:27:45 +02:00
Isaac Marovitz 3fe47449b4
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-18 23:27:45 +02:00
Isaac Marovitz b54bfb1a7c
Actually clear the right render target 2024-09-18 23:27:45 +02:00
Isaac Marovitz 3fd758532b
Big GetData()
Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2024-09-18 23:27:44 +02:00
Isaac Marovitz 461933b8cd
Fix Animal Crossing Crash 2024-09-18 23:27:44 +02:00
Isaac Marovitz e4fa286698
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-18 23:27:44 +02:00
Isaac Marovitz a83eb53abf
PreloadCbs + FlushCommandsIfWeightExceeding 2024-09-18 23:27:44 +02:00
Isaac Marovitz 6550f1cd66
Cleanup Pipeline
Housekeeping

More housekeeping
2024-09-18 23:27:43 +02:00
Isaac Marovitz 36f7d4eafa
PersistentFlushBuffer + BackgroundResources 2024-09-18 23:27:43 +02:00
Isaac Marovitz c59142a500
Match S8UintD24Unorm to Depth24UnormStencil8
Kind of works for es2gears
2024-09-18 23:27:43 +02:00