1
0
Fork 0
Commit Graph

4261 Commits

Author SHA1 Message Date
Rémi Verschelde f68d55bcda libpng: Update to 1.6.45 2025-01-09 15:00:02 +01:00
Rémi Verschelde 3ac4da1620 Merge pull request #101233 from Ivorforce/utf8-multicall
Optimize calls of `utf8` in a few spots to avoid calling it more than once.
2025-01-09 13:50:55 +01:00
Rémi Verschelde 21721ae344 Merge pull request #87260 from Calinou/tonemap-add-agx
Add AgX tonemapper option to Environment
2025-01-08 18:20:03 +01:00
Hugo Locurcio 084e84be78
Add AgX tonemapper option to Environment
Technical implementation notes:

- Moved linearization step to before the outset matrix is applied and
  changed polynomial contrast curve approximation.
  - This does *not* implement Blender's chroma rotation to address hue shift.
    This hue rotation was found to have a significant performance impact.
- Improved performance by combining the AgX outset matrix with the Rec 2020 matrix.

Co-authored-by: Allen Pestaluky <allenpestaluky@gmail.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2025-01-08 17:01:16 +01:00
Rémi Verschelde 76c8e76560 Merge pull request #101284 from akx/tyops
A handful of typo fixes
2025-01-08 15:53:33 +01:00
Stuart Carnie cd17cb0110 [macos, ios]: Refactor joypad support into shared code, numerous bugfixes 2025-01-08 07:00:23 -07:00
Aarni Koskela f134769506 Fix various typos
* Add TODO notes for typos that should be fixed for 5.0

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
Lukas Tenbrink 0fddf6a824 Optimize calls of `utf8` in a few spots to avoid calling it more than once. 2025-01-07 17:24:21 +01:00
BlueCube3310 6a2cc39926 Compatibility: Improve gl texture format detection 2025-01-07 12:20:04 +01:00
Rémi Verschelde 399f585042
Merge pull request #99603 from stuartcarnie/metal_fx_upscaling
Metal: Add MetalFX upscaling support
2025-01-06 22:47:08 +01:00
Stuart Carnie 11dc4f2e5e Metal: Add MetalFX upscaling support
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-01-06 06:03:18 -07:00
Ricardo Subtil b77aa473a1 Implement a "Recovery Mode" for recovering crashing/hanging projects during initialization 2025-01-03 10:50:15 +00:00
Rémi Verschelde 89b18de032
Merge pull request #100221 from adamscott/fix-diraccess-sync
[Web] Fix `DirAccess::unlink()` not updating the IDBFS
2025-01-03 02:01:16 +01:00
Rémi Verschelde 21e6671740
Merge pull request #100937 from Repiteo/style/clang-format-sync
Style: Enforce `AllowShortFunctionsOnASingleLine`
2025-01-03 00:49:44 +01:00
Rémi Verschelde 3936d117e4
Merge pull request #100388 from Namey5/gles3-canvas-clear-fix
Fix canvas background mode not clearing correctly in Compatibility renderer
2025-01-03 00:48:38 +01:00
Rémi Verschelde 72839d0085
Merge pull request #99996 from akien-mga/libpng-1.6.44
libpng: Update to upstream 1.6.44
2025-01-03 00:48:13 +01:00
Thaddeus Crews e06d83860d
Style: Enforce `AllowShortFunctionsOnASingleLine` 2025-01-02 10:09:41 -06:00
Thaddeus Crews 13992bbf7b
Merge pull request #100766 from stuartcarnie/metal_crash
Metal: Fix crash when uniform set is empty for slot binding mode
2024-12-30 08:58:51 -06:00
Thaddeus Crews 0efced3ea5
Merge pull request #100822 from BlueCube3310/gles-hdr-astc
Compatibility: Fix ASTC HDR extension detection
2024-12-30 08:58:48 -06:00
Thaddeus Crews 58b48a934e
Merge pull request #100859 from StaydMcMuffin/scene-shaders-user-normal-fix
Fix User-supplied Normals Being Ignored
2024-12-30 08:58:47 -06:00
Stayd 40f17127ef Fix User-supplied Normals Being Ignored
Moves the initialization of the geo_normal value
to after the user shader code, so that the normal
supplied by the user is actually used instead of
the interpolated vertex normal.
2024-12-27 13:01:20 -07:00
BlueCube3310 88baa2f82d Compatibility: Fix ASTC HDR extension detection 2024-12-26 11:44:05 +01:00
Stuart Carnie b643599749 Metal: Fix crash when uniform set is empty for slot binding mode
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-12-24 07:53:21 -07:00
BlueCube3310 636a132e45 Compatibility: Avoid converting to compressed formats when retrieving image data 2024-12-23 23:16:46 +01:00
Thaddeus Crews 3c304ab7cc
Merge pull request #96076 from AThousandShips/improve_null_check_core_drivers
[Core,Drivers] Improve use of `Ref.is_null/valid`
2024-12-23 11:14:58 -06:00
Yufeng Ying 33817b186f Remove unused header in drivers and modules.
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
2024-12-24 00:40:47 +08:00
Rémi Verschelde f7d6924afb
Merge pull request #100677 from clayjohn/light2d-cull
Properly transform light rect and occluder rect to perform Light2D culling in canvas space
2024-12-22 00:10:12 +01:00
clayjohn 30801af298 Properly transform light rect and occluder rect to perform light2d culling in canvas space 2024-12-20 16:58:02 -07:00
Rémi Verschelde 87855e04ad
Merge pull request #100643 from ze2j/follow_up_of_array_mesh_surface_remove
Follow-up of `ArrayMesh::surface_remove` addition
2024-12-20 23:57:20 +01:00
Yufeng Ying e88e30c273 Remove unused headers in servers.
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2024-12-20 18:51:01 +08:00
ze2j 97b093617d Follow-up of ArrayMesh::surface_remove addition 2024-12-20 10:53:43 +01:00
Thaddeus Crews effea567a5
Merge pull request #99820 from stuartcarnie/issue_99682
Metal: Add support for 2017 era iOS devices
2024-12-19 20:00:13 -06:00
Thaddeus Crews 1536e0e236
Merge pull request #100441 from StaydMcMuffin/scene-shaders-tbn-fixes
Scene Shaders - TBN Vector Fixes
2024-12-19 19:59:58 -06:00
Thaddeus Crews 416a86f47c
Merge pull request #100434 from Ivorforce/string-copy-from-rename
Rename `String::copy_from` functions to their respective encodings (`parse_latin1`, `parse_wstring`, `parse_utf32`).
2024-12-19 19:59:57 -06:00
Thaddeus Crews b715fabd70
Merge pull request #76371 from ze2j/array_mesh_surface_remove
Add `ArrayMesh::surface_remove`
2024-12-19 19:59:56 -06:00
Thaddeus Crews 2fcd8223e8
Merge pull request #99538 from Geometror/lightmap-gi-transparent-surface
Add transparency support for LightmapGI
2024-12-19 19:59:52 -06:00
Thaddeus Crews 9300c2bdc9
Merge pull request #100400 from CrabNickolson/windows-thread-names
Add support for thread naming on windows platform
2024-12-19 19:59:41 -06:00
Thaddeus Crews d3e5b62ea2
Merge pull request #99230 from paddy-exe/instance_uniforms_compatability_renderer
Implement 2D instance uniforms
2024-12-19 19:59:37 -06:00
Alex Threlfo 830f25010f fix: canvas background mode not clearing correctly when using gles3 glow effect 2024-12-20 12:41:08 +11:00
Hendrik Brucker a3525bc015 Add transparency support for LightmapGI
Co-authored-by: Guerro323 <kaltobattle@gmail.com>
2024-12-18 19:36:16 +01:00
Stuart Carnie 952cd796ff Metal: Support Apple4 GPUs (2017 era iOS devices)
Closes #99682
2024-12-18 09:14:38 -07:00
kobewi ceefc0d38a Implement 2D instance shader parameters
Co-authored-by: kobewi <kobewi4e@gmail.com>
Co-authored-by: yesfish <huwpascoe@users.noreply.github.com>
Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
2024-12-17 23:59:16 +01:00
Rémi Verschelde 190ae9f9dc
Merge pull request #100302 from clayjohn/light2d-optimize
Optimize PointLight2D shadow rendering by reducing draw calls and RD state changes
2024-12-17 22:59:54 +01:00
Rémi Verschelde 7a70efc2a8
Merge pull request #100151 from alessand10/fix-dx12-command-buffer-leak
Fix a command buffer leak that occurs in D3D12
2024-12-17 22:59:50 +01:00
Rémi Verschelde f08fe52d9a
Merge pull request #99963 from Faless/web/no_ip
[Web] Implement dummy IP and NetSocket
2024-12-17 22:59:42 +01:00
alessand10 9ea97c017b Fix a command buffer leak that occurs in dx12 2024-12-17 14:55:39 -05:00
clayjohn 7c61252dd7 Optimize PointLight2D shadow rendering by reducing draw calls and RD state changes.
This dramatically reduces the CPU time spent on rendering shadows for PointLight2Ds
2024-12-17 07:41:09 -08:00
Rémi Verschelde d60c0e21a6
Merge pull request #88313 from wagnerfs/run-time-anisotropic-filtering
Allow changing the anisotropic filter level at run-time per Viewport
2024-12-17 16:18:38 +01:00
Stayd ed0e3d7da8 Scene Shaders - TBN Fixes
Fixes two errors related to the normal, tangent,
and bitangent vectors, namely normals not always
being inverted on backfaces, and normalization
being reversed from what MikkTSpace expects.
2024-12-16 22:36:23 -07:00
Andrew_Shobbrook e42def12d0
Implement per-light Specular property in DirectionalLight3D 2024-12-16 19:18:18 +01:00
Lukas Tenbrink df3e9291c6 Rename `String::copy_from` functions to their respective encodings (`parse_latin1`, `parse_wstring`, `parse_utf32`). 2024-12-15 21:46:50 +01:00
Rémi Verschelde ffe53cba3c
Merge pull request #100374 from hpvb/fix-rendering-ubsan
Fix ubsan reported errors in rendering
2024-12-14 18:25:46 +01:00
Rémi Verschelde 736dcf72cc
Merge pull request #100125 from alessand10/uniform-variable-fix
Move uniform variables up in the `gles3/scene.glsl` template so that they are available within the `#GLOBALS` scope
2024-12-14 18:25:38 +01:00
Ramón Grill d848835f8c Add support for thread naming on windows platform 2024-12-14 14:42:39 +01:00
Thaddeus Crews 9ecdeb3723
Merge pull request #98747 from tetrapod00/standardize-renderer-strings
Standardize terms for renderers in error strings
2024-12-13 16:19:37 -06:00
Thaddeus Crews f2c8f17906
Merge pull request #100325 from hpvb/fix-rendering-alignment
Fix several ubsan reported misaligned accesses
2024-12-13 16:19:20 -06:00
HP van Braam 062d74bb9c Fix ubsan reported errors in rendering
This allows the TPS demo to run without an ubsan reports from any of the
rendering code.
2024-12-13 21:27:37 +01:00
HP van Braam e674379764 Fix several ubsan reported misaligned accesses
These misaligned accesses are shown in all of our CI hooks. It turned
out to not be difficult to fix.

