1
0
Fork 0
Commit Graph

4764 Commits

Author SHA1 Message Date
Lukas Rahmann f7fd65923a Add descriptor heap pooling to D3D12. 2025-09-04 09:17:40 -03:00
Hugo Locurcio dd8bab9f89
Fix shader compilation errors in Compatibility when using `depth_texture`
Globals were defined too early, which means some uniforms were not available
at the point they were defined in.
2025-09-04 00:33:45 +02:00
Dario 1ce55b946c Clamp minimum size of 3D texture view in D3D12. 2025-09-02 15:13:27 -03:00
Arseny Kapoulkine dcefe95ae4 Configure SDL assuming we, in fact, have a libc.
Without this, on Linux and Linux alone, and only if SDL is builtin, the
definitions for some functions - notably, memset/memcpy - are taken from
SDL source.

This leaves them at the mercy of the compiler and may lead to the
optimal implementations of these functions not being selected. But the
main motivation for this is that it's action at a distance that is
incredibly surprising - linking in a gamepad support library should not
change the implementation of memset/memcpy!
2025-09-01 23:19:35 -07:00
Clay John 0f0bb7d225
Merge pull request #110025 from DarioSamo/fix-shader-debug-info-take-two
Fix --generate-spirv-debug-info regression (alternate take)
2025-09-01 19:37:27 -07:00
Thaddeus Crews 280503b4ee
Merge pull request #110063 from stuartcarnie/109846/ios_crash
Metal: Reduce baked version to MSL 3.1; validate minimum version
2025-09-01 19:09:56 -05:00
Thaddeus Crews ac5c6a1060
Merge pull request #110148 from bruvzg/0_5_msdf_outline
[MSDF] Fix outline bleed out at small sizes.
2025-09-01 12:25:41 -05:00
Thaddeus Crews 52a5644b5f
Merge pull request #108214 from Nintorch/fix-joypad-vendor-product
Fix `Input.get_joy_info()` regression after the SDL input driver PR
2025-09-01 11:14:12 -05:00
Pāvels Nadtočajevs f766e401db
[MSDF] Fix outline bleed out at small sizes. 2025-08-31 23:35:33 +03:00
Nintorch f28acf97d0 Fix Input.get_joy_info() regression
SDL input driver did not have the "xinput_index", "raw_name", "vendor_id" and "product_id" fields for this method and exposed an additional, essentially useless for the users "mapping_handled" field. This commit fixes these issues.
2025-08-29 22:13:40 +05:00
Stuart Carnie 1b64bcb98d Metal: Reduce baked version to MSL 3.1; validate minimum version
Validate the MSL version of the baked shader is <= the current version
supported by the OS, and return an error so it is recompiled.

