Commit Graph

3675 Commits

Author SHA1 Message Date
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
Isaac Marovitz be78e7a1a5
Fix FEZ not showing anything
Does not fix the underlying shortcomings of the cache system
2024-09-18 23:27:43 +02:00
Isaac Marovitz 0561d708f8
Clear cached converted buffers on signaled write 2024-09-18 23:27:42 +02:00
Isaac Marovitz a197340e22
FIx regression 2024-09-18 23:27:42 +02:00
Isaac Marovitz de4d4016b3
Helper shader cleanup 2024-09-18 23:27:42 +02:00
Isaac Marovitz 705ec71f65
Use buffer manager for color blit 2024-09-18 23:27:42 +02:00
Isaac Marovitz 04982f792e
Buffer Conversions (#23)
* Why is this not working

* Revert helper shader changes for now

* Byte Index Buffer Restride
2024-09-18 23:27:41 +02:00
riperiperi 45239b3810
don't recreate render pipeline unless we're about to draw, pass view depth properly (#22) 2024-09-18 23:27:41 +02:00
Isaac Marovitz e016da58e1
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-18 23:27:41 +02:00
Isaac Marovitz 7158c8ddc2
Log failed format conversions 2024-09-18 23:27:40 +02:00
Isaac Marovitz dee19f8227
Print shader code involved in failed linking 2024-09-18 23:27:40 +02:00
Isaac Marovitz 774359f6b7
Don’t use DidModifyRange 2024-09-18 23:27:40 +02:00
Isaac Marovitz 04703f0191
Fix sample compare 2024-09-18 23:27:40 +02:00
Isaac Marovitz b0f167a13b
Depth Bias 2024-09-18 23:27:40 +02:00
Isaac Marovitz e6eb997892
Map R5G5B5A1Unorm 2024-09-18 23:27:39 +02:00
Samuliak 87b46ad5c1
override Equals for render pipeline hash 2024-09-18 23:27:39 +02:00
Isaac Marovitz 1d96ca6c80
Disable scaled vertex formats 2024-09-18 23:27:39 +02:00
Isaac Marovitz a2328bd8fb
Disable Vector Indexing Bug Workaround 2024-09-18 23:27:39 +02:00
Isaac Marovitz 4a4ac78373
Fix modulo operator
Support sample offsets

Include FragmentIn as additional arg

Always declare frag output struct

SubgroupLaneId
2024-09-18 23:27:38 +02:00
Isaac Marovitz 8e2e6c48de
Workaround for Wonder 2024-09-18 23:27:38 +02:00
Isaac Marovitz 0c351a6caa
Fix 3D -> 3D Texture Copies 2024-09-18 23:27:38 +02:00
Isaac Marovitz fe7b8c4514
Fix Clear Viewport 2024-09-18 23:27:38 +02:00
Isaac Marovitz 66f68e08a3
Fix sample-less reads with lod 2024-09-18 23:27:37 +02:00
Isaac Marovitz fdfd457d6e
Fix Pack and UnpackHalf2x16 2024-09-18 23:27:37 +02:00
Isaac Marovitz 5322de91b5
Handle Array Format SetData 2024-09-18 23:27:37 +02:00
Isaac Marovitz d694878d2c
Cleanup 2024-09-18 23:27:37 +02:00
Isaac Marovitz 5b47001b38
Implement IoVariable.FrontFacing 2024-09-18 23:27:36 +02:00
Isaac Marovitz 159db87d86
Fix LOD sample typo 2024-09-18 23:27:36 +02:00
Isaac Marovitz 8a6fde9fea
Rebase Changes 2024-09-18 23:27:36 +02:00
Isaac Marovitz 2996f96a42
More cleanup 2024-09-18 23:27:36 +02:00
Isaac Marovitz 638b9e5f69
Cleanup + Format 2024-09-18 23:27:35 +02:00
Isaac Marovitz 3ff27f541e
Metal: Compute Shaders (#19)
* check for too bix texture bindings

* implement lod query

* print shader stage name

* always have fragment input

* resolve merge conflicts

* fix: lod query

* fix: casting texture coords

* support non-array memories

* use structure types for buffers

* implement compute pipeline cache

* compute dispatch

* improve error message

* rebind compute state

* bind compute textures

* pass local size as an argument to dispatch

* implement texture buffers

* hack: change vertex index to vertex id

* pass support buffer as an argument to every function

* return at the end of function

* fix: certain missing compute bindings

* implement texture base

* improve texture binding system

* remove useless exception

* move texture handle to texture base

* fix: segfault when using disposed textures

---------

Co-authored-by: Samuliak <samuliak77@gmail.com>
Co-authored-by: SamoZ256 <96914946+SamoZ256@users.noreply.github.com>
2024-09-18 23:27:35 +02:00
Isaac Marovitz cc747047cd
Handle stride 0 on regular buffers 2024-09-18 23:26:44 +02:00
Isaac Marovitz de2a8cece4
Buffer Descriptor Step Functions 2024-09-18 23:26:43 +02:00
Isaac Marovitz 4e130e7e38
Sample LOD Level 2024-09-18 23:26:43 +02:00
Isaac Marovitz 63ab5b0639
Fix FragmentOutputColor Type 2024-09-18 23:26:43 +02:00
Isaac Marovitz 2941f02c87
Stencil Ref Value 2024-09-18 23:26:42 +02:00
Isaac Marovitz 01122ca032
Stencil Fixes 2024-09-18 23:26:42 +02:00
Isaac Marovitz d8f9aaeaac
RenderTargetColorMasks 2024-09-18 23:26:42 +02:00
Isaac Marovitz 9238b6723c
Make dotnet format happy 2024-09-18 23:26:41 +02:00
SamoZ256 2225aa17e3
Zero vertex buffer (#17)
* cast src size to float

* implement zero buffers
2024-09-18 23:26:41 +02:00
Isaac Marovitz 4f649f5650
Implement Texture CopyTo 2024-09-18 23:26:40 +02:00
Isaac Marovitz eac8ac23ad
Cleanup present 2024-09-18 23:26:40 +02:00
Isaac Marovitz b7915ac3cf
Metal: Advanced Present (#6)
* Initial DrawTexture support & Advanced Present

* TODO: Get Scissors Working

* Chnage scissor state management

* Rebase problems…

* Rebase fixes again

* Update DrawTexture + Fix Topology

* Fix flipping

* Add clear action support

* Cleanup
2024-09-18 23:26:40 +02:00
SamoZ256 8cbdbad67f
Clone the state & flip viewport vertically (#16)
* implement texture get data

* reset all state before blit & clone state

* format

* support blit regions

* implement source region for blit

* replace bottom with top

* account for 0 size

* support image flipping

* revert presentation fixes & y flip

* revert

* flip viewport vertically

* switch face winding

* comment

* use SetBytes for texture clear

* implement missing compute builtins

* change storage and texture buffer alignment

* correct compute builtins

* don't use nullable for textures and samplers

* remove incorrect texture get data implementation

* Cleanup IntPtrs

---------

Co-authored-by: Isaac Marovitz <isaacryu@icloud.com>
2024-09-18 23:26:39 +02:00
SamoZ256 5f6d375b00
Fix Scott Pilgrim (#15)
* check for null vertex functions

* format

* Format

---------

Co-authored-by: Isaac Marovitz <isaacryu@icloud.com>
2024-09-18 23:26:39 +02:00