Commit graph

2486 commits

Author SHA1 Message Date
clayjohn
c6b08d462a Separate linear and sRGB uniform buffers in RD rendering backends 2024-05-27 13:38:49 -07:00
Rémi Verschelde
abfe8ba7d6
Merge pull request #92258 from DarioSamo/render_list_pass_alloc
Reduce allocations each time a render pass begins in RenderingDevice.
2024-05-23 23:25:51 +02:00
Rémi Verschelde
68c8e2eaf3
Merge pull request #92244 from jsjtxietian/blend-shape-shadow
Fix mesh instance not updated when changing blend shape values
2024-05-23 23:25:48 +02:00
clayjohn
267ea14616 Fix LOD selection in compatibility backend and clean up LOD code 2024-05-23 11:30:22 -07:00
Dario
ce4f19a034 Switch vectors in each render pass to use TLS. 2024-05-23 10:52:29 -03:00
bruvzg
628c81d2d9
[DisplayServer] Add method to check if window transparency is supported and enabled. 2024-05-23 15:23:18 +03:00
jsjtxietian
97af135f1b Fix mesh instance not updated when changing blend shape values 2024-05-23 12:36:31 +08:00
Rémi Verschelde
8e2141eac5
Merge pull request #92232 from clayjohn/RD-mobile-LOD
Only apply LOD when camera is outside the AABB of mesh in mobile renderer.
2024-05-22 09:27:03 +02:00
clayjohn
c5346a62b0 Only apply LOD when camera is outside the AABB of mesh in mobile renderer.
This copies the existing logic from the Forward+ renderer
2024-05-21 18:32:04 -07:00
clayjohn
6fbef0669d Disable all sources of ambient light when ambient_light_disabled render mode is used 2024-05-21 10:42:12 -07:00
Rémi Verschelde
008fd5fee6
Merge pull request #92078 from lawnjelly/increase_tight_cull_epsilon
Tight shadow culling - increase epsilon to prevent flickering
2024-05-21 11:22:47 +02:00
Dario
adabd14d08 Add support for enhanced barriers in D3D12.
Enables support for enhanced barriers if available.

Gets rid of the implementation of [CROSS_FAMILY_FALLBACK] in the D3D12 driver. The logic has been reimplemented at a higher level in RenderingDevice itself.