It is likely that this will improve performance for aarch64.
2024-12-13 15:32:35 +01:00
clayjohn 356fa37f89 Small fixups for the new reflection probe blending 2024-12-12 17:29:21 -08:00
Thaddeus Crews bfc66f0608
Merge pull request #100282 from devloglogan/motion-vectors-openxr
Add renderer motion vectors API for use with OpenXR
2024-12-12 16:13:36 -06:00
Thaddeus Crews 7c015a768f
Merge pull request #99958 from lander-vr/reflection-probe-blend-property
Add Blend Distance property to ReflectionProbe
2024-12-12 16:13:32 -06:00
Thaddeus Crews b7501d219c
Merge pull request #100322 from darksylinc/matias-tf-comment-fix
Fix grammar / spelling in comments
2024-12-12 16:13:25 -06:00
Matias N. Goldberg a1b44ec7a7 Fix grammar / spelling in comments
Minor fixes for changes introduced in #99257 that could not be fixed in
time as the PR needed to be expedited.
2024-12-12 12:47:08 -03:00
Rémi Verschelde 562dd1ad85
Merge pull request #100305 from clayjohn/directional-light-2d-mask
Remove positional light mask from directional lights in Canvas Item shaders.
2024-12-12 14:10:24 +01:00
Rémi Verschelde 0e5c337453
Merge pull request #85653 from BlueCube3310/lightmap-gi-shadowmask
Implement LightmapGI shadowmasks
2024-12-12 14:09:30 +01:00
BlueCube3310 189c8eb671 Implement shadowmasks for LightmapGI
Co-authored-by: dearthdev <nathandearthdev@gmail.com>
2024-12-12 11:00:28 +01:00
clayjohn f8827271d7 Remove positional light mask from directional lights in Canvas Item shaders. 2024-12-12 00:20:07 -08:00
Thaddeus Crews ef3086bcdb
Merge pull request #94947 from ChrisBase/issue_94946
Change some image error messages to output the file path
2024-12-11 17:35:58 -06:00
devloglogan 3deb5884d7 Renderer agnostic motion vector rendering/OpenXR changes 2024-12-10 15:59:17 -06:00
Thaddeus Crews f962fdce0e
Merge pull request #100185 from Repiteo/scons/fix-thirdparty-warnings
SCons: Fix MSVC bypassing disabled warnings
2024-12-10 14:16:02 -06:00
Thaddeus Crews 66dea152b5
Merge pull request #99257 from darksylinc/matias-TheForge-pr04-excluded-ubo+render_opt
Improvements from TheForge
2024-12-10 14:15:55 -06:00
Thaddeus Crews a167afd70a
Merge pull request #96771 from clayjohn/RD-static-lighting
Avoid calculating dynamic lights when lights are already baked using the static bake mode in the Forward+ renderer
2024-12-10 14:15:41 -06:00
Allen Pestaluky db63d3e3a0 Prevent WASAPI error spam when device cannot be initialized.
Fixes #99968 and prevents the error spam referenced in comments of #18732.
Also fixes a number of memory leaks that occur when an audio device is reinitialized or fails to reinitialize and gates reinitialization attempts to around 1 per second instead of ~1000 attempts per second.

