Commit Graph

130 Commits

Author SHA1 Message Date
Jérôme Leclercq eb67990b7b Shader: Fix SpirV generation for Swizzle expressions
+ fix OpSampledImage
2021-05-05 12:04:09 +02:00
Jérôme Leclercq 0cc392b78f Shader/SpirvWriter: Fix Image not registering Float as a dependent type 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 044195b209 Minor fixes 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 2238bbfa0c Shader: Add AstReflect 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 500ccda85a Shader: StatementPtr& => const StatementPtr& 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 1a8599ba29 Shader: Add sanitization of identifiers (fixes GLSL generation) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 5bdbb866b5 Shader: Add LangWriter (outputs NZSL) 2021-04-20 18:18:27 +02:00
Jérôme Leclercq 3a7f5c2630 Shader: Fix optimization 2021-04-20 18:18:27 +02:00
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
Lynix 79c53061e0 Shader: Add type functions 2020-09-22 21:50:07 +02:00
Jérôme Leclercq 36d3c51eeb Add module configurations 2020-09-17 20:10:39 +02:00
Jérôme Leclercq fd1d416510 Rename Module to ModuleBase 2020-09-11 13:39:18 +02:00
Jérôme Leclercq a7fac3beb8 Rework modules 2020-09-10 20:12:09 +02:00
Jérôme Leclercq ae34533595 Minor fixes 2020-09-01 18:47:08 +02:00
Jérôme Leclercq 7d2673eabd Shader: Fix shader serialization 2020-09-01 18:46:57 +02:00
Jérôme Leclercq 8d873a8307 Fix a lot of small errors/warnings 2020-08-28 15:42:19 +02:00
Jérôme Leclercq 0ff0425045 Some more fixes, hopefully GCC will stop shitting itself now 2020-08-27 23:22:13 +02:00
Jérôme Leclercq 4aee707bb4 Some more fixes 2020-08-27 21:43:19 +02:00
Jérôme Leclercq 36120b9501 Compilation fixes 2020-08-27 20:24:27 +02:00
Jérôme Leclercq df51526841 Fix some compilation errors 2020-08-27 20:02:20 +02:00
Jérôme Leclercq 63f259b907 SpirvAstVisitor: Add safety assert 2020-08-24 16:49:59 +02:00
Jérôme Leclercq f5fa211609 ShaderAstCloner: Fix Swizzle case 2020-08-24 16:49:38 +02:00
Jérôme Leclercq ba777ebbca Shader/SpirvPrinter: Add settings 2020-08-24 16:49:14 +02:00
Jérôme Leclercq 77b66620c9 Refactor SpirV classes
SpirvStatementVisitor was merged with SpirvExpressionLoad
SpirvExpressionLoadAccessMember was renamed SpirvExpressionLoad
2020-08-23 21:56:30 +02:00
Jérôme Leclercq 93de44d293 Big SpirVWriter refactor 2020-08-23 18:32:28 +02:00
Jérôme Leclercq 66a14721cb Shader/Spirv: Put types and constants in the same section 2020-08-21 22:51:11 +02:00
Jérôme Leclercq cd23c01ace Shader: AccessMember can now access nested fields 2020-08-21 22:50:30 +02:00
Jérôme Leclercq 9df219e402 Add SpirvConstantCache
And unsigned int types for shaders
2020-08-20 01:05:16 +02:00
Jérôme Leclercq 0b507708f4 Shader/SpirvWriter: Split section to another class + improve variadic parameters support 2020-08-18 00:00:05 +02:00
Jérôme Leclercq 73e88a2573 Add Spir-V header/source generator 2020-08-17 23:59:08 +02:00
Jérôme Leclercq 837a6585a1 Split shader generation to a new module 2020-08-11 00:00:36 +02:00