Closes #109846
2025-08-29 05:48:51 +10:00
Dario e137c882c0 Disable smolv and change the shader hash when SPIR-V debug info is enabled. 2025-08-28 14:17:58 -03:00
Bastiaan Olij a38256c19e OpenXR: Fix ViewportTextures not displaying correct texture (Compatibility) 2025-08-27 13:02:39 +10:00
Thaddeus Crews 6db7f65110
Merge pull request #109819 from Nintorch/fix-get-connected-joypads
Fix DirectInput controllers on game startup
2025-08-25 09:54:17 -05:00
Thaddeus Crews b432e108d5
Merge pull request #109791 from Talkashie/master
Typo cleanup pass
2025-08-21 18:39:37 -05:00
Nintorch dd2e1b104b Fix DirectInput controllers on game startup
Now SDL and DirectInput don't complain when a game starts with a DirectInput controller already connected. Fixes "JoypadSDL::process_events: Error opening gamepad at index 1: IDirectInputDevice8::SetCooperativeLevel() DirectX error 0x80070006"
2025-08-21 13:21:48 +05:00
Thaddeus Crews 4012392cd6
Merge pull request #109786 from Repiteo/scons/metal-gnu++20
SCons: Use gnu++20 in metal driver
2025-08-20 12:07:16 -05:00
Thaddeus Crews 4f393e0c3c
Merge pull request #109644 from RandomShaper/fix_dupe_tex2darr
Fix material removal clearing all instances of shared texture arrays
2025-08-20 12:07:14 -05:00
Thaddeus Crews 28d1406d61
Merge pull request #109765 from bruvzg/msdf_outline_clamp
Fix MSDF outline size clamping.
2025-08-20 12:07:11 -05:00
Thaddeus Crews 5cd785d3a8
SCons: Use gnu++20 in metal driver 2025-08-20 09:56:38 -05:00
Talkashie 3ff4e29657 Typo fix round 2 2025-08-20 04:24:06 -05:00
João Pedro Xavier d6aca93c1a Fix bug where material with double-sided shadows ignores backface culling on compatibility renderer 2025-08-19 20:21:10 -07:00
Talkashie bc7e68dfd1 Typos 2025-08-19 18:32:59 -05:00
Thaddeus Crews c8b89b84cc
Merge pull request #109750 from Nintorch/fix-get-connected-joypads
Handle SDL joypad events for connected controllers on game startup (on Windows and Linux)
2025-08-19 10:29:46 -05:00
Thaddeus Crews b2deb22edd
Merge pull request #109749 from Repiteo/scons/mesa-rollback
SCons: Temporarily revert Mesa includes to `CPPPATH`
2025-08-19 10:29:45 -05:00
Thaddeus Crews ef44ec13d1
Merge pull request #109397 from bruvzg/execute_with_pipe_dsc_fix
[Unix] Fix `execute_with_pipe` closing wrong pipe handle.
2025-08-19 10:29:44 -05:00
BlueCube3310 d481a23c5a Compatibility: Improve ASTC extension detecting 2025-08-19 17:12:55 +02:00
Pāvels Nadtočajevs 6a3941b5d9
Fix MSDF outline size clamping. 2025-08-19 08:28:33 +03:00
Nintorch 197961ddc9 Process SDL joypad events on startup
Make sure that SDL events are processed when the SDL joypad input driver is initialized, this will allow it to register the connected controllers when a game starts.
2025-08-18 23:55:20 +05:00
Thaddeus Crews 65b8210b9b
SCons: Revert Mesa includes to `CPPPATH` 2025-08-18 13:37:46 -05:00
Pedro J. Estébanez 919006eb35 Fix material removal clearing all instances of shared texture arrays 2025-08-18 12:21:15 +02:00
Thaddeus Crews ca452113d4
Merge pull request #109437 from bruvzg/msdf_no_t
Use MSDF instead of MTSDF for font rendering.
2025-08-11 09:55:28 -05:00
Thaddeus Crews 1ee48c5fde
Merge pull request #109478 from TCROC/fix-ios-auto-orientation
Fix screen_orientation not being assigned on ios
2025-08-11 09:55:22 -05:00
Thaddeus Crews da91a55b3c
Merge pull request #109283 from Nintorch/master
Fix C# environment variables access on Linux (SDL-related bug)
2025-08-11 09:55:21 -05:00
Nintorch 5876648666 Fix C# environment variables (SDL-related issue)
For some reason, these SDL defines mess with C#'s ability to use environment variables
2025-08-11 11:34:30 +05:00
Travis Lange d4b7222ca0 fixed screen_orientation not being assigned on ios 2025-08-09 20:46:17 -04:00
Pāvels Nadtočajevs 86e61a311f
Use MSDF instead of MTSDF for font rendering.
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2025-08-09 10:41:16 +03:00
Pāvels Nadtočajevs 9d13037653
[Unix] Fix `execute_with_pipe` closing wrong pipe handle. 2025-08-07 19:04:01 +03:00
Pāvels Nadtočajevs 8b4e34cda5
[Unix] Replace symlink target, not the link itself when using backup save mode. 2025-08-07 11:14:18 +03:00
BlueCube3310 356b1ab2a6 Compatibility: Fix cubemap faces order when setting texture data 2025-08-04 13:27:28 +02:00
Thaddeus Crews ca515cf650
Merge pull request #108373 from Nintorch/fix-sowrap-enabled
Fix the usage of udev and dbus with SDL joystick input driver
2025-08-03 10:51:17 -05:00
Thaddeus Crews 159133e679
Merge pull request #109198 from Lielay9/fix_primitive_tex
Break batch on Compatibility when primitive texture changes
2025-08-03 10:51:12 -05:00
Thaddeus Crews 87bb5ab681
Merge pull request #108919 from KeyboardDanni/d3d12_init_shader_model_check
D3D12: Fix shader model check, initialization error handling
2025-08-01 11:45:19 -05:00
Hei ce0a74bfe2 Break batch on Compatibility when primitive texture changes. 2025-08-01 16:13:17 +03:00
Thaddeus Crews f9313aa27b
Merge pull request #108924 from bruvzg/ac17
Update access-kit to 0.17.0
2025-07-31 10:39:09 -05:00
Thaddeus Crews 5787f6fb6a
Merge pull request #108044 from apples/107935-stencil-fixes
Fix opaque stencil rendering
2025-07-31 10:39:08 -05:00
Nintorch 0e19ad507e Fix the usage of libudev and dbus with SDL
Previously, libudev was ignored if SOWRAP_ENABLED was defined (it is defined by default) because otherwise it would crash CI builds due to a missing header, and dbus was always linked dynamically. This commit should fix this issue and make libudev usable again
2025-07-31 15:05:06 +05:00
Riley Willows fbe2710843
Add and enable default textures for other samplers 2025-07-31 00:08:43 +01:00
Pāvels Nadtočajevs 3f757c41fc
Update access-kit to 0.17.0 2025-07-29 08:37:01 +03:00
Danni bf6629a005 D3D12: Fix shader model check, initialization error handling 2025-07-28 20:35:45 -04:00
Summersay415 18d14ff18e Remove Adreno 3xx flip workaround 2025-07-28 14:03:25 +07:00
Thaddeus Crews 0c595dae45
Merge pull request #108936 from DarioSamo/vk-memory-layout-variant
Check for Vulkan Memory Model support and make it a variant.
2025-07-25 11:08:12 -05:00
Dario b962b38e74 Check for Vulkan Memory Model support and make it a variant. 2025-07-25 09:24:58 -03:00
moluopro 39fba218bd Fix: Make get_space_left on Windows use current_dir instead of process CWD 2025-07-25 19:47:25 +08:00
David Snopek ae61044c85 Don't use `GL_DEPTH_STENCIL_ATTACHMENT` on depth buffer from WebXR 2025-07-24 14:11:36 -05:00
Thaddeus Crews f884f24212
Merge pull request #108350 from DanielSnd/linux_sdl_env_variables_access
Add environment variable access defines to SDL linux build config
2025-07-18 11:05:18 -05:00
DanielSnd 71e498509d Add environment variable access defines to SDL linux build config 2025-07-18 10:37:52 -03:00
Juan Manuel Costello 5dc25db6da Fix lightmap dynamic objects with physical lights 2025-07-17 20:58:03 -03:00
Thaddeus Crews 9ba44cb613
Merge pull request #108364 from Rindbee/use-inotify-to-detect-devices-on-Linux
Use inotify to detect devices for better reliability on Linux
2025-07-17 10:34:45 -05:00
Pāvels Nadtočajevs 80b39cd1bd
[Linux] Fix narrowing conversion error in 32-bit builds. 2025-07-16 09:34:38 +03:00
Thaddeus Crews 61956f2e06
SCons: Ensure `CPPDEFINES` is properly utilized 2025-07-14 13:07:53 -05:00
Thaddeus Crews 6bc7fcb7af
Merge pull request #108567 from beicause/multimesh-null-checks
Add some multimesh null checks to avoid crash
2025-07-14 10:30:35 -05:00
Thaddeus Crews 35a2d7843e
Merge pull request #104302 from brennennen/reflection_probe_count_error_check
Add error check for reflection probe invalid atlas index.
2025-07-14 10:30:31 -05:00
Thaddeus Crews 2be2cbb720
Merge pull request #107782 from allenwp/vulkan-nonlinear-color-correction-dithering
Always perform color correction and debanding on nonlinear sRGB values.
2025-07-14 10:30:28 -05:00
LuoZhihao 5352638f95 Add some multimesh null checks to avoid crash 2025-07-13 10:09:36 +08:00
brennen 2583aa4a68 Add error check for reflection probe invalid atlas index. 2025-07-10 19:03:21 -05:00
Stuart Carnie 338816236b Metal: Remove invalid assumption for image atomic operations
Fix image atomic checks, which require minimum OS version too.

