Commit graph

4267 commits

Author SHA1 Message Date
Alex
ee0cebeaad Fix modified_time on Android 2025-02-20 17:13:41 +01:00
Rémi Verschelde
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
Thaddeus Crews
b607110ad2
Merge pull request #102792 from clayjohn/varying-crash
Validate varying count when compiling shaders
2025-02-14 08:25:39 -06:00
clayjohn
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
clayjohn
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
bruvzg
f0ac8294cb [Windows] Add missing opened file check. 2025-02-13 11:18:46 +02:00
Pāvels Nadtočajevs
d5865cb962 [Unix] Fix deleting symlinks. 2025-02-07 18:57:22 +02:00
BlueCube3310
8714b36171 Fix rendering material when UV2 is compressed 2025-02-06 20:24:46 +01:00
Rémi Verschelde
50b847992d Merge pull request #101602 from stuartcarnie/metal_gpu_address
Metal: Enable GPU buffer address support
2025-02-05 11:33:50 +01:00
Thaddeus Crews
ea2770eb4f
Merge pull request #101947 from Rudolph-B/Issue-101750
Add Heightfield mask to GPUParticlesCollisionHeightField3D
2025-02-04 09:04:11 -06:00
Rudolph Bester
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
Pāvels Nadtočajevs
e6e108d091 Implement get_length() for pipes. 2025-02-03 16:50:00 +02:00
bruvzg
baa33d49b1 [Windows] Fix build with MinGW 8.0.0-1. 2025-01-31 20:39:31 +02:00
Chaosus
570e59df3d Fix shader uniforms has null as default value 2025-01-31 07:35:51 +03:00
Thaddeus Crews
3ba6ac0f66
Merge pull request #102143 from MathdudeMan/shader-error
Fix: Mass property particle shader bug
2025-01-29 17:45:13 -06:00
Stuart Carnie
0a9cd5ede9 2D: Fix clip children and rendering artefacts
Fixes both GLES3 and RendererRD implementations

Closes #102147
2025-01-30 07:19:47 +11:00
MathdudeMan
964cd6525e Fix: Mass property particle shader error 2025-01-28 21:00:26 -05:00
Thaddeus Crews
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
Adam Scott
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
Thaddeus Crews
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
Julian Todd
b5622e9f78 Initialize pa_buffer_attr.maxlength to -1 2025-01-27 07:57:57 +00:00
Stuart Carnie
2510fefebd 2D: Fix rendering artefacts when using BackBufferCopy.
Fixes both GLES3 and RendererRD implementations
2025-01-25 10:22:07 +11:00
Thaddeus Crews
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
Matias N. Goldberg
c30eff5986 Fix performance regression introduced in #90993
PR #90993 needed to get rid of VMA_MEMORY_USAGE_AUTO_PREFER_HOST because
we no longer used vmaCreateBuffer so we could specify the allocation
callbacks.

This however resulted in the wrong memory pool being chosen, causing
signficant performance slowdown.

Indicate additional preferred flags to help VMA select the proper pool.

Fixes #101905
2025-01-24 00:08:29 -03:00
BlueCube3310
2221f6ed13 WebGL2: Fix 2D array textures with RGTC compression not rendering 2025-01-22 20:41:20 +01:00
Thaddeus Crews
604e3ab91f
Merge pull request #101730 from clayjohn/GLES3-emission-half
Bake UV2 emission using half float in the compatibility backend
2025-01-20 10:05:39 -06:00
Thaddeus Crews
0d4696b472
Merge pull request #101515 from allenwp/agx-negative-optimizations
Optimize AgX tonemapper's handling of negative values
2025-01-20 10:05:38 -06:00
Thaddeus Crews
dcf4996276
Merge pull request #101159 from brandon515/compatibility_particle_shader_fix
Fix inverted `GPUParticlesCollisionHeightField3D` in compatibility renderer.
2025-01-20 10:05:24 -06:00
Brandon Haley
990612040a Implemented fix from #91219 in compatibility renderer by reversing the z
axis in the particle shader.
2025-01-18 13:32:10 -05:00
clayjohn
441fc1cba3 Baked UV2 emission using half float in the compatibility backend
The Lightmapper expects a half float image anyway, so this is both more efficient and correct
2025-01-17 16:46:31 -08:00
clayjohn
b8252196df Avoid leaking ninepatch state to other draw commands in GLES backend 2025-01-17 10:13:04 -08:00
Stuart Carnie
01b4fd3522 Metal: enable GPU buffer address support 2025-01-16 06:10:50 +11:00
Matias N. Goldberg
7b2f1e1d09 Fix union order to simplify empty initializers
This is a followup to PR #101344 (commit
0e06eb80bc).