Co-authored-by: Kusok <118438257+kus04e4ek@users.noreply.github.com>
2024-12-10 13:32:33 -05:00
Adam Scott a6c5373a09
[Web] Fix `DirAccess::unlink()` not updating the IDBFS 2024-12-09 17:48:08 -05:00
Thaddeus Crews a3656083ca
Merge pull request #100065 from clayjohn/mesh-aabb-clear
Clear AABB when Mesh is cleared
2024-12-09 14:33:32 -06:00
Thaddeus Crews 070aeb5688
SCons: Fix MSVC bypassing disabled warnings 2024-12-09 11:49:42 -06:00
Matias N. Goldberg c77cbf096b Improvements from TheForge (see description)
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.

This is the most "risky" PR so far because the previous ones have been
miscellaneous stuff aimed at either [improve
debugging](https://github.com/godotengine/godot/pull/90993) (e.g. device
lost), [improve Android
experience](https://github.com/godotengine/godot/pull/96439) (add Swappy
for better Frame Pacing + Pre-Transformed Swapchains for slightly better
performance), or harmless [ASTC
improvements](https://github.com/godotengine/godot/pull/96045) (better
performance by simply toggling a feature when available).

However this PR contains larger modifications aimed at improving
performance or reducing memory fragmentation. With greater
modifications, come greater risks of bugs or breakage.

