Commit Graph

444 Commits

Author SHA1 Message Date
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
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
teoxoy
8584507fb6 [glsl-out] remove redundant space from unary ops 2022-04-15 11:21:51 +02:00
teoxoy
7f4e07e5cd [glsl-out] add support for boolean vector ~, | and & ops 2022-04-15 11:21:51 +02:00
teoxoy
d3b37dcdb1 add tests for remaining vector - scalar ops 2022-04-15 11:21:51 +02:00
teoxoy
95b84c4403 [spv-out] add support for int vector scalar mult 2022-04-15 11:21:51 +02:00
teoxoy
2cda40396a comment out problematic negative int 2022-04-15 11:21:51 +02:00
teoxoy
6e6daad4d4 [hlsl-out] fix bool splat 2022-04-15 11:21:51 +02:00
teoxoy
4ea7dc3381 [spv-out] add support for matrix add and sub 2022-04-15 11:21:51 +02:00
teoxoy
4366e65609 add support for unary vector operators 2022-04-15 11:21:51 +02:00
teoxoy
e4c017cb7c add more tests for operators 2022-04-15 11:21:51 +02:00
Jim Blandy
bdbf821c32 Test matrix-typed uniform globals. 2022-04-14 11:54:47 -07:00
Jim Blandy
27d0fee2e7 More tests for non-struct global types. 2022-04-14 11:45:42 -07:00
Jim Blandy
170faab6db
Move invariant bit from Binding::Builtin to Builtin::Position. (#1822)
Use the type system to enforce the rule that the invariant attribute
may only appear on `Position` builtins.
2022-04-13 14:57:05 -07:00
Jim Blandy
78975f25da [msl-out] Permit invariant qualifier on vertex shader outputs. 2022-04-12 22:22:20 +02:00
Teodor Tanasoaia
bd62887a13
[hlsl-out] Add more padding when necessary (#1814)
* [hlsl-out] add padding at the end of structs and after struct members of type matrix and array (when necessary)

* use wrapped constructor fn for constants

* add array as fn arg test

* fix glsl array fn arg

* add wrapped constructor for arrays

* [glsl-out] support multidimensional arrays

* address comments
2022-04-11 20:34:06 -07:00
teoxoy
0e77d26241 cast packed vec3's to vec3 for expressions that require it 2022-04-11 20:30:00 -07:00
teoxoy
32cdb27230 add better tests for msl packed vec3 2022-04-11 20:30:00 -07:00
teoxoy
d7f4c340a7 add matrix vector multiplication test 2022-04-11 20:30:00 -07:00
teoxoy
1688a767bb fix packed vec3 stores 2022-04-11 20:30:00 -07:00
teoxoy
1f797fdc2f add more packed vec3 load/stores to test 2022-04-11 20:30:00 -07:00
Teodor Tanasoaia
7aaac25fbf
[hlsl-out] fix matCx2 translation for uniform buffers (#1802)
* [hlsl-out] fix matCx2 translation

* fix msl validation (warning: unused variable)

* fix msl buffer declaration

* address comments
2022-04-10 22:29:11 -07:00
teoxoy
6ee1fd4929 fix MSL issue 2022-04-10 21:49:23 -07:00
teoxoy
d3957c1186 implement invariant attribute 2022-04-10 21:49:23 -07:00
Noel Tautges
a3d968e795
[hlsl-out] Don't output interpolation modifier if it's the default (#1809)
* hlsl-out: don't output interpolation modifier if it's the default (linear/`Interpolation::Perspective`)

* Remove linear interpolation modifiers from HLSL output tests
2022-04-09 22:36:36 -07:00
Teodor Tanasoaia
cfcf625019
[wgsl-in] Constructor improvements (#1790)
* add support for zero value constructors and constructors that infer their type from their parameters

* address comments

* extract constructor machinery into new module

* fix doc link
2022-03-29 22:51:54 -07:00
Teodor Tanasoaia
012f2a6b2e
Merge pull request #1784 from teoxoy/patch-2
[hlsl-out] fix matrix not being declared as transposed
2022-03-27 22:24:09 -07:00
João Capucho
4146cb24d0 glsl-in: Allow nested accesses in lhs positions
Also fixes access to runtime sized arrays behind named blocks
2022-03-27 21:47:51 -07:00
João Capucho
21f89b65e4 glsl-in: use forced conversions for vector/matrix constructors
The spec defines that for vector and matrix constructors all arguments
should use the same conversions as scalar constructors (forced conversions)
2022-03-27 21:44:17 -07:00
João Capucho
767d970312 glsl-in: Resume expression emit after imageStore
This wasn't done before which caused the frontend to crash if anything
appeared after it.
2022-03-27 21:42:02 -07:00
teoxoy
9dddfeec37 [wgsl-in] implement increment and decrement 2022-03-27 00:34:53 -07:00