Commit Graph

109 Commits

Author SHA1 Message Date
7cb1598d64 Update descriptions for driver resource enums . 2025-07-24 01:11:59 +08:00
5230f6c60c Apple: Use image atomic operations on supported Apple hardware
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-07-05 05:59:00 +10:00
2db7ecd410 [Docs] Various grammar and spelling fixes 2025-06-23 20:54:08 +02:00
cec5c89f9d Merge pull request #107143 from Mickeon/documentation-miscellaneous-oddities-part-5
Fix miscellaneous oddities around the class reference (part 5)
2025-06-13 15:53:47 +02:00
7585dfca99 Merge pull request #102511 from DevPoodle/breadcrumb_docs
Add basic descriptions to the BreadcrumbMarker enum
2025-06-07 00:43:17 +02:00
dea3269c35 Merge pull request #107172 from clayjohn/docs-texture-create
Clarify the data param in the docs for RD.texture_create
2025-06-06 17:37:44 +02:00
8cb8243719 Add basic descriptions to the BreadcrumbMarker enum 2025-06-06 08:16:06 -07:00
3613306bba Fix miscellaneous oddities around the class reference (part 5) 2025-06-06 15:21:25 +02:00
13f642d959 Replace XML codeblock spaces with tabs 2025-06-06 14:35:38 +02:00
2ef28a138e Clarify the data param in the docs for RD.texture_create 2025-06-05 10:35:53 -07:00
1e82bafa3a Remove redundant info on the enum types used 2025-06-04 08:21:47 +08:00
6ae50cad17 RenderingDevice: introduce parameter 'mipmaps' for texture_create_from_extension() 2025-05-07 15:15:55 +03:00
d98c3f5ffe Merge pull request #104333 from Mickeon/documentation-even-more-miscellaneous-oddities
Fix *even* more miscellaneous oddities around the class reference
2025-04-08 12:32:41 -05:00
7603945d14 Fix *even* more miscellaneous oddities around the class reference 2025-04-07 17:37:08 +02:00
a1254fe5ad Fix incorrect data format in RenderingDevice docs 2025-04-05 12:52:09 +02:00
052fe9158d Renderer: Expose and document Features enum for METAL_FX 2025-03-11 12:35:58 +11:00
4bafafaeb3 Merge pull request #102777 from darksylinc/matias-astc-hdr
Add ASTC HDR format variants
2025-03-06 16:36:06 -06:00
fcd785ace2 Add ASTC HDR format variants 2025-02-13 11:45:42 -03:00
af900a5825 Change how device address is requested to avoid future API breakage
PR #100062 introduced BUFFER_USAGE_DEVICE_ADDRESS_BIT.

However it did so by adding a boolean to uniform_buffer_create(), called
"bool p_enable_device_address".

This makes maintaining backwards compatibility harder because I am
working on another feature that would require introducing yet another
bit flag.

This would save us the need to add fallback routines when the feature I
am working on makes it to Godot 4.5.

Even if my feature doesn't make it to 4.5 either, this PR makes the
routine more future-proof.

This PR also moves STORAGE_BUFFER_USAGE_DEVICE_ADDRESS into
BUFFER_CREATION_DEVICE_ADDRESS_BIT, since it's an option available to
both storage and uniforms.

This PR also moves the boolean use_as_storage into
BUFFER_CREATION_AS_STORAGE.
2025-02-11 20:00:18 -03:00
3d92f406b2 Implement Buffer Device Address for Rendering Device Vulkan and DirectX12 2025-01-13 22:43:29 -08:00
11dc4f2e5e Metal: Add MetalFX upscaling support
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-01-06 06:03:18 -07:00
054891de04 Implement buffer_get_data_async and texture_get_data_async. 2024-12-11 11:55:23 -08:00
6d5ac8f7ef Resolve load and store ops automatically for render passes for discardable textures. 2024-11-25 11:27:48 -03:00
d36a872432 Add draw indirect to Rendering Device 2024-10-29 17:40:28 +01:00
9e1121a18c Add missing period for sentences in classref 2024-09-20 19:33:32 +08:00
59d0422dcd Disable extra memory tracking by default
PR #90993 added several debugging utilities.

Among them, advanced memory tracking through the use of custom
allocators and VK_EXT_device_memory_report.

