Matias N. Goldberg
668c9b74e2
Fix race conditions in breadcrumbs
...
Adds "--accurate-breadcrumbs" CLI command
Additionally, leave out breadcrumbs code in non-debug, non-dev builds.
Fix regression introduced in #98388 where command_insert_breadcrumb() is
called even in non-debug builds.
Fixes #98338
2024-10-22 22:08:46 -03:00
Thaddeus Crews
7815ccbdd5
Merge pull request #98294 from Calinou/texture-placeholders-use-shared-copy
...
Use a shared copy of placeholder textures, tweak placeholder appearance
2024-10-21 16:39:29 -05:00
Thaddeus Crews
a14e9e99e5
Merge pull request #98388 from DarioSamo/sync-fixes
...
Improve synchronization of rendering after changes from transfer queues.
2024-10-21 16:39:21 -05:00
Thaddeus Crews
291e4b78e2
Merge pull request #98237 from dustdfg/os_transitive_image_headers_refactor
...
Don't include `core/io/image.h` in `core/os/os.h`
2024-10-21 16:39:15 -05:00
Thaddeus Crews
4630cbc487
Merge pull request #98212 from stuartcarnie/sgc/metal_improvements
...
Metal: Performance improvements and bug fixes
2024-10-21 16:39:09 -05:00
Dario
4ad424234f
Improve synchronization of rendering commands after changes from transfer queues.
...
Fix an error where barriers are expected to be inserted for the swap chain textures.
Add the relevant synchronization stages and accesses to resources between frames.
Fix an error where debug labels weren't finished correctly between frames.
Breadcrumbs are now behind an optional macro as they currently lead to synchronization errors which are harmless.
2024-10-21 11:27:56 -03:00
Stuart Carnie
83ac274e25
Metal: Performance improvements and bug fixes
2024-10-20 11:15:13 +11:00
clayjohn
62516df757
Precompute projection matrices when rendering 2D shadows
2024-10-18 11:55:00 -07:00
Cadence
b4fd9d1f38
Fix iOS audio driver attempting to start output too early
2024-10-18 13:05:30 -04:00
Yevhen Babiichuk (DustDFG)
af6d260c17
Don't include core/io/image.h
in core/os/os.h
...
`core/os/os.h` doesn't use `core/io/image.h`. It just brings
transitive dependencies. Lots of dependencies because `core/os/os.h`
is transitively included in almost every file of godot
Also added `core/io/image.h` into files^1 where `Ref<Image>` and `core/os/os.h`
were used to prevent obscure errors involving `Ref<Image>`
^1 except those which include `core/io/image_loader.h` or `core/io/image.h` by
corresponding .h file with the same name
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-10-18 19:04:19 +03:00
Hugo Locurcio
35a20fa96a
Use a shared copy of placeholder textures, tweak placeholder appearance
...
This reduces memory usage a bit in case multiple placeholders were
requested, e.g. when using multiple NoiseTextures with no noise property
defined.
The placeholder texture's appearance was also changed from a plain magenta
color to a checkerboard alternating between magenta and black pixels.
This makes it easier to spot when the placeholder texture ends up
being used in a complex scene (usually by accident).
The texture's dimensions remain identical to keep the physical size
identical in 2D.
2024-10-18 14:51:51 +02:00
Dario
8c3e46b13b
Move transitions of textures initialized by transfer workers to the main graphics queue.
...
Also adds a new possible texture layout and API trait to support a particular behavior in D3D12 where only the COMMON layout is supported in copy queues. Fixes #98158 .
2024-10-18 09:15:25 -03:00
Hugo Locurcio
5ed10e3604
Remove "Using present mode" verbose prints in Vulkan and Direct3D 12
...
These messages were printed every time the swapchain was recreated
(e.g. on viewport size change), which could easily end up spamming
the output.
The chosen present mode is already displayed when using the Print FPS
project setting or command line argument.
2024-10-17 23:18:28 +02:00
Thaddeus Crews
bb20444998
Merge pull request #97744 from Nazarwadim/use_local_vector_for_skeleton
...
Use `LocalVector` for skeleton
2024-10-10 18:13:19 -05:00
Thaddeus Crews
16dfaa5e80
Merge pull request #94952 from alvinhochun/angle-d3d11-flip-y
...
Optimize ANGLE on D3D11 to remove an extra blit
2024-10-10 18:13:17 -05:00
Thaddeus Crews
a44f691fc7
CI: Add MinGW/GCC build to Windows GHA
2024-10-10 10:10:55 -05:00
Clay John
842f982397
Merge pull request #96819 from clayjohn/GLES3-instance-uniforms
...
🔗 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
Implement instance uniforms in Compatibility renderer
2024-10-07 13:41:47 -06:00
Clay John
e7c39efdb1
Merge pull request #97309 from kroketio/metal-expose-device-handle
...
Metal: expose MTLDevice
2024-10-07 11:00:53 -06:00
David Snopek
256699ee31
OpenXR: Add support for Wayland on Linux
2024-10-04 11:44:05 -05:00
Rémi Verschelde
c46d1e4540
Merge pull request #97552 from dustdfg/drivers/use_dedicated_print_error
...
Use dedicated `print_error` method for colored output for unsupported drivers
2024-10-04 17:18:14 +02:00
Rémi Verschelde
f032af7453
Merge pull request #97304 from kroketio/metal-return-logical-device-handle
...
🔗 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
Metal: Implement `texture_create_from_extension`
2024-10-04 12:58:38 +02:00
Rémi Verschelde
6e03910578
Merge pull request #97719 from bruvzg/cross_dev_rename
...
[Linux/BSD] Fix cross-device rename.
2024-10-04 11:21:58 +02:00
Dario
e2c6daf7ef
Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile.
...
- Implements asynchronous transfer queues from PR #87590 .
- Adds ubershaders that can run with specialization constants specified as push constants.
- Pipelines with specialization constants can compile in the background.
- Added monitoring for pipeline compilations.
- Materials and shaders can now be created asynchronously on background threads.
- Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
2024-10-02 15:11:58 -03:00
Nazarii
1ba168fcbc
Use local vector for skeleton
2024-10-02 20:38:40 +03:00
Rémi Verschelde
2bd0fd8e3d
Merge pull request #97676 from clayjohn/GLES3-sky-quality
...
Improve the look of radiance map in Compatibility backend
2024-10-02 15:01:20 +02:00
bruvzg
4cc9d2f437
[Linux/BSD] Fix cross-device rename.
2024-10-02 08:57:37 +03:00
Rémi Verschelde
6c133054f7
Merge pull request #97602 from patowen/fix-region-filter-clip-enabled
...
Fix `region_filter_clip_enabled` to avoid sprite bleeding for interpolated sprite sheets
2024-10-01 17:31:17 +02:00
Gergely Kis
146ba4106f
Move Vulkan includes to a central godot_vulkan.h header
...
Also fixes Vulkan build problem with recent Clang.
2024-09-29 17:53:18 +02:00
Patrick Owen
d720eb80e1
Clamp UV-coordinates to centers of outermost texels when configured to do so
...
In addition, fix region_filter_clip_enabled documentation to be consistent with AtlasTexture.xml, since that is the option whose behavior was fixed
2024-09-29 05:57:19 -04:00
clayjohn
4f674154d9
Improve the look of radiance map in Compatibility backend
2024-09-29 01:33:14 -07:00
ywmaa
0a9ad8f9de
Implement vertex shading
...
This adds support in all backends, but the Compatibility renderer works the best.
Mobile and Forward+ can only support one directional light shader (the first in the tree)
While the Compatibility renderer supports any number of shadows.
Co-authored-by: Clay John <claynjohn@gmail.com>
2024-09-29 00:36:09 +02:00
Yevhen Babiichuk (DustDFG)
4c5094a2fe
Use dedicated print_error
method for colored output for unsupported drivers
...
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-09-27 20:30:51 +03:00
Rémi Verschelde
a4c1804cab
Merge pull request #97483 from akien-mga/clang-format-19.1.0
...
CI: Update `clang-format` pre-commit hook to 19.1.0
2024-09-26 12:46:04 +02:00
Rémi Verschelde
ef7547384c
Merge pull request #95678 from Hilderin/fix-slow-load-on-large-project-v2
...
Fix slow editor load on large projects (v2)
2024-09-26 12:45:31 +02:00
Rémi Verschelde
c92a6c7e27
CI: Update clang-format
pre-commit hook to 19.1.0
2024-09-26 11:46:12 +02:00
Hilderin
21f7c8a25f
Fix slow editor load on large projects (v2)
2024-09-25 17:36:39 -04:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files
2024-09-25 09:34:35 -05:00
Rie
5efa6ba489
Fix incorrect Reinhard tonemap operator
2024-09-25 12:34:23 +02:00
Rémi Verschelde
c3e16cda00
Merge pull request #97379 from clayjohn/webgl-errors
...
🔗 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
Clean up two recently introduced WebGL errors
2024-09-24 12:57:21 +02:00
clayjohn
0305e437ff
Clean up two recently introduced WebGL errors
2024-09-23 12:18:33 -07:00
Sander
e9c85be76f
Metal: expose DRIVER_RESOURCE_LOGICAL_DEVICE for get_resource_native_handle()
2024-09-22 03:19:06 +03:00
Sander
0ad1820b1a
Metal: implement texture_create_from_extension
...
Parameters p_type, p_format, p_array_layers, p_depth_stencil are
ignored - MTLTexture (and the callee) already have this information
and is only relevant when reinterpreting or remaping the texture in
different ways.
2024-09-22 02:32:37 +03:00
Rémi Verschelde
5f5c690481
Merge pull request #97260 from clayjohn/pixel_snap
...
Calculate pixel snap in canvas space instead of world space
2024-09-21 11:50:52 +02:00
clayjohn
e75900e1ad
Calculate pixel snap in canvas space instead of world space
...
This ensures that you are actually snapping to pixels in the viewport and not an arbitrary amount
2024-09-20 17:43:33 -07:00
David Snopek
1a6f8512bc
Add external texture support (GLES3)
...
Co-authored-by: Fredia Huya-Kouadio <fhuyakou@gmail.com>
Co-authored-by: Mauricio Narvaez <nvz@meta.com>
2024-09-20 10:48:32 -05:00
Rémi Verschelde
34dd5e0c37
Merge pull request #97217 from stuartcarnie/97185_subpixel_rendering
...
Metal: Fix subpixel blending; fix inconsistent blend state
2024-09-20 16:07:03 +02:00
Thaddeus Crews
b37fc1014a
Style: Apply new clang-format
changes
2024-09-20 08:09:48 -05:00
Stuart Carnie
e826ab9ba9
[2D,Metal]: Fix subpixel blending; fix inconsistent blend state in Metal
2024-09-20 15:16:31 +10:00
Rémi Verschelde
b1b4c5da4b
Merge pull request #96928 from dsnopek/rename-and-expose-texture-create-external
...
Expose a function to create textures from a native handle in the compatibility renderer
2024-09-19 17:13:27 +02:00
David Snopek
7d56b09f23
Expose a function to create textures from a native handle in the compatibility renderer
2024-09-19 09:05:32 -05:00
Rémi Verschelde
0f27e7816f
Merge pull request #97131 from BastiaanOlij/fix_gles_canvas_background
...
Fix compatibility canvas background depth issue
2024-09-18 11:15:50 +02:00
Rémi Verschelde
21134e146a
Merge pull request #97032 from lalitshankarchowdhury/fix-audio-crash
...
Fix `AudioStreamMicrophone` crash on scene-reload
2024-09-18 11:15:44 +02:00
Bastiaan Olij
491a5d9450
Fix compatibility canvas background depth issue
2024-09-18 10:23:13 +10:00
Lalit Shankar Chowdhury
0e23c5fc9f
Fix AudioStreamMicrophone
crash on scene-reload
2024-09-18 00:03:48 +05:30
Pablo Andres Fuente
84e24017b0
Adding a macro on NetSocketPosix to pick the right type for FIONREAD len
...
On Windows, `ioctlsocket` returns `len` as an unsigned long.
On Posix, `ioctl` returns `len` as an int.
This aims to fix #41287 bug, which was seen on Linux.
The implementation is just a new macro that is set with the proper type
for each platform.
2024-09-17 16:09:33 +02:00
Rémi Verschelde
9c4e3fbaaf
Merge pull request #97069 from patwork/fix-gles3-update-sky-cubemap
...
Fix for GLES3 radiance cubemap update
2024-09-17 09:18:01 +02:00
Rémi Verschelde
8c6210a3eb
Merge pull request #92290 from clayjohn/LOD-fixes
...
Use distance to AABB surface to calculate Mesh LOD instead of using supports
2024-09-16 13:34:04 +02:00
patwork
3038de4245
Fix for GLES3 radiance cubemap update
2024-09-16 11:32:36 +02:00
Rémi Verschelde
0f86f30cf0
Merge pull request #96860 from kroketio/from-ext-alloc-check
...
Vulkan: Account for externally backed textures
2024-09-13 11:21:58 +02:00
Sander
41fdc55b05
Vulkan: account for externally backed textures (i.e., created via texture_create_from_extension()
), as such textures lack ownership information.
...
More info: #96832
2024-09-12 18:15:23 +03:00
Rémi Verschelde
cc52112144
Merge pull request #96643 from bruvzg/fs_links
...
[FileSystem Dock] Add symlink indicator and tooltip.
2024-09-12 10:28:44 +02:00
Rémi Verschelde
f8b29d54a3
Merge pull request #96863 from BlueCube3310/gles-align-fix
...
Compatibility: Fix alignment of compressed textures when retrieving
2024-09-12 09:25:39 +02:00
clayjohn
7ff106f828
Use distance to AABB surface to calculate Mesh LOD instead of using supports
2024-09-11 14:17:09 -07:00
BlueCube3310
0182294b37
Compatibility: Fix alignment of compressed textures when retrieving
2024-09-11 18:15:26 +02:00
Rémi Verschelde
62717f2953
Merge pull request #96822 from stuartcarnie/sgc/metal_out_of_bounds
...
Metal: Fix out of bounds crash when using debug draw modes
2024-09-11 12:35:20 +02:00
Rémi Verschelde
e9194702a3
Merge pull request #96840 from bruvzg/open_wstat
...
[Windows] Remove `_wstat` use in `FileAccessWindows::open_internal`
2024-09-11 12:34:28 +02:00
Rémi Verschelde
88e9af6b7c
Merge pull request #74830 from AThousandShips/win_time_fix
...
[Windows] Use `GetFileTime` for `FileAccess`
2024-09-11 12:34:18 +02:00
bruvzg
e16f8bae2e
[Windows] Remove _wstat use in FileAccessWindows::open_internal
2024-09-11 09:48:09 +03:00
Stuart Carnie
34190fc360
Metal: fix out of bounds crash when using debug draw modes
2024-09-11 06:08:42 +10:00
clayjohn
29df589632
Implement instance uniforms in Compatibility renderer
2024-09-10 12:20:47 -07:00
Rémi Verschelde
bc4c60c933
Merge pull request #94893 from rune-scape/no-const-cast-mesh-storage
...
Avoid `const_cast` in `mesh_storage.h`
2024-09-10 09:51:22 +02:00
Yuri Rubinsky
af92fdb0ac
Add basic support to evaluate operator value in shader language
2024-09-09 15:12:11 +03:00
Rémi Verschelde
584e5bbf84
Merge pull request #96509 from Rudolph-B/Issue-92091
...
Fix OpenGL shadow textures not honoring texture type when reusing textures
2024-09-08 23:21:52 +02:00
Rémi Verschelde
a87ceed163
Merge pull request #96639 from bruvzg/symlink_ren
...
Fix renaming directory symlinks on Linux.
2024-09-06 22:38:58 +02:00
Rémi Verschelde
aa07333abe
Merge pull request #96114 from BlueCube3310/sh-lightmap-packing
...
LightmapGI: Pack L1 SH coefficients for directional lightmaps
2024-09-06 22:38:29 +02:00
bruvzg
da4f5fb953
[FileSystem Dock] Add symlink indicator and tooltip.
2024-09-06 14:55:07 +03:00
A Thousand Ships
7139f46c9a
[Windows] Use GetFileTime
for FileAccess
...
Prevents DST from rearranging file times.
2024-09-06 13:53:46 +02:00
bruvzg
10f3c1f587
Add support for non-blocking IO mode to OS.execute_with_pipe
.
2024-09-06 14:16:39 +03:00
bruvzg
3e936e795c
Fix renaming directory symlinks on Linux.
2024-09-06 13:22:20 +03:00
BlueCube3310
a89f4fa5a9
LightmapGI: Pack L1 SH coefficients for directional lightmaps
2024-09-05 22:46:58 +02:00
Miley Hollenberg
5e7fdef343
Fixed compiler error
...
Would cause a compiler error when compiled with `scons p=ios target=template_debug ios_simulator=yes arch=arm64`
2024-09-05 11:01:20 +02:00
Rémi Verschelde
f8aa1f8c57
Merge pull request #96502 from clayjohn/GLES3-screen-texture-angle
...
Only use backbuffer mipmaps in `SCREEN_TEXTURE` when generated.
2024-09-04 18:55:42 +02:00
Rémi Verschelde
82d7531a2e
Merge pull request #95990 from Breush/76166-sky-auto-radiance
...
Sky: Adapt radiance size if `AUTOMATIC_MODE` resolves to `REALTIME`
2024-09-04 17:12:02 +02:00
Alexis Breust
44e526d3d5
Sky: No more auto-selecting REALTIME mode if radiance is not 256
2024-09-04 10:54:08 +02:00
bruvzg
d4e78b8db5
Store GLES over GL status in the OS to avoid direct renderer includes in the editor.
2024-09-03 16:11:59 +03:00
Rémi Verschelde
cd2f14e66b
Merge pull request #96455 from Praytic/msaa-support-macos
...
Enable MSAA support for all non-web platforms
2024-09-03 11:43:59 +02:00
Rémi Verschelde
6de2d31a61
Merge pull request #96351 from stuartcarnie/sgc/metal_light_betsy
...
Metal: Enable for betsy and lightmapper modules in compatibility mode
2024-09-03 11:43:42 +02:00
Rémi Verschelde
a2b64ed544
Merge pull request #95961 from RadiantUwU/fix-mesh-recursion
...
Fix shadow mesh recursion.
2024-09-03 11:43:16 +02:00
Rudolph Bester
359aaa48ee
Fixed OpenGL shadow textures not honoring texture type when reusing textures
2024-09-03 07:12:51 +02:00
clayjohn
d2f5c1a552
Only use backbuffer mipmaps in SCREEN_TEXTURE when generated.
2024-09-02 17:04:17 -07:00
Rémi Verschelde
4e5dd4fa5d
Merge pull request #96413 from Maran23/gpuparticles-amd-fix
...
Fix GPUParticles are not rendered for older AMD GPUs with OpenGL+Angle
2024-09-02 12:13:49 +02:00
Rémi Verschelde
f50ead48b0
Merge pull request #96128 from BlueCube3310/vram-profiler-texture-mem
...
Fix incorrect parameters for layered textures in VRAM texture memory profiler
2024-09-02 12:13:11 +02:00
Rémi Verschelde
61be39aed2
Merge pull request #96045 from darksylinc/matias-TheForge-pr02
...
Add `VK_EXT_astc_decode_mode` support
2024-09-02 12:13:04 +02:00
Rémi Verschelde
527c716784
Merge pull request #92167 from BlueCube3310/file-access-the-final-season-part3-ep2
...
Reduce code duplication in FileAccess
2024-09-02 12:12:42 +02:00
Praytic
fc955fa89f
Enable MSAA support for all non-web platforms
...
MSAA support is built into GLES3 core, eliminating the need to check for GL_EXT_framebuffer_multisample, which was necessary only in GLES2 due to the lack of inherent multisample framebuffer support. This commit corrects an oversight from GLES2-based code, ensuring compatibility with GLES3 where multisampling is natively supported without extensions.
2024-09-01 18:26:49 -07:00
Marius Hanl
9cc9df52eb
Fix GPUParticles are not rendered for older AMD GPUs with OpenGL+Angle
...
Using a better and faster algorithm for the float conversions
2024-09-01 20:22:30 +02:00
Yahkub-R
6db8e3b6b1
Fix Windows importer issue with new file detection
2024-09-01 10:24:29 -04:00
BlueCube3310
205a10e0ae
Reduce code duplication in FileAccess
2024-09-01 12:39:32 +02:00
BlueCube3310
e74bc3079a
Fix incorrect parameters for layered textures in Video RAM texture memory profiler
2024-09-01 11:49:30 +02:00
Radiant
70860aafd8
Fix shadow mesh recursion.
2024-08-31 22:31:43 +03:00