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
Stuart Carnie
a7a245de92
Metal: enable for betsy and lightmapper modules
...
To support this, the rendering_context_driver_metal.h header was updated
to recognise when it is included in non-Objective-C source files.
2024-08-31 08:29:07 +10:00
Patrick Dawson
f381cee82f
Metal: bind index buffer with offset
2024-08-30 22:37:51 +02:00
bruvzg
b130cf0361
[Windows] Fix handling X: paths.
2024-08-29 15:58:59 +03:00
Rémi Verschelde
fd7239cfab
Merge pull request #96258 from SaracenOne/win32_rename_fix
...
🔗 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
Fix Win32 rename function.
2024-08-29 10:36:53 +02:00
Saracen
6069cb3475
Fix Win32 rename function.
2024-08-29 03:54:02 +01:00
rune-scape
f04a9bb630
Avoid const_cast in mesh_storage.h
2024-08-28 14:46:03 -07:00
Alula
346cbc7f1f
Add support for compiling with VS clang-cl toolset
2024-08-28 13:30:44 -05:00
Rémi Verschelde
f648de1a83
Merge pull request #96209 from stuartcarnie/sgc/96077/fix_sdfgi
...
Metal: Use correct operator to ensure specialisation constants are sorted
2024-08-28 13:14:34 +02:00
Stuart Carnie
4b02c9bb0a
Metal: Use correct operator to ensure all specialisation constants are applied
...
Fixes #96077
2024-08-28 20:07:19 +10:00
bruvzg
ae334e069c
[Windows] Always use absolute UNC paths and long path aware APIs, add "long path aware" flag to the application manifest.
2024-08-28 11:15:57 +03:00
Chaosus
f538376c3b
Add CLIP_SPACE_FAR
built-in to spatial shader
2024-08-27 08:48:46 +03:00
Rémi Verschelde
850067d686
Merge pull request #96089 from stuartcarnie/sgc/metal_tidy_up
...
Metal: Minor improvements to shader cache
2024-08-26 22:45:54 +02:00
Stuart Carnie
6de70e6b8a
Metal: Minor improvements to #96052 ; update logger subsystem name
2024-08-27 05:47:06 +10:00
BlueCube3310
e8b4568900
Compatibility: Fix crash when initializing certain compressed layered textures
2024-08-26 13:24:00 +02:00
Rémi Verschelde
28a72fa434
Merge pull request #95934 from bruvzg/win_ang_fb
...
Enable fallback from ANGLE to native and improve ANGLE error messages.
2024-08-25 22:51:38 +02:00
Rémi Verschelde
5f7060c18a
Merge pull request #96052 from stuartcarnie/sgc/metal_shader_compilation
...
Metal: Improve startup times by using concurrent shader compilation APIs
2024-08-25 22:24:24 +02:00
bruvzg
a07f92a81c
[Windows] Move __REQUIRED_RPCNDR_H_VERSION__ to the header.
2024-08-25 22:57:35 +03:00
bruvzg
f8a6c0e8ab
Enable fallback from ANGLE to native and improve ANGLE error messages.
2024-08-25 21:19:54 +03:00
Rémi Verschelde
68d188d521
Merge pull request #95888 from clayjohn/Lightmap-SH-coefficients
...
Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct
2024-08-25 20:18:18 +02:00
Matias N. Goldberg
59d0422dcd
Disable extra memory tracking by default
...
PR #90993 added several debugging utilities.
Among them, advanced memory tracking through the use of custom
allocators and VK_EXT_device_memory_report.
However as issue #95967 reveals, it is dangerous to leave it on by
default because drivers (or even the Vulkan loader) can too easily
accidentally break custom allocators by allocating memory through std
malloc but then request us to deallocate it (or viceversa).
This PR fixes the following problems:
- Adds --extra-gpu-memory-tracking cmd line argument
- Adds missing enum entries to
RenderingContextDriverVulkan::VkTrackedObjectType
- Adds RenderingDevice::get_driver_and_device_memory_report
- GDScript users can easily check via print(
RenderingServer.get_rendering_device().get_driver_and_device_memory_report()
)
- Uses get_driver_and_device_memory_report on device lost for appending
further info.
Fixes #95967
2024-08-24 20:52:39 -03:00
Stuart Carnie
2ef1ef63a5
Metal: Improve startup times by using concurrent shader compilation APIs
2024-08-25 09:05:58 +10:00
Matias N. Goldberg
d26c2f86cc
Add VK_EXT_astc_decode_mode support
...
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
2024-08-24 17:58:12 -03:00