Commit Graph

4294 Commits

Author SHA1 Message Date
324512e11c Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
3c43508ed7 Merge pull request #102427 from AThousandShips/fix_substr
Clean up some uses of `String::substr`
2025-03-07 15:12:33 -06:00
c937b6d180 Merge pull request #102419 from Ivorforce/std-size
Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase.
2025-03-07 15:12:25 -06:00
6ab1472fc7 Merge pull request #103730 from darksylinc/matias-vma-regression
Fix incorrect parameters passed to VMA
2025-03-07 12:06:27 -06:00
5113022dfe Clean up some uses of String::substr
Cases where the end position is either equvalent to the default or past
the end of the string.
2025-03-07 14:50:38 +01:00
c543c5615c Fix incorrect parameters passed to VMA
If the allocation is small enough that it enters the

if (p_size <= SMALL_ALLOCATION_MAX_SIZE) {} block, Godot would call
vmaFindMemoryTypeIndexForBufferInfo with the wrong parameters.

This can cause vmaFindMemoryTypeIndexForBufferInfo to potentially
misbehave on some cards or drivers.

Fixes regression introduced in #102830
Might potentially reopen #101850 (I doubt it, but it's possible)

Must be backported to 4.4
2025-03-06 19:56:52 -03:00
ec5e096388 Merge pull request #103645 from stuartcarnie/fix_101696_pt_2
Metal: Use `p_set_index` when binding uniforms, to use correct data
2025-03-06 16:36:12 -06:00
178566a439 Merge pull request #103661 from Grublady/nin_abxy
Swap Nintendo face buttons on macOS
2025-03-06 16:36:09 -06:00
4bafafaeb3 Merge pull request #102777 from darksylinc/matias-astc-hdr
Add ASTC HDR format variants
2025-03-06 16:36:06 -06:00
cdcee78fcb Swap Nintendo face buttons on macOS 2025-03-05 18:50:52 -05:00
a4fb68f43e Metal: Use p_set_index when binding uniforms, to use correct data 2025-03-06 06:29:49 +11:00
59d75a704e Merge pull request #103613 from stuartcarnie/fix_101696
Metal: Use uniform set index passed by `RenderingDevice`
2025-03-05 12:08:11 -06:00
7dc6b38699 Merge pull request #103622 from bruvzg/lock_file_time
[Windows] Fix `get_modified_time` on locked files.
2025-03-05 12:08:07 -06:00
aef8ed2901 Merge pull request #87388 from clayjohn/Vulkan-limit-add
Implement `LIMIT_MAX_COMPUTE_SHARED_MEMORY_SIZE` to `limit_get` in the Vulkan backend
2025-03-05 12:08:00 -06:00
729c4e9e88 Merge pull request #102905 from kleonc/render_info_fix_primitive_count_per_triangle_strip
Fix render info primitive count per `TRIANGLE_STRIP`
2025-03-05 12:07:47 -06:00
6597fa24a9 [Windows] Fix get_modified_time on locked files. 2025-03-05 11:40:37 +02:00
76e2e9f81f [Metal] Add missing stage info to shader description. 2025-03-05 09:06:06 +02:00
2b8cb36434 Metal: Use uniform set index passed by RenderingDevice
This does not resolve the errors noted in #101696, as the project is
incorrectly binding incompatible uniform set descriptors, as set 0
and set 1 have a single `readonly` image and set 2 has a single
`writeonly` texture. The `RenderingDevice` is reporting the errors with
Metal, as it uses a different `_reflect_spirv`, which correctly
determines the read / write attribute. A separate PR will be required
to fix the shared `_reflect_spirv`

Helps #101696
2025-03-05 17:52:52 +11:00
338c12fc9a Implement LIMIT_MAX_COMPUTE_SHARED_MEMORY_SIZE to limit_get in all Rendering backends.
Also add a more helpful warning that is only displayed in dev builds to
match the D3D12 backend
2025-03-03 21:43:12 -08:00
59beee5860 Merge pull request #102908 from kleonc/primitive_quad_second_triangle_lighting_fix
Fix 2D quad primitive missing lighting data in GLES3 renderer
2025-03-04 01:00:30 +01:00
87efa4d210 Fix particle jitter when scene tree is paused. 2025-02-27 08:40:40 -08:00
5312811c4d Metal: Fix SPIR-V → MSL compilation on iOS targets 2025-02-27 10:22:39 +11:00
818afcb327 Metal: Compile MTLLibrary on demand when pipeline is created
This changes the default shader loading strategy, implemented in the
Metal driver, to compile the `MTLLibrary` on demand when the pipeline
is created, which reduces cold startup time on IPHONE target OSs.