Closes #108445
2025-07-10 06:51:27 +10:00
Allen Pestaluky a1591512f8 Always perform color correction and debanding on nonlinear sRGB values.
Fixes #107730

Co-authored-by: LuoZhihao <luo_zhihao@outlook.com>
2025-07-08 13:44:53 -04:00
Mingxi Zhang 2096e4c007 Fix division by zero in clearcoat
Prevents the clearcoat model from generating NaN values at grazing angles
2025-07-08 01:58:37 +00:00
风青山 f82008d1a5
Use inotify to detect devices for better reliability on Linux
Fix the issue that some devices were not detected when hot plugged.
2025-07-07 17:46:07 +08:00
Stuart Carnie 5230f6c60c Apple: Use image atomic operations on supported Apple hardware
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-07-05 05:59:00 +10:00
Apples 62a5cd90a7 Fix opaque stencil rendering 2025-07-02 21:49:19 -05:00
Stuart Carnie bdbc97ecbb Metal: Use correct environment variable to generate labels 2025-07-01 05:28:42 +10:00
BlueCube3310 16b9ee6f50 Image: Implement 16-bit unorm and uint formats 2025-06-28 00:30:52 +02:00
Patrick Exner 5a7b6b7159 Add permission request for Apple embedded platforms, fix microphone input
Co-Authored-By: Miguel de Icaza <miguel@gnome.org>

Supersedes https://github.com/godotengine/godot/pull/107233
Fixes https://github.com/godotengine/godot-proposals/issues/12563
Fixes https://github.com/godotengine/godot/issues/33885

Superseding Miguel's PR to get it in during the beta stage.
2025-06-25 15:29:33 +02:00
Pāvels Nadtočajevs 71dd7b5712
Fix SDL threading on macOS/Linux.
And fixup pkg-config check for SDL on Linux.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-06-25 10:36:39 +02:00
Thaddeus Crews 05640191e7
Merge pull request #107928 from Kaleb-Reid/scatter-no-LIGHTX
Always send lights to sky shader if using sun scatter
2025-06-24 18:34:31 -05:00
Nintorch 0b3496fb4f
Add support for SDL3 joystick input driver
Made possible by EIREXE, xsellier and the SDL team.