Some of them were not an issue because Godot was initializing all
members, but they were "fixed" just in case since it could become a
problem in the future.

Valgrind was specifically complaining about HashMapData &
GlobalPipelineData.
2025-01-14 19:05:01 -03:00
Rémi Verschelde
9d2798d4aa Merge pull request #100116 from allenwp/prevent-wasapi-error-spam
Prevent WASAPI error spam when device cannot be initialized.
2025-01-14 18:29:25 +01:00
Rémi Verschelde
85b066aa78 Merge pull request #99455 from Bonkahe/IndirectMultimeshImplementation
Add indirect draw functionality to `MultiMesh`
2025-01-14 15:05:42 +01:00
thimenesup
3d92f406b2 Implement Buffer Device Address for Rendering Device Vulkan and DirectX12 2025-01-13 22:43:29 -08:00
Rémi Verschelde
643a6f15f3 Merge pull request #101510 from scgm0/OpenGL3-renderer-supports-transparent-boot-splash
OpenGL3 renderer supports transparent boot splash
2025-01-14 00:22:21 +01:00
Allen Pestaluky
c5cf73a2e7 Optimize AgX tonemapper's handling of negative values
This change improves performance of the AgX tonemapper by allowing two matrix multiplications to be combined into one. This comes at the cost of loss of color information that could be correctly interpreted as positive RGB values in the Rec. 2020 color space. Additionally, an insignificant amount of error is intentionally introduced to the input color value to prevent the need for a second max function call before log2. The final negative color clipping has been removed to allow the tonemapper to return negative RGB values, similar to other tonemappers in Godot.
2025-01-13 17:35:35 -05:00
scgm0
b331ffa7e9 OpenGL3 renderer supports transparent boot splash 2025-01-14 05:58:59 +08:00
David House
e6daec9cf8 Added indirect drawing functionality to MultiMesh
Update doc/classes/RenderingServer.xml

Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
2025-01-13 14:51:51 -06:00
Rémi Verschelde
5877f94b65 Merge pull request #101431 from YYF233333/remote_tree_fix
Use `GetFileAttributesW` for checking file existence on Windows
2025-01-13 20:22:19 +01:00
Rémi Verschelde
1d3acbdd49 Merge pull request #100851 from stuartcarnie/metal_fixups
Metal: Fix occasional use-after-free in Metal driver
2025-01-13 20:21:52 +01:00
Rémi Verschelde
133db1fd60 Merge pull request #92089 from QbieShay/qbe/particle_seek
Implement particle seek request and seed options.
2025-01-13 20:21:28 +01:00
Rémi Verschelde
89f233aca3 Merge pull request #101217 from BlueCube3310/gl-uncomp-formats
Compatibility: Improve gl texture format detection
2025-01-12 18:07:12 +01:00
Rémi Verschelde
62a5ea69ad Merge pull request #101406 from allenwp/fix-agx-contrast-curve
Fix AgX sigmoid contrast curve approximation
2025-01-11 22:30:09 +01:00
Rémi Verschelde
d83598e9b9 Merge pull request #100778 from BlueCube3310/compat-get-texture-silence
Compatibility: Avoid converting to compressed formats when retrieving image data
2025-01-11 22:29:44 +01:00
Stuart Carnie
9fc39ae321 Metal: Use retained references; shared pixel format code
Most important is a fix for an occasional crash due to a use-after-free
bug.

A number of API availability declarations were updated to include tvOS.

The code is now simplified and generic for all platforms, which makes
way for future tvOS support.

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-01-12 07:11:22 +11:00
QbieShay
e9eb0b6082 Implemented tools around particles seed randomization.
The purpose of this code is to expose the necessary
functions for users and engine devs to develop tooling
for properly timing and seeking inside particles.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-11 16:31:24 +01:00
Yufeng Ying
1732888777 Don't open file in file_exists for Windows. 2025-01-11 21:23:24 +08:00
Allen Pestaluky
77ddaaaa91 Fix AgX sigmoid contrast curve approximation
This changes the polynomial function so that a lower input always results in a lower output and vice-versa. Additionally, the new function returns a value that is much closer to 1.0 when given an input of 1.0.
2025-01-10 18:17:38 -05:00