Commit Graph

3973 Commits

Author SHA1 Message Date
Joel Croteau f44d6a235f Fix reload of GDExtension libraries in framework package on macos
`GDExtension::open_library` has a check in it to see if the library was loaded
from a temp file, and if it was to restore the original name as that is the one
we actually care about. This check is breaking extension reloading on Mac when
the library path is to a framework folder, as the file inside the framework
will not generally be the same name as the folder.

This check also shouldn't be necessary even on Windows, which is the only
platform that uses `generate_temp_files`, since disposal of the created temp
file is handled within `OS_Windows::open_dynamic_library`, and
`GDExtension::open_library` (which is the only function to call
`open_dynamic_library` with a `p_data` argument) only cares about the original
library file path and has to do extra work to remove the name of the temp file.
Instead, I have removed that check and set `OS_Windows::open_dynamic_library`
to return the name of the original file and not the name of the copy.

This fixes GDExtension reloading on macOS. I do not have a Windows machine
available to test that it still works properly on Windows, so someone should
check that before merging this.
2024-08-08 08:31:49 -06:00
Rémi Verschelde 32eb97fd2a
Merge pull request #95074 from RandomShaper/d3d12_exit_crash
D3D12: Avoid crash on exit
2024-08-08 10:16:24 +02:00
Pedro J. Estébanez 33bd994087 D3D12: Avoid crash on exit 2024-08-02 18:18:10 +02:00
Pedro J. Estébanez 8cf2903c7f D3D12: Avoid cases of redundant render target clears 2024-08-02 14:26:17 +02:00
Miley Hollenberg 1c31e30359 Fixed crash on PowerVR GE8320 GPUs 2024-07-30 08:43:04 +02:00
Yuri Rubinsky e41048e16e Fix texture samplers to not being last in the property list 2024-07-29 09:19:09 +03:00
Bastiaan Olij 1eb0039b6e Fix regression around OpenGL swapchain optimisation for OpenXR 2024-07-29 12:46:58 +10:00
Pedro J. Estébanez 3260437afc D3D12: Be explicit about all-resources texture barriers 2024-07-25 15:06:42 +02:00
Dario bb0a8e56e1 D3D12: Avoid validation warnings about zero-sized barrier groups 2024-07-25 11:47:34 +02:00
clayjohn 7eac9e855b Remove linearization of canvas modulate in GLES3 backend
The GLES3 renderer is always in sRGB space, even when using an HDR format
2024-07-24 10:27:25 -07:00
Feiyue Zhang 6f30df4b6a
Linearize color if HDR 2D is on 2024-07-24 09:49:50 +02:00
Rémi Verschelde ad1955a63d
Merge pull request #94628 from Chaosus/rendering_fix_crash
Fix crash when assigning more textures than expected to texture array
2024-07-23 13:08:18 +02:00
Rémi Verschelde 6a79d848a8
Merge pull request #94564 from rothej/fix-94183
Fix FOG shader issue in Compatibility mode
2024-07-23 13:08:12 +02:00
Joshua Rothe d751545391
Fix FOG shader issue in Compatibility mode 2024-07-23 11:25:10 +02:00
cosformula fa8b4d84fb
GLES3: Fix directional shadow on Metal ANGLE 2024-07-23 11:24:13 +02:00
Yuri Rubinsky 574e61a542 Fix crash when assigning more textures than expected to texture array 2024-07-22 20:51:11 +03:00
Rémi Verschelde 6621d8e8cc
Merge pull request #93931 from /fix-compatibility-depth_prepass_alpha 2024-07-20 16:07:30 +02:00
Hugo Locurcio 0445ccf428
Fix Image CowData crash when baking large lightmaps
This switches to 64-bit integers in select locations of the Image
class, so that image resolutions of 16384×16384 (used by
lightmap texture arrays) can be used properly. Values that are larger
should also work.

