Isaac Marovitz
e615d7d849
Fix modulo operator
...
Support sample offsets
Include FragmentIn as additional arg
Always declare frag output struct
SubgroupLaneId
2024-12-23 21:35:02 -06:00
Isaac Marovitz
c883ebb645
Workaround for Wonder
2024-12-23 21:35:00 -06:00
Isaac Marovitz
24ab7788d8
Fix 3D -> 3D Texture Copies
2024-12-23 21:34:57 -06:00
Isaac Marovitz
9ab2cd94c1
Fix Clear Viewport
2024-12-23 21:34:55 -06:00
Isaac Marovitz
4ee4e09358
Fix sample-less reads with lod
2024-12-23 21:34:52 -06:00
Isaac Marovitz
a07975afec
Fix Pack and UnpackHalf2x16
2024-12-23 21:34:50 -06:00
Isaac Marovitz
746c897206
Handle Array Format SetData
2024-12-23 21:34:48 -06:00
Isaac Marovitz
fe4fa6f4db
Cleanup
2024-12-23 21:33:31 -06:00
Isaac Marovitz
db24e0f6fe
Implement IoVariable.FrontFacing
2024-12-23 21:33:24 -06:00
Isaac Marovitz
e9aee16a27
Fix LOD sample typo
2024-12-23 21:33:21 -06:00
Isaac Marovitz
02f1e289e2
Rebase Changes
2024-12-23 21:33:19 -06:00
Isaac Marovitz
9ebf82f184
More cleanup
2024-12-23 21:33:17 -06:00
Isaac Marovitz
49e83335d1
Cleanup + Format
2024-12-23 21:33:14 -06:00
Isaac Marovitz
f00cf8704f
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-12-23 21:33:12 -06:00
Isaac Marovitz
65da0569a3
Handle stride 0 on regular buffers
2024-12-23 21:33:09 -06:00
Isaac Marovitz
d811532a9f
Buffer Descriptor Step Functions
2024-12-23 21:33:07 -06:00
Isaac Marovitz
a42c66e6d5
Sample LOD Level
2024-12-23 21:33:01 -06:00
Isaac Marovitz
8be6b671b8
Fix FragmentOutputColor Type
2024-12-23 21:32:59 -06:00
Isaac Marovitz
2e99df371f
Stencil Ref Value
2024-12-23 21:32:56 -06:00
Isaac Marovitz
ac8af32744
Stencil Fixes
2024-12-23 21:32:54 -06:00
Isaac Marovitz
a58568d036
RenderTargetColorMasks
2024-12-23 21:32:52 -06:00
Isaac Marovitz
7ed45d12db
Make dotnet format happy
2024-12-23 21:32:50 -06:00
SamoZ256
505f830556
Zero vertex buffer ( #17 )
...
* cast src size to float
* implement zero buffers
2024-12-23 21:32:47 -06:00
Isaac Marovitz
43ad627d4f
Implement Texture CopyTo
2024-12-23 21:32:45 -06:00
Isaac Marovitz
c5cca8a1a3
Cleanup present
2024-12-23 21:32:43 -06:00
Isaac Marovitz
f7941a0a8b
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-12-23 21:32:40 -06:00
SamoZ256
6cc4d46e8c
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-12-23 21:32:34 -06:00
SamoZ256
18b852e05d
Fix Scott Pilgrim ( #15 )
...
* check for null vertex functions
* format
* Format
---------
Co-authored-by: Isaac Marovitz <isaacryu@icloud.com>
2024-12-23 21:32:02 -06:00
Isaac Marovitz
41e6a04a23
Suppress GC Finalize on StateCache
2024-12-23 21:31:59 -06:00
Isaac Marovitz
881ab59177
Use Stack instead of List
2024-12-23 21:31:57 -06:00
Isaac Marovitz
327c1576f7
Whitespace formatting
2024-12-23 21:31:54 -06:00
Samuliak
60ece6d9a1
dispose all temporary buffers
2024-12-23 21:31:52 -06:00
Samuliak
58b42a1143
dispose temporary metal buffer
2024-12-23 21:31:47 -06:00
Samuliak
3be47ae4a9
dispose drawable texture view
2024-12-23 21:31:41 -06:00
Samuliak
6ab989ac54
implement texture get data
2024-12-23 21:31:36 -06:00
Samuliak
9f01cce95f
fix: don't dispose stencil state before using
2024-12-23 21:31:30 -06:00
Samuliak
0abbbdc277
allow null depth stencil render targets
2024-12-23 21:31:28 -06:00
Samuliak
eb7ec713ec
reset certain state before doing blit or clear
2024-12-23 21:31:26 -06:00
Samuliak
d5437f3dbf
reset viewport before blit
2024-12-23 21:31:24 -06:00
Samuliak
1c4e527ac2
dispose encoder state manager
2024-12-23 21:31:01 -06:00
Samuliak
af341f88df
dispose all objects in encoder state manager
2024-12-23 21:30:58 -06:00
Samuliak
1ff81393be
dispose caches
2024-12-23 21:30:55 -06:00
Samuliak
2cb5265c8e
warn about barriers
2024-12-23 21:30:53 -06:00
Samuliak
78553f31d9
do memory barriers
2024-12-23 21:30:50 -06:00
Samuliak
60084f826e
remove useless parameters
2024-12-23 21:30:48 -06:00
Samuliak
280efb2ed6
set the inline state after restoring state
2024-12-23 21:30:46 -06:00
Samuliak
14607f4471
make states private
2024-12-23 21:30:41 -06:00
Samuliak
fd4fe01348
fix: incorrect merge stuff
2024-12-23 21:30:39 -06:00
Samuliak
8f91b556af
don't interrupt render pass before color clear
2024-12-23 21:30:29 -06:00
Samuliak
305a703d4a
implement save and restore state system
2024-12-23 21:30:22 -06:00
Samuliak
a2c0c11380
revert deferred clears
2024-12-23 21:30:02 -06:00
Samuliak
016df3b050
prepare for deferred clears
2024-12-23 21:29:58 -06:00
Samuliak
084b75a398
resolve merge conflicts
2024-12-23 21:29:56 -06:00
Isaac Marovitz
91aed4d0dd
Rebase
2024-12-23 21:29:54 -06:00
Isaac Marovitz
bea46ff9ce
Cleanup + Format
2024-12-23 21:29:50 -06:00
Isaac Marovitz
58fb8564a8
Start Proper Dispose
2024-12-23 21:29:47 -06:00
Samuliak
94e077ca27
do texture barrier tiled
2024-12-23 21:29:44 -06:00
Samuliak
a10b0230c3
do texture barrier
2024-12-23 21:29:42 -06:00
Samuliak
c7dc9ba34e
implement depth stencil cache
2024-12-23 21:29:40 -06:00
Isaac Marovitz
ad4db6b242
Fix typo in SamplerType.TextureBuffer
2024-12-23 21:29:37 -06:00
Isaac Marovitz
11c596a18a
Fix StoreActions & Don’t Clamp Scissor for Now
2024-12-23 21:29:35 -06:00
Isaac Marovitz
7f8d54d6dc
Depth Clear
2024-12-23 21:29:33 -06:00
Isaac Marovitz
90e3899c23
Shitty Clears + Inline Buffer Improvements?
2024-12-23 21:29:24 -06:00
Isaac Marovitz
381f4ec091
FragmentOutputDepth Fixes
2024-12-23 21:29:20 -06:00
Isaac Marovitz
b76f9105c8
Depth Sampler Fixes
2024-12-23 21:29:09 -06:00
Isaac Marovitz
486fd78eba
Revert position changes
2024-12-23 21:29:06 -06:00
Isaac Marovitz
38385bad30
Nvm it should be in.position
2024-12-23 21:29:04 -06:00
Isaac Marovitz
27ece39dbe
More shader fixes
2024-12-23 21:29:02 -06:00
Samuliak
7a6c7196c8
fix: incorrect layer count of texture view
2024-12-23 21:28:59 -06:00
Samuliak
765ca8e6c0
don't use mask on size query
2024-12-23 21:28:57 -06:00
Samuliak
d5b98d6187
declare local memory
2024-12-23 21:28:51 -06:00
Samuliak
913f25b2a0
support multiple render targets & fix: incorrect texture name
2024-12-23 21:28:41 -06:00
Samuliak
5d0ae23a0b
put render pipeline cache into a separate file
2024-12-23 21:28:38 -06:00
Samuliak
dd5fb8bed9
implement pipeline cache
2024-12-23 21:28:36 -06:00
Isaac Marovitz
2316f30de1
Use return value of BeginRenderPass
2024-12-23 21:28:33 -06:00
Isaac Marovitz
96eea9de23
Cleanup
2024-12-23 21:28:31 -06:00
Samuliak
9c5917912b
remove outdated comment
2024-12-23 21:28:29 -06:00
Isaac Marovitz
efe575c9b2
Fix table
2024-12-23 21:28:27 -06:00
Isaac Marovitz
ba4d6815ea
Dont hardcode Vertex Format
2024-12-23 21:28:20 -06:00
Samuliak
9b99f55c4f
style
2024-12-23 21:28:17 -06:00
Samuliak
5a6169b19d
bring back inline updates for some state
2024-12-23 21:28:15 -06:00
Samuliak
f30aa98ce5
fix: don't rebind pipeline unless dirty
2024-12-23 21:28:12 -06:00
Samuliak
149141594f
don't bind null vertex buffers
2024-12-23 21:28:09 -06:00
Samuliak
b5f15de64f
mark state as dirty
2024-12-23 21:28:07 -06:00
Samuliak
bc9a26bbf2
add todo notice
2024-12-23 21:28:04 -06:00
Samuliak
f3d314104f
don't end render pass when not neccessary
2024-12-23 21:28:01 -06:00
Isaac Marovitz
2c474050f8
Be smart and use a bitmask not a list
2024-12-23 21:27:18 -06:00
Isaac Marovitz
46cc993f9a
Cleanup
2024-12-23 21:27:15 -06:00
Isaac Marovitz
c51c8bdae6
Fix Vertex Attributes in Wonder & Kirby
2024-12-23 21:27:13 -06:00
Isaac Marovitz
4f356b4117
Implement SetDepthClamp
2024-12-23 21:27:10 -06:00
Isaac Marovitz
15051d6e56
Implement SetBlendState
2024-12-23 21:27:08 -06:00
Isaac Marovitz
2587e1ff22
Be consistent with things that lack support
2024-12-23 21:27:06 -06:00
Isaac Marovitz
0d5292ff8c
Ignore SetDepthMode
2024-12-23 21:27:04 -06:00
Isaac Marovitz
401ad1f983
Make Texture Volatile on dispose
2024-12-23 21:26:57 -06:00
Isaac Marovitz
3c1ef06151
Format
2024-12-23 21:26:49 -06:00
Isaac Marovitz
95af212cfc
Fix present
2024-12-23 21:26:46 -06:00
Isaac Marovitz
4190abbbf5
Fix Depth/Stencil attachments
2024-12-23 21:25:27 -06:00
Isaac Marovitz
c7b6e4cf80
Break everything :D
2024-12-23 21:25:24 -06:00
Isaac Marovitz
96d884a15b
Clamp ScissorRect
2024-12-23 21:25:21 -06:00
Isaac Marovitz
f79ebd1141
Set DepthAttachmentPixelFormat
2024-12-23 21:25:19 -06:00
Isaac Marovitz
7f65ec0b8c
Set Depth Attachment Texture
2024-12-23 21:25:17 -06:00
Isaac Marovitz
824321c88a
Clamp Viewport ZNear & ZFar
2024-12-23 21:25:08 -06:00
Samuliak
91d1bb6c08
format
2024-12-23 21:24:50 -06:00
Samuliak
22d3fa068d
use 0 instead of undef
2024-12-23 21:24:45 -06:00
Samuliak
d08218a809
fix: pass array index as an additional argument to sample
2024-12-23 21:24:42 -06:00
Samuliak
b7414c1e4d
don't declare samplers for separate textures
2024-12-23 21:24:40 -06:00
Samuliak
a66ab905a9
don't hardcode texture type
2024-12-23 21:24:37 -06:00
Samuliak
2bef29b200
offset storage buffer bindings by 15
2024-12-23 21:24:35 -06:00
Samuliak
72eb47513c
fix: incorrect abs instruction
2024-12-23 21:24:32 -06:00
Samuliak
6095f14646
add: vertex and instance id arguments
2024-12-23 21:24:29 -06:00
Samuliak
c3a9a0d625
determine type of buffer by its field types
2024-12-23 21:24:03 -06:00
Isaac Marovitz
18e1569941
Rebase + Format
2024-12-23 21:23:59 -06:00
Samuliak
362dc6eaea
use unknown texture usage
2024-12-23 21:23:47 -06:00
Samuliak
d66c39b64b
don't hardcode render pipeline attachments
2024-12-23 21:23:42 -06:00
Samuliak
de23abcf90
create GetSwizzle helper function
2024-12-23 21:23:32 -06:00
Samuliak
b2a0ca0e2b
add: textures and samplers as shader arguments & fix: issue with casting
2024-12-23 21:23:28 -06:00
Samuliak
e3364b0fcc
support fragment coord as an input to a shader
2024-12-23 21:23:24 -06:00
Samuliak
8a0dd491b9
support texture views
2024-12-23 21:23:20 -06:00
Isaac Marovitz
ba05ed9552
Format
2024-12-23 21:23:14 -06:00
Isaac Marovitz
b85721b738
Rebase + GAL Changes
2024-12-23 21:23:06 -06:00
Isaac Marovitz
9d7164a329
Remove TODOs
2024-12-23 21:21:51 -06:00
Isaac Marovitz
2f70337dca
Fix Scissor/Viewport state & Validation Error
2024-12-23 21:21:47 -06:00
Isaac Marovitz
60c99e32b0
Require Argument Buffers Tier 2
2024-12-23 21:21:42 -06:00
Isaac Marovitz
ebd2d82ff3
Buffer bindings in shader…
...
Will need to be reworked
2024-12-23 21:21:36 -06:00
Isaac Marovitz
44bd12104b
Bind Uniform & Storage Buffers
2024-12-23 21:21:31 -06:00
Evan Husted
0df70db73c
remnant
2024-12-23 21:21:14 -06:00
Isaac Marovitz
64e9dcee3d
Fix buffer access syntax
2024-12-23 21:19:39 -06:00
Isaac Marovitz
e353e3d3fc
Dispose pipeline before window
2024-12-23 21:19:33 -06:00
Isaac Marovitz
6a67822b3b
Set scissors & viewports
2024-12-23 21:19:26 -06:00
Isaac Marovitz
65b7af6308
Format
2024-12-23 21:19:22 -06:00
Isaac Marovitz
36fe41bffd
Format
2024-12-23 21:19:19 -06:00
Isaac Marovitz
e758e531c5
Fix some crashes
2024-12-23 21:19:16 -06:00
Isaac Marovitz
efa9d56a56
Fix Cubemap & Array Texture Creation
2024-12-23 21:19:08 -06:00
Isaac Marovitz
b95e1d288b
Properly check for 3D
2024-12-23 21:17:32 -06:00
Isaac Marovitz
48aba086e1
Fix swizzle for certain formats
2024-12-23 21:17:28 -06:00
Isaac Marovitz
44f4d41cf8
Blit at the end of the render
2024-12-23 21:17:25 -06:00
Isaac Marovitz
b4f468c653
Load attachments
2024-12-23 21:17:21 -06:00
Isaac Marovitz
3117aeca7f
Cleanup Shader I/O
2024-12-23 21:17:17 -06:00
Isaac Marovitz
987a42ce30
Fix fragment shader bindings
2024-12-23 21:17:09 -06:00
Isaac Marovitz
fc7f09624c
Fix VertexBuffers
...
Naive non-managed approach
2024-12-23 21:16:57 -06:00
Isaac Marovitz
e2445990a5
Fix some shader gen problems…
2024-12-23 21:16:52 -06:00
Isaac Marovitz
dc4305f1cf
Formatting
2024-12-23 21:16:48 -06:00
Isaac Marovitz
b7a0aefa80
Make TypeConversion failure an error
2024-12-23 21:16:42 -06:00
Isaac Marovitz
7a99143a8a
Fix MSL Reinterpret Casts
2024-12-23 21:16:39 -06:00
Isaac Marovitz
89d1caf30f
Dont set Vertex Attributes for now
2024-12-23 21:16:35 -06:00
Isaac Marovitz
de7b3e7dac
Remove capture code
2024-12-23 21:16:31 -06:00
Isaac Marovitz
94e15aa662
Bind Textures & Samplers
2024-12-23 21:16:27 -06:00
Isaac Marovitz
b157a8e549
Revise ISampler
2024-12-23 21:16:20 -06:00
Isaac Marovitz
6685041545
Try again
2024-12-23 21:16:15 -06:00
Isaac Marovitz
b8630b5c45
Resolve warning
2024-12-23 21:16:12 -06:00