This commit includes statically linked SDL3 for Windows, Linux and macOS.
The vendored copy of SDL3 was setup to only build the required subsystems
for gamepad/joystick support, with some patches to be able to make it as
minimal as possible and reduce the impact on binary size and code size.

Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
Co-authored-by: Xavier Sellier <xsellier@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-06-25 01:28:50 +02:00
Kaleb Reid e659daf6e0 Always send lights to sky shader if using sun scatter 2025-06-24 14:24:49 -07:00
Bastiaan Olij 37b7f577ad Fix GLES3 stereo output (sRGB + lens distortion) 2025-06-20 10:45:03 +10:00
Thaddeus Crews ac6252c9c8
Merge pull request #107486 from Ivorforce/rendering-no-alloc-api
Use raw buffer pointers in `RenderingDevice` allocation APIs to avoid intermediary arrays
2025-06-18 18:14:00 -05:00
Stuart Carnie 939f29f6d5 Apple: Improve reliability of Apple Embedded build and deployment 2025-06-19 06:33:08 +10:00
Lukas Tenbrink 2b36c79f7b Use `Span<uint8_t>` in `RenderingDevice` allocation APIs to avoid intermediary arrays on calls. 2025-06-18 12:31:48 +02:00
Rémi Verschelde 3b2b0157ff
Merge pull request #107475 from beicause/fix-global-shader-texture-uniform
Fix global shader texture uniform
2025-06-13 15:54:09 +02:00
LuoZhihao 7419e4429d Fix global shader texture uniform 2025-06-13 13:24:38 +08:00
Rémi Verschelde 1a64b6b5b6
Merge pull request #106913 from Ivorforce/string-resize-uninitialized
Rename `String::resize` to `resize_uninitialized`
2025-06-12 22:48:45 +02:00
Rémi Verschelde 0497ae9947
Merge pull request #80710 from apples/7174-apples-stencil
Add stencil support to spatial materials
2025-06-12 01:15:35 +02:00
Lukas Tenbrink b13a0e1834 Rename `String::resize` to `resize_uninitialized`, to better communicate to callers that new characters must be initialized. 2025-06-11 18:13:02 +02:00
Apples d674c9e289 Add stencil support for spatial materials 2025-06-11 09:59:10 -05:00
Bastiaan Olij a2e4aed449 Fix final blit in OpenGL when stereo rendering is used 2025-06-10 14:47:07 +10:00
Thaddeus Crews 7584546399
Merge pull request #101941 from dsnopek/opengl-global-uniform-sampler2darray
Fix wrong default texture for global uniforms of type `sampler2DArray`
2025-06-09 17:08:47 -05:00
Thaddeus Crews 0717eda470
Merge pull request #107119 from DarioSamo/explicit-fp16
Optimize Mobile renderer by using FP16 explicitly.
2025-06-09 17:08:46 -05:00
Thaddeus Crews 6bb1318d11
Merge pull request #107238 from dsnopek/opengl-shadow-to-opacity-plus-unshaded
OpenGL: Fix shader compilation failure with `shadow_to_opacity` and `unshaded`
2025-06-09 17:08:42 -05:00
Dario 46277836a6 Optimize Mobile renderer by using FP16 explicitly. 2025-06-09 14:39:35 -03:00
Danil Alexeev 24494d840e
Core: Unify display of error type prefixes 2025-06-09 20:18:51 +03:00
David Snopek d503810654 OpenGL: Fix shader compilation failure with `shadow_to_opacity` and `unshaded` 2025-06-06 16:29:22 -05:00
Apples 7574a5dbb3 Add depth function for spatial materials 2025-06-06 09:21:19 -05:00
David Snopek fa30719814 Fix wrong default texture for global uniforms of type `sampler2DArray` 2025-06-05 11:12:03 -05:00
Rémi Verschelde 37982d4a01
Merge pull request #107116 from beicause/expose-mesh-surface-update-index-buffer
Expose `RS.mesh_surface_update_index_region`
2025-06-05 17:24:54 +02:00
Rémi Verschelde 3b7547fdd0
Merge pull request #106398 from akien-mga/d3d12ma-silence-warnings
D3D12: Silence `-Wmaybe-uninitialized` warning in D3D12MemAlloc
2025-06-05 17:24:42 +02:00
LuoZhihao 63c124fa45 Expose `RS.mesh_surface_update_index_region`
And `mesh_surface_get_format_index_stride`
2025-06-05 19:35:59 +08:00
Rémi Verschelde 1e9200d065
Merge pull request #107099 from Kaleb-Reid/fix-sun-scatter
Increase directional light energy in sky for fog sun scatter
2025-06-05 13:13:40 +02:00
Rémi Verschelde 61639d9574
Merge pull request #106996 from Ivorforce/no-oa-hashmap
Core: Remove `OAHashMap`, in favour of `AHashMap`
2025-06-05 13:12:34 +02:00
Kaleb Reid bac9427325 Fix sky energy in fog sun scatter + colour space discrepancy in compatibility 2025-06-04 13:59:53 -07:00
Youngmin Koo fd4d5cc77f iOS: Prevent startup crash with Input singleton null check 2025-06-05 00:34:04 +09:00
Pāvels Nadtočajevs 6565c8e83f
[AccessKit] Update API to 0.16.0. 2025-06-03 10:49:04 +03:00
Thaddeus Crews 7a3d2f6779
Merge pull request #106606 from aaronfranke/pow2_64
Add 64-bit versions of core power of 2 functions
2025-06-02 18:51:56 -05:00
Thaddeus Crews a6be6d1cd1
Merge pull request #106959 from bruvzg/w10_cleanup
[Windows] Drop support for Windows 7/8/8.1.
2025-06-02 18:51:46 -05:00
Aaron Franke f6f1df7d73
Add 64-bit versions of core power of 2 functions 2025-06-01 23:11:12 -07:00
Pāvels Nadtočajevs 2d93e004b9
Cleanup and unify `DisplayServer` screen methods and documentation. 2025-06-02 08:03:48 +03:00
Lukas Tenbrink 963c20565b Remove `OAHashMap`, in favour of `AHashMap`.
The two types had (mostly) the same decisions, but `AHashMap` is a faster implementation, and is more consistent with `HashMap`.
2025-05-31 15:50:10 +02:00
Pāvels Nadtočajevs 617e12a6b4
[Windows] Drop support for Windows 7/8/8.1. 2025-05-30 17:30:23 +03:00
clayjohn 8b2dda868b Correctly place viewport and use viewport relative rect for the final blit in Compatibility renderer 2025-05-28 22:11:20 -07:00
Thaddeus Crews de37627404
Merge pull request #102552 from DarioSamo/shader-baker
Add shader baker to project exporter.
2025-05-28 17:09:38 -05:00
Thaddeus Crews 90c75d02dd
Merge pull request #106732 from stuartcarnie/rd_reduce_allocations
Renderer: Eliminate `String` allocations for all labels in the renderer
2025-05-28 09:47:43 -05:00
Stuart Carnie 7d93119353 Renderer: Eliminates `String` allocations for all labels in the renderer
Uses `Span<char>` to avoid additional allocations in the graph.
2025-05-28 06:01:35 +10:00
Dario 5a30a7e7cd Add shader baker to project exporter.
Metal Support contributed by Migeran (https://migeran.com) and Stuart Carnie.

Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com>
Co-authored-by: Gergely Kis <gergely.kis@migeran.com>
2025-05-27 12:45:27 -03:00
Thaddeus Crews 1194609662
Merge pull request #106827 from akien-mga/d3d12-fix-DCOMP_ENABLED-inconsistency
D3D12: Fix inconsistent value for `DCOMP_ENABLED` in platform code
2025-05-27 09:39:28 -05:00
Lukas Tenbrink 4cb8a0c77e Add `resize_initialized` and `resize_uninitialized` to `Vector`. These functions serve as replacements for `resize`, to make sure the caller understands whether elements need to be initialized 'by hand' after the call. 2025-05-26 18:35:41 +02:00
Rémi Verschelde 514e80bcc1
D3D12: Fix inconsistent value for `DCOMP_ENABLED` in platform code 2025-05-26 15:16:19 +02:00
Pāvels Nadtočajevs d609cf62a0
Implement `get_filesystem_type` on macOS and Linux. 2025-05-23 23:05:06 +03:00
clayjohn eb4f3a82a3 Ignore destination alpha when blitting to window in compatibility renderer 2025-05-22 22:21:32 -04:00
Thaddeus Crews 452dc667fb
Merge pull request #106592 from beicause/shader-fix-editor-mat-default
Shader: Fix the default behavior when mat uniforms are null
2025-05-22 12:15:08 -05:00
Thaddeus Crews 8085fd3102
Merge pull request #93142 from clayjohn/z_clip_scale
Add new shader built ins: `Z_CLIP_SCALE` and `PERSPECTIVE_SCALE`
2025-05-22 12:15:06 -05:00
Thaddeus Crews f129e542da
Merge pull request #106708 from bruvzg/nohang_exitcode
Fix `execute_with_pipe` / `create_process` exit code.
2025-05-22 12:15:06 -05:00
Thaddeus Crews d19b34c5be
Merge pull request #106694 from stuartcarnie/metal_fix_clear_crash
Metal: Fix crash when clearing render buffers
2025-05-22 12:15:05 -05:00
Thaddeus Crews dd5c5ed631
Merge pull request #106267 from clayjohn/android-msaa-bug
Use a fragment shader copy instead of a blit copy in the final blit to screen in the Compatibility backend
2025-05-22 12:14:57 -05:00
Pāvels Nadtočajevs 1501f447bf
Fix `execute_with_pipe` / `create_process` exit code. 2025-05-22 08:56:37 +03:00
Stuart Carnie 32043fc682 Metal: Fix crash when clearing render buffers 2025-05-22 07:25:48 +10:00
clayjohn 9a1def8da1 Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera)
Add new shader built in Z_CLIP_SCALE to easily adjust clipping distance to avoid clipping walls etc.

