Pedro J. Estébanez
4c710780d4
Implement async shader compilation plus caching for GL ES 3
...
Async. compilation via ubershader is currently available in the scene and particles shaders only.
Bonus:
- Use `#if defined()` syntax for not true conditionals, so they don't unnecessarily take a bit in the version flagset.
- Remove unused `ENABLE_CLIP_ALPHA` from scene shader.
- Remove unused `PARTICLES_COPY` from the particles shader.
- Remove unused uniform related code.
- Shader language/compiler: use ordered hash maps for deterministic code generation (needed for caching).
2021-11-09 12:19:12 +01:00
Rémi Verschelde
42d385b312
clang-format: Disable alignment of operands, too unreliable
...
Sets `AlignOperands` to `DontAlign`.
`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 13:23:38 +02:00
Rémi Verschelde
51dd4d0c6c
Merge pull request #49509 from Chaosus/shader_time_3.x
2021-08-16 19:42:55 +02:00
Yuri Roubinsky
8a1c986455
[3.x] Fix shader crash when using local var with the same name as varying
2021-08-13 09:30:35 +03:00
Yuri Roubinsky
34f7ceefe0
Allow using more assignment operators on matrixes in shaders
...
(cherry picked from commit 0f42a29864
)
2021-08-12 16:42:17 +02:00
Yuri Roubinsky
144e0856a4
Fix shader crash when using varying array in fragment->light context
...
(cherry picked from commit fead1595f9
)
2021-08-12 16:42:17 +02:00
Yuri Roubinsky
8b6d9ab956
Fix varying usage in custom functions [3.x]
2021-07-28 08:11:35 +03:00
Rémi Verschelde
940ca74ccf
Merge pull request #50889 from Chaosus/shader_const_array_3.x
...
[3.x] Implemented global const array to shaders
2021-07-27 13:05:32 +02:00
Yuri Roubinsky
1e191847c7
[3.x] Implemented global const array to shaders
2021-07-26 16:29:39 +03:00
Yuri Roubinsky
0a99613e53
Backport latest varying fixes to 3.x (2)
2021-07-26 15:40:42 +03:00
Yuri Roubinsky
1e128c80c6
Backport latest varying fixes to 3.x
2021-07-22 08:43:12 +03:00
Yuri Roubinsky
2d7c9f1ef1
[3.x] Makes shader 'TIME' available in custom functions by default
2021-06-11 15:23:24 +03:00
Hugo Locurcio
a38b447413
Highlight control flow keywords with a different color
...
This makes them easier to distinguish from other keywords.
2021-05-25 00:31:39 +02:00
Yuri Roubinsky
2d1f8f2352
Prevents shader crash if two struct with the same name are declared
2021-05-14 11:28:49 -07:00
Yuri Roubinsky
ac547031d5
Prevents shader crash if passing invalid struct to the return statement
2021-05-14 11:28:49 -07:00
Yuri Roubinsky
ae8de1f2ce
Fix shader crash if duplicated struct members created
2021-05-14 11:28:49 -07:00
Lyuma
fba6b62054
Backport dd0874e
"Allow passing varying from fragment to light shader function" to 3.4
2021-05-14 11:28:48 -07:00
Lyuma
0c028ad96e
Backport bc0e8e7
"Fix using post-init shader array constructors" to 3.4
2021-05-14 11:28:48 -07:00
Lyuma
25016bf715
Backport 6b99bda
"Added support for arrays as shader struct members" to 3.4
2021-05-14 11:28:48 -07:00
Lyuma
fc6bee0750
Backport 6f16239
"Implementation of struct for shaders" to 3.4
2021-05-14 11:28:48 -07:00
Rémi Verschelde
140350d767
Style: Enforce braces around if blocks and loops
...
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde
a828398655
Style: Replaces uses of 0/NULL by nullptr (C++11)
...
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
Rémi Verschelde
b5e1e05ef2
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
2021-05-04 14:45:16 +02:00
Rémi Verschelde
64a63e0861
Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine
2021-05-04 14:45:15 +02:00
Rémi Verschelde
3d15f04668
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine
2021-05-04 14:45:15 +02:00
Hugo Locurcio
0c6873b13e
Tweak shader errors for features only usable in GLES3
...
See https://github.com/godotengine/godot/issues/42719#issuecomment-792168504 .
2021-03-07 13:27:13 +01:00
Ev1lbl0w
3fe851accc
Added missing returns on error scenarios
...
(cherry picked from commit 3d9ef1e4de
)
2021-03-02 10:26:14 +01:00
Yuri Roubinsky
29616f4a35
Fix parsing hexadecimal (lowercase e
,f
) in shaders
...
(cherry picked from commit 19e0a1ec9d
)
2021-03-02 10:26:14 +01:00
Rémi Verschelde
49646383f1
Update copyright statements to 2021
...
Happy new year to the wonderful Godot community!
2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.
We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)
Here's to a great year 2021 for all Godot users 🎆
(cherry picked from commit b5334d14f7
)
2021-01-13 16:17:06 +01:00
Rémi Verschelde
c8859f0463
Fix typos with codespell
...
Using codespell 1.17.1.
Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF
$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2020-09-18 14:09:51 +02:00
Yuri Roubinsky
ecd54630ef
[3.2] Fix some incorrect conversions which lead to crash in shaders
2020-07-15 06:36:24 +03:00
Yuri Roubinsky
891b84a833
[3.2] Prevents usage of return in main shader functions
2020-06-27 17:38:22 +03:00
Yuri Roubinsky
474b178534
[3.2] Fix shader crash if pass const argument to 'out/inout' parameter
2020-06-25 10:27:37 +03:00
Yuri Roubinsky
ee93c85ef1
Fix shader constant sorting
2020-03-31 14:32:33 +03:00
Yuri Roubinsky
4dd1eee769
Enables passing out built-in parameter from parent function in shaders
...
(cherry picked from commit 7a2c6a8c0e
)
2020-03-25 11:38:53 +01:00
fhuya
30d738eda7
Add support for opengl external textures as defined by https://www.khronos.org/registry/OpenGL/extensions/OES/OES_EGL_image_external.txt
2020-03-05 13:09:49 -08:00
Yuri Roubinsky
3b2490f19c
Prevent shader crash if invalid builtin used after array member accessor
...
(cherry picked from commit 3a70566b15
)
2020-02-14 16:02:21 +01:00
Yuri Roubinsky
0995696e08
Prevent shader crash when name conflict with "dus" and "__" occured
...
(cherry picked from commit 2c4367441c
)
2020-02-06 13:02:07 +01:00
Yuri Roubinsky
3473a195fc
Hides high-level functions from GLES2 shader autocompletion
2020-01-23 12:41:21 +03:00
Yuri Roubinsky
4c456ef979
Disallow uint/uvec usage on GLES2 platform
2020-01-20 18:59:35 +03:00
Yuri Roubinsky
3dea1c725e
Clears completion_class in shaders (may cause troubles if not).
2020-01-19 16:35:54 +03:00
Yuri Roubinsky
1eb8d5e142
Added missing form of array constructor in shaders
2020-01-18 11:41:55 +03:00
Yuri Roubinsky
5098232ee6
Disabled array initialization, const array and arr.length in shaders
2020-01-16 11:46:11 +03:00
Yuri Roubinsky
1e154e0947
Fix nested break/return in shader switch statement
2020-01-10 11:57:56 +03:00
Rémi Verschelde
5edd1a27d2
Merge pull request #34671 from Chaosus/shader_hex_support
...
Support for hex numbers in shaders
2020-01-08 10:01:49 +01:00
Rémi Verschelde
a7f49ac9a1
Update copyright statements to 2020
...
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Yuri Roubinsky
99b92c885f
Support for hex numbers in shaders
2019-12-29 12:19:10 +03:00
Rémi Verschelde
2845e6a21a
Merge pull request #34040 from qarmin/unused_variable_more_precise_numbers
...
Removed unused variables, add some constants numbers
2019-12-10 08:25:31 +01:00
Rafał Mikrut
ed1c4bc77d
Removed unused variables, add some constants numbers
2019-12-10 05:13:02 +01:00
Yuri Roubinsky
8b8faf03d5
Fix expressions for global constants in shaders
2019-12-02 19:00:21 +03:00