Commit Graph

222 Commits

Author SHA1 Message Date
Jérôme Leclercq
87ce2edc6e Shader: Add initial support for options (WIP) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
9fd4249a87 Shader: compilation fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
fce336bfc9 Shader: Fix struct attributes handling 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
d335d44d6a Shader: Cleanup and rename AST files 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
afe3a0ea93 Shader: Merge AstScopedVisitor, AstValidator and TransformVisitor to SanitizeVisitor 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
8515c9cea1 Shader: Improve ShaderAstCloner 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
0bb9c37a38 Shader/Lang: [[attribute]] => [attribute] 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
54c34869a4 Fix Shader unit tests 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
3e704b9ea6 Shader: Minor fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
85ce6a4f43 Shader: Fix struct nesting 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
0860a0689f Shader/GlslWriter: Improve GLSL readability 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
b234134abc Shader/ShaderLang: Add type inference for variable declaration 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
aababb205f Shader: Move attribute parsing to parser, simplifying writer code 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
bca1561f73 Shader/GlslWriter: Improve GLSL output 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
3499c1f92f Shader: Remove the need of layout(std140) in external block 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
ea99c6a19e Shader: First working version on both Vulkan & OpenGL (ES) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
f93a5bbdc1 Shader: Rework scope handling 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
09df5f389e Shader: Add SpirvDecoder 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
c1d1838336 ShaderLang: Proof of concept (add support for a lot of things) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
9d8ce8f2cd Shader: Add support for function attributes (entry) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
a318b28cd6 Shader: Improve SpirvPrinter output 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
593d80c80e SpirV grammar parser: Add result id operand and version info 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
f694eb767f Shader: Fix return type not being properly registered 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
5598487e87 ShaderLang: Improve lexer 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
da81a5b871 Shader: Add attribute parsing 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
8135f22b2f Shader: Add attribute and square bracket tokens (first step for attribute support) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
3f74ee4d66 Shader: Rework Parser internals 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
48b93a9dea Shader: Fix SPIRV generation 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
fed7370e77 Rework shader AST (WIP) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
b320b5b44e Shader: Add function parameters and return handling 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
9a0f201433 Initial shaderlang commit 2021-04-20 18:18:27 +02:00
Jérôme Leclercq
311cfeaf3c OpenGLRenderer: Fix Y flipping for FBOs 2021-02-20 19:23:29 +01:00
Jérôme Leclercq
36be581d9a Shader/SpirV: Fix missing OpSelectionMerge before branching 2021-02-19 14:51:06 +01:00
Jérôme Leclercq
32569eef5e Add SpirV masks and update grammar 2021-02-19 14:47:24 +01:00
Jérôme Leclercq
2ef772cec7 Merge branch 'nazara-next' into graphics-next 2021-01-28 16:37:46 +01:00
Jérôme Leclercq
711199fe51 Shader/ShaderAstOptimizer: Fix branch optimization 2021-01-15 19:19:19 +01:00
Jérôme Leclercq
a037eef4c9 Shader: Remove ShaderNode::GetExpressionType (replaced by visitor) and minor stuff 2021-01-14 22:01:53 +01:00
Jérôme Leclercq
00ac6e8a0a Shader: Add ShaderAstOptimizer 2021-01-14 22:01:05 +01:00
Jérôme Leclercq
acb998f67e ShaderAst: Add NoOp node 2021-01-14 21:58:06 +01:00
Jérôme Leclercq
a9f2e05b57 Fix typo in enum 2021-01-14 21:56:55 +01:00
Jérôme Leclercq
4d63d6e022 Shader: Add basic support for Branch node in spir-v 2021-01-04 10:27:08 +01:00
Jérôme Leclercq
44bc86d082 Shader/SpirvWriter: Rename MergeBlocks to MergeSections
to avoid confusion with SpirV blocks
2021-01-03 11:11:54 +01:00
Jérôme Leclercq
f327932738 Commit current work
Reworked conditions, added uber-shaders, comparison nodes, fixed Discard
2021-01-02 21:15:59 +01:00
Jérôme Leclercq
ed72d668d9 Shader: Add Discard node 2020-12-30 20:05:16 +01:00
ImperatorS79
143d7d391a Remove Value for size_t and correctly fix the problem 2020-11-21 20:21:26 +01:00
ImperatorS79
4bf49876c6 Build Nazara on macos up to Nazara_network (not included 2020-11-21 20:05:19 +01:00
Jérôme Leclercq
960817a1f1 Add conditional expression/statement support for shaders 2020-11-19 13:56:54 +01:00
Jérôme Leclercq
65337c6a38 Fix a lot of warnings and some errors 2020-09-26 11:44:09 +02:00
Jérôme Leclercq
2b6a463a45 Remove Nz::String and Nz::StringStream 2020-09-25 19:31:01 +02:00
Lynix
d665af1f9d Shader/SpirV: Fix sampler storage class 2020-09-22 21:50:56 +02:00