Add fov_override to StandardMaterial3D to easily have a custom FOV for FPS objects

Add IN_SHADOW_PASS built-in to shaders for tweaking materials without impacting shadow maps
2025-05-21 10:16:05 -03:00
LuoZhihao 4621d3e1f4 Shader: Fix the default behavior when mat uniforms are null 2025-05-21 13:28:39 +08:00
clayjohn a0e3ade99f Use a fragment shader copy instead of a blit copy in the final blit to screen in the Compatibility renderer to avoid black screen when "Force MSAA 4x is used" on Android devices 2025-05-20 16:34:43 -07:00
Stuart Carnie 4201db6f01 Metal: Ensure stencil-only rendering is supported
Closes #106652
2025-05-21 08:45:30 +10:00
Rémi Verschelde 25a3c27c41
Merge pull request #105628 from rsanchezsaez/apple/ios-visionos-4.5
Native visionOS platform support
2025-05-20 23:09:07 +02:00
Aaron Franke 19e6bc68aa
Explicitly handle Image AlphaMode enum instead of treating as bool
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
2025-05-20 05:04:23 -07:00
Ricardo Sanchez-Saez 47971c0a27
Introduce 'visionos' platform derived from 'apple_embedded' 2025-05-19 15:47:01 -07:00
Ricardo Sanchez-Saez 457299449d
Introduce 'drivers/apple_embedded' abstract platform for code reuse 2025-05-19 15:37:13 -07:00
Thaddeus Crews 2d42b889d1
Merge pull request #104124 from Ivorforce/alloc-static-calloc
Add `Memory::alloc_static_zeroed` to allocate memory that's filled with zeroes.
2025-05-19 08:01:33 -05:00
Thaddeus Crews 83ba0687f7
Merge pull request #106407 from DarioSamo/present-validation-error
Rework semaphores for presentation to be created per swap chain image to fix validation error.
2025-05-15 10:22:18 -05:00
Thaddeus Crews 902d2b45bb
Merge pull request #106400 from RandomShaper/win_compat
Improve platform compatibility of Windows and Direct3D 12
2025-05-15 10:22:16 -05:00
Thaddeus Crews e625565853
Merge pull request #106396 from chocola-mint/canvas-item-add-triangle-array-count
Implement the `count` parameter in `RenderingServer.canvas_item_add_triangle_array`
2025-05-15 10:22:16 -05:00
Dario ad22f65489 Rework semaphores for presentation to be created per swap chain image to fix validation error. 2025-05-14 15:27:51 -03:00
Pedro J. Estébanez 7759296594 Direct3D 12: Let platforms report support for direct composition 2025-05-14 17:48:19 +02:00
Thaddeus Crews 3d645bdd13
Merge pull request #106392 from bruvzg/wine_sh_secure
[Wine] Use `_SH_DENY*` flags instead of unsupported `_SH_SECURE`.
2025-05-14 09:44:15 -05:00
Thaddeus Crews 43010e8839
Merge pull request #106357 from YYF233333/remove_search_array
Move bisect functionality to `Span` and deduplicate code
2025-05-14 09:44:14 -05:00
Thaddeus Crews fb39aa4fd3
Merge pull request #105833 from marcosc90/perf-web-shader-source
[Web] Optimize `GL.getSource` for known-length shader sources
2025-05-14 09:44:08 -05:00
Thaddeus Crews d0693d6867
Merge pull request #89988 from LunaCapra/specular-occlusion
Add support for bent normal maps for specular occlusion and indirect lighting
2025-05-14 09:44:06 -05:00
Rémi Verschelde fe1322c014
D3D12: Silence `-Wmaybe-uninitialized` warning in D3D12MemAlloc
This was lost in #104893 when removing the warning ignores no longer relevant
when including the D3D12MemAlloc _header_ as external.
But we still compile the .cpp directly and it has this warning.