VRAM compression is also supported, although most VRAM-compressed
formats are limited to individual slices of 16384×16384. WebP
is limited to 16383×16383 due to format limitations.
2024-07-19 16:04:30 +02:00
Rémi Verschelde de27d3a7fc
Merge pull request #94233 from ChristopheClaustre/screenshot_compat_broken_with_hdr
Fix black `get_texture()` on viewport in compatibility mode with HDR enabled
2024-07-18 10:45:30 +02:00
Rémi Verschelde 590628feda
Merge pull request #86516 from jsjtxietian/fix-camera-direction
Fix incorrect `CAMERA_DIRECTION_WORLD` calculation
2024-07-18 10:45:20 +02:00
Rémi Verschelde ffd6162c76
Merge pull request #94267 from RandomShaper/d3d12_db
D3D12: Avoid enabling depth bounds test if unsupported
2024-07-17 11:43:39 +02:00
Pedro J. Estébanez a8adb2bbc3 D3D12: Avoid enabling depth bounds test if unsupported 2024-07-15 09:49:34 +02:00
Rémi Verschelde 1aa1a1879d
Merge pull request #94203 from RandomShaper/bye_bye_dxil_dll
D3D12: Get rid of `DXIL.dll`!
2024-07-11 23:16:59 +02:00
ChristopheClaustre 626106da00 gl_type_cache is used mainly for texture to image conversion need to be adjusted for when HDR format is activated 2024-07-11 21:47:18 +02:00
Pedro J. Estébanez ee2c1584e4 D3D12: Get rid of DXIL.dll! 2024-07-11 17:56:45 +02:00
Rémi Verschelde 247a481001
Fix a couple GCC 14 `-Wmaybe-uninitialized` warnings 2024-07-09 16:12:22 +02:00
clayjohn 5b213dcd26 Use GL_COLOR_ATTACHMENT in depth prepass when using Multiview.
I am certain this is a driver bug. But on some devices when no draw buffer is specified, the depth operations fail when there is no color buffer.
2024-07-08 12:52:20 -07:00
GuoShuangyi af62d15ebc fix depth_prepass_alpha not work in compatibility mode 2024-07-04 17:38:14 +08:00
Rémi Verschelde 643da5dfad
Merge pull request #93331 from dsnopek/macos-fix-use-volk
Fix building with `use_volk=yes` on MacOS
2024-07-04 11:31:51 +02:00
Pedro J. Estébanez 207f523441 D3D12: Use the right state for resources in certain heap types 2024-07-01 08:06:26 +02:00
clayjohn 27b040dc61
Remove warning when project setting requests a larger global shader uniform buffer than the hardware supports.
Instead provide a better error message when the limit is exceeded and avoid crash with a small limit.
2024-06-28 10:38:18 +02:00
Ibrahn Sahir 607c5ec49f Move MIDI parsing up from ALSA driver to platform independent driver.
Aims for more consistent MIDI support across Windows, MacOS, Linux and
to provide a base for adding MIDI drivers for other platforms.
Reworks the MIDIDriverALSAMidi MIDI parsing implementation as a platform
independent version in MIDIDriver::Parser.
Uses MIDIDriver::Parser to provide running status support in MacOS
MIDIDriverCoreMidi.
Collects connected input names at open, ensuring devices indices reported
in events match names in array returned from get_connected_inputs.

Fixes #77035.
Fixes #79811.