This fallback is only used if the RenderingDeviceDriver reports the API traits and the capability of sharing texture formats correctly. Aliases created in this way can only be used for sampling: never for writing. In most cases, the formats that do not support sharing do not support unordered access/storage writes in the first place.
2024-05-20 13:04:44 -03:00
Rémi Verschelde
6aece8e1b6
Merge pull request #92045 from RandomShaper/context_getter
Add context getter to RenderingDevice
2024-05-18 17:41:38 +02:00
lawnjelly
512b0f16a3 Tight shadow culling - increase epsilon to prevent flickering
Near colinear triangles were still causing inaccuracy in culling planes, so the threshold for colinearity is bumped up.
2024-05-18 14:14:27 +01:00
Rémi Verschelde
d3e261523f
Merge pull request #88289 from DarioSamo/rd_minimized_window
Fix swap chain errors when application starts minimized.
2024-05-17 11:13:31 +02:00
Pedro J. Estébanez
ffa791c41f Add context getter to RenderingDevice 2024-05-17 09:56:03 +02:00
Rémi Verschelde
5708a3a02e
Merge pull request #92000 from clayjohn/vram-debugger
Increase coverage of VRAM debugger and add support to RD backends
2024-05-16 09:32:11 +02:00
clayjohn
c84616c2d2 Increase coverage of VRAM debugger and add support to RD backends 2024-05-15 16:30:19 -07:00
Dario
61cd007cf4 Rewrite implementation for prepare for use commands to be skipped when not required by the API. 2024-05-15 14:34:52 -03:00
Rémi Verschelde
c9fdcde20f
Merge pull request #91642 from BastiaanOlij/fix_transparent_sky
Skip rendering sky if viewport is set to transparent background
2024-05-14 12:06:44 +02:00
Rémi Verschelde
db3c4a4612
Merge pull request #91514 from DarioSamo/adreno_workaround
Add optional driver workaround to RenderingDevice for Adreno 6XX.
2024-05-14 12:06:37 +02:00
Dario
d5789e09eb Add optional driver workaround to RenderingDevice for Adreno 6XX.
Co-authored-by: Clay John <claynjohn@gmail.com>
2024-05-13 10:20:31 -03:00
Yaohua Xiong
ed3d311687 Add antialias support for CanvasItem draw primitives
including
- rect, circle; both filled and unfilled.
- polyline, multiline
2024-05-13 19:03:31 +08:00
Rémi Verschelde
c322a9b7ee
Merge pull request #91808 from DarioSamo/debug_mv_msaa
Do not use MSAA versions of textures on debug views.
2024-05-13 12:05:46 +02:00
Bastiaan Olij
6efaaecde2 Skip rendering sky if viewport is set to transparent background 2024-05-13 11:04:06 +10:00
Dario
a3ecc86f47 Do not use MSAA versions of textures on debug views. 2024-05-10 14:01:58 -03:00
Dario
3f64eeb393 Rewrite reprojection for FSR2 to work correctly with Reverse-Z. 2024-05-10 11:57:27 -03:00
lawnjelly
a76243a549 Tighter light culling - fix directional lights colinear case
Exactly the same fix as done already for non-directional lights.
2024-05-10 09:13:05 +01:00
Pedro J. Estébanez
1589433e8f Apply additional fixes to servers' threading 2024-05-08 17:41:40 +02:00
A Thousand Ships
a0dbdcc3ab
Replace find with contains/has where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
Rémi Verschelde
7d03b1de0b
Style: Trim trailing whitespace and ensure newline at EOF
Found by apply the file_format checks again via #91597.
2024-05-08 10:12:46 +02:00
Rémi Verschelde
259d576f6e
Merge pull request #91480 from clayjohn/Mobile-mipmaps-bug
Use a full screen triangle for mipmap calculations in mobile renderer
2024-05-07 14:25:42 +02:00
Rémi Verschelde
4b070e8031
Fix various typos with codespell
Using 2.2.7.dev217+g10c2abcf.

