Rémi Verschelde
550f5a577f
Merge pull request #90055 from Sauermann/fix-add-tbg-check
...
Add early return when setting `transparent_bg`
2024-04-04 14:36:54 +02:00
Rémi Verschelde
64c4a53a2c
Merge pull request #89849 from EIREXE/cute_and_funny_decals
...
Fix decal modulate being passed as srgb instead of as linear color.
2024-04-04 14:31:53 +02:00
Rémi Verschelde
a28be933ee
Merge pull request #89398 from clayjohn/visual-debugger-coverage
...
Increase coverage of timestamps for visual profiler
2024-04-04 14:31:19 +02:00
Rémi Verschelde
69a4ff8996
Merge pull request #88328 from Khasehemwy/reversed-z
...
Use Reverse Z for the depth buffer
2024-04-04 14:30:53 +02:00
Khasehemwy
d950f5f838
Use Reverse Z for the depth buffer
2024-04-04 13:54:15 +02:00
Bastiaan Olij
9e9a6fb6d6
Can't use subpasses when we're using Canvas background mode in Mobile
2024-04-04 15:59:11 +11:00
clayjohn
ac6c648645
Increase coverage of timestamps for visual profiler
2024-04-03 19:29:02 -07:00
lawnjelly
691854d589
Jitter raster occlusion camera to reduce false positives.
...
Due to the low resolution of the occlusion buffer, small gaps between occluders can be closed and incorrectly occlude instances which should show through the gaps. To ameliorate this problem, this PR jitters the occlusion buffer over time, making it more likely an instance will be seen through a gap. This is used in conjunction with an occlusion timer per instance, to prevent instances flickering on and off rapidly.
2024-04-03 12:18:45 +01:00
Markus Sauermann
d14a84a166
Add early return when setting `transparent_bg`
...
Fix memory leak on Mac.
2024-03-30 22:33:54 +01:00
Rémi Verschelde
2597f60de1
Merge pull request #88830 from beiller/bugfix/taa_xr_fix
...
Add fix for TAA passes rendering black meshes on XR
2024-03-26 13:45:10 +01:00
jitspoe
a0969a0931
Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance.
2024-03-25 21:25:56 -04:00
Álex Román Núñez
2f0ba1ed3f
Fix decal modulate being passed as srgb instead of as linear color.
2024-03-24 14:59:43 +01:00
Rémi Verschelde
70c05f63da
Merge pull request #89531 from sullyscience/fix-resource-leaks
...
Fix mobile renderer RID leaks
2024-03-24 01:16:48 +01:00
Rémi Verschelde
cd4e4c0fcc
Merge pull request #89111 from AThousandShips/vec_use
...
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-24 01:14:51 +01:00
Ricardo Buring
2ed2ccc2d8
Fixed Timestep Interpolation (2D)
...
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
ze2j
993cd25ff2
Fix false positive errors in gdshaderinc files
...
These language features are wrongly detected as errors (not supported)
when used in gdshaderinc files:
- instance uniforms
- hint_normal_roughness_texture
- hint_depth_texture
This type of error should only occur when the shader type is not spatial
and not a gdshaderinc file.
2024-03-21 15:46:41 +01:00
lawnjelly
70cd25f3eb
Tighter shadow culling - fix light colinear to frustum edge
...
In rare situations if a light is placed near colinear to a frustum edge, the extra culling plane derived can have an inaccurate normal due to floating point error.
This PR detects colinear triangles, and prevents adding a culling plane in this situation.
2024-03-20 16:47:54 +00:00
A Thousand Ships
79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-20 13:47:42 +01:00
David Sullivan
dfa326ef55
Fix: Address mobile resource leaks in render
...
Update render_forward_mobile destructor to include instance buffers.
Update render_scene_buffers_rd cleanup to include weight buffers / blur
textures.
2024-03-15 14:48:12 -04:00
Rémi Verschelde
3e79cdbee2
Merge pull request #89450 from RandomShaper/fix_inside_lights
...
Fix missed light clusters when inside clipped lights
2024-03-14 22:34:56 +01:00
Rémi Verschelde
453485aede
Merge pull request #89270 from Repiteo/enforce-typename-in-templates
...
Enforce template syntax `typename` over `class`
2024-03-14 22:34:37 +01:00
Pedro J. Estébanez
605fdb655c
Fix missed light clusters when inside clipped lights
2024-03-13 23:38:46 +01:00
Aaron Franke
9e0b38ecd3
Disable XR server when compiling without 3D
2024-03-13 09:02:10 -07:00
Pedro J. Estébanez
49625beac2
Ensure specialization constants come sorted from reflection
2024-03-12 14:42:01 +01:00
Rémi Verschelde
f040a351c2
Merge pull request #89381 from aaronfranke/disable-3d
...
Disable all 3D nodes, physics, and resources when compiling without 3D
2024-03-11 14:02:57 +01:00
Aaron Franke
6aac3e4a16
Disable all 3D nodes, physics, and resources when compiling without 3D
2024-03-11 01:00:55 -07:00
Bastiaan Olij
df8ff797b7
Consistantly use USE_MULTIVIEW as the define in shaders
2024-03-11 14:40:00 +11:00
Rémi Verschelde
5c6614fd52
Merge pull request #89281 from permelin/fix-lm-capture-octant
...
Fix lightmap captures not applied in one octant
2024-03-09 00:52:19 +01:00
Rémi Verschelde
ffc41fb76d
Merge pull request #89277 from RandomShaper/rdd_public_shader_desc
...
Make `ShaderDescription` and related types public
2024-03-08 13:09:50 +01:00
Rémi Verschelde
f8140a4e9a
Merge pull request #89253 from Calinou/debug-draw-modes-ignore-decals-2
...
Make Overdraw, Lighting and Shadow Splits debug draw modes ignore decals
2024-03-08 13:09:40 +01:00
Rémi Verschelde
cebaf9dac5
Merge pull request #89042 from permelin/fix-particle-trail-activation
...
Fix early activation of particle trail sections
2024-03-08 13:09:25 +01:00
Per Melin
46610117d3
Fix lightmap capture not applied in one octant
...
GI from probe captures was not applied to dynamic objects in the (-,-,-)
octant of the lightmap. If the object had traveled from a different part
of the lightmap, it would simply not update anymore and kept whatever
ambient light it had from before. If the object on the other hand came
from outside of the lightmap into this octant, it would receive no
ambient light at all.
2024-03-08 12:43:38 +01:00
Pedro J. Estébanez
560e79c67f
Make ShaderDescription and related types public
2024-03-08 09:55:44 +01:00
Thaddeus Crews
9903e6779b
Enforce template syntax `typename` over `class`
2024-03-07 22:39:09 -06:00
Hugo Locurcio
26a220bd31
Make Overdraw, Lighting and Shadow Splits debug draw modes ignore decals
...
This also makes the Overdraw and Shadow Splits debug draw modes ignore fog.
The Lighting debug draw mode still displays fog as that debug draw mode
is intended to preview scene lighting, and fog has an impact on how
lighting is perceived.
2024-03-07 17:40:49 +01:00
Rémi Verschelde
ec55028f26
Merge pull request #89209 from RandomShaper/padding_for_dummies
...
Make shader binary alignment handling simpler and more robust
2024-03-06 13:17:09 +01:00
Pedro J. Estébanez
f77b4d155b
Make shader binary alignment handling simpler and more robust
...
Bonus:
Also simplified the rounding to block size in image size calculations.
2024-03-06 11:48:23 +01:00
Rémi Verschelde
e74f4ea115
Vulkan: Don't warn about pipelines cache if missing
...
It used to warn when opening a new project because no cache pre-exists,
which isn't particularly helpful.
Also include the rendering method in the cache filename, as it differs
between Forward+ and Mobile for a same GPU.
2024-03-05 16:39:14 +01:00
Rémi Verschelde
a52e575652
Merge pull request #89134 from BastiaanOlij/fix_recursive_reflection_probes
...
Fix never ending loop with overlapping probes
2024-03-05 09:56:05 +01:00
Bastiaan Olij
a5d3d23db4
Fix never ending loop with overlapping probes
2024-03-05 10:07:56 +11:00
Rémi Verschelde
3be5d9b01a
Merge pull request #89046 from permelin/fix-particle-aabb-recalc-with-userdata
...
Fix error in AABB calculation for particles with USERDATA
2024-03-04 13:33:33 +01:00
markdibarry
a62870956a
Add new Parallax2D node
2024-03-03 15:46:40 -05:00
Per Melin
853935a5c9
Fix error in AABB calculation for particles with USERDATA
...
Selecting "Generate AABB" on a 3D particle node in the editor would not work
and printed an error about incorrect buffer size if the particle shader used
one or more of the USERDATA build-ins.
2024-03-02 14:26:09 +01:00
Per Melin
9b2d77a238
Initialize particle trail history frame numbers
...
Fixes #88712
All particle trail sections were activated at once on the first cycle, instead
of being spread out over the trail's lifetime.
2024-03-01 19:32:43 +01:00
bitsawer
89d772a799
Fix Volumetric Fog VoxelGI updates
2024-03-01 14:47:15 +01:00
jsjtxietian
0ed341cd1e
Change shader compiler default setting to avoid doctool error
2024-02-29 11:01:56 +08:00
blackbird806
e2f1af8742
Remove self includes in some files
2024-02-27 17:10:54 +01:00
Rémi Verschelde
cfe344f12f
Merge pull request #87872 from RandomShaper/d3d12_tex_mem_is_life
...
Direct3D 12: Enhance management of texture data life cycle
2024-02-27 16:36:59 +01:00
Pedro J. Estébanez
d47021ac6c
Direct3D 12: Enhance management of texture data life cycle
2024-02-27 15:45:19 +01:00
Bill
b44f1c5176
Add fix for TAA passes rendering black meshes on XR
2024-02-25 14:25:49 -05:00
Robert Yevdokimov
13e82094ee
Remove word duplicates in comments and strings, and fix casing and punctuation
2024-02-23 17:28:28 -05:00
Rémi Verschelde
b82855bcc1
Merge pull request #88581 from jsjtxietian/dummy-crash
...
Fail early if shader mode is invalid in dummy renderer
2024-02-23 11:29:42 +01:00
jsjtxietian
a382e9539b
Fail early if shader mode is invalid in dummy renderer
2024-02-23 12:25:02 +08:00
Rémi Verschelde
8bad68df1a
Merge pull request #88649 from clayjohn/RD-ss-barriers
...
Use barriers between all blur passes with SSAO and SSIL
2024-02-22 11:23:40 +01:00
Rémi Verschelde
dd1d838e09
Merge pull request #88631 from DarioSamo/mobile_subpass_usage_fix
...
Remove tracking logic for input attachments as it's not necessary.
2024-02-22 11:23:28 +01:00
Rémi Verschelde
d646b7fef6
Merge pull request #88560 from DarioSamo/rdd_execute_and_present
...
Merge execute and present commands for RenderingDeviceDriver.
2024-02-22 11:23:19 +01:00
clayjohn
2657593462
Use barriers between all blur passes with SSAO and SSIL
2024-02-21 14:35:20 -08:00
Dario
5e59c941c9
Remove tracking logic for input attachments as it's not necessary.
2024-02-21 11:18:10 -03:00
Rémi Verschelde
652438a395
Merge pull request #87360 from BastiaanOlij/gles_glow
...
Implement glow/bloom on compatibility renderer
2024-02-20 23:59:48 +01:00
Rémi Verschelde
292f4c7f97
Merge pull request #80214 from BastiaanOlij/rendering_effect
...
Implement hooks into renderer
2024-02-20 23:59:27 +01:00
Rémi Verschelde
dc2d1e3f47
Merge pull request #79452 from /ysort-update-first-item-position
2024-02-20 23:59:17 +01:00
Dario
ee2d8f68ba
Merge execute and present commands for RenderingDeviceDriver.
2024-02-19 13:09:03 -03:00
Bastiaan Olij
aa260e5f3d
Implement glow/bloom on compatibility renderer
2024-02-19 13:29:43 +11:00
Arman Elgudzhyan
533eab89ab
Fixed reversed custom AABB null check when recalculating multimesh AABBs
2024-02-18 12:07:23 -08:00
Bastiaan Olij
5a98845655
Implement hooks into renderer
2024-02-18 21:54:21 +11:00
Eidolon
08f4560e69
Add optional depth fog
2024-02-17 22:39:34 -03:00
Rémi Verschelde
1b8e12c499
Merge pull request #88409 from jsjtxietian/high-end
...
Make dummy rendering server appear as a high end platform to fix vulkan shader compile error when exporting
2024-02-17 00:27:30 +01:00
Rémi Verschelde
8bbf5129d2
Merge pull request #88331 from DarioSamo/rd_graph_validation
...
Add validation to render graph for draw and compute lists.
2024-02-17 00:23:50 +01:00
Rémi Verschelde
59643bdb86
Merge pull request #88325 from akien-mga/texture-formats
...
Export: Unify settings for PC texture formats, removed obsoleted ETC feature
2024-02-17 00:23:45 +01:00
Rémi Verschelde
f5ffe705ed
Merge pull request #88210 from TitanNano/jovan/missing_surface_data
...
Assign missing surface data fields in dummy render server
2024-02-17 00:23:19 +01:00
jsjtxietian
f6aabd2b72
Make dummy rendering server appear as a high end platform
...
to fix vulkan shader compile error when exporting
2024-02-16 23:33:50 +08:00
Arman Elgudzhyan
7ac8365e11
Support custom AABB within MultiMesh resources
...
- Supporting custom AABB on the MultiMesh resource itself allows us to prevent costly runtime AABB recalculations.
- Should also help improve CPU Particle performance.
2024-02-15 22:37:07 -08:00
Anatoli Babenia
e25cfffc7f
Add `--no-header` option to clean output
...
* Do not print empty line when header is disabled
* Do not print Vulcan header
* Also add "Print header" project setting (default On)
(suggested by @kaissouDev)
* Add docs for the project setting
(with suggestions by @Mickeon and @akien-mga)
Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-15 14:10:11 +03:00
Dario
0aac14a538
Add validation to render graph for draw and compute lists.
2024-02-14 13:25:04 -03:00
Rémi Verschelde
e457f41f9b
Remove code relative to obsoleted ETC texture format
...
Co-authored-by: BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com>
2024-02-14 17:16:41 +01:00
Rémi Verschelde
5e58bcd793
Merge pull request #88205 from 0x0ACB/thread_safe_texture_rid
...
Make `RID_Owner<Texture>` threadsafe in `TextureStorage` for GLES3
2024-02-13 23:43:40 +01:00
Dario
fc8ec5d8a9
Handle error when setting boot image if swap chain is not available. Skip resizing swap chain during screen creation as it's not necessary and can fail when it starts minimized.
2024-02-13 14:19:26 -03:00
Rémi Verschelde
dfe226b933
Merge pull request #88270 from TokageItLab/avoid-near-far
...
Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport
2024-02-13 11:25:24 +01:00
Silc Lizard (Tokage) Renew
67e38709fd
Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport
2024-02-13 18:53:21 +09:00
Erik Johnson
eab95698cd
Fix shadows for billboarded Sprite3D's
2024-02-13 10:36:38 +01:00
Rémi Verschelde
9050ee1542
Merge pull request #87297 from adamscott/2d-pixel-art-stability
...
Stabilize snapping 2D transforms to pixel
2024-02-12 23:53:51 +01:00
Adam Scott
35b640107f
Stabilize snapping 2D transforms to pixel
...
Co-authored-by: Danni <34800072+KeyboardDanni@users.noreply.github.com>
2024-02-12 11:04:01 -05:00
Dario
73eff10c76
Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver.
2024-02-12 10:02:18 -03:00
Rémi Verschelde
f12d737681
Merge pull request #87796 from RandomShaper/shader_cache_split
...
Namespace shader cache files by graphics API
2024-02-12 13:34:18 +01:00
ACB
09d2c09434
Make `RID_Owner<Texture>` threadsafe in `TextureStorage` for gles3
2024-02-11 17:23:00 +01:00
Jovan Gerodetti
48b71cf700
Assign missing surface data fields in dummy render server
2024-02-11 14:58:34 +01:00
A Thousand Ships
684752e75b
Replace error checks against `size` with `is_empty`
2024-02-09 12:50:15 +01:00
Rémi Verschelde
e9e54372b7
Merge pull request #88021 from Chubercik/fix_mingw_compile
...
Fully initialize all members of structs `IdentifierActions`, `GeneratedCode` and `DefaultIdentifierActions`
2024-02-09 12:35:26 +01:00
A Thousand Ships
406d7e6d37
Fix missing instance type in dummy renderer
2024-02-08 12:15:26 +01:00
Rémi Verschelde
4a30fe5e7c
Merge pull request #86564 from Giwayume/feature/canvas-item-shader-custom-data
...
Support CUSTOM shader attributes in 2D
2024-02-08 10:53:24 +01:00
Rémi Verschelde
7223c5b54a
Fix various typos with codespell
...
Using 2.2.7.dev115+g0eb441d6.
Had to add `cancelled` to the ignore list, as it's a Wayland signal which
we're handling in our code, so we don't want codespell to fix that "typo".
Also includes the typo fix from #87927 .
Co-authored-by: Divyanshu Shekhar <61140213+divshekhar@users.noreply.github.com>
2024-02-07 11:09:34 +01:00
Jakub Marcowski
b38ac30fe0
Fully initialize all members of structs `IdentifierActions`, `GeneratedCode` and `DefaultIdentifierActions`
2024-02-06 20:02:46 +01:00
vittorioromeo
55ed34e37c
Use '_v' shorthand for type traits and 'if constexpr' where appropriate
2024-02-02 15:43:21 +01:00
Pedro J. Estébanez
f3ef83517a
Namespace shader cache files by graphics API
2024-01-31 20:19:12 +01:00
lawnjelly
4577dfdb67
Shadow volume culling and tighter shadow caster culling
...
Existing shadow caster culling takes no account of the camera.
This PR adds the highly encapsulated class RenderingLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.
2024-01-30 08:38:31 +00:00
A Thousand Ships
666daf47c3
Free dummy renderer objects
...
These leaked during tests etc.
2024-01-29 19:28:29 +01:00
Dario
39f279710c
Improve stage and slice tracking behavior of RenderingDeviceGraph to fix various synchronization issues.
2024-01-26 10:12:54 -03:00
Yuri Sizov
3f7ea71e88
Merge pull request #87495 from jsjtxietian/USE_LIGHT_SHADER_CODE
...
Clean up outdated `USE_LIGHT_SHADER_CODE` usage
2024-01-25 16:27:14 +01:00
Yuri Sizov
1b83e8ae81
Merge pull request #87460 from BastiaanOlij/stereo_ivec
...
Add ivec variants to multiview_uv for stereo rendering
2024-01-25 16:27:10 +01:00
Yuri Sizov
1018706c87
Merge pull request #87390 from clayjohn/dummy-multimesh
...
Add basic multimesh data needed for headless export to the Dummy rendering server
2024-01-25 16:27:06 +01:00
Yuri Sizov
b698204a1e
Merge pull request #87505 from BastiaanOlij/fix_mobile_refprobe_validation
...
Fix framebuffer created for reflection probe in mobile renderer
2024-01-24 14:08:52 +01:00
Yuri Sizov
344fe62bdb
Merge pull request #87392 from clayjohn/dummy-shader
...
Add DummyShader handling to Dummy RenderingServer to ensure shader parameters are saved in headless export
2024-01-24 14:08:28 +01:00
Yuri Sizov
2ce450f8bc
Merge pull request #84894 from clayjohn/tangent-error-message
...
Store ArrayMesh path in RenderingServer for use in error messages
2024-01-24 14:07:47 +01:00
jsjtxietian
2004ad1ac5
Clean up outdated `USE_LIGHT_SHADER_CODE` usage
2024-01-24 12:30:27 +08:00
Giwayume
bb83c4adec
Add custom shader attributes to Canvas Item Shaders
2024-01-23 14:36:39 -05:00
Bastiaan Olij
914eecaddb
Fix framebuffer created for reflection probe in mobile renderer
2024-01-24 00:51:51 +11:00
Bastiaan Olij
1066f01607
Add ivec variants to multiview_uv for stereo rendering
2024-01-23 16:13:31 +11:00
clayjohn
21ade7f0f7
Add DummyShader handling to Dummy RenderingServer to ensure shader parameters are saved in headless export
2024-01-22 13:57:11 -08:00
Yuri Sizov
f98e57563b
Merge pull request #87370 from AThousandShips/null_additional
...
Null check improvements
2024-01-22 20:39:18 +01:00
Yuri Sizov
bf94131e41
Merge pull request #87225 from kleonc/transposed-texture-fix-2d-normals
...
Fix 2D normals for transposed texture
2024-01-22 20:39:04 +01:00
Yuri Sizov
e8105adb0e
Merge pull request #87155 from griffinkh/build_warning_fix
...
Fix build warning with memset value being too large
2024-01-22 20:38:56 +01:00
Yuri Sizov
e95456b7f3
Merge pull request #86073 from m4rr5/add_reflection_mask
...
Add a reflection mask to the reflection probes
2024-01-22 20:38:37 +01:00
Marcel Offermans
25f573ca63
Add a reflection mask to the reflection probes.
...
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-01-20 08:07:31 +01:00
clayjohn
ed2b3d358d
Add basic multimesh data needed for headless export to the Dummy rendering server
2024-01-19 17:21:55 -08:00
Rémi Verschelde
0bcc0e92b3
Merge pull request #86730 from reduz/64-bit-cowdata
...
Promote CowData to 64 bits
2024-01-19 18:46:11 +01:00
Juan Linietsky
24fe0715b5
Promote CowData to 64 bits
...
Fixes a lot of bugs, please help me fill the list.
2024-01-19 17:41:10 +01:00
A Thousand Ships
2a372186ec
Null check improvements
2024-01-19 12:50:21 +01:00
Dario
5624b8f5c6
Fix memory leak from not clearing the buffer barrier vector properly on the render graph.
2024-01-18 15:23:13 -03:00
Adam Scott
bd70b8e1f6
Add THREADS_ENABLED macro in order to compile Godot to run on the main thread
2024-01-17 13:58:29 -05:00
Rémi Verschelde
5b19796a2b
Merge pull request #87207 from jsjtxietian/fix-normal_roughness_compatibility
...
Add missing check when insert function `normal_roughness_compatibility`
2024-01-16 10:37:37 +01:00
kleonc
0fe7eead02
Fix 2D normals for transposed texture
2024-01-15 17:34:29 +01:00
Rémi Verschelde
bf7e19887e
Merge pull request #87096 from jsjtxietian/save-to-cache
...
Add `shader_cache_dir_valid` check to `_save_to_cache`
2024-01-15 13:29:03 +01:00
jsjtxietian
747ae429de
Add missing check when insert function `normal_roughness_compatibility`
2024-01-15 17:22:19 +08:00
Griffin Kroah-Hartman
21ae69a1de
fix build warning with memset value being too large
...
same resolution for issue #83342 for texture_storage.cpp
2024-01-13 19:05:38 +01:00
jsjtxietian
a365c070b3
Add shader_cache_dir_valid check to _save_to_cache
2024-01-12 17:34:33 +08:00
Rémi Verschelde
c5025ea157
Merge pull request #87057 from clayjohn/RD-32-bit-depth
...
Default to 32-bit depth map on Forward+ renderer and 24-bit only on Mobile renderer
2024-01-11 17:42:38 +01:00
Rémi Verschelde
bf4fb987e6
Merge pull request #87035 from Mickeon/deprecate-RenderingServer-has-feature
...
Deprecate RenderingServer's `has_feature` and Features enum
2024-01-11 17:41:50 +01:00
clayjohn
7b355a128c
Default to 32-bit depth map on Forward+ renderer and 24-bit only on Mobile renderer
2024-01-10 12:23:59 -08:00
Micky
63a08f2493
Deprecate RenderingServer's `has_feature` and Features enum
2024-01-10 12:26:04 +01:00
Rémi Verschelde
74f3d168c8
Merge pull request #87022 from DarioSamo/clear_region_continue_fix
...
Fix incorrect mapping of initial action as clear region continue to clear.
2024-01-10 12:03:45 +01:00
Rémi Verschelde
a40a134a1e
Merge pull request #86996 from BastiaanOlij/fix_stereo_ssr
...
Fix SSR not working properly in stereo
2024-01-10 12:03:37 +01:00
Dario
80eacf1b7a
Fix incorrect mapping of initial action as clear region continue to clear.
2024-01-09 22:03:21 -03:00
Patrick Dawson
a0f9bcc826
Fix usage of index offsets in RenderingDevice
2024-01-09 15:47:52 +01:00
Rémi Verschelde
673102ffd8
Merge pull request #85520 from YuriSizov/rendering-gracefully-leak-canvas-items
...
Avoid crashes when engine leaks canvas items and friends
2024-01-09 15:30:55 +01:00
Bastiaan Olij
10a8b88165
Fix SSR not working properly in stereo
2024-01-09 23:19:57 +11:00
Dario
cc4d39b0c1
Acyclic Command Graph for RenderingDevice.
...
Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
2024-01-08 14:54:56 -03:00
Rémi Verschelde
25011e9144
Merge pull request #84244 from BastiaanOlij/skip_present_if_needed
...
Skip swapchain logic if there is nothing to present (Android OpenXR)
2024-01-08 14:52:07 +01:00
Rémi Verschelde
5ac5be4744
Merge pull request #86507 from jsjtxietian/fix-msvc-2017
...
Fix MSVC 14.1 complaining about "attempting to reference a deleted function" in RenderPassClearValue
2024-01-08 11:54:17 +01:00
Rémi Verschelde
798632422d
Merge pull request #86245 from ecmjohnson/fix-skeleton-culling
...
Check skeleton RID when using cached AABB
2024-01-08 11:52:41 +01:00
Bastiaan Olij
d6caa69e11
Skip swapchain logic if there is nothing to present (Android OpenXR)
2024-01-08 21:51:04 +11:00
Muller-Castro
96a95cb974
Add const lvalue ref to container parameters
2024-01-05 14:49:57 -03:00
clayjohn
7f1863f83d
Tune TAA disocclusion scale to avoid rejecting all samples during motion.
2024-01-04 17:06:57 -08:00
Rémi Verschelde
6c390b620d
Merge pull request #84445 from Rubonnek/add-const-references-clang-tidy
...
Add const references detected by clang-tidy
2024-01-04 14:25:33 +01:00
Rémi Verschelde
7abaac631b
Fixup SDFGI shader compilation error after #80390
...
My mistake, I added this when rebasing and didn't notice that it was a
.glsl file and thus the availability of Math was not confirmed by the
C++ compiler.
2024-01-03 08:51:08 +01:00
Rémi Verschelde
07b88600b7
Merge pull request #86522 from RandomShaper/fix_uset_rebind
...
RenderingDevice: Fix uniform sets wrongly assumed to be bound
2024-01-02 21:32:25 +01:00
Rémi Verschelde
e42d615471
Merge pull request #85421 from xiongyaohua/fix_parameter_names
...
Unify parameter names for 'RendererCanvasCull'
2024-01-02 15:08:53 +01:00
EddieBreeg
8747c67d9e
Fix potential integer underflow in rounded up divisions
...
A new `Math::division_round_up()` function was added, allowing for easy
and correct computation of integer divisions when the result needs to
be rounded up.
Fixes #80358 .
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-02 14:14:47 +01:00
Pedro J. Estébanez
1c5c8cf6ff
RenderingDevice: Fix uniform sets wrongly assumed to be bound
2023-12-26 13:12:32 +01:00
jsjtxietian
89d7a2f0a5
Fix incorrect CAMERA_DIRECTION_WORLD calculation
2023-12-26 14:09:44 +08:00
jsjtxietian
5d361a9e39
Fix msvc 14.1 complains about "atempting to reference a deleted function"
...
in RenderPassClearValue
2023-12-25 18:52:06 +08:00
Yaohua Xiong
795fe74143
unify parameter names for 'RendererCanvasCull'
2023-12-24 10:18:34 +08:00
Yuri Sizov
44ded3eaa4
Merge pull request #86316 from clayjohn/RD-BFN-normals
...
Use best fit normals for storing screen space normals
2023-12-22 17:19:58 +01:00
clayjohn
43cf21cb71
Use best fit normals for storing screen space normals
2023-12-21 14:41:29 -07:00
Yuri Sizov
3a8524dd92
Merge pull request #83452 from RandomShaper/rd_common
...
Split `RenderingDevice` into API-agnostic and `RenderingDeviceDriver` parts
2023-12-20 20:09:18 +01:00
Pedro J. Estébanez
12a519bae2
Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts
...
Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support.
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-12-20 19:18:08 +01:00
Yuri Sizov
34ecfff672
Avoid crashes when engine leaks canvas items and friends
2023-12-20 13:19:46 +01:00
Yuri Sizov
c1d8b53ca0
Merge pull request #82668 from mrjustaguy/master
...
Improve split blending logic for Vulkan
2023-12-18 18:17:36 +01:00
Erik Johnson
d874ead58d
Check skeleton RID when using cached AABB
2023-12-17 11:43:49 -05:00
Wilson E. Alvarez
a3cb1b096f
Add const references detected by clang-tidy
2023-12-16 13:36:44 -05:00
Yuri Sizov
2d0ee20ff3
Merge pull request #86219 from clayjohn/RD-samplers-hotfix
...
Reduce the number of samplers used by the scene shaders
2023-12-16 17:50:10 +01:00
clayjohn
a5399ab5af
Reduce the number of samplers used by the scene shaders
...
The hard limit for Apple devices is 16 samplers per stage. So we need to ensure we use less than that
2023-12-15 17:13:44 -07:00
Bastiaan Olij
22cd145177
Merge passes in Vulkan mobile renderer
2023-12-16 09:51:35 +11:00
Yuri Sizov
4269a57b0c
Merge pull request #85387 from jsjtxietian/fix-forward-plus-crash
...
Use render method from OS instead of project settings in compositor RD
2023-12-14 17:38:43 +01:00
jsjtxietian
453c2246b6
Use render method from OS in compositor RD; Update related UI
2023-12-14 11:38:46 +08:00
Wilson E. Alvarez
80fb8db31f
Remove unnecessary assignments
...
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-12-13 11:06:26 -05:00
Rémi Verschelde
342531597b
Merge pull request #85811 from clayjohn/2D-render-info
...
Implement render info counters for the 2D renderer
2023-12-12 10:41:06 +01:00
Rémi Verschelde
4943b6e6b3
Merge pull request #84451 from ShirenY/FixSkeletonMeshCulling
...
Transform mesh's AABB to skeleton's space when calculating mesh's bounds
2023-12-12 00:16:51 +01:00
ShirenY
27f71c4e78
Transform mesh's AABB to skeleton's space when calculate mesh's bounds.
2023-12-09 11:41:15 +08:00
Yuri Sizov
5c95fd5905
Merge pull request #85793 from Lasuch69/expose-compute
...
Expose `copy_effects` compute shader in Mobile backend
2023-12-08 18:46:03 +01:00
Yuri Sizov
74b6fad3c8
Merge pull request #85822 from bruvzg/maco_dbl
...
Fix CanvasOcclusionShaderRD format error with double precision build.
2023-12-08 16:58:59 +01:00
Yuri Sizov
ee1bf15924
Merge pull request #84637 from clayjohn/RD-sampler-bias
...
Use render pass uniform set to store viewport samplers.
2023-12-08 15:23:18 +01:00
Yuri Sizov
dfe0f584b4
Merge pull request #82953 from jsjtxietian/document-forcedraw-can-only-be-called-from-main-thread
...
Add thread guard for `force_draw` and update related documentation
2023-12-08 15:22:53 +01:00
clayjohn
528b4a3283
Implement render info counters for the 2D renderer
...
This provides information for the debug monitors
2023-12-06 14:39:33 -07:00
bruvzg
c0a1c5ae61
Fix CanvasOcclusionShaderRD format error with double precision build.
2023-12-06 23:03:12 +02:00
Lasuch
608d41a969
Expose copy_effects copy compute shader in Mobile backend
2023-12-05 21:22:46 +01:00
Rémi Verschelde
4c3d95e02c
Merge pull request #85635 from clayjohn/RD-ReflectionProbes-mobile
...
Set ReflectionProbe frame before mapping id in mobile renderer
2023-12-04 23:20:47 +01:00
Rémi Verschelde
7113050e0b
Merge pull request #84241 from jsjtxietian/fix-render-method-crash-on-bad-input
...
Fix bad parameter for `rendering_method` crashes Godot
2023-12-04 23:02:21 +01:00
Rémi Verschelde
6f4da7a976
Merge pull request #83736 from darksylinc/matias-broken_buffer_update
...
Fix buffer updates going to the wrong cmd buffer if barriers were 0
2023-12-04 22:58:24 +01:00
clayjohn
394edf8288
Set ReflectionProbe frame before mapping id in mobile renderer
2023-12-01 16:52:50 -07:00
Rémi Verschelde
bd74d92ef7
Merge pull request #84957 from BastiaanOlij/fix_msaa2d_when_no_2d
...
Ensure 2D MSAA resolve is performed when 3D content but no 2D content in scene
2023-11-22 21:56:23 +01:00
clayjohn
e2a5d2bf46
Enable non-multiview advanced shader group whenever advanced shaders are requested
...
This is needed because xr_enabled does not guarantee that we won't use the non-multiview variants
2023-11-21 15:16:25 -07:00
Rémi Verschelde
c2f8fb3015
Merge pull request #85039 from RandomShaper/mingwthreads
...
Use mingw-std-threads in MinGW builds
2023-11-21 15:44:18 +01:00
Pedro J. Estébanez
5c25fa4c78
Fix potential double-close of draw command label
2023-11-20 18:59:06 +01:00
Rémi Verschelde
ac29e8e3fe
Merge pull request #85086 from clayjohn/shaders-amount-ratio
...
Make `AMOUNT_RATIO` constant in the shader language specification.
2023-11-20 14:14:46 +01:00
clayjohn
8a95b2956f
Make AMOUNT_RATIO constant in the shader language specification.
...
Writing to it doesn't do anything and will crash the compatibility backend.
2023-11-19 14:36:26 +01:00
Pedro J. Estébanez
fe4850c0d0
Use mingw-std-threads in MinGW builds
2023-11-18 11:56:05 +01:00
Bastiaan Olij
47983e30c5
Ensure 2D MSAA resolve is performed when 3D content but no 2D content in scene
2023-11-16 13:34:34 +11:00
Alistair Leslie-Hughes
367079ffee
Renderer Viewport correct sizeof usage.
...
The current usage.
In viewport_find_from_screen_attachment
- Allocates a list of pointers, eg sizeof(RID*) * ridcount.
We need fill that buffer
viewport_owner.fill_owned_buffer(rids);
...
p_rid_buffer[idx] = _make_from_id((validator << 32) | i);
_make_from_id returns an RID object, not a pointer.
Since there isn't a copy constructor, a bitwise copy of the object occurs.
This issue will only present itself under 32bit builds.
sizeof(RID) : 8
sizeof(RID*) : 4
whereas 64bit builds they are both 8.
2023-11-16 11:02:12 +11:00
Bastiaan Olij
b1c4d4e55b
Ensure optional variants are loaded last.
2023-11-15 14:31:25 +11:00
clayjohn
ead36fdcc4
Store ArrayMesh path in RenderingServer for use in error messages
2023-11-14 16:27:10 +01:00
jsjtxietian
b88b84ce18
Add thread guard for force_draw and update relared doc
...
force_draw must be called from main thread
2023-11-10 18:57:31 +08:00
jsjtxietian
b6bee1c21e
Fix bad parameter of rendering_method crashes Godot
...
Print error and default to forward plus
2023-11-10 10:38:12 +08:00
clayjohn
2b9e6d2972
Use render pass uniform set to store viewport samplers.
...
This fixes a bugs where per-viewport samplers were being used for internal texture fetches (probes, sky, etc.).
This also fixes a bug when using multiple viewports in the same scene.
This also fixes a bug where the texture bias would override the bias from 3D scale.
2023-11-08 23:26:08 +01:00
clayjohn
a74cfc2629
Use default samplers in base uniform set when rendering to reflection probes
2023-11-07 17:46:05 +01:00
clayjohn
d1043a5f93
Enhance checks and user experience around tangents.
...
Ensure `ensure_tangents` option actually creates tangent array. Even if it is just a dummy array.
Allow mesh to generate its own tangents when using compression. This allows users to compress meshes without tangents.
Warn users if they are trying to read from tangents without providing tangents.
2023-11-01 22:40:42 +01:00
Rémi Verschelde
2bc35308fc
Merge pull request #81494 from jsjtxietian/Fix-int-to-uint-implicit-cast-error-when-use-uniform-mat3-in-gles3
...
Fix int to uint implicit cast error when use mat3 uniform in compatibility renderer
2023-10-31 20:14:14 +01:00
Bastiaan Olij
e3b8af723e
Fix cubemap downsampler logic
2023-10-31 10:36:42 +11:00
clayjohn
57ba7ded87
Fix bug with alpha to coverage by enabling depth discard when using alpha to coverage
2023-10-30 23:07:30 +01:00
jsjtxietian
967e0e6485
Fix int to uint implicit cast error when use uniform mat in gles3
2023-10-27 10:46:52 +08:00
Rémi Verschelde
2dafd06114
Merge pull request #83906 from clayjohn/GL-vertex-padding
...
Add padding to normal attribute in Compatibility renderer to match the RD renderers
2023-10-26 16:00:56 +02:00
Rémi Verschelde
815b24d280
Merge pull request #83491 from jsjtxietian/pass-screen-size-when-render-shadow
...
Pass viewport size to shadow pass instead of using Vector2i(1,1)
2023-10-26 12:09:21 +02:00
jsjtxietian
26d32554bd
Pass viewport size to shadow pass instead of using vector2i(1,1)
2023-10-26 15:25:22 +08:00
Rémi Verschelde
9f49da24da
Merge pull request #83830 from jsjtxietian/fix-varying-assign-swizzle-check
...
Fix assign with swizzle in shader not doing varying validation check
2023-10-25 10:30:22 +02:00
Rémi Verschelde
4cc8f0f36d
Merge pull request #83649 from BastiaanOlij/no_2d_stereo
...
Skip 2D rendering if stereo enabled and fix couple of MSAA issues
2023-10-25 10:29:09 +02:00
Rémi Verschelde
9798ae3d6a
Merge pull request #82974 from mrjustaguy/Split-fix
...
Directional 2 Split Shadow Stabilization Fix
2023-10-25 10:28:21 +02:00
Rémi Verschelde
f021d33940
Merge pull request #81167 from bitsawer/fix_sdfgi_editor_change
...
Reset SDFGI when changing editor scene tabs
2023-10-25 10:27:03 +02:00
clayjohn
a88e519f18
Add padding to normal attribute in Compatibility renderer to match the RD renderers
2023-10-24 22:32:34 +02:00
Rémi Verschelde
261fe7ce6a
Merge pull request #83704 from clayjohn/misc-mesh-fixes
...
Some more fixes for compressed meshes
2023-10-24 10:54:23 +02:00
Rémi Verschelde
64f80295e5
Merge pull request #83199 from Repiteo/texture-storage-default-scale
...
Fix `TextureStorage` not assigning default scale
2023-10-24 10:53:56 +02:00
clayjohn
8f9cd4e1e3
Some more fixes for compressed meshes
...
This cleans up a few more cases of uint32_t->uint64_t
Importantly this fixes an edge case in the axis-angle compression by
using the pre-existing Basis methods instead
2023-10-24 09:38:12 +02:00
Rémi Verschelde
50d17f6b8c
Merge pull request #83613 from clayjohn/surface_upgrade_tool
...
Add an editor tool to automatically upgrade and re-save meshes
2023-10-24 00:10:37 +02:00
clayjohn
318ef8461f
Implementation of tool to automatically upgrade and re-save meshes
2023-10-23 22:39:48 +02:00
Rémi Verschelde
17aa5c5170
Merge pull request #83780 from jsjtxietian/prevent-null-variant-crash
...
Prevent `_allocate_placeholders` crash if `p_version->variants` is null
2023-10-23 12:42:04 +02:00
Rémi Verschelde
814de86494
Merge pull request #83493 from clayjohn/light-pair-bug
...
Ensure that only visible paired lights are used
2023-10-23 12:40:07 +02:00
jsjtxietian
089e7f473d
Fix assign with swizzle in shader not doing varying validation check
2023-10-23 17:52:50 +08:00
jsjtxietian
5f85a042b6
Prevent `_allocate_placeholders` crash if `p_version->variants` is null
2023-10-22 23:19:00 +08:00
Hugo Locurcio
0012478ecb
Add property hint for 2D shadow size project setting
...
Previously, it was possible to use zero or negative values, which are
invalid.
This also prevents crashing the engine by setting a shadow size of
0 or lower from a script.
2023-10-22 00:28:19 +02:00
Matias N. Goldberg
c9ec1f7727
Fix buffer updates going to the wrong cmd buffer if barriers were 0
...
From what I could see only SSAO & SSIL were affected when they both
call:
int zero[1] = { 0 };
RD::get_singleton()->buffer_update(ssao.importance_map_load_counter, 0,
sizeof(uint32_t), &zero, 0);
int zero[1] = { 0 };
RD::get_singleton()->buffer_update(ssil.importance_map_load_counter, 0,
sizeof(uint32_t), &zero, 0);
Also documented what setup_command_buffer & draw_command_buffer are for.
2023-10-21 13:14:38 -03:00
Rémi Verschelde
2a995c09ac
Merge pull request #83639 from stoofin/frustum-buffer-size
...
Fix shadow map debug visualization camera frustum index buffer size
2023-10-20 15:12:34 +02:00
Bastiaan Olij
425e943576
Skip 2D rendering if stereo enabled and fix MSAA2D with 3D issue.
2023-10-20 14:02:55 +11:00
stoofin
1a2b66d4fc
Fix shadow debug frustum index buffer size
2023-10-19 13:48:11 -07:00
Dario
4890e96556
Add an extra backbuffer color texture that can be used when an upscaler is in use.
...
Fixes issue #83152 . Due to how BLUR_0 is reused for multiple purposes and requires being at native resolution for some post-processing effects to work, FSR2 will use an alternate texture at internal size to use as the screen texture read by shaders instead. The rendering pipeline will prefer using this texture if it exists.
2023-10-17 13:36:27 -03:00
Clay
623a050269
Ensure that only visible paired lights are used
...
This is a longstanding issue in both the Mobile and GL Compatibility renderer.
Meshes pair with all lights that touch them, and then at draw time, we send all paired lights indices to the shader (even if that light isn't visible). The problem is that non-visible lights aren't uploaded to the GPU and don't have an index. So we end up using a bogus index
2023-10-17 13:02:46 +02:00
bitsawer
f0a178cbdb
Fix Mobile renderer shader instance uniform access
2023-10-15 18:09:54 +03:00
Thaddeus Crews
9ee41c707e
Fix texture storage not assigning default scale
...
• Print errors if an invalid value is passed
2023-10-12 12:02:24 -05:00
Rémi Verschelde
b1371806ad
Merge pull request #82431 from bitsawer/fix_gpuparticles_free
...
Fix errors when freeing GPUParticles
2023-10-12 00:22:33 +02:00
Rémi Verschelde
09b92a144d
Merge pull request #79921 from mandryskowski/ssr_transparency
...
Make Fresnel darken SSR instead of blending with specular
2023-10-11 22:37:02 +02:00
mandryskowski
5b2e54c17b
Fresnel should darken the SSR reflections instead of blending them with specular light.
2023-10-11 18:58:22 +01:00
kobewi
41fa6c32b4
Disable update spinner when debug redraw is active
2023-10-11 13:21:29 +02:00
Rémi Verschelde
4b7cc99bc1
Merge pull request #79169 from reduz/debug-canvas-item-redraw
...
Debug CanvasItem redraw
2023-10-11 08:40:05 +02:00
Rémi Verschelde
55282ddc10
Merge pull request #79527 from QbieShay/qbe/particles-rework
...
Particle internal refactor and additions for more artistic control
2023-10-10 22:48:50 +02:00
QbieShay
c228fe1a0d
Particle internal refactor and additions for more artistic control
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2023-10-10 20:03:35 +02:00
Rémi Verschelde
b4214b1686
Merge pull request #83004 from Chaosus/shader_language_fix_typo
...
Fix typo in `shader_language.cpp`
2023-10-09 23:23:35 +02:00
Rémi Verschelde
a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
...
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
Yuri Rubinsky
f4bc779c4e
Fix typo in `shader_language.cpp`
2023-10-08 18:55:40 +03:00
A Thousand Ships
f18aa00e85
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-08 17:23:33 +02:00
A Thousand Ships
034c0f1624
Replace `sanity` with `safety` for checks
2023-10-08 16:22:24 +02:00
mrjustaguy
45948dc2c9
Directional 2 Split Shadow Stabilization Fix
2023-10-07 17:55:26 +02:00
Rémi Verschelde
c05f521e16
Merge pull request #82892 from clayjohn/tangent-binormal-transform
...
Only perform modelview transform on tangent and binormal when vertex shader is in local space
2023-10-06 12:53:05 +02:00
clayjohn
af1d81d95a
Only perform modelview transform on tangent and binormal when vertex shader is in local space
2023-10-05 22:08:36 -06:00
clayjohn
04846c1d6d
Avoid default fallback material when using world_vertex_coords
...
This avoids z-fighting between the opaque shader and the depth prepass shader
2023-10-05 19:11:48 -06:00
Rémi Verschelde
f2ba8ec6ca
Merge pull request #81124 from bitsawer/fix_voxelgi_static_lights
...
Fix VoxelGI static light pairing
2023-10-06 00:24:29 +02:00
Rémi Verschelde
d351d40e29
Merge pull request #82877 from tomissj2/master
...
Fog shader: Fix undeclared identifier `global_variables`
2023-10-05 22:51:48 +02:00
Rémi Verschelde
950139e489
Merge pull request #82546 from viksl/volumetric-fog-spot-light-artifacts
...
Fix cluster artifacts and negative light
2023-10-05 22:50:12 +02:00
Rémi Verschelde
f02695cc04
Merge pull request #81138 from clayjohn/attribute-compression
...
Vertex and attribute compression
2023-10-05 22:48:55 +02:00
Rémi Verschelde
7ee2eb5c92
Merge pull request #80992 from viksl/volumetric-fog-NaN-issues
...
Fix volumetric fog NaN values in textures from starting at a zero Vector2.
2023-10-05 22:48:31 +02:00
tomissj2
e906eb8433
Fog Shader bugfix: 'global_variables' : undeclared identifier
...
If user try to use a global shader variable in a fog type shader we are getting shader error. The reason of this there is a typo in the fog.cpp. I other well working shaders types like sky the "action.global_buffer_array_variable" is "global_shader_uniforms.data".
The investigation tracked here:
https://discord.com/channels/212250894228652034/1158918161337434172
2023-10-05 22:12:50 +02:00
clayjohn
51ed3aef63
Vertex and attribute compression to reduce the size of the vertex format.
...
This allows Godot to automatically compress meshes to save a lot of bandwidth.
In general, this requires no interaction from the user and should result in
no noticable quality loss.
This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.
Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
2023-10-05 12:02:23 -06:00
kobewi
09b30be86d
Add vararg call() method to C++ Callable
2023-10-05 11:35:29 +02:00
Rémi Verschelde
829d9bb6ba
Merge pull request #82451 from DarioSamo/mesh-storage-vertex-array-taa-fix
...
Fix mismatch between surface vertex array generation inside the function and the caller.
2023-10-05 10:08:34 +02:00
Rémi Verschelde
c255acebe8
Merge pull request #81607 from Rindbee/fix-UPDATE_WHEN_VISIBLE-not-work-in-exported-project
...
Fix `SubViewport` with `UPDATE_WHEN_VISIBLE` not working properly in exported project
2023-10-05 10:07:16 +02:00
Rémi Verschelde
ccbb91137f
Merge pull request #82766 from BastiaanOlij/fix_debanding_issue
...
Forgot to add debanding to config object
2023-10-04 15:45:39 +02:00
Rémi Verschelde
03ff9fedb6
Merge pull request #82101 from bruvzg/x11_gles
...
[X11] Add support for using EGL/GLES instead of GLX.
2023-10-04 15:35:05 +02:00
Rémi Verschelde
5680d729f2
Merge pull request #80939 from RandomShaper/fix_onion
...
Revive onion skinning
2023-10-04 15:33:25 +02:00
bruvzg
af00c4a54a
[X11] Add support for using EGL/GLES instead of GLX.
2023-10-04 14:15:36 +03:00
Bastiaan Olij
480fe5767e
Forgot to add debanding to config object
2023-10-04 16:24:09 +11:00
Rémi Verschelde
24c166dfe2
Merge pull request #81619 from Chaosus/fix_shader_const
...
Re-allows constants in global space to be initialized with function call
2023-10-03 17:20:23 +02:00
Pedro J. Estébanez
77d8372285
Fix drawing of viewports without swapping buffers
2023-10-03 13:51:47 +02:00
mrjustaguy
dd3d380a01
Improve Split Blending
...
Improve Split Blending Logic
2023-10-02 13:22:51 +02:00
viksl
8a2d345a85
Fixes spotlight's cluster artifacts and negative light.
2023-10-01 09:13:30 +02:00
Dario
1e2c28b7fe
Use internal texture at internal resolution for calculating luminance.
...
Fixes an error where the exposure was calculated incorrectly if a lower resolution scale was used while using FSR2. Now the behavior is consistent regardless of the resolution scale.
2023-09-29 13:41:40 -03:00
Yuri Sizov
7ae0fa1083
Merge pull request #77496 from clayjohn/GLES3-shadows
...
Implement 3D shadows in the GL Compatibility renderer
2023-09-28 20:03:53 +02:00
clayjohn
cb7200b028
Implement 3D shadows in the GL Compatibility renderer
2023-09-28 09:39:26 +02:00
Yuri Sizov
3c8465c240
Merge pull request #82445 from RandomShaper/fix_fsr2_little_thing
...
Avoid trying to free null RIDs in FSR2 teardown
2023-09-27 19:08:08 +02:00
Yuri Sizov
54c7a26a3b
Merge pull request #81356 from pkdawson/rd-compat
...
Add compatibility methods for RenderingDevice BarrierMask
2023-09-27 19:07:55 +02:00
Dario
c3d1b52254
Fix mismatch between surface vertex array generation inside the function and the caller.
...
Fixes #82446 .
2023-09-27 14:02:48 -03:00
Patrick Dawson
d80dc0ff58
Add compatibility methods for RenderingDevice BarrierMask
2023-09-27 10:22:03 -04:00
Pedro J. Estébanez
f84c3d4477
Avoid trying to free null RIDs in FSR2 teardown
2023-09-27 16:07:41 +02:00
bitsawer
898d1a2d5f
Fix errors when freeing GPUParticles
2023-09-27 11:46:31 +03:00
Rémi Verschelde
92ac0e54fe
Merge pull request #82353 from RPicster/optimizing-glow
...
Optimizing glow behaviour
2023-09-26 16:36:53 +02:00
Rémi Verschelde
2c8c7b95aa
Merge pull request #82313 from AThousandShips/null_check_servers
...
[Servers] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-26 13:45:31 +02:00
Raffaele Picca
de42258154
Optimizing glow behaviour
2023-09-26 11:56:28 +02:00
Rémi Verschelde
e25408df4b
Merge pull request #81381 from bitsawer/fix_shader_include_markers
...
Fix shader language preprocessor include marker handling
2023-09-26 08:19:40 +02:00
A Thousand Ships
fdd3d36c6d
[Servers] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-25 18:45:30 +02:00
Dario
057367bf4f
Add FidelityFX Super Resolution 2.2 (FSR 2.2.1) support.
...
Introduces support for FSR2 as a new upscaler option available from the project settings. Also introduces an specific render list for surfaces that require motion and the ability to derive motion vectors from depth buffer and camera motion.
2023-09-25 10:37:47 -03:00
Rémi Verschelde
64cde8ae8b
Merge pull request #82168 from Supreeeme/ext-fix
...
Expose `texture_create_from_extension` to GDExtension
2023-09-24 23:34:06 +02:00
Rémi Verschelde
8788b20ea0
Merge pull request #81775 from darksylinc/matias-taa-msaa
...
Fix massive validation errors when enabling TAA + MSAA
2023-09-24 23:32:31 +02:00
Shawn Wallace
b12ed82c04
Expose texture_create_from_extension to GDExtension
2023-09-23 16:57:12 -04:00
Rémi Verschelde
525c72ec6d
Merge pull request #81350 from DarioSamo/mipmap-bias
...
Fix mipmap bias behavior by refactoring how samplers are created by Material Storage.
2023-09-22 22:04:22 +02:00
bruvzg
1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
...
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
bitsawer
dda8846dea
Fix LightmapGI shading sometimes being unlit or black
2023-09-20 01:41:32 +03:00
Rémi Verschelde
9a1b4f338b
Merge pull request #81160 from paddy-exe/canvas-uv-world-space
...
Add render mode to use world coordinates in canvas item shader
2023-09-19 09:03:18 +02:00
Matias N. Goldberg
4de0ed4adf
Fix massive validation errors when enabling TAA + MSAA
...
TAA + MSAA would make Godot request unnecessary flags for an MSAA
velocity texture. flags that were not even actually needed.
This was causing:
1. Unsupported GPUs to fail completely (e.g. Intel Arc 770)
2. Wrong codepaths to be followed (causing validation errors, possibly
crashes or glitches)
3. Unnecessary performance impact in all GPUs.
See
https://github.com/godotengine/godot/issues/71929#issuecomment-1722274359
2023-09-16 19:31:04 -03:00
Yuri Roubinski
d3d20f15bf
Re-allows constants in global space to be initialized with function call
2023-09-13 21:04:29 +03:00
风青山
59d0fdbacc
Fix `SubViewport` with `UPDATE_WHEN_VISIBLE` not working properly in exported project
...
The issue is primarily due to `RSG::texture_storage->render_target_was_used()`
returning inconsistent results in the editor and exported projects.
2023-09-13 16:02:10 +08:00
Rémi Verschelde
3815b2f98e
Merge pull request #81315 from conorlawton/z-billboard-y-velocity-no-scale
...
Fix z-billboard + y to velocity transform alignment to correctly respect non-uniform scale
2023-09-08 23:14:27 +02:00
Conor Lawton
9ecafcc491
Fixed z-billboard-y-velocity to correctly respect non-uniform scale instead of averaging scale
2023-09-08 20:01:57 +01:00
Rémi Verschelde
7663c69922
Merge pull request #81388 from YuriSizov/core-gdvirtual-but-less-confused-about-itself
...
Extract `ScriptInstance` into its own file to simplify includes
2023-09-07 13:53:45 +02:00
Rémi Verschelde
698df41dac
Merge pull request #81333 from dalexeev/fix-rd-pcbs-attachments-setter
...
Fix `RDPipelineColorBlendState.attachments` setter
2023-09-07 13:52:33 +02:00
Yuri Sizov
d8ff69d53c
Extract ScriptInstance to simplify includes
...
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.
This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
Dario
9b91750fb1
Fix mipmap bias behavior by refactoring how samplers are created by Material Storage.
...
Introduces a new structure to store samplers created with certain parameters instead of storing a 'custom' set of samplers. Allows viewports to correctly configure the mipmap bias and use it when rendering the scene.
2023-09-06 11:24:19 -03:00
bitsawer
3c042fb99f
Fix shader language preprocessor include marker handling
2023-09-06 16:57:40 +03:00
Yuri Sizov
c5562d1058
Merge pull request #81288 from darksylinc/matias-index16
...
Use 16-bit index buffers instead of 32 when unnecessary
2023-09-06 14:49:20 +02:00
Milan Gruner
45a33cc749
Implement render mode fog_disabled and BaseMaterial3D setting Disable Fog
2023-09-05 18:15:02 +02:00
Danil Alexeev
f2f0375e10
Fix `RDPipelineColorBlendState.attachments` setter
2023-09-05 15:29:56 +03:00
Rémi Verschelde
dd4fae6162
Merge pull request #74809 from Chaosus/completion_color_xyzw
...
Add coloring for completion of vector components
2023-09-04 09:06:57 +02:00
Matias N. Goldberg
53837adc00
Use 16-bit index buffers instead of 32 when unnecessary
2023-09-03 19:59:10 -03:00
Rémi Verschelde
aa9f3583e8
Merge pull request #80933 from ChibiDenDen/clear_color_mobile_fix
...
Fix clear color on mobile renderer
2023-08-31 08:53:41 +02:00
Yuri Rubinsky
35802374ac
Add coloring for completion of vector components
2023-08-30 21:13:25 +03:00
bitsawer
836705d7a9
Reset SDFGI when changing editor scene tabs
2023-08-30 19:50:05 +03:00
Patrick
c98ab5aba3
Add option to use world coordinates in canvas item shader
...
By using the render mode `world_vertex_coords` you can automatically use the vertex coordinates in world space
2023-08-30 15:32:18 +02:00
ChibiDenDen
df25e87842
fix clear color on mobile renderer
2023-08-30 00:57:59 +03:00
bitsawer
5e22ded4c9
Fix VoxelGI static light pairing
2023-08-29 14:58:56 +03:00
Rémi Verschelde
7792f9e6ef
Merge pull request #81081 from RandomShaper/fixup_cluster_special
...
Fixup special case of cluster render
2023-08-29 12:47:07 +02:00
Rémi Verschelde
a6c72f9829
Merge pull request #81074 from DarioSamo/flip-motion-vectors
...
Flip convention of motion vectors.
2023-08-29 12:46:44 +02:00
Rémi Verschelde
9d74c24232
Merge pull request #80723 from DarioSamo/debug-motion-vectors
...
Improve visual feedback when using the motion vectors debug view option
2023-08-29 12:44:45 +02:00
Rémi Verschelde
4b69e8be85
Merge pull request #80688 from DarioSamo/gpu-particles-motion-vectors
...
Add motion vector support for GPU 3D Particles
2023-08-29 12:43:58 +02:00
viksl
00c2fb4a08
Instead of Vector2() start volumetric fog at frustum_near_size to avoid INF and NaN in shaders.
2023-08-28 21:56:23 +02:00
Rémi Verschelde
22b7fcabc6
Merge pull request #80889 from bitsawer/fix_sdfgi_texture_clear
...
Clear SDFGI textures when created
2023-08-28 20:37:34 +02:00
Pedro J. Estébanez
e9b4d25f20
Fixup special case of cluster render
2023-08-28 18:59:07 +02:00
Dario
293302ccd8
Add motion vector support for GPU 3D Particles.
...
Add the capability of resizing the transforms buffer for particles to be double its size and alternate where the current output is written to. Only works for particles that use index as their draw order.
2023-08-28 10:56:02 -03:00
Dario
e7d3a7c2aa
Improve visual feedback when using the motion vectors debug view option.
...
Replaces the current method of showing the raw values of the motion vectors buffer to display a grid of lines instead with a new shader.
2023-08-28 10:14:21 -03:00
Dario
f14c944c21
Flip convention of motion vector to point from current pixel to the previous pixel.
2023-08-28 09:30:20 -03:00
bitsawer
09c887ce82
Clear SDFGI textures when created
2023-08-28 14:13:36 +03:00
Juan Linietsky
407b16ab00
Debug CanvasItem redraw
...
I wanted to add this tool for years and always forget. This command line option:
```
$ godot.exe -e --debug-canvas-item-redraw
```
Allows to see when a canvas item is redrawn. This helps find out if something
in the UI is refreshing in a way it should not. Examples as such:
* Signals causing more of the UI to redraw.
* Container resizing causes more UI elements to redraw.
* Something using a timer is redrawing all time time, which can go unnoticed.
To my surprise, the editor UI is redrawing very efficiently. There is some
weird stuff with the scene tabs, redrawing when the inspector changes but most
things for the most part are fine.
2023-08-28 12:53:56 +02:00
Bastiaan Olij
8449331f13
Fix missing decal mask in mobile renderer
2023-08-23 11:14:10 +10:00
bitsawer
d6f45e4f14
Fix Vulkan crash with many Omni/SpotLights, Decals or ReflectionProbes
2023-08-21 12:46:15 +03:00
Rémi Verschelde
10b1f823bc
Merge pull request #80323 from garychia/canvas_point_size
...
Ensure `POINT_SIZE` takes effect in the canvas item shader
2023-08-21 08:21:14 +02:00
Dario
e2984af013
Add motion vector support for animated surfaces like skeletons or blend shapes.
...
Extends mesh instances that required custom vertex buffers to create two alternating buffers that are written to and binds them to use them as the previous vertex buffer when generating motion vectors.
2023-08-16 11:37:42 -03:00
Rémi Verschelde
9d9043a9c8
Merge pull request #80654 from bitsawer/fix_global_uniform_texture_set
...
Fix global shader uniform texture loading
2023-08-16 09:17:25 +02:00
Rémi Verschelde
623156a05c
Merge pull request #80651 from clayjohn/RD-2D-HDR-MSDF
...
Fallback to linear color texture when using 2D HDR and MSDF font
2023-08-16 09:17:01 +02:00
Rémi Verschelde
04c2bc5a37
Merge pull request #80424 from DarioSamo/rd-buffer-copy-vulkan
...
Add `buffer_copy` method to RenderingDevice
2023-08-16 09:13:06 +02:00
bitsawer
41def3740a
Fix global shader uniform texture loading
2023-08-15 14:18:26 +03:00
clayjohn
40d70bf9b8
Fallback to linear color texture when using 2D HDR and MSDF font
2023-08-15 11:08:29 +02:00
Dario
420f3890b0
Fix incorrect error checking and notifications introduced in PR #80414 .
...
There was an error in the other branch of the refactored function where the size of the array was not properly multiplied by the size of the float to check against the buffer size. This was only an error in the error-checking itself and not the functionality. There was also an error where the proper notification was not emitted whenever the buffer for the multimesh is recreated to invalidate the previous references the renderer might've created to it. This fixes CPU Particles getting corrupted when they're created without emission being enabled.
2023-08-13 09:08:20 -03:00
Dario
0d7deca4e2
Add buffer_copy method to RenderingDevice interface and an implementation for the Vulkan driver.
...
Direct buffer copies are required to perform certain operations more efficiently, as the only current alternative is to download the buffer to the CPU and upload it again. As the first use case, the new function is used when enabling motion vectors on multimeshes.
2023-08-12 09:38:39 -03:00
Bastiaan Olij
715ebcc3f1
Fix tonemapper, incorrect vertex count was specified
2023-08-11 10:07:16 +10:00
Dario
5155870d64
Improve handling of motion vectors for multimesh instances.
...
Fixes #67287 . There was a subtle error where due to how enabling motion vectors for multi-meshes was handled, only the first instance would have a valid transforms buffer and the rest would point to an invalid buffer. This change moves over the responsibility of enabling motion vectors only when changes happen to the individual 3D transforms or the entire buffer itself. It also fixes an unnecessary download of the existing buffer that'd get overwritten by the current cache if it exists. Another fix is handling the case where the buffer was not set, and enabling motion vectors would not cause the buffer to be recreated correctly.
2023-08-09 08:17:07 -03:00
Rémi Verschelde
00de140d46
Merge pull request #80368 from BastiaanOlij/fix_mobile_error_on_scale
...
Fix issue with four subpasses always been requested in mobile renderer
2023-08-08 16:58:47 +02:00
Rémi Verschelde
1163dac9e3
Merge pull request #80215 from clayjohn/HDR-2D
...
Add option to enable HDR rendering in 2D
2023-08-08 16:57:33 +02:00
Johan Aires Rastén
6e1f68109b
Support shader preprocessor concatenation symbol
2023-08-08 10:56:20 +02:00
Rémi Verschelde
8a3a3aaebe
Merge pull request #80356 from darksylinc/voxelgi-dispatch-underflow
...
Fix integer underflow when rounding up in VoxelGI
2023-08-07 14:55:33 +02:00
Rémi Verschelde
ff70ce158c
Merge pull request #80315 from darksylinc/matias-ssil-validation-fix
...
Fix validation error when enabling SSIL alone
2023-08-07 14:55:10 +02:00
Rémi Verschelde
40ca09364d
Merge pull request #80311 from darksylinc/matias-fullscreen-tri
...
Use fullscreen tri instead of quad
2023-08-07 14:54:21 +02:00
Rémi Verschelde
f01290fa91
Merge pull request #80257 from DarioSamo/taa_double_precision_fix
...
Fix motion vectors being corrupted when using `precision=double`
2023-08-07 14:51:35 +02:00
Rémi Verschelde
faaf27f284
Fix various typos with codespell
...
Also includes typo fixes from #79993 , #80068 , #80276 , and #80303 .
Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +02:00
Bastiaan Olij
414df467cd
Fix issue with four subpasses always been requested in mobile renderer
2023-08-07 20:26:48 +10:00
clayjohn
57eb762bae
Add option to enable HDR rendering in 2D
...
This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance
Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear.
This is necessary for proper HDR screen support in the future.
2023-08-07 11:24:03 +02:00
Matias N. Goldberg
e783e32108
Fix integer underflow when rounding up in VoxelGI
...
The code wanted to divide and round up:
- 0 / 64 = 0
- 63 / 64 = 1
- 64 / 64 = 1
- 65 / 64 = 2
However when the dividend was exactly 0 it would underflow and produce
67108864 instead.
This caused TDRs on empty scenes or extremely slow performance
Fix #80286
2023-08-06 23:21:58 -03:00
Chia-Hsiang Cheng
0cf57e1927
Ensure POINT_SIZE takes effect
2023-08-06 16:44:16 +08:00
Matias N. Goldberg
666e91b9ff
Fix validation error when enabling SSIL alone
2023-08-05 20:57:26 -03:00
Matias N. Goldberg
79c9edab3b
Draw sky as a fullscreen triangle
2023-08-05 17:55:43 -03:00
Matias N. Goldberg
6e7d87fb25
Use fullscreen tri instead of quad
2023-08-05 17:09:06 -03:00
Dario
77776f5313
Fix motion vectors being corrupted when using precision=double and resulting in the TAA pass being completely broken.
...
See Issue #69528 . When building with precision=double, the TAA pass would break due to the motion vectors being corrupted. It was apparent the origin of the camera itself was corrupted in the UBO for the previous frame because the camera origin was only being split correctly for the current block but not for the previous block (to effectively support the double precision float on the shader).
2023-08-04 11:42:06 -03:00
Rémi Verschelde
f9f5041675
Merge pull request #80222 from clayjohn/Shader-rid-init
...
Initialize shader placeholders up front
2023-08-03 18:33:59 +02:00
clayjohn
558f4b7559
Initialize shader placeholders up front
...
Then use the placeholder to create the shader instead of swapping RIDs
This fixes a false positive that reported leaked shaders
2023-08-03 16:13:33 +02:00
Rémi Verschelde
858e8748e8
Fix or workaround recent extension API compatibility issues
...
- Add compatibility methods for `RenderingDevice::shader_create_from_bytecode`
and `CodeEdit::get_text_for_symbol_loopup`.
- Silence errors which now have compatibility methods.
- Acknowledge GraphEdit/GraphNode compat breakage, intended and WIP.
2023-08-03 12:07:21 +02:00
Hugo Locurcio
037975f6b6
Remove debugging print from shader cache
2023-08-01 17:55:44 +02:00
Yuri Sizov
cc1ee3e599
Merge pull request #79911 from BastiaanOlij/fix_barrier_breakage
...
Add exceptions for breakage introduced in RD barriers
2023-08-01 17:25:40 +02:00
Yuri Sizov
13307e7efc
Merge pull request #79776 from LRFLEW/mobilefog
...
Mobile: Uncomment code required for fog rendering on clear color
2023-08-01 17:25:29 +02:00