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
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
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
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
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
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
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
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
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
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
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
Bastiaan Olij
df8ff797b7
Consistantly use USE_MULTIVIEW as the define in shaders
2024-03-11 14:40:00 +11: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
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
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
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
clayjohn
2657593462
Use barriers between all blur passes with SSAO and SSIL
2024-02-21 14:35:20 -08: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
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
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
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
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
Erik Johnson
eab95698cd
Fix shadows for billboarded Sprite3D's
2024-02-13 10:36:38 +01: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
A Thousand Ships
684752e75b
Replace error checks against `size` with `is_empty`
2024-02-09 12:50:15 +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
Pedro J. Estébanez
f3ef83517a
Namespace shader cache files by graphics API
2024-01-31 20:19:12 +01: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
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
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
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
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
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
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
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
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
Dario
80eacf1b7a
Fix incorrect mapping of initial action as clear region continue to clear.
2024-01-09 22:03:21 -03: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
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
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
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
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
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
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