Changes introduced by this PR:

TBDR GPUs (e.g. most of Android + iOS + M1 Apple) support rendering to
Render Targets that are not backed by actual GPU memory (everything
stays in cache). This works as long as load action isn't `LOAD`, and
store action must be `DONT_CARE`. This saves VRAM (it also makes
painfully obvious when a mistake introduces a performance regression).
Of particular usefulness is when doing MSAA and keeping the raw MSAA
content is not necessary.

Some GPUs get faster when the sampler settings are hard-coded into the
GLSL shaders (instead of being dynamically bound at runtime). This
required changes to the GLSL shaders, PSO creation routines, Descriptor
creation routines, and Descriptor binding routines.

 - `bool immutable_samplers_enabled = true`

Setting it to false enforces the old behavior. Useful for debugging bugs
and regressions.

Immutable samplers requires that the samplers stay... immutable, hence
this boolean is useful if the promise gets broken. We might want to turn
this into a `GLOBAL_DEF` setting.

Instead of creating dozen/hundreds/thousands of `VkDescriptorSet` every
frame that need to be freed individually when they are no longer needed,
they all get freed at once by resetting the whole pool. Once the whole
pool is no longer in use by the GPU, it gets reset and its memory
recycled. Descriptor sets that are created to be kept around for longer
or forever (i.e. not created and freed within the same frame) **must
not** use linear pools. There may be more than one pool per frame. How
many pools per frame Godot ends up with depends on its capacity, and
that is controlled by
`rendering/rendering_device/vulkan/max_descriptors_per_pool`.