With code review changes by: A Thousand Ships (she/her)
<96648715+AThousandShips@users.noreply.github.com>
2024-06-25 16:46:30 +01:00
Rémi Verschelde 1a0190270f
Merge pull request #93560 from dsnopek/webxr-emscripten-3151
[Web] Fix checking for OpenGL extensions with Emscripten 3.1.51 and later
2024-06-25 09:20:01 +02:00
Rémi Verschelde fb8a1f143a
Merge pull request #93530 from BastiaanOlij/fix_opengl_post
Fix incorrect enabling of post process in OpenGL
2024-06-25 09:19:57 +02:00
David Snopek 51f9df0ec8 [Web] Fix checking for OpenGL extensions with Emscripten 3.1.51 and later 2024-06-24 14:41:51 -05:00
David Snopek 8e242fe7c1 Disable `*glGetProcAddress()` on the web 2024-06-24 10:57:22 -05:00
Bastiaan Olij 0ab5207b8f Fix incorrect enabling of post process in OpenGL 2024-06-24 13:22:01 +10:00
Rémi Verschelde b749ff59e4
Merge pull request #93369 from bruvzg/mingw-llvm-warnings
[LLVM/MinGW] Fix/suppress DX12 related warnings.
2024-06-21 10:14:28 +02:00
Stuart Carnie 98e9578d66
Remove unused flag and code
Related #48894
2024-06-20 13:50:20 +10:00
bruvzg 10d81a238e
[LLVM/MinGW] Fix/suppress DX12 related warnings. 2024-06-19 23:40:06 +03:00
David Snopek e018eabe1e Fix building with `use_volk=yes` on MacOS 2024-06-19 08:06:44 -05:00
Yuri Rubinsky 8ad878f06b Fix ubo tag placement in canvas.glsl gles3 fragment shader 2024-06-19 12:52:52 +03:00
Rémi Verschelde 0347130a59
Merge pull request #92851 from patwork/fix-tooltips-viewport-dims
Make query for `GL_MAX_VIEWPORT_DIMS` compatible with web exports
2024-06-17 10:58:04 +02:00
clayjohn ea4be9afa6 Add more validation to UBO size and alignment in Compatibility renderer 2024-06-14 12:56:29 -07:00
Rémi Verschelde c58c50831b
Merge pull request #93107 from clayjohn/GLES-sky-ambient
Ensure sky reflection is updated when ambient mode is set to background
2024-06-14 17:13:35 +02:00
Rémi Verschelde 3b7c7d85c0
Merge pull request #92741 from Alex2782/fix_adreno_3xx_compatibility
Fix Adreno 3xx compatibility for devices with newer driver versions
2024-06-14 10:19:28 +02:00
Rémi Verschelde 4ce3e169a9
Merge pull request #92388 from sunfl0w/fix-compatibility-albedo
Fix albedo value wraparound in Compatibility render mode
2024-06-14 10:19:21 +02:00
patwork ed5f33ef07 Make query for GL_MAX_VIEWPORT_DIMS compatible with web exports 2024-06-14 01:53:12 +02:00
Rémi Verschelde e15c2e051e
Merge pull request #92663 from Riteo/holy-egl-batman
EGL: Use `EGL_EXT_platform_base` whenever possible
2024-06-13 17:19:17 +02:00
sunfl0w 0e56b64fc4 Fix albedo value wraparound in Compatibility render mode
Using the Compatibility renderer results in wrapped albedo values if a custom shader returns albedo values outside the expected range of [0,1].

This commit fixed this issue by clamping the albedo value to [0,1] right after the custom shader is executed.

Fixes #91919
2024-06-13 13:32:28 +02:00
clayjohn b758658405 Ensure sky reflection is updated when ambient mode is set to background 2024-06-12 16:00:01 -07:00
clayjohn 9000a9d36f Ensure post processing happens when adjustments are enabled in the Compatibility renderer 2024-06-11 14:31:06 -07:00
Alexander Hartmann aed6b023f5 Fix Adreno 3xx compatibility for devices with newer driver versions
Co-Authored-By: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-Authored-By: Clay John <claynjohn@gmail.com>
2024-06-11 23:23:51 +02:00
wojtekpil 53e68ecbd4 Fix depth clear value for uv2 baking in compatibility renderer 2024-06-07 23:25:49 +02:00
Riteo 8f69f29694 EGL: Use EGL_EXT_platform_base whenever possible
This avoids any assumption from the driver, which would otherwise select
a specific platform and potentially mess up everything, resulting
usually in a display server failure.
2024-06-04 08:43:34 +02:00
Rémi Verschelde 7f1d3b1cfa
Merge pull request #92010 from akien-mga/vulkan-sdk-1.3.183.0
vulkan: Update all components to Vulkan SDK 1.3.183.0
2024-06-03 10:35:42 +02:00
Rémi Verschelde 41e762ca29
Merge pull request #91454 from akien-mga/coverity-checks
Fix Steam input "crc" errors, and some other Coverity reports of uninitialized scalar variable
2024-06-03 10:35:38 +02:00
Rémi Verschelde 940d629070
vulkan: Update all components to Vulkan SDK 1.3.183.0
Pass `VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT` to VMA when using Vulkan 1.3
features.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2024-06-03 10:25:46 +02:00
Rémi Verschelde 8b044da396
Merge pull request #92474 from Rudolph-B/fix-collided-particles-jittering
Fix collided 3D GPU particles sometimes jittering
2024-05-31 14:16:46 +02:00
Rémi Verschelde f2796fa06d
Merge pull request #91769 from DarioSamo/d3d12_enhanced_barriers
Add support for enhanced barriers in D3D12.
2024-05-31 14:15:49 +02:00
Rémi Verschelde 62120c7841
Fix Steam input "crc" errors, and some other Coverity reports of uninitialized scalar variable
- Fixes #88630.
- Fixes #92578.
2024-05-31 09:55:02 +02:00
Rémi Verschelde 1e6b11dcd4
Merge pull request #92287 from clayjohn/LOD-safe-fixes
Fix LOD selection in compatibility backend and clean up LOD code
2024-05-28 18:06:45 +02:00
Rudolph Bester f666c76a9c Fixed collided 3D GPU particles sometimes jittering 2024-05-28 14:09:08 +02:00
clayjohn 267ea14616 Fix LOD selection in compatibility backend and clean up LOD code 2024-05-23 11:30:22 -07:00
bruvzg 628c81d2d9
[DisplayServer] Add method to check if window transparency is supported and enabled. 2024-05-23 15:23:18 +03:00
Bastiaan Olij db32707bb2 Stereo rendering: Fix omni lights 2024-05-22 10:09:31 +10:00
clayjohn 6fbef0669d Disable all sources of ambient light when `ambient_light_disabled` render mode is used 2024-05-21 10:42:12 -07:00
Dario adabd14d08 Add support for enhanced barriers in D3D12.
Enables support for enhanced barriers if available.

