Pelle Johnsen
2ffbeba8c6
Fix illegal chars in identifier for glsl-new
2020-07-04 10:58:29 -04:00
Pelle Johnsen
8759572530
Add glsl-new lexer line comment support
...
- Includes test
2020-07-03 10:05:12 -04:00
LaughingMan
dff3111485
WGSL front end: Fix panic on invalid input
...
Until now the WGSL parser would interpret a character index as a byte index.
This could lead to a panic on invalid input strings like "\"\u{2}ПЀ\u{0}\"",
because it would use that index to slice a string without ensuring the slicing
happens on a character boundary.
One possible fix would have been to call `str::find` instead of `position`,
however by relying on `splitn` instead of slicing a str manually it is
easier to convince ourselves that this code can no longer panic.
Fixes https://github.com/gfx-rs/naga/issues/90
2020-07-03 10:01:38 -04:00
Pelle Johnsen
aa70703fee
Add simple test for glsl-new lexer
2020-07-02 10:06:45 -04:00
Pelle Johnsen
1a9f34ecf2
Handle glsl_new parser errors
2020-07-01 15:20:16 -04:00
Kristoffer Søholm
1f5008f673
Refactor error handling in GLSL frontend
2020-06-30 18:56:58 -04:00
Pelle Johnsen
6f0f551bac
New GLSL frontend using pomelo ( #87 )
...
* Add initial pomelo glsl work
* Fix ref to glsl_old
* Fix idents with numbers in lexer
* Use glsl_new for .vert in convert example
Controlled by PREFER_GLSL_NEW=1 env var
Also add simple test files
* Start making parser look like spec
* Port 'old' lex.rs to glsl_new
* Apply fixes after rebasing
* Fix clippy issue
* Fix PR comments
- Make into optional feature glsl-new
- Minor code style improvements
2020-06-30 10:42:50 -04:00
Gabriel Majeri
c2a220840f
Document almost everything
2020-06-29 12:25:48 -04:00
Timo de Kort
713fcaaa11
Spirv backend - Extract instructions to own functions
2020-06-27 08:41:33 -04:00
Dzmitry Malyshau
e0a1e80fb5
Remove spirv-headers use from IR, make it optional
2020-06-25 00:37:33 -04:00
Dzmitry Malyshau
6eecea5dad
First bits of IR validation
2020-06-24 23:17:52 -04:00
Gabriel Majeri
84615eead3
Add support for return value to SPIR-V backend ( #79 )
...
* Add test for `glsl_phong_lighting`
* Implement `ReturnValue` op for SPIR-V backend
2020-06-22 16:11:40 +02:00
Timo de Kort
9940460fe6
Add basic tests for SPIR-V back-end writer
2020-06-21 15:11:03 -04:00
Dzmitry Malyshau
a9228d2aed
Add member offsets and array strides
2020-06-19 08:45:04 -04:00
Timo de Kort
0a781f4ce7
Add Layout Tests
...
Add Physical Layout test
Add Instruction tests
Add Logical Layout test
2020-06-18 17:19:36 -04:00
Dzmitry Malyshau
e3aea96198
Refactor GLSL parser modules
2020-06-17 09:50:17 -04:00
Dzmitry Malyshau
8e0ae1cf06
Convert glsl module line endings to Unix
2020-06-16 22:54:26 -04:00
Dzmitry Malyshau
d55cd79a21
Minor improvements, expose Handle, move glsl module inside the dir.
2020-06-16 22:54:26 -04:00
Dzmitry Malyshau
89d2afa11b
Comparison sampler API ( #66 )
2020-06-16 14:55:40 -04:00
Timo de Kort
82573b288b
Implement basic SPIR-V back-end ( #46 )
2020-06-15 16:01:00 -04:00
João Capucho
f94b486d8b
Run cargo fmt and enable monocodus ( #63 )
2020-06-09 14:49:12 -04:00
João Capucho
b91b9ca987
Glsl frontend ( #50 )
...
* Basic glsl support
* Miscellaneous fixes and vertex shader works
* Added rudimentary texture and sampler support
* Basic preprocessor
* Added preprocessor if macros
* Pass tests and handle floats correctly
* Fix preprocessor if wrong precedence ordering when using macros
Refractor for the glsl parser
Partial primary expression parser
* Fix all clippy errors
* Cleanup
* Rollback formatting changes in lib.rs
2020-06-09 13:43:16 -04:00
João Capucho
706a88e21c
Fix clippy errors ( #62 )
...
* Move from travis to github actions (#58 )
* Added github actions
* Remove travis
* Fixed clippy warnings
* Add the clippy check to ci
* Move workflows to .github
* Fix missing clippy
2020-06-08 16:00:46 -04:00
Paul Kernfeld
b108a50089
Check constant types ( #54 )
...
* Check constant types
A baby step towards #43
* Move tp src/proc/typifier, remove unneeded return
* Don't do pub(crate)
* Don't use crate::proc::UnexpectedConstantTypeError
Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com >
2020-05-22 12:30:30 -04:00
Paul Kernfeld
2a3fc6dc54
Replace panics with errors in Metal backend
...
Fixes #31
2020-05-20 11:18:18 -04:00
Paul Kernfeld
e2bd93aa21
Replace write! with TypedGlobalVariable::try_fmt
...
A step towards #31
2020-05-19 12:48:32 -04:00
Timo de Kort
4b686165c2
Remove duplicate constants in IR module
2020-04-17 17:57:35 -04:00
Timo de Kort
1a1f6a47b0
add support for ConstantComposite
2020-03-28 14:58:45 -04:00
Gabriel Majeri
f09f87bb25
Use NonZeroU32 for handle index
2020-03-23 10:31:50 -04:00
Gabriel Majeri
47d7536f35
Format src/arena.rs
2020-03-23 10:31:50 -04:00
Dzmitry Malyshau
3ea6ca428f
Move the global usage into the IR function
2020-03-20 16:23:35 -04:00
Dzmitry Malyshau
55fab04353
Refactor the interface processor, many improvements in global variables handling in MSL
2020-03-19 22:36:26 -04:00
Dzmitry Malyshau
80a9254dbe
Interface processor
2020-03-19 18:04:58 -04:00
Dzmitry Malyshau
df855bc2ff
Makefile and RON converter parameters
2020-03-19 09:44:14 -04:00
Dzmitry Malyshau
0de28d1656
[msl] operators, array access, and built-in calls
2020-03-15 23:59:49 -04:00
AIOOB
1ac92cd942
Fixup clippy lints and remove unsafe
2020-03-15 21:09:08 -04:00
Dzmitry Malyshau
c467693253
Add quad -> MSL testing
2020-03-15 12:10:19 -04:00
Dzmitry Malyshau
4a72abb142
Remove Mul expression type
2020-03-15 12:10:19 -04:00
Dzmitry Malyshau
a768af6011
Implement a fair bit of typifier logic, resolve access ids in WGSL
2020-03-15 10:59:12 -04:00
Dzmitry Malyshau
3c5a12412c
Typifier lookups into constants, variables, and structs
2020-03-15 10:59:12 -04:00
Dzmitry Malyshau
6ba942330a
Typifier skeleton
2020-03-15 10:59:12 -04:00
Dzmitry Malyshau
76eb307d35
Local variables, [wgsl] statement context
2020-03-14 09:36:26 -04:00
Dzmitry Malyshau
607b77899b
[wgsl] add Lexer::skip() helper
2020-03-14 09:36:26 -04:00
Dzmitry Malyshau
d6a4e05e05
[wgsl] add parse_block, use for if statements
2020-03-14 09:36:26 -04:00
Dzmitry Malyshau
16f018046a
[wgsl] make lexer Error-aware
2020-03-13 17:11:55 -04:00
Dzmitry Malyshau
cb72a92bce
[wgsl] improved decoration parsing
2020-03-12 14:13:42 -04:00
Dzmitry Malyshau
ee325a6a67
Add imported function calls
2020-03-12 14:13:42 -04:00
Dzmitry Malyshau
0f8e3e4b9b
Singular, intrinsic, and derivative expressions
2020-03-12 13:09:19 -04:00
Dzmitry Malyshau
5e78c71a44
Rename Token/Id to Handle and Storage to Arena consistently
2020-03-11 16:28:13 -04:00
Dzmitry Malyshau
7e0b004c16
[wgsl] refactor Token
2020-03-11 13:36:14 -04:00