Normally, the `MTLLibrary` is compiled from Metal source asynchronously
when Godot calls
`RenderingDeviceDriverMetal::shader_create_from_bytecode`; however, this
changes this behaviour on mobile platforms to do it on demand when the
pipeline is created, as noted in #96052, Godot will ask to create
many more shaders from bytecode than are initially required. Mobile
OSs like iOS are limited to compiling to shader libraries concurrently,
which results in a significant bottleneck.

This is not the default for macOS, as it can concurrently compile many
shaders at once, resulting in faster startup times for the Godot editor.
2025-02-25 05:32:38 +11:00
ee0cebeaad Fix modified_time on Android 2025-02-20 17:13:41 +01:00
cd72d26518 Merge pull request #102830 from clayjohn/vma-memory-fix
Restore using VMA to create buffers and images
2025-02-17 09:47:47 +01:00
b3769129cb Fix 2D quad primitive missing lighting data in GLES3 renderer 2025-02-16 01:51:24 +01:00
b691a997a3 Fix render info primitive count per TRIANGLE_STRIP 2025-02-15 23:50:07 +01:00
b607110ad2 Merge pull request #102792 from clayjohn/varying-crash
Validate varying count when compiling shaders
2025-02-14 08:25:39 -06:00
d93ac5ee0c Restore using VMA to create buffers and images when we don't need to extra gpu memory tracking.
VMA handles memory allocation on certain devices better than our custom VK code, so we might as well use it

Co-authored-by: Matias N. Goldberg <dark_sylinc@yahoo.com.ar>
2025-02-13 17:40:42 -08:00
35100396e4 Validate varying count when compiling shaders
This avoids crashing on devices when a number of varyings greater than the device limit is used.

For now this accurately prints an error when compiling the shader, but the error text only pops up in the editor if the number of user varyings is above the limit.
2025-02-13 15:07:15 -08:00
fcd785ace2 Add ASTC HDR format variants 2025-02-13 11:45:42 -03:00
f0ac8294cb [Windows] Add missing opened file check. 2025-02-13 11:18:46 +02:00
d5865cb962 [Unix] Fix deleting symlinks. 2025-02-07 18:57:22 +02:00
e34f1f504c Use std::size instead of sizeof(a) / sizeof(a[0]) pattern throughout the codebase. 2025-02-07 14:57:48 +01:00
8714b36171 Fix rendering material when UV2 is compressed 2025-02-06 20:24:46 +01:00
50b847992d Merge pull request #101602 from stuartcarnie/metal_gpu_address
Metal: Enable GPU buffer address support
2025-02-05 11:33:50 +01:00
ea2770eb4f Merge pull request #101947 from Rudolph-B/Issue-101750
Add Heightfield mask to GPUParticlesCollisionHeightField3D
2025-02-04 09:04:11 -06:00
b162c59097 Fix GPUParticlesCollisionHeightField3D adding collisions excluded by its layer_mask
Co-authored-by: Yahia Zakaria <yahiazakaria13@gmail.com>
2025-02-04 08:02:44 +02:00
e6e108d091 Implement get_length() for pipes. 2025-02-03 16:50:00 +02:00
baa33d49b1 [Windows] Fix build with MinGW 8.0.0-1. 2025-01-31 20:39:31 +02:00
570e59df3d Fix shader uniforms has null as default value 2025-01-31 07:35:51 +03:00
3ba6ac0f66 Merge pull request #102143 from MathdudeMan/shader-error
Fix: Mass property particle shader bug
2025-01-29 17:45:13 -06:00
0a9cd5ede9 2D: Fix clip children and rendering artefacts
Fixes both GLES3 and RendererRD implementations

Closes #102147
2025-01-30 07:19:47 +11:00
964cd6525e Fix: Mass property particle shader error 2025-01-28 21:00:26 -05:00
808c25f453 Merge pull request #102089 from adamscott/fix-curve-texture-web
Add check for float texture linear filtering support
2025-01-28 09:03:39 -06:00
60913170c6 Add check for float texture linear filtering support
Co-authored-by: Clay John <claynjohn@gmail.com>
2025-01-27 22:12:08 -05:00
82199a83ce Merge pull request #101998 from stuartcarnie/2d_buffer_overwrite
2D: Fix rendering artifacts when using `BackBufferCopy`.
2025-01-27 09:46:22 -06:00
b5622e9f78 Initialize pa_buffer_attr.maxlength to -1 2025-01-27 07:57:57 +00:00
2510fefebd 2D: Fix rendering artefacts when using BackBufferCopy.
Fixes both GLES3 and RendererRD implementations
2025-01-25 10:22:07 +11:00
802cb0fed8 Merge pull request #101909 from BlueCube3310/compat-rgtc-arr
WebGL2: Fix 2D array textures with RGTC compression not rendering
2025-01-24 09:05:36 -06:00