Gets rid of the implementation of [CROSS_FAMILY_FALLBACK] in the D3D12 driver. The logic has been reimplemented at a higher level in RenderingDevice itself.

This fallback is only used if the RenderingDeviceDriver reports the API traits and the capability of sharing texture formats correctly. Aliases created in this way can only be used for sampling: never for writing. In most cases, the formats that do not support sharing do not support unordered access/storage writes in the first place.
2024-05-20 13:04:44 -03:00
Rémi Verschelde 68ac4ee358
Merge pull request #80232 from Calinou/vulkan-pipeline-cache-improve-messages
Improve warning messages related to Vulkan pipeline cache
2024-05-20 17:06:25 +02:00
Rémi Verschelde 7cd9f61d32
Merge pull request #91853 from semensanyok/fix-compatibility-gles3-load-compressed-layered-tex-2dArray
Fix compatibility renderer load of compressed layered `GL_TEXTURE_2D_ARRAY`
2024-05-18 17:41:31 +02:00
semensanyok 07c15ef3c8 fix compatibility gles3 driver load of compressed layered GL_TEXTURE_2D_ARRAY 2024-05-17 22:00:25 +02:00
Lalit Shankar Chowdhury 8b8c49703a
Use COM smart pointers to handle COM objects safely
Use ComPtr to handle COM objects safely

Use COM smart pointers in WASAPI driver

Fix ComPtr handling

Fix crash due to IAudioClient3 type conversion
2024-05-16 16:46:45 +05:30
Rémi Verschelde 5708a3a02e
Merge pull request #92000 from clayjohn/vram-debugger
Increase coverage of VRAM debugger and add support to RD backends
2024-05-16 09:32:11 +02:00
clayjohn c84616c2d2 Increase coverage of VRAM debugger and add support to RD backends 2024-05-15 16:30:19 -07:00
Rémi Verschelde d532bc529a
Merge pull request #91846 from rburing/multimesh_cache_me_if_you_can
Fix MultiMesh buffer cache in transforms-only case
2024-05-14 18:09:58 +02:00
Rémi Verschelde c9fdcde20f
Merge pull request #91642 from BastiaanOlij/fix_transparent_sky
Skip rendering sky if viewport is set to transparent background
2024-05-14 12:06:44 +02:00
Dario d5789e09eb Add optional driver workaround to RenderingDevice for Adreno 6XX.
Co-authored-by: Clay John <claynjohn@gmail.com>
2024-05-13 10:20:31 -03:00
Bastiaan Olij 6efaaecde2 Skip rendering sky if viewport is set to transparent background 2024-05-13 11:04:06 +10:00
Ricardo Buring a24cb7b369 Fix MultiMesh buffer cache in transforms-only case 2024-05-11 21:10:07 +02:00
Pedro J. Estébanez 1589433e8f Apply additional fixes to servers' threading 2024-05-08 17:41:40 +02:00
Pedro J. Estébanez 755c7494c2 OpenGL: Honor separate management of RT's backbuffer FBO and texture upon clear 2024-05-08 17:41:40 +02:00
Rémi Verschelde a9a1d0a162
Merge pull request #91619 from AThousandShips/find_improve
Replace `find` with `contains/has` where applicable
2024-05-08 14:35:44 +02:00
A Thousand Ships b4c6cc7d82
[Core] Add case-insensitive `String::containsn` 2024-05-08 12:48:01 +02:00
A Thousand Ships a0dbdcc3ab
Replace `find` with `contains/has` where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
Rémi Verschelde 7d03b1de0b
Style: Trim trailing whitespace and ensure newline at EOF
Found by apply the file_format checks again via #91597.
2024-05-08 10:12:46 +02:00
Rémi Verschelde 4b070e8031
Fix various typos with codespell
Using 2.2.7.dev217+g10c2abcf.

