Commit Graph

222 Commits

Author SHA1 Message Date
Jérôme Leclercq
33554cf5a0 Shader: Remove struct and functions that aren't required 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
d29876f448 Shader/SanitizeVisitor: Minor cleanup 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
db98b86eaf Core: Rewrite VirtualDirectory class and add more tests 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
db0c1e6e8c Shader: Add module resolver + use modules for engine shaders 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
98bd04e35a Shader/SanitizeVisitor: Fix an issue when double-sanitizing
... with differents parameters (like reducing loops to while, which introduces new variables which would take over existing var indices)
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
bf7f06ac4c Shader: Fix shader serialization 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
39a2992791 Shader: Minor module fixes 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
05cf98477e Shader: Add proper support for alias 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
ce93b61c91 Shader: Serialize cached expression type 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
d45ba6696f Shader: Rename VariableExpression to VariableValueExpression 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
1401c46d44 Shader: Better fix than 3ccec0ce 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
3c290c1d0e Shader: Fix unit tests 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
be9bdc4705 Modules are workings \o/ 2022-03-14 18:30:55 +01:00
Lynix
83d26e209e WIP2 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
012712b8d0 WIP 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
a7acf32886 Shader: Replace indices-based option keys by CRC32 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
53157875b9 Shader: Fix LangWriter not outputting const if 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
a4858d6793 Shader: Add comments to surround modules 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
4bded2182c Minor changes 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
53728200ac Shader: Add module ID (UUID) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
43ac86e85c Shader/Modules: proof of concept 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
7dab1d735f Shader: Add AstExportVisitor 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
073f1dc434 Shader/DependencyCheckerVisitor: Update default config 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
b6cd85d6fe Shader: Add import statement (not doing anything for now) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
ca83f363a3 Shader: Add export attribute for structs ([export]) 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
a2f4f3c802 Shader: Many fixes 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
1919bd3302 Fix compilation 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
0c3607579e Shader/ShaderLangParser: small refactor 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
99e07e6e1e Shader: Add module statement 2022-03-14 18:30:55 +01:00
Jérôme Leclercq
36aea2ca0c Shader/SanitizeVisitor: Fix sanitization of already sanitized AST with holes in indices
this happens when you sanitize an AST that went through a remove unused pass
2022-02-28 13:30:53 +01:00
Jérôme Leclercq
142f15d538 Fix dependency checker and add unit test 2022-02-28 13:28:59 +01:00
Jérôme Leclercq
96d87d9439 Merge fix 2022-02-27 18:54:45 +01:00
Jérôme Leclercq
bcfef75ec2 Merge branch 'master' into nzsl-modules 2022-02-27 18:44:44 +01:00
Jérôme Leclercq
6ee3899400 Shader/SanitizeVisitor: Fix variable shadowing 2022-02-27 18:43:38 +01:00
Jérôme Leclercq
0fe7f6b899 Shader/EliminateUnusedPassVisitor: Fix function call 2022-02-27 18:43:02 +01:00
Jérôme Leclercq
fbae413620 Shader/GlslWriter: Improve removal of unused code 2022-02-27 18:42:41 +01:00
Jérôme Leclercq
a155aa598e Shader: Move DependencyChecker to a public class 2022-02-26 16:08:16 +01:00
Jérôme Leclercq
6611cdf72e Minor fixes 2022-02-24 18:52:38 +01:00
Jérôme Leclercq
7ece44b4f4 Shader: Rename Optimize to ConstantPropagation 2022-02-22 13:28:01 +01:00
Jérôme Leclercq
a1b6f51398 Minor fixes 2022-02-21 20:46:37 +01:00
Jérôme Leclercq
e504c4a982 Minor fixes 2022-02-18 19:37:37 +01:00
Jérôme Leclercq
3f7815175b Shader: Add EliminateUnusedPassVisitor and use it when optimizing 2022-02-18 13:06:47 +01:00
Jérôme Leclercq
402e16bd2b Shader: Handle type as expressions 2022-02-17 13:23:56 +01:00
Jérôme Leclercq
e6951d54a5 Shader: Switch type<subtype> to type[subtype] 2022-01-26 19:24:46 +01:00
Jérôme Leclercq
b8a52b93e8 Shader/SPIRV: Handle arrays properly 2022-01-23 19:59:26 +01:00
Jérôme Leclercq
2463e471cc Shader/SPIRV: Fix issues with loops containing branches and cross product 2022-01-23 19:59:10 +01:00
Jérôme Leclercq
64efd81bf8 Shader: Handle matrix cast properly 2022-01-23 19:58:04 +01:00
Jérôme Leclercq
b0a3941f4e Add Phong lighting (WIP) 2022-01-11 19:47:29 +01:00
Jérôme Leclercq
756fd773a9 Shader: Add support for numerical fors 2022-01-06 20:38:55 +01:00
Jérôme Leclercq
2bdcc045cd Shader: Replace const for with [unroll] attribute 2022-01-03 20:21:09 +01:00