Dzmitry Malyshau
89f62bc584
[spv-out] make instruction constructions to be methods
2021-02-13 12:33:04 -05:00
Joshua Groves
9667a18980
[wgsl] Avoid consuming token twice in some cases
2021-02-13 00:13:23 -05:00
Joshua Groves
9c2a837a53
[wgsl] track number of bytes consumed per token
2021-02-13 00:13:23 -05:00
Anthony Cowley
141d2e7661
[wgsl] ignore offset decorations on struct fields
...
naga does not require offset decorations on struct fields in WGSL
source, and automatically adds them to spv output. The `tint` compiler
does not automatically add them, and requires that they be present in
the WGSL source.
A potential confusion is that an spv binary missing required
`OpMemberDecorate` instructions that set the field's offset will fail
validation when run through `spirv-val`. But since naga automatically
produces these offsets, the same spv binary passed through naga will
be successfully validated.
This change is to ignore these decorations in naga's WGSL front end so
that the same WGSL source can be used with naga and tint to produce
valid spv.
2021-02-12 18:27:02 -05:00
Dzmitry Malyshau
f3cab651bb
[spv-out] support Switch statements
2021-02-12 10:17:27 -05:00
Dzmitry Malyshau
9b358efea1
[wgsl] support 'elseif' construct
2021-02-11 20:50:27 -05:00
Dzmitry Malyshau
86bb611905
[wgsl] support select()
2021-02-11 15:32:28 -05:00
Dzmitry Malyshau
b3d80de9e1
[spv-out] fix the clippy warning about Result type
2021-02-11 11:24:06 -05:00
Dzmitry Malyshau
38f3c4eb19
[spv-in] support dynamic vector insert/extract
2021-02-11 10:58:52 -05:00
Dzmitry Malyshau
49eb93cf7d
[spv-in] support boolean constants
2021-02-11 10:58:52 -05:00
Dzmitry Malyshau
2507794bc6
[spv-in] add more capabilities we support
2021-02-11 10:58:52 -05:00
Pelle Johnsen
c04c971907
[glsl-in] Fix StorageClass for texture and sampler
2021-02-11 10:33:21 -05:00
Dzmitry Malyshau
20227e7c87
[msl] pass-through global resources in arguments
2021-02-10 23:22:14 -05:00
Dzmitry Malyshau
dad02eb0a8
[msl-out] support all binary ops
2021-02-10 23:22:14 -05:00
Dzmitry Malyshau
3b4935550d
Separate validation job on macOS
2021-02-10 23:17:18 -05:00
Dzmitry Malyshau
bfbb30b375
Add CI action for validation of native shaders
2021-02-10 21:48:45 -05:00
Dzmitry Malyshau
3aa11838c7
Refactor the global usage code into a separate module, fix inheriting from the callees
2021-02-10 11:02:56 -05:00
Dzmitry Malyshau
4f19903f46
[wgsl] fix variable initializers wrt control flow
2021-02-09 00:47:41 -05:00
Dzmitry Malyshau
5b94ecd9b2
Add a snapshot for parsing spirv input
2021-02-08 15:59:47 -05:00
Dzmitry Malyshau
cf0a86afd4
[spv-in] move all the image-related logic into a sub-module
2021-02-08 15:59:47 -05:00
Dzmitry Malyshau
6b9d3eafc8
[spv-in] Rewrite the comparison image/sample handling.
...
Keep track of the comparison property per global variable instead of type.
Only track images that can actually be comparison-sampled.
Instead of mutating the type, just add a new type in the end
if we detect it to be necessary, cloning the old name.
2021-02-08 15:59:47 -05:00
Dzmitry Malyshau
10867879d4
[spv-in] support projection sampling and sampling from arrays
2021-02-08 11:31:45 -05:00
Dzmitry Malyshau
680fda9e1b
[spv-out] fix initial ID 0 and 1 assignments
2021-02-08 00:20:37 -05:00
Dzmitry Malyshau
76094aa553
[mtl] fix nested loop service variable
2021-02-08 00:13:12 -05:00
Joshua Groves
832e259a03
Ues updated paths in Makefile
2021-02-07 18:16:26 -05:00
Joshua Groves
31be7099f2
Move snapshot inputs and outputs around
2021-02-07 18:16:26 -05:00
Dzmitry Malyshau
6f50ca6bee
Push constant support
2021-02-07 11:54:56 -05:00
Dzmitry Malyshau
960aabec20
[spv-in] Implement OpCompositeInsert
2021-02-07 11:49:52 -05:00
Dzmitry Malyshau
75427cf95c
[spv-in] handle matrix decorations
2021-02-07 11:44:47 -05:00
João Capucho
993521965d
Add support for unary ops to glsl
2021-02-06 22:23:09 -05:00
João Capucho
708751a805
Add support for relational functions to glsl-in
2021-02-06 16:57:30 -05:00
João Capucho
da8f9ecbb9
Add support for more math functions in glsl-in
2021-02-06 16:57:30 -05:00
João Capucho
e0005211a3
Fix the way equality is handled in glsl
2021-02-06 16:04:24 -05:00
Dzmitry Malyshau
251f800825
Remove the typifier hack for void functions
2021-02-06 10:42:54 -05:00
Dzmitry Malyshau
d0c84a5ffa
[spv-in] support for void function calls
2021-02-06 10:42:54 -05:00
Dzmitry Malyshau
11a3ed9837
WGSL support for void function calls
2021-02-06 10:42:54 -05:00
Dzmitry Malyshau
d949d58f7b
Statement for void function call
2021-02-06 10:42:54 -05:00
João Capucho
f9f41fc9bf
Add support for more math functions in glsl
2021-02-06 00:41:00 -05:00
João Capucho
2f9c957198
Add support for pow and fix mix arguments
2021-02-06 00:41:00 -05:00
João Capucho
ae72fb0933
Add support for component wise comparison to glsl
2021-02-06 00:41:00 -05:00
João Capucho
647dd76dba
Moved the ConstantSolver to the glsl frontend
2021-02-06 00:25:30 -05:00
João Capucho
88eee833d7
Add binary op support for the ConstantSolver
2021-02-06 00:25:30 -05:00
Dzmitry Malyshau
b1fa7471d2
Basic image query support in SPV and WGSL frontends
2021-02-05 15:26:45 -05:00
Dzmitry Malyshau
50f0ad6249
Image queries
2021-02-05 15:26:45 -05:00
Dzmitry Malyshau
c496c05ba4
Makefile commands for native shader validation
2021-02-05 14:04:02 -05:00
Dzmitry Malyshau
ac27a1abaa
Don't break upon a void function in the typifier
2021-02-05 10:08:34 -05:00
Dzmitry Malyshau
f563b5810b
[spv-in] support OpImage, OpImageFetch, OpLogicalOr, OpLogicalAnd, relational functions, and fix OpUndef
2021-02-04 09:49:40 -05:00
Dzmitry Malyshau
423ccc2074
[spv-in] parse OpConstantNull and OpUndef
2021-02-04 09:49:40 -05:00
Dzmitry Malyshau
0970ef0ea5
[spv-in] derive the block status of a structure from its members
2021-02-04 09:49:40 -05:00
tfgast
71fdaedcec
FragDepth is a Write Property
...
FragDepth is written to in a fragment shader, not read.
2021-02-03 22:29:42 -05:00