Had to add `colour` to the ignore list as we used it as an alias/keyword for the
documentation of color-related APIs.
Also ignore recommendations to change `thirdparty` to either `third-party` or
`third party`, which are correct but we use the former fairly consistently.
2024-05-07 10:08:42 +02:00
Rémi Verschelde e63252b421
Merge pull request #90705 from AThousandShips/foreach_list
Reduce and prevent unnecessary random-access to `List`
2024-05-07 09:04:44 +02:00
A Thousand Ships 86de59d60a
[Core] Add `LocalVector::has` for convenience 2024-05-06 18:03:37 +02:00
A Thousand Ships 955d5affa8
Reduce and prevent unnecessary random-access to `List`
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Bastiaan Olij 9042ddf19f Improvements to VRS/Foveated rendering 2024-05-03 17:20:30 +10:00
clayjohn 8eae822b54 Ensure that environment is available before checking for BCS 2024-05-02 11:34:48 -07:00
Rémi Verschelde 0b6c29f2d2
Merge pull request #89114 from AThousandShips/vec_elem_scalar
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
2024-05-02 12:46:22 +02:00
A Thousand Ships 308dbb8c63
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
semensanyok e378083fa5 fix typo in e41064388e breaking gles3 2024-05-02 00:32:39 +02:00
Rémi Verschelde f91db3dc58
Merge pull request #91399 from QbieShay/qbe/fix-pmul-name
Revert premul alpha to spell without the T
2024-05-01 23:47:46 +02:00
QbieShay e41064388e reverted naming to premul alpha (no T)
Initially 3d had premulT alpha as a keyword.
Since Canvas item uses mixed premul and premult as keywords,
3D is changed as well to keep consistency with 2D.
Unfortunately this keeps inconsistency with the internal ENUM.
2024-05-01 22:24:49 +02:00
Chris Clyne 44364faee5 Ensure global shader sampler parameters are initialized when loading the editor 2024-05-01 18:12:46 +01:00
QbieShay 41a2b0e83e Added premult alpha blending to 3D (spatial) shaders.
Co-authored-by: jitspoe <jitspoe@yahoo.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2024-05-01 00:53:29 +02:00
bruvzg 986d297ed3
Fix arm64/Windows build. 2024-04-30 16:26:42 +03:00
Rémi Verschelde 32070144af
Merge pull request #91100 from bruvzg/x_finks
Add symlink API support for Windows, expose symlink methods.
2024-04-29 13:00:37 +02:00
Rémi Verschelde 947f5a8741
Merge pull request #91247 from AThousandShips/callable_fix
Fix unsafe uses of `Callable.is_null()`
2024-04-29 10:10:32 +02:00
Rémi Verschelde c7a73e684d
Merge pull request #71975 from AThousandShips/file_case_warning
[Windows] Improve warning for path casing.
2024-04-29 10:09:25 +02:00
Rémi Verschelde 45c6f18128
Merge pull request #61006 from bruvzg/libbacktrce
[Windows] Enable crash reporter on MinGW builds.
2024-04-29 10:09:22 +02:00
bruvzg fc948e87f6 Add symlink API support for Windows, expose symlink methods. 2024-04-28 19:59:34 +03:00
A Thousand Ships 3679ea5d26
[Windows] Improve warning for path casing. 2024-04-27 16:49:47 +02:00
A Thousand Ships 31e7ee63f2
Fix unsafe uses of `Callable.is_null()`
`Callable.is_null()` is not equivalent to `!Callable.is_valid()` and
doesn't guarantee the call is valid.
2024-04-27 16:22:57 +02:00
Bastiaan Olij d2d22748b4 Fix issue in shadow to opacity 2024-04-26 21:54:26 +10:00
Rémi Verschelde a07f89bfb2
Merge pull request #91176 from clayjohn/GL-adjustments
Add adjustments and color correction to Compatibility renderer
2024-04-26 11:08:56 +02:00
Rémi Verschelde 490e636289
Merge pull request #91169 from DarioSamo/render_pass_2_fallback_fix
Fix crash on compatibility fallback when vkCreateRenderPass2KHR is unavailable.
2024-04-26 11:08:53 +02:00
Rémi Verschelde 22c8a2785d
Merge pull request #90920 from clayjohn/2D-light-cull
Exit light calculation early when pixel outside of light bounding rectangle
2024-04-26 11:08:29 +02:00
clayjohn e8bb0a5719 Add adjustments and color correction to Compatibility renderer 2024-04-25 12:24:51 -07:00
Dario b95e18f557 Fix crash on compatibility fallback when vkCreateRenderPass2KHR is unavailable. 2024-04-25 14:03:02 -03:00
Rob Blanckaert ffe0b869f5 Add LIGHT_VERTEX to fragment shader
Adds a new variable to the fragment shader to specify
the vertex position used when calculating lighting.
2024-04-25 06:56:02 -07:00
cosparks 6d0dca76c0 Fixes SDF Collision Enable/Disable
- sets LightOccluderInstance field when sdf collision is updated
- adds check for light occluder sdf_collision field in 2d renderers
2024-04-22 20:27:56 -07:00
bruvzg c1b34672f9
[Windows] Enable crash reporter on MinGW builds, use libbacktrace to generate stack trace from DWARF symbols. 2024-04-22 16:19:37 +03:00
Rémi Verschelde 504d01b61e
Merge pull request #90403 from bruvzg/file_resize
[FileAccess] Implement `resize` method.
2024-04-22 12:51:55 +02:00
clayjohn 506e93a207 Exit light calculation early when pixel outside of light bounding rectangle
This hugely improves the performance of rendering PointLight2Ds
2024-04-19 16:10:11 -07:00
Fredia Huya-Kouadio 764de7fe31 Collapse the gdextension arguments into the `GDExtensionData` struct
This is used to reduce the number of arguments to `OS::open_dynamic_library(...)`.
2024-04-19 07:56:02 -07:00
Fredia Huya-Kouadio ede88cf59d Fix loading GDExtension dependencies on Android 2024-04-19 07:55:08 -07:00
Oxi 1815871b90 Fixed unshaded mode lightmaps 2024-04-17 10:38:54 +01:00
Rémi Verschelde 7210d6cb43
Merge pull request #90358 from KoBeWi/finding_errors_in_other_apps
Add `OS.get_process_exit_code()` method
2024-04-16 13:30:41 +02:00
kobewi dce4a3e4c2 Add get_process_exit_code() method 2024-04-16 12:46:15 +02:00
Rémi Verschelde c951421c99
Merge pull request #90268 from RandomShaper/wtp_servers
Use WorkerThreadPool for Server threads (enhanced)
2024-04-15 10:12:00 +02:00
bruvzg 88b3e68f93
[FileAccess] Implement `resize` method. 2024-04-12 19:20:49 +03:00
bruvzg 57fde36f31
[Unix / DirAccess] Fix removing directory symlinks with `remove`, ensure `erase_contents_recursive` is not following directory symlinks. 2024-04-12 10:06:49 +03:00
Rémi Verschelde e73f40e260
Merge pull request #87117 from DmitriySalnikov/rename_pdb
Add renaming of PDB files to avoid blocking them
2024-04-11 11:02:31 +02:00
Juan Linietsky 65686dedf9 Use WorkerThreadPool for Server threads
* Servers now use WorkerThreadPool for background computation.
* This helps keep the number of threads used fixed at all times.
* It also ensures everything works on HTML5 with threads.
* And makes it easier to support disabling threads for also HTML5.

