Commit Graph

1079 Commits

Author SHA1 Message Date
lawnjelly 66f519bc87 Prevent drawing MultiMesh with zero instance count
Issuing a driver drawcall for MultiMesh with zero instances crashes some drivers.

(cherry picked from commit a300505066)
2022-09-20 10:24:30 +02:00
lawnjelly b44d47f582 Fix GLES directional shadow uninitialized data
Valgrind shows directional_shadow.fbo accessed when uninitialized in directional_shadow_create.

(cherry picked from commit 9b294b298e)
2022-09-09 14:29:55 +02:00
Jordan Schidlowsky 6a6d595286 workaround for angle project issue 7245, safari, iOS
(cherry picked from commit 1ed1a3067b)
2022-08-30 11:20:16 +02:00
Pedro J. Estébanez e44c18ecc0 Fix GI probes not working in the ubershader
(cherry picked from commit edb140839e)
2022-08-08 16:25:37 +02:00
Pedro J. Estébanez 0af799d2a7 Fix emission not working in the ubershader
(cherry picked from commit ea6ed9658d)
2022-08-08 16:25:37 +02:00
Pedro J. Estébanez f3adb06938 Fix shadow flickering with async shader compilation
This mostly reverts the approach in #62628, which now the problem is better scoped, looks overengineered and instead focuses on the few cases where there's something to take care of.

(cherry picked from commit a2ed82d3b2)
2022-08-08 16:25:37 +02:00
lawnjelly ec82655ca0 Fix skeleton 2D stale bounding rect
Adds special logic for handling skeleton bounding rect updates. Previously these were never being updated because the canvas item is never set to "rect_dirty".

(cherry picked from commit 18bb668a2e)
2022-08-08 13:35:18 +02:00
Rémi Verschelde 818f1eed31 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 14:53:37 +02:00
Markus 4abe07c811 Apply S3TC Android/iOS fix to GLES3 2022-07-11 12:12:17 +02:00
Pedro J. Estébanez 65a83785fd Avoid GL undefined behavior in ubershaders 2022-07-02 19:54:02 +02:00
Rémi Verschelde 772d071863 SCons: Properly track codegen script dependency for generated GLES headers 2022-07-02 15:52:42 +02:00
Pedro J. Estébanez a46da9311e Fix shadows not casted by async hidden materials 2022-06-26 21:21:07 +02:00
lawnjelly 9482998a03 Synchronous shaders in editor
The old style synchronous shaders allow the project manager and editor to load faster.
2022-06-22 14:14:32 +01:00
Pedro J. Estébanez 0868122aad Fix change to singed shader conditional flags
This change was missing from commit d3d8ccea60.
2022-06-20 17:02:40 +02:00
Pedro J. Estébanez d3d8ccea60 Use signed integers for async shader conditionals 2022-06-19 20:16:27 +02:00
Rémi Verschelde 118302d01c GLES3: Fix async shader compilation after #62021
Fixes #62047.
2022-06-15 13:40:58 +02:00
Pedro J. Estébanez 1d01acb486 Fix issues with unsigned types in GL ES 3 shader class 2022-06-14 11:43:58 +02:00
Pedro J. Estébanez f46d7583ff Add INFO_SHADER_COMPILES_IN_FRAME to GL ES 3 render info 2022-06-13 18:53:15 +02:00
lawnjelly f8df04ed50 More low priority redraw request cases
Some more cases of textures etc causing continuous updates in vital updates only mode are fixed.
2022-06-12 06:44:59 +01:00
clayjohn f92141be13 Disable Alpha throughout Glow and FXAA code in order to avoid issues with transparent viewports 2022-05-26 11:15:35 -07:00
clayjohn 9927515254 Disable alpha in post process when using opaque framebuffer 2022-05-24 14:11:09 -07:00
clayjohn 027ec28126 Disable writing to alpha with opaque framebuffer 2022-05-24 10:30:49 -07:00
clayjohn 3374bae953 Fixed Bug where DoF incorrectly wrote to alpha channel amd bug with tonemap shaders 2022-05-18 13:19:42 -07:00
Hugo Locurcio 3762b40de7
Merge pull request #54585 from Kinwailo/fix_viewport_transparent_bg
Fix viewport with transparent bg changed to solid black if enable fxaa or debanding.
2022-05-16 08:28:36 +02:00
Kinwailo b1a50ad805 fix post procressing with transparent bg and keep alpha channel of the tonemap shader output 2022-05-12 16:32:31 +08:00
clayjohn b0b1e44bc1 Unbind vertex buffer before calculating blend shapes 2022-05-06 12:21:35 -07:00
Pedro J. Estébanez 41fc0abf77 Fix handling of async hidden render mode
- Mute errors when conditioned shader is not ready yet
- Avoid depth pre-pass on meshes that would end up black
2022-04-12 20:11:20 +02:00
Rémi Verschelde 3eee2f45a3
Merge pull request #57674 from RandomShaper/fix_ubershader_android
Improve ubershader compatibility
2022-03-13 00:53:48 +01:00
Ansraer 2fb998bfbc Fix alpha scissor support 2022-03-11 16:18:19 +01:00
Rémi Verschelde 2dec5db5df
Merge pull request #58357 from BastiaanOlij/fix_external_viewport_texture 2022-03-07 13:18:33 +01:00
Omar El Sheikh 9988739332 Fix shader state caching when blend shapes used
Previously, conditionals set on the shader would change outside of the
_render_list function when blend shapes were used

