João Capucho
6d78f1c06d
hlsl-out: Fix indentation for continuing block
...
The continuing block in hlsl was being generated with the same indentation as the loop body
2022-06-17 16:34:23 +02:00
João Capucho
cafdb160ae
glsl-out: Fix indentation for continuing block
2022-06-17 16:17:22 +02:00
teoxoy
89f24b6cfe
[msl-out] insert padding initialization for global constants
2022-06-17 10:55:28 +02:00
teoxoy
531d563f0e
[wgsl-in] implement complete validation for size and align attributes
2022-06-16 12:13:08 -07:00
João Capucho
357da63076
Patch ron version ( #1986 )
...
Require at least version 0.7.1 of ron, this version changed how floating points are
serialized by forcing them to always have the decimal part, this makes it backwards
incompatible with our tests because we do a syntatic diff and not a semantic one.
2022-06-15 15:17:59 -04:00
João Capucho
ae58fbf4d0
Add tests
2022-06-14 16:04:08 -07:00
João Capucho
dab932e8ce
glsl-in: Fix last case falltrough and empty switch
...
GLSL allows the last case of a switch statement to not have a `break`
statement causing it to be marked as fall-trough, naga's IR on the other
hand doesn't allow the last case to be fall-trough, this is fixed by
force marking it in the glsl frontend as not fall-trough.
GLSL also allows empty switch statements and without default cases,
naga's IR requires there be a default case, this is fixed by adding an
empty default case in the glsl frontend if no default case was present
in the switch statement.
2022-06-14 22:31:27 +01:00
João Capucho
52bb25179b
glsl-in: Splat inputs for smoothstep if needed
...
Glsl defines two overloads for smoothstep that accept `min` and `max` as
scalars and the value as a vector, naga's IR is stricter and only allows
operators with the same dimensions, so this inputs must be splatted.
2022-06-14 13:15:08 -07:00
João Capucho
c7e6769001
Add tests
2022-06-14 13:14:43 -07:00
João Capucho
81e2b006e1
glsl-in: Add test for nested depth texture calls
...
Co-authored-by: Jasper St. Pierre <jstpierre@mecheye.net >
2022-06-14 13:11:30 -07:00
Jim Blandy
89bed99bcc
Forbid returning pointers and atomics from functions.
...
Introduce a new `TypeFlags::CONSTRUCTIBLE` flag, corresponding to
WGSL's "constructible types". Set this on the appropriate types.
Check for this flag on function return types.
2022-06-01 14:20:55 -07:00
João Capucho
e461d30865
glsl-in: Fix matrix multiplication check
...
The previous check compared rows to rows and columns to columns but
multiplication of matrices only needs the columns of the left matrix to
be equal to the rows of the right matrix.
2022-05-30 22:54:14 +01:00
teoxoy
768e1fe703
[hlsl-out] avoid error X3504: array index out of bounds
2022-05-30 13:15:40 -07:00
teoxoy
a8256e94c2
[hlsl-out] avoid error X3694: race condition writing to shared resource detected
2022-05-30 13:14:00 -07:00
teoxoy
91ee407c87
[hlsl-out] fix fallthrough in switch statements
2022-05-30 13:11:56 -07:00
teoxoy
7c7e96276a
[hlsl-out] fix missing break statements (for FXC)
2022-05-30 12:15:16 -07:00
João Capucho
0aa7681165
glsl-out: Implement bounds checks for ImageLoad ( #1889 )
...
* glsl-out: Implement bounds checks for `ImageLoad`
* Enable image bounds check snapshot tests for GLSL.
In addition to the snapshot.rs changes, this entails adding an entry
point function to `bounds-check-image-restrict.wgsl` and
`bounds-check-image-rzsw.wgsl`, including appropriate data in the
param.ron files.
* Apply comments
Snapshot test changes:
Co-authored-by: Jim Blandy <jimb@red-bean.com >
2022-05-30 12:13:58 -07:00
grovesNL
60ae549fe1
Add error for non-floating-point matrix
2022-05-14 17:00:15 +02:00
teoxoy
ab2806e05f
[hlsl-out] fix array constructor return type (for FXC)
2022-05-12 22:17:40 -07:00
teoxoy
5f47d6d31f
[msl-out] use matrix identity constructor
2022-05-12 22:15:45 -07:00
teoxoy
6dae3ac7e0
[wgsl-in] support partial vector & matrix identity constructors
2022-05-12 22:15:45 -07:00
teoxoy
f48174a0b4
[spv-out] use OpCopyObject for matrix identity casts
2022-05-12 22:15:45 -07:00
teoxoy
b7ff50619c
[spv-out] use OpCopyObject for bool - bool conversion due to OpBitcast not being feasible for booleans
2022-05-12 22:15:45 -07:00
teoxoy
afb6504b8b
add support for identity matrix constructor
2022-05-12 22:15:45 -07:00
teoxoy
b688584d87
[msl-out] fix pointers to private or workgroup address spaces possibly being read only
2022-05-11 20:10:18 -07:00
teoxoy
fea33c682e
[wgsl-in] fix incr/decr not matching ValuePointer
2022-05-11 20:01:46 -07:00
Hasan Ali
205ea6cc5c
Fix hlsl output for writes to scalar/vector storage buffer
2022-05-10 22:46:47 +02:00
teoxoy
b3d5e6d807
[msl-out] zero init variables in function address space
2022-05-10 10:44:40 +02:00
teoxoy
239bbbbed4
[spv-out] zero init variables in function and private address spaces
2022-05-10 10:44:40 +02:00
teoxoy
ceb92921c2
remove named expression entry for phony assignment
2022-05-10 10:43:25 +02:00
teoxoy
7109cffb20
[spv-out] use SRem instead of SMod
2022-05-09 20:48:09 -07:00
teoxoy
c03d840755
[glsl-in] translate mod fn correctly
2022-05-09 20:48:09 -07:00
teoxoy
c584331f39
[hlsl-out] use fmod instead of %
2022-05-09 20:48:09 -07:00
Teodor Tanasoaia
e312a7adeb
[hlsl-out] use wrapped constructors when loading from storage address space ( #1893 )
2022-05-09 20:40:42 -07:00
Hasan Ali
934fa16919
Implement reverseBits and countOneBits for SPIR-V ( #1897 )
...
* Implement reverseBits and countOneBits for spir-v
* Update tests
* Fix type error for glsl countOneBits implementation
2022-05-09 23:24:28 +02:00
teoxoy
1869c6831e
[hlsl-out] zero init struct constructor
2022-05-03 19:51:51 +02:00
Jim Blandy
57e1793143
Properly check that user-defined IO uses IO-shareable types.
...
Only numeric scalars and vectors, and structs whose members are such
values, are permitted as the types of user-defined IO.
2022-05-02 10:28:16 +02:00
Jim Blandy
dec07027ee
Split out check_one_validation macro from check_validation.
...
The new `check_one_validation` macro permits the source code to be a
computed expression, not just a string literal. This also cleans up
some of the handling of the optional guard expression.
2022-05-02 10:28:16 +02:00
Jim Blandy
a8e1e11437
Rename check_validation_error macro to check_validation.
...
The macro can check for both success and failure, so the new name is
more accurate, and shorter.
2022-05-02 10:28:16 +02:00
João Capucho
883a88580f
glsl-in: Apply comments
2022-05-01 13:52:04 -07:00
João Capucho
1c02de537b
glsl-in: Fix the ternary to behave as an if
...
The GLSL specification defines that only one of the branches should be
evaluated making the ternary operator syntatic sugar for an `if`.
2022-05-01 13:52:04 -07:00
Igor Shaposhnik
f76af4e53a
[wgsl] Remove buffer, texture, in, out, input, output from reserved keywords
2022-04-29 20:06:09 +02:00
Teodor Tanasoaia
f2e7818e71
[wgsl-in] implement firstTrailingBit/firstLeadingBit u32 overloads ( #1865 )
...
* [wgsl-in] implement firstTrailingBit/firstLeadingBit u32 overloads
* fix MSL type issue
reverts b9162e443d
2022-04-26 22:25:53 -07:00
teoxoy
062b66ca31
implement phony assignment
2022-04-26 21:40:31 -07:00
Connor Fitzgerald
1aa9154964
Binding arrays play nice with bounds checks ( #1855 )
2022-04-25 04:17:51 +00:00
Connor Fitzgerald
ad28396851
Implement Binding Arrays ( #1845 )
2022-04-19 14:23:07 -04:00
Teodor Tanasoaia
dc075e66e3
[wgsl-in] Update reserved keywords ( #1847 )
2022-04-17 15:56:54 +02:00
Jim Blandy
ef387f73a6
[hlsl-out] Emit row_major qualifier on matrix uniform globals.
...
Fixes #1836 .
2022-04-16 23:50:17 -07:00
Igor Shaposhnik
1720725014
[wgsl-out] Update entry point stage attributes
2022-04-15 18:02:48 +01:00
Igor Shaposhnik
fbb77aa0dc
[wgsl-in] Update entry point stage attributes
2022-04-15 18:02:48 +01:00