- **Possible improvement for later:** It should be possible for Godot
to adapt to how many descriptors per pool are needed on a per-key basis
(i.e. grow their capacity like `std::vector` does) after rendering a few
frames; which would be better than the current solution of having a
single global value for all pools (`max_descriptors_per_pool`) that the
user needs to tweak.

 - `bool linear_descriptor_pools_enabled = true`

Setting it to false enforces the old behavior. Useful for debugging bugs
and regressions.
Setting it to false is required when workarounding driver bugs (e.g.
Adreno 730).

A ridiculous optimization. Ridiculous because the original code
should've done this in the first place. Previously Godot was doing the
following:

  1. Create a command buffer **pool**. One per frame.
  2. Create multiple command buffers from the pool in point 1.
3. Call `vkBeginCommandBuffer` on the cmd buffer in point 2. This
resets the cmd buffer because Godot requests the
`VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT` flag.
  4. Add commands to the cmd buffers from point 2.
  5. Submit those commands.
6. On frame N + 2, recycle the buffer pool and cmd buffers from pt 1 &
2, and repeat from step 3.

The problem here is that step 3 resets each command buffer individually.
Initially Godot used to have 1 cmd buffer per pool, thus the impact is
very low.

But not anymore (specially with Adreno workarounds to force splitting
compute dispatches into a new cmd buffer, more on this later). However
Godot keeps around a very low amount of command buffers per frame.

The recommended method is to reset the whole pool, to reset all cmd
buffers at once. Hence the new steps would be:

  1. Create a command buffer **pool**. One per frame.
  2. Create multiple command buffers from the pool in point 1.
3. Call `vkBeginCommandBuffer` on the cmd buffer in point 2, which is
already reset/empty (see step 6).
  4. Add commands to the cmd buffers from point 2.
  5. Submit those commands.
6. On frame N + 2, recycle the buffer pool and cmd buffers from pt 1 &
2, call `vkResetCommandPool` and repeat from step 3.

**Possible issues:** @dariosamo added `transfer_worker` which creates a
command buffer pool:

```cpp
transfer_worker->command_pool =
driver->command_pool_create(transfer_queue_family,
RDD::COMMAND_BUFFER_TYPE_PRIMARY);
```

As expected, validation was complaining that command buffers were being
reused without being reset (that's good, we now know Validation Layers
will warn us of wrong use).
I fixed it by adding:

```cpp
void RenderingDevice::_wait_for_transfer_worker(TransferWorker
*p_transfer_worker) {
	driver->fence_wait(p_transfer_worker->command_fence);
	driver->command_pool_reset(p_transfer_worker->command_pool); //
! New line !
```

**Secondary cmd buffers are subject to the same issue but I didn't alter
them. I talked this with Dario and he is aware of this.**
Secondary cmd buffers are currently disabled due to other issues (it's
disabled on master).

 - `bool RenderingDeviceCommons::command_pool_reset_enabled`

Setting it to false enforces the old behavior. Useful for debugging bugs
and regressions.

There's no other reason for this boolean. Possibly once it becomes well
tested, the boolean could be removed entirely.

Adds `command_bind_render_uniform_sets` and
`add_draw_list_bind_uniform_sets` (+ compute variants).

It performs the same as `add_draw_list_bind_uniform_set` (notice
singular vs plural), but on multiple consecutive uniform sets, thus
reducing graph and draw call overhead.

 - `bool descriptor_set_batching = true;`

Setting it to false enforces the old behavior. Useful for debugging bugs
and regressions.

There's no other reason for this boolean. Possibly once it becomes well
tested, the boolean could be removed entirely.

Godot currently does the following:

 1. Fill the entire cmd buffer with commands.
 2. `submit()`
    - Wait with a semaphore for the swapchain.
- Trigger a semaphore to indicate when we're done (so the swapchain
can submit).
 3. `present()`

The optimization opportunity here is that 95% of Godot's rendering is
done offscreen.
Then a fullscreen pass copies everything to the swapchain. Godot doesn't
practically render directly to the swapchain.

The problem with this is that the GPU has to wait for the swapchain to
be released **to start anything**, when we could start *much earlier*.
Only the final blit pass must wait for the swapchain.

TheForge changed it to the following (more complicated, I'm simplifying
the idea):

 1. Fill the entire cmd buffer with commands.
 2. In `screen_prepare_for_drawing` do `submit()`
    - There are no semaphore waits for the swapchain.
    - Trigger a semaphore to indicate when we're done.
3. Fill a new cmd buffer that only does the final blit to the
swapchain.
 4. `submit()`
    - Wait with a semaphore for the submit() from step 2.
- Wait with a semaphore for the swapchain (so the swapchain can
submit).
- Trigger a semaphore to indicate when we're done (so the swapchain
can submit).
 5. `present()`

Dario discovered this problem independently while working on a different
platform.

**However TheForge's solution had to be rewritten from scratch:** The
complexity to achieve the solution was high and quite difficult to
maintain with the way Godot works now (after Übershaders PR).
But on the other hand, re-implementing the solution became much simpler
because Dario already had to do something similar: To fix an Adreno 730
driver bug, he had to implement splitting command buffers. **This is
exactly what we need!**. Thus it was re-written using this existing
functionality for a new purpose.

To achieve this, I added a new argument, `bool p_split_cmd_buffer`, to
`RenderingDeviceGraph::add_draw_list_begin`, which is only set to true
by `RenderingDevice::draw_list_begin_for_screen`.

The graph will split the draw list into its own command buffer.

 - `bool split_swapchain_into_its_own_cmd_buffer = true;`

Setting it to false enforces the old behavior. This might be necessary
for consoles which follow an alternate solution to the same problem.
If not, then we should consider removing it.

PR #90993 added `shader_destroy_modules()` but it was not actually in
use.