Clarified why have a wrapper for this file.
2025-05-14 16:20:53 +02:00
chocola-mint 101dc9868f Implement the count parameter in RenderingServer.canvas_item_add_triangle_array() 2025-05-14 22:52:30 +09:00
Pāvels Nadtočajevs 563136f859
[Wine] Use _SH_DENY* flags instead of unsupported _SH_SECURE. 2025-05-14 13:50:28 +03:00
Yufeng Ying 3bf400ffae Move bisect to Span and deduplicate code.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-05-14 18:19:09 +08:00
Lukas Tenbrink 3207066e19 Add `Memory::alloc_static_zeroed` to allocate memory that's filled with zeroes.
This is generally faster than `malloc` followed by `memset` / loop-set to 0.
2025-05-13 01:57:05 +02:00
Capry 9828c365c3 Add support for bent normals for indirect lighting and specular occlusion 2025-05-12 12:52:04 +02:00
Stuart Carnie f658161619 macOS: Embedded window can be dismissed by clicking close
- Installed a SIGINT handler to terminate the application gracefully.
- Handle varying display scaling
2025-05-12 07:09:42 +10:00
Thaddeus Crews 19bb18716e
Merge pull request #102399 from clayjohn/cull-mask-overhaul
Overhaul the cull mask internals for Lights, Decals, and Particle Colliders
2025-05-09 11:29:28 -05:00
Thaddeus Crews 821170f054
Merge pull request #106145 from lander-vr/ambient-light-specular-occlusion
Add specular occlusion from ambient light
2025-05-09 11:29:14 -05:00
clayjohn 305216f558 Overhaul the cull mask internals for Lights, Decals, and Particle Colliders
Properly pair and unpair instances based on cull mask to avoid any unnecessary processing and to ensure that changing the cull_mask and layer_mask actually updates culling behavior
2025-05-08 21:39:12 -07:00
landervr 56730d0cb2 Add specular occlusion from ambient light
Co-authored-by: guerro323 <kaltobattle@gmail.com>
2025-05-08 23:52:01 +02:00
Thaddeus Crews 288822e330
Merge pull request #105570 from kroketio/texture-extension-mipmaps
RenderingDevice: Pass mipmap count to `texture_create_from_extension()`
2025-05-08 07:19:16 -05:00
BlueCube3310 909f9ca9d4 Compatibility: Disable environment ambient light when affected by light probes 2025-05-07 18:08:54 +02:00
Sander 6ae50cad17 RenderingDevice: introduce parameter 'mipmaps' for texture_create_from_extension() 2025-05-07 15:15:55 +03:00
Thaddeus Crews a895a8682f
Merge pull request #102783 from stuartcarnie/fix_gles3_lightmapper
GLES3: Fix errors baking light map with compatibility renderer
2025-05-06 08:38:09 -05:00
Thaddeus Crews 4cb030d6bf
Merge pull request #106089 from mihe/rogue-newlines
Fix empty lines being added for errors with no script backtrace
2025-05-06 08:38:04 -05:00
Thaddeus Crews aa24e3b671
Merge pull request #105884 from stuartcarnie/macos_embedded
macOS: Embedded window support.
2025-05-06 08:37:59 -05:00
Stuart Carnie 7a423ffdc0 GLES3: Fix errors baking light map with compatibility renderer
Helps #102696
2025-05-06 09:02:34 +10:00
Stuart Carnie 00e1fdec2c MacOS: Embedded window support. 2025-05-06 06:09:05 +10:00
Thaddeus Crews 7cb658cd9d
Merge pull request #106086 from clayjohn/ANGLE-BPTC
Check for GL ES version of BPTC extension when using the OpenGL renderer
2025-05-05 11:24:18 -05:00
clayjohn e7010c2c01 Check for all BPTC Extensions when using the OpenGL renderer.
EXT_texture_compression_bptc is the WebGL version of GL_EXT_texture_compression_bptc which is the same thing as GL_ARB_texture_compression_bptc but some vendors only report one or the other. ANGLE only reports GL_EXT_texture_compression_bptc for example
2025-05-05 08:23:47 -07:00
Mikael Hermansson 31b90246e7 Fix empty lines being added for errors with no script backtrace 2025-05-05 13:27:21 +02:00
Thaddeus Crews 01fc9aee6c
Core: Modernize C headers with C++ equivalents 2025-05-02 08:23:01 -05:00
Thaddeus Crews f4f1471b57
Merge pull request #105910 from lawnjelly/global_get_fast4
Add `GLOBAL_GET` cached macros.
2025-04-30 09:18:44 -05:00
lawnjelly f8f350a32a Add `GLOBAL_GET` cached macros.
GLOBAL_GET is an expensive operation which should not be used each frame / tick.
This PR adds macros which do a cheaper revision check, and only call the expensive GLOBAL_GET when project settings have changed.

Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-04-30 15:08:50 +01:00
dsmtE 4e68f277c6 add REGION_RECT
fix formatting

fix shader compile (region_rect after draw_data)

fix formatting

fix formatting

Review fix (move region_rect in main + remove useless visual shader options)

fix formatting

fix alphabetic order (+ remove useless action for spatial shaders)

typo + remove TYPE_LIGHT option for  region_rect
2025-04-30 11:07:22 +02:00
Dario ddd3ced72d Fix error spam to due wrong use of reserve() in D3D12 driver. 2025-04-29 10:42:55 -03:00
Thaddeus Crews dedc072840
Merge pull request #105837 from clayjohn/sky-acos-bugfix
Fix float/int comparison in acos_approx in sky template shader
2025-04-28 10:01:34 -05:00
Lukas Tenbrink bfdb0f0ecf Fix various sanitizer issues. 2025-04-28 15:23:35 +02:00
Thaddeus Crews 3947cbe3b2
Merge pull request #104386 from Repiteo/core/cpp-math
Core: Replace C math headers with C++ equivalents
2025-04-27 19:21:22 -05:00
clayjohn d2dce41681 Fix float/int comparison in acos_approx in sky template shader
Strict GLSL implementations will not automatically convert `0` to a float
2025-04-27 17:06:34 -07:00
Marcos Casagrande 197b307061 [Web] Optimize GL.getSource for known-length shader sources 2025-04-27 17:44:08 +02:00
Thaddeus Crews 5b9443ac93
Merge pull request #105768 from dsnopek/fix-web-dlsym-error
Web: Fix crash when built with `dlink_enabled=yes`
2025-04-25 18:25:13 -05:00
David Snopek 39ad4633a8 Web: Fix crash when built with `dlink_enabled=yes` 2025-04-25 15:14:25 -05:00
Thaddeus Crews 2bf7184ed9
Merge pull request #103865 from Repiteo/scons/__has_include
SCons: Remove `check_c_headers`
2025-04-25 11:36:06 -05:00
Thaddeus Crews 5eb5f2fa6e
Merge pull request #105740 from bruvzg/mesa_scr_upd
Update Mesa-NIR library detection and download script.
2025-04-25 11:36:02 -05:00
Thaddeus Crews 33065d8323
Merge pull request #103238 from Ryan-000/mesh_support_vram_profiler
Add Meshes to the Video RAM Profiler
2025-04-25 11:36:01 -05:00
Thaddeus Crews 007717faf9
SCons: Remove `check_c_headers`
• Can instead check for headers directly with `__has_include`, a C++17 feature
2025-04-25 11:30:39 -05:00
Pāvels Nadtočajevs 43e9b04f66
Update Mesa-NIR library detection and download script. 2025-04-25 08:11:14 +03:00
Thaddeus Crews 28089c40c1
Merge pull request #91006 from reduz/live-backtrace
Ability to print and log script backtraces
2025-04-24 17:18:52 -05:00
reduz d1dcb40d56 Ability to print and log script backtraces
Co-authored-by: Mikael Hermansson <mikael@hermansson.io>
2025-04-24 18:54:41 +02:00
Ryan 4497e2a0d3 Add Meshes to the Video RAM Profiler
Apply suggestions from code review