CommandQueueMT now syncs with the servers via the WorkerThreadPool
yielding mechanism, which makes its classic main sync semaphore
superfluous.

Also, some warnings about calls that kill performance when using
threaded rendering are removed because there's a mechanism that
warns about that in a more general fashion.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2024-04-10 18:47:42 +02:00
Pedro J. Estébanez c28f5901c7 Polish interaction between windowing, input and rendering
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
2024-04-10 18:47:42 +02:00
Rémi Verschelde c59f493620
Merge pull request #89729 from jitspoe/master.shadow_distance_fade_optimization
Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance.
2024-04-10 14:21:56 +02:00
Bastiaan Olij 509d8dba2a Add reflection probe support to compatibility renderer using 2 probe approach. 2024-04-09 16:53:28 +10:00
ArthasMenethil 17e489b93d Fix OpenGL: _shadow_atlas_find_shadow: Condition "!sli" is true. 2024-04-05 09:24:15 +07:00
DmitriySalnikov b73e740786 Add renaming of PDB files to avoid blocking them 2024-04-05 00:14:23 +03:00
Rémi Verschelde a28be933ee
Merge pull request #89398 from clayjohn/visual-debugger-coverage
Increase coverage of timestamps for visual profiler
2024-04-04 14:31:19 +02:00
Rémi Verschelde b4b4919736
Merge pull request #88816 from joined72/gles3_gpuparticles2d_fixes
Fix CPU/GPUParticles2D bugs on Compatibility Rendering (GLES3) on Adreno 3XX devices.
2024-04-04 14:31:07 +02:00
Khasehemwy d950f5f838
Use Reverse Z for the depth buffer 2024-04-04 13:54:15 +02:00
clayjohn ac6c648645 Increase coverage of timestamps for visual profiler 2024-04-03 19:29:02 -07:00
joined72 4df39dc140 Fix CPU/GPUParticles2D bugs on Compatibility Rendering (GLES3) on Adreno 3XX devices. 2024-04-02 11:24:13 +02:00
bruvzg 082b420c0a
Implement `OS.execute_with_pipe` method to run process with redirected stdio.
Implement `pipe://*` path handling for creation of named pipes.
2024-03-27 11:41:16 +02:00
Hugo Locurcio 4a615924f8 Improve warning messages related to Vulkan pipeline cache
This gives better explanations on why the cache may have been invalidated,
along with usual consequences.

