Rémi Verschelde
50d17f6b8c
Merge pull request #83613 from clayjohn/surface_upgrade_tool
...
Add an editor tool to automatically upgrade and re-save meshes
2023-10-24 00:10:37 +02:00
clayjohn
318ef8461f
Implementation of tool to automatically upgrade and re-save meshes
2023-10-23 22:39:48 +02:00
Rémi Verschelde
814de86494
Merge pull request #83493 from clayjohn/light-pair-bug
...
Ensure that only visible paired lights are used
2023-10-23 12:40:07 +02:00
David Snopek
58775a6c67
Fix `GPUParticles3D` on the Meta Quest 2 with OpenGL renderer
2023-10-21 16:49:24 -05:00
Pedro J. Estébanez
7e598642d2
Bump version of Vulkan RD binary shader format
2023-10-18 17:45:10 +02:00
Clay
623a050269
Ensure that only visible paired lights are used
...
This is a longstanding issue in both the Mobile and GL Compatibility renderer.
Meshes pair with all lights that touch them, and then at draw time, we send all paired lights indices to the shader (even if that light isn't visible). The problem is that non-visible lights aren't uploaded to the GPU and don't have an index. So we end up using a bogus index
2023-10-17 13:02:46 +02:00
Rémi Verschelde
348c1ff96b
Merge pull request #83266 from bruvzg/linux_case_check
...
[Linux] Implement DirAccess.is_case_sensitive for EXT4 and F2FS.
2023-10-13 22:19:24 +02:00
Rémi Verschelde
a19f05604e
Merge pull request #83252 from mrjustaguy/opengl-fade-fix
...
Fix OpenGL Directional Shadow Last Split Fading
2023-10-13 22:18:13 +02:00
bruvzg
54eae6221a
[Linux] Implement DirAccess.is_case_sensitive for EXT4 and F2FS.
2023-10-13 15:48:03 +03:00
Rémi Verschelde
51f81e1c88
Merge pull request #82957 from bruvzg/fs_case_check
...
Add method to check if filesystem is case sensitive.
2023-10-13 12:55:35 +02:00
mrjustaguy
09a2a7c54e
Remove PSSM Fade
2023-10-13 12:01:23 +02:00
Thaddeus Crews
9ee41c707e
Fix texture storage not assigning default scale
...
• Print errors if an invalid value is passed
2023-10-12 12:02:24 -05:00
Rémi Verschelde
b1371806ad
Merge pull request #82431 from bitsawer/fix_gpuparticles_free
...
Fix errors when freeing GPUParticles
2023-10-12 00:22:33 +02:00
Rémi Verschelde
775ab4e983
Merge pull request #83141 from BastiaanOlij/fix_shadow_size
...
Fix compatibility shadow size not being initialised
2023-10-11 18:30:55 +02:00
Bastiaan Olij
59cd86f89d
Fix compatibility shadow size not being initialised
2023-10-11 22:02:38 +11:00
Rémi Verschelde
4b7cc99bc1
Merge pull request #79169 from reduz/debug-canvas-item-redraw
...
Debug CanvasItem redraw
2023-10-11 08:40:05 +02:00
Rémi Verschelde
55282ddc10
Merge pull request #79527 from QbieShay/qbe/particles-rework
...
Particle internal refactor and additions for more artistic control
2023-10-10 22:48:50 +02:00
QbieShay
c228fe1a0d
Particle internal refactor and additions for more artistic control
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2023-10-10 20:03:35 +02:00
Rémi Verschelde
49495293c7
Merge pull request #82973 from dsnopek/gdextension-linux-favor-local-symbols
...
On Linux, favor local symbols when loading a shared library
2023-10-10 12:33:06 +02:00
Rémi Verschelde
a28dab7e82
Merge pull request #79711 from adamscott/web-non-blocking-main-thread
...
Add `proxy_to_pthread` option to `platform=web`
2023-10-09 23:22:22 +02:00
Adam Scott
78c2a08fae
Add `proxy_to_pthread` option to `platform=web`
...
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2023-10-09 11:50:01 -04:00
Rémi Verschelde
a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
...
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
bruvzg
97bcd8a631
Add method to check if filesystem is case sensitive.
2023-10-09 11:00:15 +03:00
A Thousand Ships
f18aa00e85
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-08 17:23:33 +02:00
A Thousand Ships
034c0f1624
Replace `sanity` with `safety` for checks
2023-10-08 16:22:24 +02:00
David Snopek
7f4e700bf7
On Linux, favor local symbols when loading a shared library
2023-10-07 11:06:56 -05:00
Rémi Verschelde
c05f521e16
Merge pull request #82892 from clayjohn/tangent-binormal-transform
...
Only perform modelview transform on tangent and binormal when vertex shader is in local space
2023-10-06 12:53:05 +02:00
clayjohn
af1d81d95a
Only perform modelview transform on tangent and binormal when vertex shader is in local space
2023-10-05 22:08:36 -06:00
clayjohn
04846c1d6d
Avoid default fallback material when using world_vertex_coords
...
This avoids z-fighting between the opaque shader and the depth prepass shader
2023-10-05 19:11:48 -06:00
Rémi Verschelde
68926d5919
Merge pull request #81827 from darksylinc/matias-vkfeatures-opt-in
...
Opt-in to Vulkan features we actually use.
2023-10-05 22:49:21 +02:00
clayjohn
51ed3aef63
Vertex and attribute compression to reduce the size of the vertex format.
...
This allows Godot to automatically compress meshes to save a lot of bandwidth.
In general, this requires no interaction from the user and should result in
no noticable quality loss.
This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.
Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
2023-10-05 12:02:23 -06:00
Rémi Verschelde
b42aa5ad9d
Merge pull request #81575 from bitsawer/fix_gles_instancing
...
Fix GLES3 instanced rendering color and custom data defaults
2023-10-05 10:06:39 +02:00
Rémi Verschelde
146d87c230
Merge pull request #82679 from lyuma/workaround_xr_off_crash
...
Workaround crash due to null shader when running XR project with `--xr-mode` off
2023-10-04 15:36:22 +02:00
Lyuma
1d34033143
Workaround crash due to null shader when running XR project with --xr-mode off
2023-10-02 06:12:01 -07:00
Thaddeus Crews
e9b2af91cf
check_c_headers from tuple array to dictionary
2023-10-01 14:09:39 -05:00
bitsawer
6f88ed73be
Fix GLES3 instanced rendering color and custom data defaults
2023-09-29 11:44:37 +03:00
Yuri Sizov
7ae0fa1083
Merge pull request #77496 from clayjohn/GLES3-shadows
...
Implement 3D shadows in the GL Compatibility renderer
2023-09-28 20:03:53 +02:00
clayjohn
cb7200b028
Implement 3D shadows in the GL Compatibility renderer
2023-09-28 09:39:26 +02:00
SlugFiller
d468582ef8
Fix build on MSVC 2017
2023-09-27 19:49:59 +03:00
bitsawer
898d1a2d5f
Fix errors when freeing GPUParticles
2023-09-27 11:46:31 +03:00
Pedro J. Estébanez
a67559931b
[GLES3] Avoid freeing proxy textures clearing onwer's data
2023-09-27 10:44:56 +02:00
A Thousand Ships
517e9f8aef
[Modules] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-26 16:44:52 +02:00
Rémi Verschelde
36945dad07
Merge pull request #82359 from bitsawer/add_gles3_device_cache_key
...
Add device info to GLES3 shader cache key hash
2023-09-26 16:36:57 +02:00
Rémi Verschelde
a4bca12336
Merge pull request #82304 from akien-mga/windows-remove-redundant-MSVC-define
...
Windows: Remove `MSVC` define redundant with `_MSC_VER`
2023-09-26 13:45:26 +02:00
Rémi Verschelde
48bee5c8ef
Merge pull request #82221 from Riteo/linux-ogl-no-vsync-override
...
Linux/OpenGL: Don't force vsync in the editor
2023-09-26 13:45:12 +02:00
bitsawer
f1062f25eb
Add device info to GLES3 shader cache key hash
2023-09-26 13:01:31 +03:00
Rémi Verschelde
814ab59c37
Windows: Remove `MSVC` define redundant with `_MSC_VER`
...
Cleanup unused MSVC code in FileAccessUnix.
2023-09-26 11:11:45 +02:00
Dario
057367bf4f
Add FidelityFX Super Resolution 2.2 (FSR 2.2.1) support.
...
Introduces support for FSR2 as a new upscaler option available from the project settings. Also introduces an specific render list for surfaces that require motion and the ability to derive motion vectors from depth buffer and camera motion.
2023-09-25 10:37:47 -03:00
Matias N. Goldberg
d5f913ce1d
Opt-in to Vulkan features we actually use.
2023-09-24 21:05:48 -03:00
Riteo
4fd6777cf4
Linux/OpenGL: don't force vsync in the editor
...
I couldn't tell whether this has an actual purpose and it feels more
like a debug remnant.
We also need to be able to disable vsync in the editor for the WIP
Wayland backend (in the EGL driver) as it does manual frame throttling.
2023-09-24 04:36:58 +02:00
Shawn Wallace
b12ed82c04
Expose texture_create_from_extension to GDExtension
2023-09-23 16:57:12 -04:00
bruvzg
1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
...
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
Pedro J. Estébanez
bda6fc5d2f
Polish a few things in Vulkan RD
2023-09-19 18:10:46 +02:00
Rémi Verschelde
9a1b4f338b
Merge pull request #81160 from paddy-exe/canvas-uv-world-space
...
Add render mode to use world coordinates in canvas item shader
2023-09-19 09:03:18 +02:00
Matias N. Goldberg
cfeccc2146
Fix validation error when using pipeline cache control
...
PR #80296 introduced a regression because it checks if the
VK_EXT_pipeline_creation_cache_control extension has been enabled before
using it, but turns out the process is a bit more convoluted than that
(a Vulkan driver may support the extension but then say the feature is
not supported)
2023-09-16 18:59:04 -03:00
Yuri Sizov
48e1c19dea
Merge pull request #81583 from AThousandShips/null_check_drivers_platform
...
[Drivers,Platform] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-15 19:48:18 +02:00
bitsawer
af7b870e2a
Improve GLES3 scene renderer compatibility with older devices
2023-09-14 16:34:29 +03:00
A Thousand Ships
3565d1bf7e
[Drivers,Platform] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-12 20:13:32 +02:00
Rémi Verschelde
3815b2f98e
Merge pull request #81315 from conorlawton/z-billboard-y-velocity-no-scale
...
Fix z-billboard + y to velocity transform alignment to correctly respect non-uniform scale
2023-09-08 23:14:27 +02:00
Conor Lawton
9ecafcc491
Fixed z-billboard-y-velocity to correctly respect non-uniform scale instead of averaging scale
2023-09-08 20:01:57 +01:00
Rémi Verschelde
cfd292939c
Haiku: Remove remnants of past WIP platform port
...
The Haiku platform port was never finalized, and moved to a separate repo in
Godot 3.2 days: https://github.com/godotengine/godot-platform-haiku
Sadly it didn't garner more interest there and is bitrotting. It was never
ported to Godot 4 so the bits of Haiku support left in Mono aren't useful.
2023-09-07 16:37:51 +02:00
Rémi Verschelde
8de6405288
UWP: Remove platform port, needs to be redone from scratch for 4.x
...
The UWP platform port was never ported to the Godot 4.0+ API,
and it's now accumulating bitrot as it doesn't compile, and thus
we no longer propagate platform changes in it.
So we finally remove to acknowledge this state. There's still some
interest in reviving the UWP port eventually, especially as support
for Direct3D 12 will soon be merged, but when that happens it will
be easiest to redo it from scratch.
2023-09-07 15:01:59 +02:00
Rémi Verschelde
8f3042ed46
Merge pull request #81395 from jsjtxietian/fix-clear-color-alpha-value-affect-2d-editor-in-compatibility
...
Fix clear color's alpha value will affects 2D editor in Compatibility mode
2023-09-07 13:54:10 +02:00
jsjtxietian
e21a485dbc
Fix clear color's alpha value will affects 2D editor in Compatibility mode
...
When the rt's transparency is false, force the alpha of the clear color to one
2023-09-07 12:56:34 +08:00
Milan Gruner
45a33cc749
Implement render mode fog_disabled and BaseMaterial3D setting Disable Fog
2023-09-05 18:15:02 +02:00
Rémi Verschelde
497ca8c433
Merge pull request #80296 from RandomShaper/overhaul_vk_pso_cache
...
Enhance Vulkan PSO caching
2023-09-03 00:20:40 +02:00
bitsawer
836705d7a9
Reset SDFGI when changing editor scene tabs
2023-08-30 19:50:05 +03:00
Patrick
c98ab5aba3
Add option to use world coordinates in canvas item shader
...
By using the render mode `world_vertex_coords` you can automatically use the vertex coordinates in world space
2023-08-30 15:32:18 +02:00
Rémi Verschelde
56b13b6865
Merge pull request #81001 from RandomShaper/win_safe_save
...
Make Windows' safe save more resilient
2023-08-30 12:16:06 +02:00
Pedro J. Estébanez
bcf33cfbd1
Enhance Vulkan PSO caching
2023-08-30 12:00:54 +02:00
Rémi Verschelde
9be010cde4
Merge pull request #81059 from darksylinc/matias-vk-barrier-early_fragment_depth
...
Fix missing `EARLY_FRAGMENT_TESTS_BIT` barrier flags
2023-08-29 12:45:56 +02:00
Rémi Verschelde
fd7b27a473
Merge pull request #80909 from adamscott/web-fix-max-uniform-buffer-size-overflow
...
Fix integer value for `GL_MAX_UNIFORM_BLOCK_SIZE` overflowing
2023-08-28 15:03:50 +02:00
Juan Linietsky
407b16ab00
Debug CanvasItem redraw
...
I wanted to add this tool for years and always forget. This command line option:
```
$ godot.exe -e --debug-canvas-item-redraw
```
Allows to see when a canvas item is redrawn. This helps find out if something
in the UI is refreshing in a way it should not. Examples as such:
* Signals causing more of the UI to redraw.
* Container resizing causes more UI elements to redraw.
* Something using a timer is redrawing all time time, which can go unnoticed.
To my surprise, the editor UI is redrawing very efficiently. There is some
weird stuff with the scene tabs, redrawing when the inspector changes but most
things for the most part are fine.
2023-08-28 12:53:56 +02:00
Matias N. Goldberg
677d2d6fb0
Fix missing EARLY_FRAGMENT_TESTS_BIT barrier flags
2023-08-27 19:38:34 -03:00
jsjtxietian
d48b95a305
fix glMapBufferRange return null when r_index + last_item_index > max_instances
2023-08-27 18:00:35 +08:00
Pedro J. Estébanez
49177b6eeb
Make Windows' safe save more resilient
2023-08-25 18:28:35 +02:00
Adam Scott
9c7db7397f
Fix integer value for GL_MAX_UNIFORM_BLOCK_SIZE overflowing
2023-08-25 10:19:25 -04:00
Rémi Verschelde
fef62a6860
Merge pull request #80781 from bitsawer/fix_vulkan_texture_upload
...
Fix Vulkan texture update
2023-08-21 19:32:12 +02:00
A Thousand Ships
6cb28e481f
Fix memory access error for `MultiMesh` with GLES3
...
Buffer was incorrectly assigned when invalid data was provided
2023-08-19 16:01:21 +02:00
bitsawer
3daa19dd95
Fix Vulkan texture update
2023-08-19 12:18:54 +03:00
Rémi Verschelde
1537452aa9
Merge pull request #78013 from Calinou/cli-add-audio-output-latency-argument
...
Add a `--audio-output-latency` command-line argument
2023-08-17 15:43:14 +02:00
Hugo Locurcio
ce57c2379c
Abort on startup with a visible alert if required Vulkan features are missing
2023-08-17 14:48:36 +02:00
Hugo Locurcio
6f1152bdbe
Add a `--audio-output-latency` command-line argument
...
This allows optimizing the audio output latency on higher-end CPUs,
especially in projects that do not expose a way to override this setting.
2023-08-17 14:45:17 +02:00
Rémi Verschelde
c1dbc3dd04
Merge pull request #80288 from pkpro/memcpy_into_nullptr
...
Vulkan: Fix sanitizers error with empty shader name
2023-08-17 12:29:29 +02:00
Rémi Verschelde
5541567c1a
Merge pull request #80151 from WhalesState/Dev1
...
Fix GLES3 changing 2D shadow atlas size is broken
2023-08-17 11:23:24 +02:00
Mounir Tohami
2987dd0c71
fix GLES3 changing 2d shadow atlas size is broken
2023-08-16 15:58:23 +00:00
Rémi Verschelde
9d9043a9c8
Merge pull request #80654 from bitsawer/fix_global_uniform_texture_set
...
Fix global shader uniform texture loading
2023-08-16 09:17:25 +02:00
Rémi Verschelde
d1b8e9abd6
Merge pull request #80571 from darksylinc/matias-resize-window-fix
...
Fix validation error when resizing window
2023-08-16 09:13:53 +02:00
Rémi Verschelde
04c2bc5a37
Merge pull request #80424 from DarioSamo/rd-buffer-copy-vulkan
...
Add `buffer_copy` method to RenderingDevice
2023-08-16 09:13:06 +02:00
Matias N. Goldberg
0b09fdd96c
Fix validation error when resizing window
...
Sometimes when resizing the window we may get the following validation
error:
ERROR: VALIDATION - Message Id Number: -370888023 | Message Id Name:
VUID-vkAcquireNextImageKHR-semaphore-01286
Validation Error: [ VUID-vkAcquireNextImageKHR-semaphore-01286 ]
Object 0: handle = 0xdcc8fd0000000012, type = VK_OBJECT_TYPE_SEMAPHORE;
| MessageID = 0xe9e4b2a9 | vkAcquireNextImageKHR: Semaphore must not be
currently signaled or in a wait state. The Vulkan spec states: If
semaphore is not VK_NULL_HANDLE it must be unsignaled
(https://vulkan.lunarg.com/doc/view/1.2.198.1/linux/1.2-extensions/vkspec.html#VUID-vkAcquireNextImageKHR-semaphore-01286 )
In VulkanContext::prepare_buffers the problem was that
vkAcquireNextImageKHR returned VK_SUBOPTIMAL_KHR but it already signaled
the semaphore (because it is possible to continue normally with a
VK_SUBOPTIMAL_KHR result).
Then we recreate the swapchain and reuse the
w->image_acquired_semaphores[frame_index] which is in an inconsistent
state.
Fixed by recreating the semamphores along the swapchain.
Fix #80570
2023-08-15 20:57:49 -03:00
bitsawer
41def3740a
Fix global shader uniform texture loading
2023-08-15 14:18:26 +03:00
sakrel
80a36ff985
Add support for GLSL source-level debugging with RenderDoc (`--generate-spirv-debug-info`)
2023-08-12 14:56:49 +02:00
Dario
0d7deca4e2
Add buffer_copy method to RenderingDevice interface and an implementation for the Vulkan driver.
...
Direct buffer copies are required to perform certain operations more efficiently, as the only current alternative is to download the buffer to the CPU and upload it again. As the first use case, the new function is used when enabling motion vectors on multimeshes.
2023-08-12 09:38:39 -03:00
Pavel Kraynyukhov
77b02359c9
Vulkan: Fix sanitizers error with empty shader name
...
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-08-09 12:12:56 +02:00
bruvzg
8aa6f29b56
[FileAccess] Add methods to get/set "hidden" and "read-only" attributes on macOS/BSD and Windows.
2023-08-08 21:51:32 +03:00
Rémi Verschelde
1163dac9e3
Merge pull request #80215 from clayjohn/HDR-2D
...
Add option to enable HDR rendering in 2D
2023-08-08 16:57:33 +02:00
Rémi Verschelde
048a164083
Merge pull request #79693 from bruvzg/com_ath
...
[Windows] Initialize COM as apartment-threaded.
2023-08-07 14:48:40 +02:00
clayjohn
57eb762bae
Add option to enable HDR rendering in 2D
...
This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance
Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear.
This is necessary for proper HDR screen support in the future.
2023-08-07 11:24:03 +02:00
Rémi Verschelde
cc6a60913a
Merge pull request #78325 from akien-mga/libpng-moar-intrinsics
...
libpng: Enable intrinsics on x86/SSE2, ppc64/VSX, and all arm/NEON
2023-08-04 17:04:07 +02:00
Rémi Verschelde
2c9b7fc7a8
libpng: Enable intrinsics on x86/SSE2, ppc64/VSX, and all arm/NEON
2023-08-04 14:57:21 +02:00