Had to add `colour` to the ignore list as we used it as an alias/keyword for the
documentation of color-related APIs.
Also ignore recommendations to change `thirdparty` to either `third-party` or
`third party`, which are correct but we use the former fairly consistently.
2024-05-07 10:08:42 +02:00
Rémi Verschelde
e63252b421
Merge pull request #90705 from AThousandShips/foreach_list
Reduce and prevent unnecessary random-access to `List`
2024-05-07 09:04:44 +02:00
Marcel Offermans
2bb34a4489 Added a project setting to configure the maximum amount of timestamps, with a description and a reference to the setting when the limit is hit and an ERR_FAIL_COND is hit. 2024-05-05 09:09:04 +02:00
Rob Blanckaert
64c04d95aa Fix shader error on mobile when using LIGHT_VERTEX 2024-05-04 11:02:05 -07:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Rémi Verschelde
7ebc866418
Merge pull request #91545 from clayjohn/RD-shadow-atlas
Properly set size of shadow atlas quadrant when subdivision is 8 or higher.
2024-05-04 11:52:45 +02:00
Rémi Verschelde
f236b9badc
Merge pull request #91530 from DarioSamo/timestamp_validation
Add draw and dispatch count to timestamp validation.
2024-05-04 11:52:41 +02:00
Rémi Verschelde
a2fc5e2d78
Merge pull request #89894 from BastiaanOlij/improve_foveated_rendering
Improvements to VRS/Foveated rendering
2024-05-04 11:52:15 +02:00
clayjohn
caeef3473b Properly set size of shadow atlas quadrant when subdivision is 8 or higher.
Also fix renderpass rect validation
2024-05-03 17:11:05 -07:00
Dario
c41e407e61 Add draw and dispatch count to timestamp validation. 2024-05-03 14:23:38 -03:00
Rémi Verschelde
03e6fbb010
Merge pull request #85474 from fire/packedvector4array
Add `PackedVector4Array` Variant type
2024-05-03 12:25:26 +02:00
Bastiaan Olij
9042ddf19f Improvements to VRS/Foveated rendering 2024-05-03 17:20:30 +10:00
A Thousand Ships
6ff6a11424
[Rendering] Add hints to some uniform PropertyInfos
* Enforce range on `int/uint`
* Use flags for `bvec2/3/4` arrays
2024-05-03 08:56:47 +02:00
K. S. Ernest (iFire) Lee
f9b488508c
Add PackedVector4Array Variant type
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-03 00:58:27 +02:00
clayjohn
bebf85487e Use a full screen triangle for mipmap calculations in mobile renderer 2024-05-02 13:17:09 -07:00
A Thousand Ships
308dbb8c63
[Core] Add scalar versions of Vector* min/max/clamp/snap(ped)
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Rémi Verschelde
f91db3dc58
Merge pull request #91399 from QbieShay/qbe/fix-pmul-name
Revert premul alpha to spell without the T
2024-05-01 23:47:46 +02:00
QbieShay
e41064388e reverted naming to premul alpha (no T)
Initially 3d had premulT alpha as a keyword.
Since Canvas item uses mixed premul and premult as keywords,
3D is changed as well to keep consistency with 2D.
Unfortunately this keeps inconsistency with the internal ENUM.
2024-05-01 22:24:49 +02:00
Chris Clyne
44364faee5 Ensure global shader sampler parameters are initialized when loading the editor 2024-05-01 18:12:46 +01:00
Rémi Verschelde
7733ecd1ee
Merge pull request #91344 from tactical-fluke/vk_fix_unshaded_sdfgi
Fix SDFGI being used in unshaded debug draw
2024-05-01 09:55:18 +02:00
Rémi Verschelde
70247adf25
Merge pull request #89734 from BastiaanOlij/openxr_reorder_wait_frame
OpenXR: Change timing of xrWaitFrame and fix XR multithreading issues
2024-05-01 09:54:51 +02:00
Bastiaan Olij
cbab7dc049 OpenXR: Change timing of xrWaitFrame and add thread safety features to OpenXR 2024-05-01 14:24:41 +10:00
QbieShay
41a2b0e83e Added premult alpha blending to 3D (spatial) shaders.
Co-authored-by: jitspoe <jitspoe@yahoo.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2024-05-01 00:53:29 +02:00
tactical-fluke
216c9a6bd9 Fix SDFGI being used in unshaded debug draw
Fixes #62758
2024-04-30 11:28:29 +08:00
Dario
21bd59cdaa Fix incorrect memory read when capacity changes in RD Graph. 2024-04-29 10:48:48 -03:00
Rémi Verschelde
947f5a8741
Merge pull request #91247 from AThousandShips/callable_fix
Fix unsafe uses of `Callable.is_null()`
2024-04-29 10:10:32 +02:00
Rémi Verschelde
9f336a2953
Merge pull request #91219 from Lateasusual/particle-height-field-upside-down
Fix inverted GPUParticlesCollisionHeightField3D
2024-04-29 10:10:12 +02:00
Rémi Verschelde
7cd6ea0f7e
Merge pull request #91183 from KoBeWi/small_stuff
Misc code cleanup
2024-04-29 10:09:57 +02:00
A Thousand Ships
31e7ee63f2
Fix unsafe uses of Callable.is_null()
`Callable.is_null()` is not equivalent to `!Callable.is_valid()` and
doesn't guarantee the call is valid.
2024-04-27 16:22:57 +02:00
Chris Clyne
1ca0eeac28 Fix inverted GPUParticlesCollisionHeightField3D 2024-04-26 17:30:50 +01:00
kobewi
914528180f Misc code cleanup 2024-04-26 15:30:21 +02:00
Bastiaan Olij
d2d22748b4 Fix issue in shadow to opacity 2024-04-26 21:54:26 +10:00
Rémi Verschelde
853740e2ad
Merge pull request #91191 from clayjohn/RD-soft-shadows
Properly calculate penumbra for soft shadows with reverse z
2024-04-26 11:09:02 +02:00
Rémi Verschelde
a07f89bfb2
Merge pull request #91176 from clayjohn/GL-adjustments
Add adjustments and color correction to Compatibility renderer
2024-04-26 11:08:56 +02:00
Rémi Verschelde
22c8a2785d
Merge pull request #90920 from clayjohn/2D-light-cull
Exit light calculation early when pixel outside of light bounding rectangle
2024-04-26 11:08:29 +02:00
clayjohn
4e5e81c7d4 Properly calculate penumbra for soft shadows with reverse z
Also fix a related bug where the DirectionalLight3D size was ignored unless a positional light with soft shadows touched the mesh
2024-04-25 17:06:49 -07:00
clayjohn
e8bb0a5719 Add adjustments and color correction to Compatibility renderer 2024-04-25 12:24:51 -07:00
Rob Blanckaert
ffe0b869f5 Add LIGHT_VERTEX to fragment shader
Adds a new variable to the fragment shader to specify
the vertex position used when calculating lighting.
2024-04-25 06:56:02 -07:00
Rémi Verschelde
a754bbc565
Merge pull request #91059 from BastiaanOlij/fix_multiview_copy
Fix issue with copy shader not working in multiview
2024-04-23 19:12:24 +02:00
Rémi Verschelde
258be6d762
Merge pull request #90911 from clayjohn/RD-tex-copy
Ensure minimum block size is respected when doing GPU to CPU copies of compressed textures
2024-04-23 19:11:51 +02:00
Rémi Verschelde
99cff796ea
Merge pull request #90883 from cosparks/fix-sdf-collision-2d
Fix LightOccluder2D SDF Collision Enable/Disable
2024-04-23 19:11:40 +02:00
Rémi Verschelde
a55ffba31b
Merge pull request #90620 from thimenesup/fix_push_constant
Fix incorrect bounds check in RenderingDevice push constant
2024-04-23 19:11:17 +02:00
Bastiaan Olij
226ca2f04c Fix issue with copy shader not working in multiview 2024-04-23 21:46:39 +10:00
cosparks
6d0dca76c0 Fixes SDF Collision Enable/Disable
- sets LightOccluderInstance field when sdf collision is updated
- adds check for light occluder sdf_collision field in 2d renderers
2024-04-22 20:27:56 -07:00
clayjohn
506e93a207 Exit light calculation early when pixel outside of light bounding rectangle
This hugely improves the performance of rendering PointLight2Ds
2024-04-19 16:10:11 -07:00
clayjohn
c52e217cd3 Ensure minimum block size is respected when doing GPU to CPU copies of compressed textures 2024-04-19 10:17:17 -07:00
Rémi Verschelde
993d15da17
Merge pull request #90821 from clayjohn/RD-clip-children-rect
Use a src rect for copying from screen with CanvasGroup in the mobile backend
2024-04-19 16:27:41 +02:00
clayjohn
eb62c5b27f Revert change to default depth clear value in draw_list_begin 2024-04-17 19:08:22 -07:00
clayjohn
adfc9ccc44 Use a src rect for copying from screen with CanvasGroup in the mobile backend 2024-04-17 15:19:20 -07:00
Oxi
1815871b90 Fixed unshaded mode lightmaps 2024-04-17 10:38:54 +01:00
Rémi Verschelde
ce13f0c033
Merge pull request #90749 from kleonc/y-sort-branch-root-transform-fix
Fix rendering transform of Y-sorted branch-root
2024-04-17 10:58:58 +02:00
kleonc
983cdb2f54 Fix transform of Y-sorted branch-root 2024-04-16 14:26:47 +02:00
Rémi Verschelde
8901e8776a
Merge pull request #90587 from clayjohn/reversez-shader-warn
Warn users when assigning `VERTEX` directly to `POSITION` due to compatibility breakage from Reverse Z changes
2024-04-16 13:30:47 +02:00
thimenesup
1ab5a47347 Fix incorrect bounds check in rendering device push constant 2024-04-13 14:53:19 +02:00
clayjohn
2f83b400a8 Warn users when assigning VERTEX directly to POSITION due to compatibility breakage from reverse z changes 2024-04-12 10:38:35 -07:00
Juan Linietsky
65686dedf9 Use WorkerThreadPool for Server threads
* Servers now use WorkerThreadPool for background computation.
* This helps keep the number of threads used fixed at all times.
* It also ensures everything works on HTML5 with threads.
* And makes it easier to support disabling threads for also HTML5.