Co-Authored-By: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-04-23 18:26:56 -04:00
Thaddeus Crews 1f7a8eac9d
Merge pull request #101973 from clayjohn/sky-material-opt
Optimize ProceduralSkyMaterial by removing uses of acos and simplifying logic
2025-04-22 18:25:51 -05:00
Thaddeus Crews c928676582
Merge pull request #105531 from Repiteo/style/specify-attribute-macros
Style: Declare inline macros as attributes
2025-04-22 10:44:32 -05:00
Thaddeus Crews 2ffd5a3913
Merge pull request #104738 from YYF233333/cleanup_rid_owner
Use `LocalVector` in `RID_Owner::get_owned_list`
2025-04-22 10:44:25 -05:00
Thaddeus Crews 2a96e895e6
Merge pull request #105525 from BlueCube3310/light-probe-sh-impr
Scene shader: Improve and document SH diffuse evaluation for light probes
2025-04-21 08:24:20 -05:00
Yyf2333 1a70a06a43 Change RID_Owner::get_owned_list. 2025-04-21 01:04:27 +08:00
Matthieu Bucchianeri e3c215fc13 Add support for Direct3D 12 OpenXR backend.
This change adds support for running XR projects built with the `d3d12`
rendering backend. The XR backend hooks into the setup for the D3D12
render context in order to use the desired device and command queue for
submission to OpenXR. The XR backend takes care of importing the D3D12
swapchain images into the render context.

As part of this process, three issues are addressed:
- Ensuring that resource state transitions are only done on textures
  that require them.
- Enabling view instancing in the PSOs for multiview render passes.
- Addressing a bug in the D3D12 runtime where PSO creation may fail
  when front face detection is used.

Please refer to #86283 for additional discussions on the implementation
details.
2025-04-19 20:39:33 -07:00
BlueCube3310 5640ddd0a5 Scene shader: Improve and document SH evaluation for light probes 2025-04-19 15:08:02 +02:00
Thaddeus Crews dd5460c32a
Style: Declare inline macros as attributes 2025-04-18 12:04:40 -05:00
clayjohn 6fede0b951 Optimize SkyMaterials by removing uses of acos and simplifying logic
The results looks almost the same and run much faster.
2025-04-17 22:50:11 -07:00
Thaddeus Crews ad40939b6f
Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
Thaddeus Crews 6a9f46931a
Merge pull request #104480 from BlueCube3310/image-unsuported-format
Renderer: Warn when images need to be converted due to their formats being unsupported by hardware
2025-04-16 10:44:52 -05:00
Thaddeus Crews a6979ef664
Merge pull request #97801 from basicer/srgb-color-hint
Add `color_conversion_disabled` shader hint.
2025-04-14 19:39:42 -05:00
Thaddeus Crews addab4f001
Merge pull request #95916 from Repiteo/core/bit-field
Core: Add dedicated `BitField` template
2025-04-11 13:29:13 -05:00
Thaddeus Crews c7e9dc96a4
Rendering: Fix `Math` constant conversion 2025-04-11 12:33:57 -05:00
Thaddeus Crews 0d267e7b1e
Core: Add dedicated `BitField` template 2025-04-11 11:53:26 -05:00
Thaddeus Crews 0964badc05
Merge pull request #105210 from nikitalita/gdsoftclass-fa-da
Add GDSOFTCLASS to FileAccess and DirAccess derived classes
2025-04-11 09:51:08 -05:00
Rob Blanckaert 8c54290b4a Add `color_conversion_disabled` shader hint.
Sometimes shaders want to accept a color as input that is always
in the srgb color space.  This adds a hint to vec3/vec4 to enable
the color picker popup for those vectors but disable color space
conversion.
2025-04-10 21:31:15 -07:00
Thaddeus Crews 94282d88f9
Core: Use `Math` namespace for constants 2025-04-10 16:29:30 -05:00
Thaddeus Crews cade15a163
Merge pull request #92475 from AThousandShips/string_replace_char
Add `String::replace_char(s)` methods for performance and convenience
2025-04-10 10:18:16 -05:00
Thaddeus Crews fc1dbda769
Merge pull request #105164 from stuartcarnie/apple_pthread
Apple: Add pthread implementation of `Thread` class
2025-04-10 10:18:12 -05:00
A Thousand Ships 889410dcda
Add `String::replace_char(s)` methods for performance and convenience 2025-04-10 13:08:45 +02:00
Stuart Carnie 8c8d6de3e7 Apple: Add pthread implementation of `Thread` class
This allows Apple platforms to override the default stack size of
a thread in the WorkerThreadPool, which is 512KiB by default.