These messages have also been moved to verbose prints, as users
cannot do anything to resolve them specifically (so they are mostly
relevant to developers).
2024-03-26 22:42:27 +01:00
jitspoe a0969a0931 Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance. 2024-03-25 21:25:56 -04:00
ppphp d4e1a74efb Add 'override' mark to ResourceFormat class 2024-03-25 04:06:34 +08:00
Rémi Verschelde cd4e4c0fcc
Merge pull request #89111 from AThousandShips/vec_use
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-24 01:14:51 +01:00
Ricardo Buring 2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
A Thousand Ships 79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable 2024-03-20 13:47:42 +01:00
Rémi Verschelde 453485aede
Merge pull request #89270 from Repiteo/enforce-typename-in-templates
Enforce template syntax `typename` over `class`
2024-03-14 22:34:37 +01:00
Thaddeus Crews 3b3e2374c9
clang-tidy: Enforce `modernize-use-nullptr` 2024-03-12 10:59:53 -05:00
Rémi Verschelde b0d07b1bc2
Merge pull request #86936 from akx/env-utf-8
Attempt parsing environment variables as UTF-8
2024-03-11 14:02:22 +01:00
AlexOtsuka 179b0786c6 Fix audio crackling issues due to incorrect WASAPI buffer size 2024-03-08 14:05:39 +01:00
Rémi Verschelde f8140a4e9a
Merge pull request #89253 from Calinou/debug-draw-modes-ignore-decals-2
Make Overdraw, Lighting and Shadow Splits debug draw modes ignore decals
2024-03-08 13:09:40 +01:00
Rémi Verschelde 1186d4a8df
Merge pull request #89094 from permelin/fix-particle-userdata-gles3
Fix `USERDATA` built-ins for GLES3 particle shaders
2024-03-08 13:09:30 +01:00