However as issue #95967 reveals, it is dangerous to leave it on by
default because drivers (or even the Vulkan loader) can too easily
accidentally break custom allocators by allocating memory through std
malloc but then request us to deallocate it (or viceversa).

This PR fixes the following problems:
 - Adds --extra-gpu-memory-tracking cmd line argument
 - Adds missing enum entries to
RenderingContextDriverVulkan::VkTrackedObjectType
 - Adds RenderingDevice::get_driver_and_device_memory_report
    - GDScript users can easily check via print(
RenderingServer.get_rendering_device().get_driver_and_device_memory_report()
)
- Uses get_driver_and_device_memory_report on device lost for appending
further info.

Fixes #95967
2024-08-24 20:52:39 -03:00
364f916f3f Add debug utilities for Vulkan
Features:
- Debug-only tracking of objects by type. See
get_driver_allocs_by_object_type et al.
 - Debug-only Breadcrumb info for debugging GPU crashes and device lost
 - Performance report per frame from get_perf_report
- Some VMA calls had to be modified in order to insert the necessary
memory callbacks

Functionality marked as "debug-only" is only available in debug or dev
builds.

Misc fixes:
 - Early break optimization in RenderingDevice::uniform_set_create

============================

The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
2024-08-21 23:48:08 +02:00
a20960bce4 Fix texture compression descriptions in RenderingDevice docs 2024-07-15 15:19:02 +02:00
9cba6ec216 Merge pull request #89491 from thimenesup/compute_dispatch_indirect
Expose bindings to compute dispatch indirect of rendering device
2024-04-09 10:42:22 +02:00
8017c8cf21 Expose bindings to compute dispatch indirect rendering device 2024-04-08 20:46:53 +02:00
6f6e8b15ce Merge pull request #87082 from Mickeon/documentation-RenderingDevice-dynamic_state
Add descriptions to a few RenderingDevice's PipelineDynamicStateFlags
2024-04-08 11:19:42 +02:00
f9a758772a Update many Deprecated/Experimental descriptions for consistency 2024-02-17 21:33:12 +01:00
af28f87791 Documentation: Add support for deprecated/experimental messages 2024-02-15 15:59:50 +03:00
73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
967a121c8b Add descriptions to a few RenderingDevice's PipelineDynamicStateFlags 2024-01-11 17:39:31 +01:00
80eacf1b7a Fix incorrect mapping of initial action as clear region continue to clear. 2024-01-09 22:03:21 -03:00
cc4d39b0c1 Acyclic Command Graph for RenderingDevice.
Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
2024-01-08 14:54:56 -03:00
d3e7b8c8a8 Fix various typos in documentation 2024-01-05 15:47:58 +07:00
12a519bae2 Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts
Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-12-20 19:18:08 +01:00
48c2012dc2 Fix required parameter values for 2D textures in RenderingDevice.texture_clear() 2023-09-29 16:14:31 +02:00
b12ed82c04 Expose texture_create_from_extension to GDExtension 2023-09-23 16:57:12 -04:00
bd4d43023d Add missing RenderingDevice method descriptions 2023-08-29 12:32:29 +02:00
469c462b76 Add missing tutorials to documentation classes 2023-08-19 20:29:24 +02:00
097c849395 Fix various typos in classref 2023-08-04 16:29:55 +08:00
cc1ee3e599 Merge pull request #79911 from BastiaanOlij/fix_barrier_breakage
Add exceptions for breakage introduced in RD barriers
2023-08-01 17:25:40 +02:00
1c40263665 Merge pull request #79606 from clayjohn/ShaderRD-compilation-groups
Shader rd compilation groups
2023-08-01 17:25:16 +02:00
10f796dae3 Add exceptions for breakage introduced in RD barriers and prevent future breakage 2023-07-28 14:21:34 +10:00
63d6e9c557 Add custom texture create function 2023-07-26 20:46:34 +10:00
e970f5249c Add Shader compile groups to RD Shader system
This allows us to specify a subset of variants to compile at load time and conditionally other variants later.

This works seamlessly with shader caching.

Needed to ensure that users only pay the cost for variants they use
2023-07-21 16:42:30 +02:00
2857b91385 Fix many typos in documentation 2023-07-19 19:56:06 +07:00