This must be increased, as SPIRV-Cross, used by the Metal driver, can
use deeply nested stacks, as can debug builds.
2025-04-10 09:35:40 +10:00
Thaddeus Crews 7a6c3b309f
Merge pull request #105130 from bruvzg/uri_fix_plus
Add uri_file_decode to handle + in file names.
2025-04-09 18:11:56 -05:00
nikitalita 2d0ae77719 add GDSOFTCLASS to FileAccess and DirAccess derived classes 2025-04-09 11:52:50 -07:00
Thaddeus Crews e6a61b1ecc
Merge pull request #76829 from bruvzg/ac_kit_direct
Implement screen reader support using AccessKit library.
2025-04-08 12:32:47 -05:00
Pāvels Nadtočajevs 4310cb82b8
AccessKit integration for macOS, Linux, and Windows. 2025-04-08 20:25:47 +03:00
Pāvels Nadtočajevs 9abe2e5294
Add `uri_file_decode` to handle `+` in file names. 2025-04-07 23:49:17 +03:00
Lukas Tenbrink 60784744ce Handle the case where `waitpid` returns `errno` `EINTR`.
This case indicates that a debugger is attached, and `waitpid` should be called again.
Log errors when threads exit with `errno`.
2025-04-07 14:48:34 +02:00
BlueCube3310 a861394e13 Renderer: Warn when images need to be converted due to their formats being unsupported by hardware 2025-04-06 19:27:02 +02:00
Thaddeus Crews 207a2b6472
Core: Integrate warning suppression macro helpers 2025-04-03 10:13:46 -05:00
Thaddeus Crews 1f56d96cf2
Merge pull request #104893 from Repiteo/scons/external-includes-alt
SCons: Add `CPPEXTPATH` for external includes
2025-04-02 07:48:03 -05:00
Thaddeus Crews f25fc34439
SCons: Add `CPPEXTPATH` for external includes 2025-04-02 07:29:08 -05:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
sora abaaa87a47 fix: use productCategory instead of vendorName for joy name on macos 2025-04-01 22:35:09 +02:00
Thaddeus Crews 4950deeea0
Merge pull request #104726 from Meorge/bugfix/reversed-buttons-do-not-spark-joy-con
Fix Apple's incorrect mapping of Joy-Con (L) and Joy-Con (R) face buttons
2025-03-31 12:03:46 -05:00
Thaddeus Crews e8b56aac8c
Merge pull request #104725 from Meorge/gamecontroller-avoid-joystick-code-duplication
Make reusable functions for GameController joystick and trigger input
2025-03-31 12:03:46 -05:00
Malcolm Anderson 0f897f8c7e Make reusable functions for GameController joystick and trigger input
Update drivers/apple/joypad_apple.mm

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2025-03-30 21:04:30 -07:00
Kiro 23129a66ed Replace append_utfx with direct String::utfx 2025-03-30 19:56:38 +02:00
Thaddeus Crews 152c14b053
Merge pull request #104597 from bruvzg/path_check
Implement `DirAccess.is_equivalent` method.
2025-03-29 10:16:34 -05:00
Thaddeus Crews 780cf03051
Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -05:00
Rémi Verschelde afc7398c2b
Merge pull request #104616 from ibrahn/init-cmd-q-pending-and-gles3-skymatdata
Fix uninitialized member vars in CommandQueueMT and RasterizerSceneGLES3
2025-03-28 17:30:37 +01:00
bruvzg 48bfe13e4f
Add methods to decode/encode multibyte encodings. 2025-03-28 17:32:34 +02:00
Malcolm Anderson 722b412b73 Fix Apple's incorrect mapping of Joy-Con (L) and Joy-Con (R) face buttons
Thanks, Tim Apple
2025-03-28 07:28:42 -07:00
Rémi Verschelde 5b3c732608
Merge pull request #104619 from Meorge/single-joy-con
Support more controllers on macOS 11+
2025-03-28 14:33:22 +01:00
Rémi Verschelde e81eb3f1e9
Merge pull request #102354 from YYF233333/style_iterator
Use iterator pattern instead of manually traverse `List::Element *`
2025-03-28 14:31:40 +01:00
Rémi Verschelde 408d07109b
Merge pull request #99551 from DarioSamo/fragment-density-map
Implement Fragment density map support.
2025-03-28 14:31:19 +01:00
Yyf2333 22b5ec17fb Using iterator pattern instead of List::Element *.
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2025-03-28 13:29:15 +08:00
Lukas Tenbrink ffa6ef220b Use `append_` instead of `parse_` for `String` methods. 2025-03-27 17:51:02 +01:00
Malcolm Anderson 6f3c007e3d Support more controllers on macOS 11+
Fix platform availability

Make inputs accumulate, matching the `extendedGamepad` implementation
2025-03-26 21:41:51 -07:00
Ibrahn Sahir c9352f06f7 Fix uninitialised member vars in CommandQueueMT and RasterizerSceneGLES3 2025-03-25 17:19:16 +00:00
Pāvels Nadtočajevs d5cea9bb2e
Implement `DirAccess.is_equivalent` method. 2025-03-25 17:52:15 +02:00
Dario 76d709be74 Implement support for fragment density maps.
Co-Authored-By: Bastiaan Olij <mux213@gmail.com>
2025-03-24 11:50:04 -05:00
Thaddeus Crews f09ee0171a
Style: Begin integrating simple `.clangd` fixes 2025-03-22 13:24:35 -05:00
kobewi 10f6c01b9c Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
Rémi Verschelde 3d9b05ad4a
Merge pull request #104341 from stuartcarnie/103602/metal_fix_cubemaps
Renderer: Fix Metal handling of cube textures; assert equal dimensions
2025-03-19 12:27:41 +01:00
Rémi Verschelde 2fa721b1bc
Merge pull request #104127 from Ivorforce/360-noclip
Remove `String` clipping constructors.
2025-03-19 12:27:10 +01:00
Stuart Carnie e2066298d9 Renderer: Fix Metal handling of cube textures; assert equal dimensions 2025-03-19 11:52:59 +11:00
Pāvels Nadtočajevs a797c7b8e2
[macOS/iOS] Ensure only one axis change event is produced during single `process_joypads()` call. 2025-03-18 14:58:14 +02:00
Lukas Tenbrink a23f630781 Remove `String` clipping constructors.
Callers should instead call constructors with explicit encoding names, with known length `Span`.
2025-03-15 12:34:44 +01:00
Thaddeus Crews c1b7865ae9
Merge pull request #103557 from aaronfranke/godot-version-defines
Rename version defines to `GODOT_VERSION_*` to match GDExtension godot-cpp
2025-03-13 08:57:42 -05:00
Thaddeus Crews e2c6d860d8
Merge pull request #102302 from stuartcarnie/render_opt
Rendering compositor identifies `is_opengl` API; minor optimisation
2025-03-13 08:57:28 -05:00