Thaddeus Crews
5ac6bce58d
Merge pull request #102105 from clayjohn/SDFGI-unflip-normal
...
Avoid flipping normal based on facing direction when calculating SDF
2025-01-28 09:03:34 -06:00
Dario
d0c29faa15
Mark pipeline compilation of ubershaders as high priority.
2025-01-28 11:40:05 -03:00
Dario
655e98b2ea
Fix default SDFGI variant not being compiled in time.
2025-01-28 10:24:46 -03:00
kleonc
24b502b13a
Fix Y-sorted root item having modulation applied twice
2025-01-28 14:21:36 +01:00
clayjohn
a525e30c27
Avoid flipping normal based on facing direction when calculation SDF. This shader runs for multiple directions, so the flip direction won't be accurate and just creates bad normals
2025-01-27 16:48:29 -08:00
Stuart Carnie
2510fefebd
2D: Fix rendering artefacts when using BackBufferCopy
.
...
Fixes both GLES3 and RendererRD implementations
2025-01-25 10:22:07 +11:00
Thaddeus Crews
a7363946b2
Merge pull request #101911 from rburing/fti_2d_particles_on_target
...
`CPUParticles2D` - Add ability to follow physics interpolated target
2025-01-24 09:05:40 -06:00
Ricardo Buring
56fc0fd175
CPUParticles2D - Add ability to follow physics interpolated target
...
Allows a non-interpolated particle system to closely follow an interpolated target without tracking ahead of the target, by performing fixed timestep interpolation on the particle system global transform, and using this for emission.
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2025-01-24 14:13:20 +01:00
Stuart Carnie
663917449b
2D: Fix CanvasTexture
rendering when updating channels
2025-01-24 07:01:37 +11:00
Florent Guiocheau
d08ff57148
Fix peter-panning with default spotlight
2025-01-22 17:05:04 +01:00
Thaddeus Crews
0d4696b472
Merge pull request #101515 from allenwp/agx-negative-optimizations
...
Optimize AgX tonemapper's handling of negative values
2025-01-20 10:05:38 -06:00
Thaddeus Crews
86002e1a3c
Merge pull request #100882 from smix8/node_navmesh_geo_parsers
...
Make nodes handle their respective navigation source geometry
2025-01-16 17:18:01 -06:00
yesfish
860a6ab9ac
fix source_color default value
2025-01-16 16:07:25 +00:00
Matias N. Goldberg
7b2f1e1d09
Fix union order to simplify empty initializers
...
This is a followup to PR #101344 (commit
0e06eb80bc
).
Some of them were not an issue because Godot was initializing all
members, but they were "fixed" just in case since it could become a
problem in the future.
Valgrind was specifically complaining about HashMapData &
GlobalPipelineData.
2025-01-14 19:05:01 -03:00
Rémi Verschelde
a69ccee151
Merge pull request #101505 from smix8/region_bounds
...
Add functions to get axis-aligned bounds of navigation regions
2025-01-14 15:06:06 +01:00
Rémi Verschelde
85b066aa78
Merge pull request #99455 from Bonkahe/IndirectMultimeshImplementation
...
Add indirect draw functionality to `MultiMesh`
2025-01-14 15:05:42 +01:00
thimenesup
3d92f406b2
Implement Buffer Device Address for Rendering Device Vulkan and DirectX12
2025-01-13 22:43:29 -08:00
Allen Pestaluky
c5cf73a2e7
Optimize AgX tonemapper's handling of negative values
...
This change improves performance of the AgX tonemapper by allowing two matrix multiplications to be combined into one. This comes at the cost of loss of color information that could be correctly interpreted as positive RGB values in the Rec. 2020 color space. Additionally, an insignificant amount of error is intentionally introduced to the input color value to prevent the need for a second max function call before log2. The final negative color clipping has been removed to allow the tonemapper to return negative RGB values, similar to other tonemappers in Godot.
2025-01-13 17:35:35 -05:00
David House
e6daec9cf8
Added indirect drawing functionality to MultiMesh
...
Update doc/classes/RenderingServer.xml
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
2025-01-13 14:51:51 -06:00
Rémi Verschelde
133db1fd60
Merge pull request #92089 from QbieShay/qbe/particle_seek
...
Implement particle seek request and seed options.
2025-01-13 20:21:28 +01:00
smix8
a7520fca6a
Add functions to get axis-aligned bounds of navigation regions
...
Adds functions to get the navigation mesh Rect2 of a NavigationRegion2D or AABB of a NavigationRegion3D.
2025-01-13 20:18:33 +01:00
smix8
0ed2cb0439
Make nodes handle their respective navigation source geometry
...
Makes nodes handle their respective navigation source geometry.
2025-01-12 13:14:46 +01:00
David Snopek
696285f23a
Use MethodInfo::get_compatibility_hash()
to generate the hash for MethodBind::get_hash()
and other GDExtension hash clean up
2025-01-11 15:57:42 -06:00
QbieShay
e9eb0b6082
Implemented tools around particles seed randomization.
...
The purpose of this code is to expose the necessary
functions for users and engine devs to develop tooling
for properly timing and seeking inside particles.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-11 16:31:24 +01:00
Allen Pestaluky
77ddaaaa91
Fix AgX sigmoid contrast curve approximation
...
This changes the polynomial function so that a lower input always results in a lower output and vice-versa. Additionally, the new function returns a value that is much closer to 1.0 when given an input of 1.0.
2025-01-10 18:17:38 -05:00
Rémi Verschelde
139619ca0c
Merge pull request #101355 from akien-mga/style-clang-format-InsertBraces
...
Style: Enable clang-format's `InsertBraces` config
2025-01-10 23:06:15 +01:00
Rémi Verschelde
867425fd62
Merge pull request #101021 from bruvzg/empick
...
[macOS/Windows] Add `Emoji & Symbols` context menu item to LineEdit/TextEdit to show system character picker.
2025-01-10 23:06:03 +01:00
Rémi Verschelde
3014eec40d
Merge pull request #99407 from devloglogan/rec-resolution
...
Allow using custom `Rect2i` for rendering with OpenXR
2025-01-10 23:05:46 +01:00
Pāvels Nadtočajevs
b252867145
[macOS/Windows] Add Emoji & Symbols
context menu item to LineEdit/TextEdit to show system character picker.
2025-01-10 09:25:34 +02:00
Rémi Verschelde
469808f66b
Merge pull request #101112 from clayjohn/skyrd-fov
...
Ensure Sky with custom fov has correction matrix applied to it in RD renderers
2025-01-09 20:51:26 +01:00
Rémi Verschelde
5240e60509
Merge pull request #101344 from DarioSamo/union-order-fix
...
Fix union order to simplify empty initializers.
2025-01-09 17:07:23 +01:00
Rémi Verschelde
03c83cea1e
Style: Enable clang-format's InsertBraces
config
...
This was part of our style guide since we started using clang-format
but the feature was only added in clang-format 15, and we hadn't
noticed it yet.
2025-01-09 16:46:51 +01:00
devloglogan
e7f6b7ea0b
Allow using custom Rect2i for rendering with OpenXR
2025-01-09 09:46:15 -06:00
Dario
0e06eb80bc
Fix union order to simplify empty initializers.
2025-01-09 10:39:13 -03:00
Dario
1af1edf60c
Fix duplicated spec constant on SPIR-V reflection.
2025-01-09 10:27:38 -03:00
Rémi Verschelde
e1a1acc66b
Merge pull request #101279 from akien-mga/audio-pitch-shift-fix-gcc-warning
...
Fix GCC warning about potential stringop-overflow in AudioEffectPitcShift
2025-01-09 11:17:31 +01:00
Rémi Verschelde
a659548946
Merge pull request #101298 from stuartcarnie/rendering_server
...
🔗 GHA / 📊 Static checks (push) Waiting to run
🔗 GHA / 🤖 Android (push) Blocked by required conditions
🔗 GHA / 🍏 iOS (push) Blocked by required conditions
🔗 GHA / 🐧 Linux (push) Blocked by required conditions
🔗 GHA / 🍎 macOS (push) Blocked by required conditions
🔗 GHA / 🏁 Windows (push) Blocked by required conditions
🔗 GHA / 🌐 Web (push) Blocked by required conditions
🔗 GHA / 🪲 Godot CPP (push) Blocked by required conditions
Renderer: Minor optimisation when running `gl_compatibility` mode
2025-01-08 18:20:11 +01:00
Rémi Verschelde
21721ae344
Merge pull request #87260 from Calinou/tonemap-add-agx
...
Add AgX tonemapper option to Environment
2025-01-08 18:20:03 +01:00
Stuart Carnie
abd0e6990c
Renderer: minor optimisation when running gl_compatibility
mode
2025-01-08 09:43:35 -07:00
Hugo Locurcio
084e84be78
Add AgX tonemapper option to Environment
...
Technical implementation notes:
- Moved linearization step to before the outset matrix is applied and
changed polynomial contrast curve approximation.
- This does *not* implement Blender's chroma rotation to address hue shift.
This hue rotation was found to have a significant performance impact.
- Improved performance by combining the AgX outset matrix with the Rec 2020 matrix.
Co-authored-by: Allen Pestaluky <allenpestaluky@gmail.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2025-01-08 17:01:16 +01:00
Aarni Koskela
f134769506
Fix various typos
...
* Add TODO notes for typos that should be fixed for 5.0
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
Rémi Verschelde
6f4089fa55
Fix GCC warning about potential stringop-overflow in AudioEffectPitchShift
...
Fixes #101236 .
2025-01-08 10:40:17 +01:00
Rémi Verschelde
a0c3798fba
Merge pull request #101210 from clayjohn/headless-export-shader
...
Save instance and global uniform data in RenderingServerDummy
2025-01-07 23:18:09 +01:00
Rémi Verschelde
21fdf1678a
Merge pull request #101193 from clayjohn/FSR-y-aspect
...
Correct aspect ratio used in FSR2 calculations
2025-01-07 23:18:04 +01:00
Rémi Verschelde
558a18fbb7
Merge pull request #101198 from Calinou/editor-metalfx-show-options-on-all-platforms
...
Show MetalFX options in the Scaling 3D Mode enum on all platforms
2025-01-07 10:14:54 +01:00
Rémi Verschelde
6d5e47a54c
Merge pull request #100532 from bruvzg/win_size_drag
...
Implement `DisplayServer.window_start_resize`.
2025-01-07 10:14:42 +01:00
Rémi Verschelde
084da581be
Merge pull request #100241 from lander-vr/reflection-probe-priority
...
Add priority-based blending to reflection probes.
2025-01-07 10:14:38 +01:00
bruvzg
cc1db569e1
[TextServer] Improve embedded objects handling performance.
2025-01-07 08:01:29 +02:00
Pāvels Nadtočajevs
7f0b4e58b0
Implement DisplayServer.window_start_resize
.
2025-01-07 07:58:02 +02:00
clayjohn
49846cf79a
Save instance and global uniform data in RenderingServerDummy so they can be exported with headless exports
2025-01-06 19:25:11 -08:00
Hugo Locurcio
865acd0129
Show MetalFX options in the Scaling 3D Mode enum on all platforms
...
Previously, the MetalFX scaling modes were only displayed in the
`macos` and `ios` feature tag overrides if the editor had Metal support
enabled. However, this is only available on the macOS editor, which caused
two issues:
- You couldn't set the 3D scaling mode to MetalFX for `macos` or `ios`
if you were using the editor on another platform.
- If you opened a project that was last edited on macOS with MetalFX scaling
modes set for these overrides, it would show an unknown value or revert
to the default when saving to the project (as the enum value didn't exist
anymore on your end).
2025-01-07 01:06:41 +01:00
clayjohn
25a9b04ecc
Correct aspect ratio used in FSR2 calculations to remove a source of depth-based ghosting
2025-01-06 14:00:58 -08:00
Rémi Verschelde
0f76ee4688
Merge pull request #101110 from clayjohn/light2d-rect-fix
...
Update Light2D `rect_cache` even when not using shadows.
2025-01-06 22:49:01 +01:00
Rémi Verschelde
e169842dd5
Merge pull request #101097 from adamscott/fix-stopping-active-audio-playback
...
Stop AudioStreamPlayback only if it's not playing
2025-01-06 22:48:46 +01:00
Rémi Verschelde
62ea2f76b4
Merge pull request #101069 from DarioSamo/rd-thread-safety-comment
...
Remove TODO from RenderingDevice regarding thread safety.
2025-01-06 22:48:28 +01:00
Rémi Verschelde
ddb01528ea
Merge pull request #100956 from Geometror/dont-toast-shader-code
...
Don't toast shader code
2025-01-06 22:48:05 +01:00
Rémi Verschelde
f5d21154d2
Merge pull request #100892 from syntaxerror247/patch-1
...
Warn if `virtual_keyboard_get_height()` is unsupported
2025-01-06 22:47:49 +01:00
Rémi Verschelde
af01694779
Merge pull request #100492 from bruvzg/txt_mbrk_trim
...
[TextServer] Fix space trimming around mandatory line breaks.
2025-01-06 22:47:38 +01:00
Rémi Verschelde
399f585042
Merge pull request #99603 from stuartcarnie/metal_fx_upscaling
...
Metal: Add MetalFX upscaling support
2025-01-06 22:47:08 +01:00
Stuart Carnie
11dc4f2e5e
Metal: Add MetalFX upscaling support
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-01-06 06:03:18 -07:00
Hendrik Brucker
c0eae103e2
Don't toast shader code
2025-01-05 13:19:45 +01:00
Pāvels Nadtočajevs
e1f129cb52
Support MIME types in file dialog filters on macOS and Linux.
2025-01-04 22:05:35 +02:00
clayjohn
96ce5c0001
Ensure Sky with custom fov has correction matrix applied to it in RD renderers
2025-01-03 17:11:02 -08:00
clayjohn
7e8facc526
Update Light2D rect_cache even when not using shadows.
...
This also cleans up how the rect_cache is updated to make the steps more clear
2025-01-03 16:17:58 -08:00
Adam Scott
a12c1d3ddb
Stop AudioStreamPlayback only if it's not playing
2025-01-03 16:26:08 -05:00
Dario
dea083864b
Remove TODO from RenderingDevice regarding thread safety.
2025-01-03 10:26:44 -03:00
Rémi Verschelde
21e6671740
Merge pull request #100937 from Repiteo/style/clang-format-sync
...
Style: Enforce `AllowShortFunctionsOnASingleLine`
2025-01-03 00:49:44 +01:00
Rémi Verschelde
19a7b466c2
Merge pull request #100848 from BlueCube3310/astc-improvements
...
astcenc: Misc improvements and optimizations
2025-01-03 00:49:22 +01:00
Rémi Verschelde
dd7d36e803
Merge pull request #100770 from hpvb/command-queue-mt
...
Core: Refactor CommandQueueMT to use vararg templates for performance and maintainability
2025-01-03 00:49:02 +01:00
Rémi Verschelde
0d710da96c
Merge pull request #98554 from Calinou/add-property-hint-ranges
...
Add more property hint ranges for project settings
2025-01-03 00:47:59 +01:00
Thaddeus Crews
e06d83860d
Style: Enforce AllowShortFunctionsOnASingleLine
2025-01-02 10:09:41 -06:00
HP van Braam
cccd2432c3
Refactor CommandQueueMT to use vararg templates
...
In order to make CommandQueueMT more maintainable this PR changes the
previous macro hell with variadic templates instead. This makes the
class far more explicit and will allow us to more easily change the way
the class functions in the future.
Furthermore this refactoring has allowed for some optimizations. In
particular by using std::forward to delay the decision of decaying the
type to as late as possible we are able to move the data from the
callsite into our Command buffer and later move it to the call.
In practice what this means is that compared to the old version instead
of copying values 3 times, we can now get away with 1 copy, and 1 move
for lvalues, and just 2 moves for rvalues. This saves quite a few
operations in a hot codepath.
We also now test to make sure that the amount of copies and moves are
what we expect. This way we can spot performance regressions in this
code easily.
Somewhat unscientifically, running TPS-demo by pressing enter and not
touching the controls average mspf, repeatable across many runs:
before: 6.467
after : 6.202
2025-01-02 15:35:08 +01:00
BlueCube3310
6f363b989a
astcenc: Misc improvements and optimizations
2024-12-31 14:25:14 +01:00
Thaddeus Crews
13992bbf7b
Merge pull request #100766 from stuartcarnie/metal_crash
...
Metal: Fix crash when uniform set is empty for slot binding mode
2024-12-30 08:58:51 -06:00
Thaddeus Crews
58b48a934e
Merge pull request #100859 from StaydMcMuffin/scene-shaders-user-normal-fix
...
Fix User-supplied Normals Being Ignored
2024-12-30 08:58:47 -06:00
Thaddeus Crews
888883d608
Merge pull request #100862 from Flarkk/fix_100850
...
Fix regression with shadows when light range is 0 or close
2024-12-30 08:58:12 -06:00
Thaddeus Crews
a9b6b3d932
Merge pull request #100776 from AThousandShips/improve_null_checks
...
Improve use of `Ref.is_null/valid`
2024-12-29 09:35:04 -06:00
Anish Mishra
f588235441
Warn if virtual_keyboard_get_height() is unsupported
...
This PR updates the `DisplayServer::virtual_keyboard_get_height()` method to return 0 with a warning instead of throwing an error when the virtual keyboard is not supported.
2024-12-29 13:38:27 +05:30
Florent Guiocheau
c9632d0eb6
Fix regression with shadows when light range is 0 or close
2024-12-28 11:40:54 +01:00
Stayd
40f17127ef
Fix User-supplied Normals Being Ignored
...
Moves the initialization of the geo_normal value
to after the user shader code, so that the normal
supplied by the user is actually used instead of
the interpolated vertex normal.
2024-12-27 13:01:20 -07:00
smix8
c69408168c
Patch navigation map async synchronization
...
Patches navigation map async synchronization.
2024-12-26 13:04:20 +01:00
Stuart Carnie
b643599749
Metal: Fix crash when uniform set is empty for slot binding mode
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-12-24 07:53:21 -07:00
A Thousand Ships
a1846b27ea
Improve use of Ref.is_null/valid
...
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
landervr
1637736c20
ReflectionProbe priority
2024-12-23 21:58:11 +01:00
Hugo Locurcio
62c17911ea
Add more property hint ranges for project settings
...
- Tweak property hint ranges for some networking settings to ensure
the minimum values don't break the debugger entirely.
- Ensure shader time rollover is set to at least 1, as 0 causes a division by
zero to occur.
All relevant project settings are now covered by a range hint.
2024-12-23 18:22:32 +01:00
smix8
d51615b334
Change navigation map synchronization to an async process
...
Changes the navigation map synchronization to an async process to avoid stalling the main thread.
2024-12-22 02:03:59 +01:00
Rémi Verschelde
f7d6924afb
Merge pull request #100677 from clayjohn/light2d-cull
...
Properly transform light rect and occluder rect to perform Light2D culling in canvas space
2024-12-22 00:10:12 +01:00
clayjohn
30801af298
Properly transform light rect and occluder rect to perform light2d culling in canvas space
2024-12-20 16:58:02 -07:00
Rémi Verschelde
6e23de0aa6
Merge pull request #100653 from stuartcarnie/remove_moltenvk_hack
...
Rendering: MoltenVK hack is no longer required, as bug was fixed.
2024-12-20 23:57:27 +01:00
Rémi Verschelde
87855e04ad
Merge pull request #100643 from ze2j/follow_up_of_array_mesh_surface_remove
...
Follow-up of `ArrayMesh::surface_remove` addition
2024-12-20 23:57:20 +01:00
Rémi Verschelde
fd5548a8b7
Merge pull request #100634 from YYF233333/iwyu2
...
Remove unused headers in servers
2024-12-20 23:57:09 +01:00
Rémi Verschelde
a11364d1e6
Merge pull request #99010 from Hilderin/embedding-game-process
...
Embed game process in editor
2024-12-20 23:56:43 +01:00
Stuart Carnie
9344a29f0e
Rendering: MoltenVK hack is no longer required, as bug was fixed.
...
Original issue: https://github.com/godotengine/godot/pull/51679#issuecomment-976900929
And related fix in SPIRV-Cross: https://github.com/KhronosGroup/SPIRV-Cross/issues/2046
2024-12-20 06:38:42 -07:00
Yufeng Ying
e88e30c273
Remove unused headers in servers.
...
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2024-12-20 18:51:01 +08:00
ze2j
97b093617d
Follow-up of ArrayMesh::surface_remove addition
2024-12-20 10:53:43 +01:00
Thaddeus Crews
e51ab56f9a
Merge pull request #100593 from Namey5/lightmapgi-null-sky-crash
...
LightmapGI: Fix crash during baking when sky is null
2024-12-19 20:00:14 -06:00
Thaddeus Crews
1536e0e236
Merge pull request #100441 from StaydMcMuffin/scene-shaders-tbn-fixes
...
Scene Shaders - TBN Vector Fixes
2024-12-19 19:59:58 -06:00
Thaddeus Crews
b715fabd70
Merge pull request #76371 from ze2j/array_mesh_surface_remove
...
Add `ArrayMesh::surface_remove`
2024-12-19 19:59:56 -06:00
Thaddeus Crews
2fcd8223e8
Merge pull request #99538 from Geometror/lightmap-gi-transparent-surface
...
Add transparency support for LightmapGI
2024-12-19 19:59:52 -06:00
Thaddeus Crews
4665faaaa9
Merge pull request #100427 from Namey5/fog-sky-luminance
...
Separate sky luminance and brightness calculations for consistent fog
2024-12-19 19:59:50 -06:00