CommandQueueMT now syncs with the servers via the WorkerThreadPool
yielding mechanism, which makes its classic main sync semaphore
superfluous.

Also, some warnings about calls that kill performance when using
threaded rendering are removed because there's a mechanism that
warns about that in a more general fashion.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2024-04-10 18:47:42 +02:00
Pedro J. Estébanez
c28f5901c7 Polish interaction between windowing, input and rendering
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
2024-04-10 18:47:42 +02:00
Rémi Verschelde
5c75fa260f
Merge pull request #90458 from clayjohn/RD-weight-buffer
Clear RIDs of weight buffers when freeing to avoid double free
2024-04-10 14:22:37 +02:00
Rémi Verschelde
258f2705f6
Merge pull request #90440 from Calinou/geometryinstance3d-fix-custom-aabb-assignment
Fix GeometryInstance3D Custom AABB assignment in the editor not working
2024-04-10 14:22:33 +02:00
Rémi Verschelde
50b89e6c56
Merge pull request #89752 from ze2j/fix_false_positive_errors_in_gdshaderinc_files
Fix false positive errors in gdshaderinc files
2024-04-10 14:22:00 +02:00
Rémi Verschelde
c59f493620
Merge pull request #89729 from jitspoe/master.shadow_distance_fade_optimization
Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance.
2024-04-10 14:21:56 +02:00
clayjohn
bafbde9f4b Clear RIDs of weight buffers when freeing to avoid double free 2024-04-09 17:52:05 -07:00
Hugo Locurcio
084b8d1246
Fix GeometryInstance3D Custom AABB assignment in the editor not working
This also fixes error spam when changing Custom AABB on a MeshInstance3D
that has no Mesh resource assigned yet (which is allowed in the editor).
This avoids pitfalls when assigning a custom AABB in a script when
loading meshes at runtime.
2024-04-09 19:02:43 +02:00
Rémi Verschelde
9cba6ec216
Merge pull request #89491 from thimenesup/compute_dispatch_indirect
Expose bindings to compute dispatch indirect of rendering device
2024-04-09 10:42:22 +02:00
thimenesup
8017c8cf21 Expose bindings to compute dispatch indirect rendering device 2024-04-08 20:46:53 +02:00
jsjtxietian
5a5453bcf2 Fixes RenderingDevice::get_driver_resource will crash or give incorrect result with certain resources 2024-04-08 12:31:22 +08:00
Rémi Verschelde
c1b2cfdced
Merge pull request #90271 from DarioSamo/pipeline_cache_setting
Add toggle for enabling or disabling RenderingDevice's pipeline cache.
2024-04-06 13:06:47 +02:00
Rémi Verschelde
10d67e590d
Merge pull request #90191 from BastiaanOlij/fix_mobile_canvas_copy
Don't use subpasses when we're using Canvas background mode in Mobile
2024-04-06 13:06:37 +02:00
Dario
ecaafa6001 Add toggle for enabling or disabling RenderingDevice's pipeline cache. 2024-04-05 13:14:07 -03:00
Rémi Verschelde
b5064a6160
Merge pull request #89714 from lawnjelly/tighter_light_cull_colinear_fix
Tighter shadow culling - fix light colinear to frustum edge
2024-04-05 12:15:53 +02:00
Rémi Verschelde
0c71ba7801
Merge pull request #89880 from dsnopek/openxr-composition-layers-node3d-drs
Add support for OpenXR composition layers
2024-04-04 17:09:07 +02:00
David Snopek
0f2b804059 Add support for OpenXR composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-04-04 09:20:23 -05:00
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