Commit Graph

877 Commits

Author SHA1 Message Date
Frizi
96980727cb [glsl-in] support nested swizzles and prevent l-value repeated components 2021-06-17 15:21:47 -04:00
Frizi
60c44b0611 [glsl-in] create temp var for swizzles used as out parameters 2021-06-17 15:21:47 -04:00
Frizi
25c0dd22cc [glsl-in] simplify parse_type identifier case 2021-06-17 15:21:47 -04:00
Frizi
f85c896ddf [glsl-in] require at least one item inside struct_declaration_list 2021-06-17 15:21:47 -04:00
Frizi
ad260062a0 [glsl-in] parse structs and resolve user-defined types 2021-06-17 15:21:47 -04:00
Frizi
c7580f2743 [glsl-in] preserve entrypoint arg names for reflection 2021-06-17 15:21:47 -04:00
Frizi
e6d142f28f [glsl-in] treat const globals as constants allow them in array size exprs 2021-06-17 15:21:47 -04:00
Frizi
7c8fbb4377 [glsl-in] support more math functions and builitns 2021-06-17 15:21:47 -04:00
Frizi
bff8b18a01 [glsl-in] lower swizzle store to per-component stores 2021-06-17 15:21:47 -04:00
Frizi
a7d3b604dc [wgsl-in] fix clippy warnings on to_wgsl methods 2021-06-17 11:50:03 -04:00
Frizi
337014786c [wgsl-in] use AccessIndex for accesses using constant index 2021-06-17 11:34:58 -04:00
Jim Blandy
b79d4c5d85 Validator::validate: Remove bogus comment.
This comment claims that the following work is being done after global
validation, but it actually appears before global validation.
2021-06-17 11:05:27 -04:00
Gordon-F
96b37aff1f [hlsl-out] Reduce heap allocation 2021-06-16 14:03:50 -04:00
Gordon-F
92a11d0978 [hlsl-out] More improvements. Enable quad snapshot testing 2021-06-15 21:08:05 -04:00
Gordon-F
7430a43c36 [wgsl-out] Write constant names with namer 2021-06-15 21:08:05 -04:00
Gordon-F
d1f9575ed1 [glsl-out] Write space after if keyword 2021-06-15 21:08:05 -04:00
Gordon-F
54d7d7d2a3 Improve hlsl-out 2021-06-13 11:15:42 -04:00
Dzmitry Malyshau
af022ed21e Add Hash to ResourceBinding 2021-06-10 14:19:41 -04:00
João Capucho
fb71e49501 [glsl-in] Implicit cast mod function 2021-06-09 12:54:58 -04:00
João Capucho
b15b0b6862 [glsl-in] Use local for mutable non pointer args 2021-06-09 12:54:58 -04:00
João Capucho
605bab12e3 [glsl-in] Don't load unsized types 2021-06-09 12:54:58 -04:00
João Capucho
a2ecd8ecff [glsl-in] Refractor global and blocks handling 2021-06-09 12:54:58 -04:00
João Capucho
15c846cd0e [glsl-in] Fix panic when calculating global use 2021-06-09 12:54:58 -04:00
João Capucho
d8dc12e47b [glsl-in] Add gl_GlobalInvocationID builtin 2021-06-09 12:54:58 -04:00
João Capucho
2023b1a72c [glsl-in] Implicit convert initializers 2021-06-09 12:54:58 -04:00
João Capucho
a9dad25b0f [glsl-in] Implement increment and decrement ops 2021-06-09 12:54:58 -04:00
João Capucho
a5b2486a9b [glsl-in] Add mod function 2021-06-09 12:54:58 -04:00
João Capucho
803cb31fb0 [glsl-in] Add support for buffer class 2021-06-09 12:54:58 -04:00
João Capucho
0184e1c875 [glsl-in] Add parsing for some modifiers
Adds support for workgroup size and early fragment tests definitions
2021-06-09 12:54:58 -04:00
Igor Shaposhnik
54af830855 Fix nightly clippy suggestions 2021-06-09 10:17:20 -04:00
João Capucho
be2231f6d9 [wgsl-out] Write global initializers 2021-06-09 10:14:46 -04:00
Dzmitry Malyshau
38f6a79917 [spv-out] fix image sampling ops, add more tests 2021-06-08 17:38:42 -04:00
Igor Shaposhnik
b299a59bb5 [wgsl-out] Simplify code for writing named expression 2021-06-08 17:38:14 -04:00
Igor Shaposhnik
4af035edb7 [glsl-out] Simplify code for writing named expression 2021-06-08 17:38:14 -04:00
Igor Shaposhnik
575304a50c [msl-out] Implement named expression generation (#957) 2021-06-08 12:09:46 -04:00
Jim Blandy
9dcfe8fa4b [spv-out]: Don't have write_expression_pointer return a storage class. (#958)
Nobody uses that value. This lets us simplify `GlobalVariable` and
`write_global_variable` as well.
2021-06-08 10:16:10 -04:00
Igor Shaposhnik
be6a4172c5 Fix Expression::Load generating (#925)
* [glsl-out] Fix writing named expressions with array types

* [wgsl-out] Remove unsupported builtin from baked expression

* [glsl-out] Add a newline between globals for readability

* Set bake_ref_count to 1 for Expression::Load

* Update snapshot data
2021-06-08 10:15:26 -04:00
Matus Talcik
94cdaf685d [spv-in] CFG: add break statements in switch selections (#951) 2021-06-05 20:09:41 -04:00
Jim Blandy
a2a35f2eb3 Permit dynamic indexing of arrays and matrices only behind a pointer. (#949)
This makes Naga IR validation impose the restrictions added to WGSL in
gpuweb/gpuweb#1801.

Remove code in the SPIR-V writer to spill arrays to temporary variables in order
to index them dynamically. If such IR is encountered, treat it as a failure of
validation.
2021-06-04 12:57:20 -04:00
João Capucho
1c3baf4557 [glsl-in] Allow field selection behind pointers (#948) 2021-06-03 16:09:20 -04:00
João Capucho
87748a2fe3 [glsl-in] Add integration tests to CI (#943)
* [glsl-in] Add glsl snapshots folder

* [glsl-in] Fix incorrect angle brackets parsing

* [glsl-in] Temporarily remove wgsl snapshot output
2021-06-03 15:34:54 -04:00
João Capucho
db3dd63bdd [glsl-in] Don't output empty struct in entry point 2021-06-03 15:32:46 -04:00
Gordon-F
90c2cf6aa6 Add ability to generate named expressions 2021-06-03 10:40:59 -04:00
João Capucho
98769c642d [glsl-in] read global in prologue only if allowed
Adds a check of wether or not a global can be read in the entry point prologue
2021-06-03 10:36:54 -04:00
Frizi
2295508f0e Insert attribute glsl location qualifier for opengl ES 3.0 2021-06-02 12:36:04 -04:00
João Capucho
3699034ccc [glsl-in] Fix for if being in the wrong body 2021-06-01 21:12:46 -04:00
João Capucho
4cb036b335 [glsl-in] Fix op assignments 2021-06-01 21:12:46 -04:00
João Capucho
679b6a308f [glsl-in] Fix emitting issues 2021-06-01 21:11:50 -04:00
João Capucho
027634451d [glsl-in] Collect entry point arguments usage 2021-06-01 21:11:50 -04:00
Dzmitry Malyshau
61bfb29963 Don't consider discard and return inside uniform control flow 2021-05-31 00:49:25 -04:00