This is an issue because the function keeps track of the previous shader
state to try to minimize state changes

Now we keep all this shader state change within the _render_list
function to ensure the saved previous state is correct
2022-03-05 16:33:17 -05:00
Bastiaan Olij 7e2c4aac7e Fix external textures not working correctly with viewport texture 2022-02-22 14:24:34 +11:00
lawnjelly 522bce1159 Fixed Timestep Interpolation (3D)
Adds fixed timestep interpolation to the visual server.
Switchable on and off with project setting.

This version does not add new API for set_transform etc, when nodes have the interpolated flag set they will always use interpolation.
2022-02-16 09:41:23 +00:00
lawnjelly 3dc0e97d05 Fix incorrect buffer upload size in GLES2 draw_gui_primitive
The buffer upload size appears to have been incorrect for quite some time, which causes uploading from undefined memory.
2022-02-15 17:24:51 +00:00
lawnjelly 614dc363ab Fix GL buffer upload size bugs
Wrapper functions for uploading buffers to OpenGL take all sizes and offsets in bytes. Some buffer sizes are specified as units (e.g. float) so require conversion to bytes when calling the buffer upload functions.

Two such bugs have been fixed in blendshapes, and parameter names and comments have been changed to emphasize that sizes should be in bytes.

In addition DEV_ASSERTS in the upload wrappers have been changed to ERR_FAIL.
2022-02-14 10:56:06 +00:00
Rémi Verschelde d0b446c6d5
Merge pull request #45372 from Firepal/prepass-nightmares 2022-02-11 15:19:26 +01:00
Firepal ff55157d3f Don't use prepass threshold with alpha scissor 2022-02-11 12:01:15 +01:00
Rémi Verschelde 7a16bb2ee4
Fix typos with codespell
Using codespell 2.2-dev from current git.

Added `misc/scripts/codespell.sh` to make it easier to run it once in a
while and update the skip and ignore lists.

(cherry picked from commit 1bdb82c64e)
2022-02-11 09:50:59 +01:00
Pedro J. Estébanez 0d1ec9a7cf Improve ubershader compatibility
- Prevent debug enforced use of ubershader on shaders not supporting it
- Use unsigned integer for ubershader flags
- Add project setting for disabling async shader compilation on mobile
- Stop sampling some textures through different kinds of samplers at the same time
2022-02-05 22:12:31 +01:00
lawnjelly a0c6d16c90 Add editor vital redraws only option
When editor continuous redraws is switched off, the editor only redraws when a redraw_request was issued by an element in the scene. This works well in most situations, but when scenes have dynamic content they will continuously issue redraw_requests.

This can be fine on high power desktops but can be an annoyance on lower power machines.

This PR splits redraw requests into high and low priority requests, defaulting to high priority. Requests due to e.g. shaders using TIME are assigned low priority.

An extra editor setting is used to record the user preference and an extra option is added to the editor spinner menu, to allow the user to select between 3 modes:

* Continuous
* Update all changes
* Update vital changes
2022-02-02 11:26:45 +00:00
Rémi Verschelde 6c0c0c4b29
Merge pull request #54165 from Calinou/directional-shadow-runtime-change-3.x
Allow changing directional shadow size at run-time
2022-01-22 15:25:09 +01:00
Hugo Locurcio a80187f5bc
Fix visible background line in intersections in screen-space reflections
Adjusting the step grading by one resolves the issue without affecting
performance or introducing adverse artifacts.
2022-01-16 18:00:13 +01:00
Rémi Verschelde 22166639ed
Merge pull request #56366 from Calinou/async-shaders-use-in-editor
Use asynchronous shader compilation and cache in the editor if requested
2022-01-16 10:34:07 +01:00
Rémi Verschelde 31c7f13ea4
Merge pull request #56802 from jnlopar/oren_nayer_vert_lighting_bug
Fixes broken scene shader compile due to undefined 'diffuse_color' variable with Oren Nayar + Vertex Lighting
2022-01-15 09:19:43 +01:00
Jason Neufeld 36c3b87883 Fixes shader compile due to undefined 'diffuse_color' variable with Oren Nayer + Vertex Lighting 2022-01-14 13:09:30 -08:00
Rémi Verschelde a627cdafc5
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-13 15:54:13 +01:00
Rémi Verschelde b197de6f5f
Fix typos with codespell
Using codespell 2.1.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
readded
seeked
statics
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2022-01-07 00:14:54 +01:00
Rémi Verschelde 25369acff9
Merge pull request #51708 from Calinou/viewport-add-32bpc-color-depth 2022-01-04 14:30:24 +01:00
Rémi Verschelde cc6e0e7fb3
Merge pull request #56161 from The-O-King/blend_shapes_octahedral 2022-01-04 14:09:49 +01:00
Brian Semrau 2c60c29340 Fix GPU particles transform feedback for WebGL 2 2022-01-03 00:20:42 -05:00