Commit Graph

201 Commits

Author SHA1 Message Date
Jérôme Leclercq
e7a2573221 Shader: Add support for FragCoord builtin 2021-05-26 22:17:07 +02:00
Jérôme Leclercq
874fb3542e Convert all remaining enums to enum classes (!) 2021-05-25 10:40:07 +02:00
Jérôme Leclercq
ac57b3fbf4 Shader/GlslWriter: Accepts mono-functions shader without specifying entry points 2021-05-25 10:40:07 +02:00
Jérôme Leclercq
cce32a64d4 Upgrade Utility 2021-05-25 10:40:07 +02:00
Jérôme Leclercq
709604c070 Shader/Spirv: Fix OpFunctionParameter type 2021-05-22 16:45:57 +02:00
Jérôme Leclercq
f6fd996bf1 Shader: Add support for custom functions calls (and better handle intrinsics) 2021-05-22 13:37:54 +02:00
Jérôme Leclercq
a7235ab02d Shader: Add support for max/min intrinsic 2021-05-19 20:31:26 +02:00
Jérôme Leclercq
0339ea346f Shader: Fix unary plus/minus on vector 2021-05-19 20:30:29 +02:00
Jérôme Leclercq
82d80a68ff Shader: Cleanup optimizer 2021-05-18 17:25:48 +02:00
Jérôme Leclercq
a002d5c210 Shader: Add constant cast optimization 2021-05-18 17:25:37 +02:00
Lynix
b0b1acf497 Shader: Fix LangWriter 2021-05-17 17:43:38 +02:00
Lynix
ccccbfe0ad Shader/SpirV: Fix UInt32 support 2021-05-16 23:14:39 +02:00
Lynix
61d082e61b Shader/ShaderWrite: Add optimize bool 2021-05-16 23:08:36 +02:00
Lynix
525f24af2e Shader/ShaderLang: Add support for Unary operators 2021-05-16 23:07:25 +02:00
Jérôme Leclercq
8840f0bba8 Shader: Fix SPIRV operand for vector / primitive division 2021-05-14 02:10:29 +02:00
Jérôme Leclercq
bb207fea4f Shader: Fix Swizzle generation for SPIRV 2021-05-14 02:09:54 +02:00
Jérôme Leclercq
830ec6ac94 Add a few helper functions 2021-05-14 02:09:25 +02:00
Jérôme Leclercq
51ecff2912 ShaderLang: Add support for length intrinsic 2021-05-14 02:02:12 +02:00
Jérôme Leclercq
61dbd91346 Lot of small fixes/improvements 2021-05-14 01:48:47 +02:00
Jérôme Leclercq
961c3bf1df Shader: Fix LangWriter generation 2021-05-05 12:06:02 +02:00
Jérôme Leclercq
7d4a084a62 Shader/Parser: Fix handling of . in rvalues + add support for swizzling
For example: var.field was okay but texture.Sample(uv).x wasn't
2021-05-05 12:05:46 +02:00
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