Commit Graph

870 Commits

Author SHA1 Message Date
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
Fredrik Norén
58e5b2565d Validate matrix component-wise ops correctly 2021-05-30 11:03:54 -04:00
Aron Granberg
37724102a3 Improve wgsl lexer error messages.
Better errors for Unexpected, BadInteger, BadFloat, BadTexture, BadTypeCast, UnknownScalarType, UnknownStorageClass, UnknownAttribute, UnknownBuiltin, UnknownShaderStage, UnknownStorageFormat and UnknownConservativeDepth, ZeroStride, ZeroSizeOrAlign and UnknownType.

Also adds lexer::capture_span.

Also fixes some validation for texture sample types and and issue that cauld cause e.g. the type `f33` to be parsed as `f32`.
2021-05-30 11:01:00 -04:00
João Capucho
589f02fad4 [glsl-in] Add implicit conversions tests 2021-05-29 19:38:56 -04:00
João Capucho
b9e641c310 [glsl-in] Expression implicit conversions 2021-05-29 19:38:56 -04:00
Dzmitry Malyshau
d3fbb30d46 [wgsl-out] Improve texture sampling call 2021-05-28 22:43:39 -04:00
Dzmitry Malyshau
8a1d883ba5 [wgsl-in] support textureSampleCompareLevel 2021-05-28 22:43:39 -04:00
Dzmitry Malyshau
1366546645 [glsl-out] improve array types 2021-05-28 22:18:51 -04:00