Isaac Marovitz
27ece39dbe
More shader fixes
2024-12-23 21:29:02 -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
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
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
Isaac Marovitz
ebd2d82ff3
Buffer bindings in shader…
...
Will need to be reworked
2024-12-23 21:21:36 -06:00
Isaac Marovitz
64e9dcee3d
Fix buffer access syntax
2024-12-23 21:19:39 -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
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
c0da3d68ca
Formatting
2024-12-23 21:16:07 -06:00
Isaac Marovitz
5d90932277
Dont specify [[stage_in]] on fragment
2024-12-23 21:14:06 -06:00
Isaac Marovitz
d45c7711ba
Fix fragment shaders (and fuck everything up)
2024-12-23 21:09:35 -06:00
Isaac Marovitz
fe62c794b9
Fix fragment output color
2024-12-23 21:08:21 -06:00
Isaac Marovitz
d65858be25
Fix IoMap variable names
...
Output struct
Lazy Vertex IO
Output fixes
Fix output struct definition
MSL Binding Model description
Might need tweaks/adjustments
Cleanup
Typo + Format
2024-12-23 21:07:58 -06:00
Isaac Marovitz
4587905cd8
Partial TextureQuerySamples
2024-12-23 21:07:07 -06:00
Isaac Marovitz
9cc56a3bca
Fix instructions
2024-12-23 21:06:58 -06:00
Isaac Marovitz
c5522e3694
Back to where we were
...
First special instruction
Start Load/Store implementation
Start TextureSample
Sample progress
I/O Load/Store Progress
Rest of load/store
TODO: Currently, the generator still assumes the GLSL style of I/O attributres. On MSL, the vertex function should output a struct which contains a float4 with the required position attribute.
TextureSize and VectorExtract
Fix UserDefined IO Vars
Fix stage input struct names
2024-12-23 21:05:34 -06:00
Isaac Marovitz
b1785c0b14
Update for new Shader IR format
2024-12-23 21:01:10 -06:00
Isaac Marovitz
dc4d3078ef
Vertex Input Attributes
2024-12-23 21:00:45 -06:00
Isaac Marovitz
4b5c3d7fc6
More Shader Gen Stuff
...
Mostly copied from GLSL since in terms of syntax within blocks they’re pretty similar. Likely the result will need tweaking…
Isn’t that conveniant?
“Do the simd_shuffle”
atomics
Remaining instructions
Remove removed special instructions
Getting somewhere…
2024-12-23 21:00:23 -06:00
Isaac Marovitz
7441d94f10
Formatting
2024-12-23 20:57:31 -06:00
Isaac Marovitz
a8b4e643d0
Start of MSL instructions
...
Remaining functions
2024-12-23 20:55:40 -06:00
Isaac Marovitz
a7908c187d
Warn when generating unsupported shader
2024-12-23 20:55:27 -06:00
Evan Husted
cbad43b003
some initial metal commits cherry-picked
2024-12-23 20:35:49 -06:00
Marco Carvalho
ff6628149d
Migrate to .NET 9 ( #198 )
Canary release job / Create tag (push) Waiting to run
Canary release job / Release for linux-arm64 (push) Waiting to run
Canary release job / Release for linux-x64 (push) Waiting to run
Canary release job / Release for win-x64 (push) Waiting to run
Canary release job / Release MacOS universal (push) Waiting to run
2024-12-19 18:52:25 -06:00
TheToid
baf179efdb
ignore macos attribute files ( #302 )
2024-11-28 16:55:51 -06:00
Evan Husted
139c195eb7
misc: Replace "" with string.Empty.
2024-11-01 11:57:23 -05:00
riperiperi
04d68ca616
GPU: Ensure all clip distances are initialized when used ( #7363 )
...
* GPU: Ensure all clip distances are initialized when used
* Shader cache version
2024-09-26 14:19:12 -03:00
gdkchan
d717aef2be
Shader: Assume the only remaining source is the right one when all others are undefined ( #7331 )
...
* Shader: Assume the only remaining source is the right one when all other are undefined
* Shader cache version bump
* Improve comment
2024-09-19 21:23:09 -03:00
gdkchan
ef81658fbd
Implement support for shader ATOM.EXCH instruction ( #7320 )
...
* Implement support for shader ATOM.EXCH instruction
* Shader cache version bump
* Check type
2024-09-18 15:48:55 -03:00
gdkchan
56b2f84702
Fix shader RegisterUsage pass only taking first operation dest into account ( #7131 )
...
* Fix shader RegisterUsage pass only taking first operation dest into account
* Shader cache version bump
2024-07-30 21:57:55 -03:00
gdkchan
3193ef1083
Extend bindless elimination to catch a few more specific cases ( #6921 )
...
* Catch more cases on bindless elimination
* Match blocks with the same comparison condition
* Shader cache version bump
2024-06-16 14:46:27 -03:00
gdkchan
c0f2491eae
Vulkan separate descriptor set fixes ( #6895 )
...
* Ensure descriptor sets are only re-used when all command buffers using it have completed
* Fix some SPIR-V capabilities
* Set update after bind flag if we exceed limits
* Simpler fix for Intel
* Format whitespace
* Make struct readonly
* Add barriers for extra set arrays too
2024-06-02 22:40:28 -03:00
gdkchan
c41fddd25e
Vulkan: Extend full bindless to cover cases with phi nodes ( #6853 )
...
* Key textures using set and binding (rather than just binding)
* Extend full bindless to cover cases with phi nodes
* Log error on bindless access failure
* Shader cache version bump
* Remove constant buffer match to reduce the chances of full bindless triggering
* Re-enable it for constant buffers, paper mario does actually need it
* Format whitespace
2024-05-26 15:20:10 -03:00
gdkchan
53d096e392
Allow texture arrays to use separate descriptor sets on Vulkan ( #6870 )
...
* Report base and extra sets from the backend
* Pass texture set index everywhere
* Key textures using set and binding (rather than just binding)
* Start using extra sets for array textures
* Shader cache version bump
* Separate new commands, some PR feedback
* Introduce new manual descriptor set reservation method that prevents it from being used by something else while owned by an array
* Move bind extra sets logic to new method
* Should only use separate array is MaximumExtraSets is not zero
* Format whitespace
2024-05-26 13:30:19 -03:00
gdkchan
3a3b51893e
Add support for bindless textures from storage buffer on Vulkan ( #6721 )
...
* Halve primitive ID when converting quads to triangles
* Shader cache version bump
* Add support for bindless textures from storage buffer on Vulkan
2024-05-14 16:47:16 +02:00