This PR adds several places where `shader_destroy_modules()` is called
after initialization to free up memory of SPIR-V structures that are no
longer needed.
2024-12-09 11:49:28 -03:00
Alessandro c153c5b3cf Moved uniform variables up so that they are available within the #GLOBAL scope 2024-12-06 17:39:31 -05:00
Lukas Tenbrink b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
clayjohn 9320865796 Avoid calculating dynamic lights when lights are baked into LightmapGI using the static bake mode 2024-12-06 10:17:44 -08:00
landervr 05010180ce ReflectionProbe add Blend Distance 2024-12-05 23:29:47 +01:00
Thaddeus Crews 8e01601123
Merge pull request #100064 from clayjohn/atlas-realloc-time
Correctly check time since shadow was allocated in atlas to avoid unnecessary re-allocations
2024-12-05 14:12:19 -06:00
Thaddeus Crews 85862ea718
Merge pull request #100058 from DarioSamo/d3d12-texture-limits
Add texture limits for D3D12 Driver.
2024-12-05 14:12:16 -06:00
clayjohn deac37c464 Clear AABB when Mesh is cleared 2024-12-05 11:40:44 -08:00
clayjohn 1b5a15d5d1 Correctly check time since shadow was allocated in atlas to avoid unnecessary re-allocations
Co-authored-by: jitspoe <jitspoe@yahoo.com>
2024-12-05 11:13:37 -08:00
Dario d7d6251c30 Add texture limits for D3D12 Driver. 2024-12-05 13:55:57 -03:00
Rémi Verschelde d471210eba
libpng: Update to upstream 1.6.44 2024-12-04 00:47:54 +01:00
Thaddeus Crews 156bc92282
Merge pull request #98397 from adamscott/add-tmp-support
Add temp utilities (alias `OS::get_temp_dir()`, `FileAccess::create_temp()`, and `DirAccess::create_temp()`)
2024-12-03 14:40:59 -06:00
Thaddeus Crews 608cccc64e
Merge pull request #99919 from bruvzg/ferror
[FileAccess] Set `last_error` on file read/write errors.
2024-12-03 14:40:57 -06:00
Thaddeus Crews 70dae45dd0
Merge pull request #99905 from stuartcarnie/fix_external_texture
Metal: Ensure `texture_create_from_extension` returns correct pixel format
2024-12-03 14:40:55 -06:00
Thaddeus Crews 6478f296bc
Merge pull request #99720 from mrsaturnsan/mac_vsync_fix
Fix vsync on macOS getting disabled when using `afterMinimumDuration`
2024-12-03 14:40:44 -06:00
Stuart Carnie 7caa039183
Metal: Ensure `texture_create_from_extension` returns correct pixel format 2024-12-03 05:45:50 +11:00
Adam Scott 1b3e483899
Add file and dir temporary utilities
Co-authored by @Alex2782 for the Android bindings.
Many thanks to the reviewers also.

Co-authored-by: Alex <alex.hart.278@gmail.com>
2024-12-02 12:08:14 -05:00
Rémi Verschelde 101b7414d2
Merge pull request #99036 from bruvzg/propkey_rename
[Windows] Rename `PKEY_Device_FriendlyName` to avoid duplicate symbols with newer MinGW SDKs.
2024-12-02 15:51:02 +01:00
bruvzg d97313cd7d [FileAccess] Set `last_error` on file read/write errors. 2024-12-02 15:05:50 +02:00
Wagner 6995b6a03e Allow changing the anisotropic filter level at run-time per Viewport 2024-11-30 00:50:45 -03:00
Rémi Verschelde c2f19e98bc
Merge pull request #98921 from RandomShaper/win_many_files
Raise the number of file handles on Windows
2024-11-29 22:46:54 +01:00
bruvzg a4b17e7852 [FileAccess] Return error codes from `store_*` methods. 2024-11-29 23:22:31 +02:00
Fabio Alessandrelli c831f635fe [Web] Implement dummy IPWeb instead of IPUnix
Note: This commit ties the IPUnix to the UNIX_SOCKET_UNAVAILABLE define,
disabling it when set. It is maybe not semantically correct (getifaddrs)
is not part of the "socket" API, but it's reasonable to expect that a
platform not supporting Unix-style sockets, would also not support other
Unix network functions.
2024-11-28 20:47:18 +01:00
Thaddeus Crews 6e533b5ee4
Merge pull request #99606 from jamie-pate/fix_99592
Fix gl_compatibility lightmap uniforms not being set
2024-11-27 10:46:58 -06:00