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
dee2604d99
Merge pull request #84729 from nickyfoo/add-navigationserver-getters
...
Add missing getters to navigation servers
2023-12-19 20:32:46 +01:00
Nicholas Foo
e7ee672120
Add getters to navigation servers
...
Add virtual functions and bind to navigation servers
Implement getters
Add documentation
2023-12-19 19:51:49 +01:00
msreis
f1cc14d525
Fix missing time for some script functions in profiler
...
Fixes the issue by adding a mechanism by which the functions that were
previously disappearing can be profiled too. This is optional with
an editor setting, since collecting more information naturally slows the engine
further while profiling.
Fixes #23715 , #40251 , #29049
2023-12-19 19:42:21 +01:00
Yuri Sizov
644e236e5c
Merge pull request #83987 from bruvzg/macos_window_and_help
...
[macOS] Add default Window and Help menus, allow special menu customization.
2023-12-18 18:17:41 +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
Yuri Sizov
ef94545658
Merge pull request #84169 from BastiaanOlij/vulkan_mobile_merge_passes
...
Merge passes in Vulkan mobile renderer
2023-12-16 17:49:27 +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
风青山
ea30aabfb1
Clear monitoring in Area*
when its space changes to invalid
...
So that it can work properly when the space changes to valid again.
Change `space` in advance to prevent disabled areas from being queried again.
2023-12-15 20:54:54 +01: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
bruvzg
0d44b50520
[macOS] Add default Window and Help menus, allow special menu customization.
2023-12-13 23:20:05 +02: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
Rémi Verschelde
4e2350b1af
Merge pull request #82661 from bruvzg/custom_ellipsis
...
[Text Overrun] Add option to set custom ellipsis character, add support for system font fallback.
2023-12-12 00:15:34 +01:00
Rémi Verschelde
9eb47ce361
Merge pull request #75098 from smix8/map_random_point_queries_4.x
...
Add NavigationServer random point queries
2023-12-12 00:15:05 +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
07677f0f51
Merge pull request #85885 from YuriSizov/bench-pressing
...
Improve engine startup/shutdown benchmarks
2023-12-08 17:12:26 +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
Yuri Sizov
fc3f40f37d
Improve engine startup/shutdown benchmarks
...
- Add contexts to give a better sense of benchmarked areas.
- Add missing benchmarks and adjust some begin/end points.
- Clean up names.
- Improve Android's internal benchmarks in a similar manner.
Co-authored-by: Fredia Huya-Kouadio <fhuya@meta.com>
2023-12-08 12:53:04 +01:00
smix8
64a56245d8
Add NavigationServer random point queries
...
Adds query functions to get random points on navigation mesh to the NavigationServer.
2023-12-08 00:18:05 +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
7b2b408410
Merge pull request #85646 from aaronfranke/mesh-surf-arr-msg
...
Add a descriptive error message when creating a mesh surface from the wrong array type
2023-12-04 23:21:11 +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
bruvzg
56579f397d
[Text Overrun] Add option to set custom ellipsis character, add support for system font fallback.
2023-12-04 08:21:42 +02:00
Aaron Franke
7d5b902838
Add a descriptive error message when creating a mesh surface from arrays
2023-12-02 00:44:59 -06: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
Rémi Verschelde
fa1fb2a53e
Merge pull request #85147 from RandomShaper/fix_gfx_dbg_labels
...
Fix potential double-close of draw command label
2023-11-20 21:20:54 +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
dfd61cdac6
Merge pull request #85138 from YuriSizov/rendering-borked-meshes-dont-bork-the-editor
...
Avoid division by zero in the fix surface compatibility routine
2023-11-20 18:36:26 +01:00
Yuri Sizov
98011e032d
Avoid division by zero in the fix surface compatibility routine
2023-11-20 16:22:58 +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
Anutrix
3c82f4a371
Added docs for DRAW_ORDER_REVERSE_LIFETIME constant and minor XR log improvement
2023-11-11 21:17:19 +05:30
Rémi Verschelde
34e34f0945
Merge pull request #82478 from jsjtxietian/fix-AudioStreamRandomizer-random_volume_offset_db-not-working
...
Fix `AudioStreamRandomizer.random_volume_offset_db` not working
2023-11-10 21:53:45 +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
Rémi Verschelde
f0c52c0e35
Merge pull request #84576 from clayjohn/mesh-tangents-always
...
Create tangent array if mesh created without tangents
2023-11-08 19:09:36 +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
031f221b9d
Create tangent array if mesh created without tangents
...
This extends our previous change to ensure that compressed meshes have tangents
Now we ensure tangents are always used. This greatly simplifies our compression code at the cost of a small amount of bandwidth
2023-11-07 14:24:23 +01:00
Rémi Verschelde
44a54f4500
Merge pull request #84252 from clayjohn/ensure_tangents
...
Enhance checks and user experience around tangent arrays in meshes.
2023-11-02 09:11:32 +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
clayjohn
be386e1876
Overhaul the SurfaceUpgradeTool
...
This defers the update to a fresh restart of the editor (to ensure we aren't mid way through loading scenes anymore.
It also ensures that the popup can't be used by multiple threads at once
Co-authored-by: Yuri Sizov <yuris@humnom.net>
2023-11-01 15:32:54 +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
Rémi Verschelde
93cdacbb0a
Merge pull request #84211 from clayjohn/a2c
...
Fix bug with alpha to coverage by enabling depth discard when using alpha to coverage
2023-10-30 23:24:12 +01:00
clayjohn
3f5c16dd9e
Fix multiple issues with UV compression
2023-10-30 23:11:34 +01: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
bb54190253
Merge pull request #83840 from clayjohn/mesh-flat-bug
...
Ensure `r_aabb` is always used when creating surfaces through the RenderingServer
2023-10-26 16:00:32 +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
clayjohn
3c17f556ad
Ensure r_aabb is always used when creating surfaces through the RenderingServer
2023-10-23 20:36:20 +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
golfinq
e03a65fdea
replace confusing code in CapsuleShape2D
2023-10-20 18:08:27 -04: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
Rémi Verschelde
842c1cafc0
Merge pull request #83400 from bitsawer/fix_mobile_instance_uniforms
...
Fix Mobile renderer shader instance uniform access
2023-10-16 10:42:38 +02:00
bitsawer
f0a178cbdb
Fix Mobile renderer shader instance uniform access
2023-10-15 18:09:54 +03:00
Lunarisnia
28f7a62ae4
Fix disabling depth prepass breaks opaque material
2023-10-15 12:18:13 +07:00