Jérôme Leclercq
|
4465e230af
|
Shader/NZSL: Add support for array indexing
|
2021-06-01 16:22:41 +02:00 |
Jérôme Leclercq
|
0f3c0abb96
|
Shader/ShaderAst: Rename AccessMember* to Access*
|
2021-06-01 12:38:17 +02:00 |
Jérôme Leclercq
|
16e2f5f819
|
Shader: Add support for depth_write and early_fragment_tests attributes (+ FragDepth builtin)
|
2021-06-01 12:32:24 +02:00 |
Jérôme Leclercq
|
465837ff12
|
Renderer: Add support for cubemaps
|
2021-06-01 12:30:37 +02:00 |
Jérôme Leclercq
|
2f8a82ed05
|
Shader/ShaderBuild: Fix ambiguity for AccessMember
|
2021-05-29 00:56:04 +02:00 |
Jérôme Leclercq
|
109b2a156e
|
OpenGLRenderer: Allow RenderPipeline without a fragment shader on OpenGL ES
|
2021-05-29 00:32:00 +02:00 |
Jérôme Leclercq
|
58fe411750
|
Shader/GlslWriter: Move function forward declaration before functions using them
Because of some weird ass shit bug in nvidia driver if functions were forward declared before declaration of UBO they were using
|
2021-05-26 22:21:57 +02:00 |
Jérôme Leclercq
|
e7a2573221
|
Shader: Add support for FragCoord builtin
|
2021-05-26 22:17:07 +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
|
a002d5c210
|
Shader: Add constant cast optimization
|
2021-05-18 17:25:37 +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
|
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
|
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
|
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
|
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
|
0860a0689f
|
Shader/GlslWriter: Improve GLSL readability
|
2021-04-20 18:18:27 +02:00 |
Jérôme Leclercq
|
a90937eb4f
|
Update ShaderNode
|
2021-04-20 18:18:27 +02:00 |
Jérôme Leclercq
|
4bca87b1cb
|
Shader: Add IsExpression/IsStatement
|
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
|
0f15387c6c
|
Shader: Add ShaderAst::Clone free function
|
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
|
593d80c80e
|
SpirV grammar parser: Add result id operand and version info
|
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
|
32569eef5e
|
Add SpirV masks and update grammar
|
2021-02-19 14:47:24 +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 |
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
|
79c53061e0
|
Shader: Add type functions
|
2020-09-22 21:50:07 +02:00 |
Lynix
|
9c2c62b063
|
Shader/ShaderAst: Add some noexcept specifiers
|
2020-09-22 21:24:51 +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
|
7d2673eabd
|
Shader: Fix shader serialization
|
2020-09-01 18:46:57 +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
|
3fe70476bb
|
Workaround some GCC bug
|
2020-08-27 22:58:44 +02:00 |
Jérôme Leclercq
|
36120b9501
|
Compilation fixes
|
2020-08-27 20:24:27 +02:00 |
Jérôme Leclercq
|
c87affe276
|
Fix redefinition of type
|
2020-08-27 20:12:54 +02:00 |
Jérôme Leclercq
|
df51526841
|
Fix some compilation errors
|
2020-08-27 20:02:20 +02:00 |
Jérôme Leclercq
|
9b313dac2e
|
Quality of life improvements
|
2020-08-24 17:14:01 +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 |