summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device_graph.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add dependency detection improvements to the render graph.Dario2024-11-011-9/+33
| | | | | | - Buffers changing their usage are no longer treated as write usage unless the API requires it. - Draw lists are not treated as being dependent on each other if their regions do not intersect despite both being write commands. - Particles were tweaked to use different unused buffers to reduce dependencies.
* Merge pull request #97247 from thimenesup/draw_indirect_rdThaddeus Crews2024-10-291-0/+40
|\ | | | | | | Add draw indirect to Rendering Device
| * Add draw indirect to Rendering Devicethimenesup2024-10-291-0/+40
| |
* | Fix race conditions in breadcrumbsMatias N. Goldberg2024-10-221-2/+7
| | | | | | | | | | | | | | | | | | | | Adds "--accurate-breadcrumbs" CLI command Additionally, leave out breadcrumbs code in non-debug, non-dev builds. Fix regression introduced in #98388 where command_insert_breadcrumb() is called even in non-debug builds. Fixes #98338
* | Improve synchronization of rendering commands after changes from transfer ↵Dario2024-10-211-3/+15
|/ | | | | | | | | queues. Fix an error where barriers are expected to be inserted for the swap chain textures. Add the relevant synchronization stages and accesses to resources between frames. Fix an error where debug labels weren't finished correctly between frames. Breadcrumbs are now behind an optional macro as they currently lead to synchronization errors which are harmless.
* Add debug utilities for VulkanMatias N. Goldberg2024-08-211-2/+9
| | | | | | | | | | | | | | | | | | | | | 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.
* Add support for enhanced barriers in D3D12.Dario2024-05-201-42/+99
| | | | | | | | 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.
* Add optional driver workaround to RenderingDevice for Adreno 6XX.Dario2024-05-131-26/+57
| | | | Co-authored-by: Clay John <claynjohn@gmail.com>
* Fix incorrect memory read when capacity changes in RD Graph.Dario2024-04-291-4/+5
|
* Fixes `RenderingDevice::get_driver_resource` will crash or give incorrect ↵jsjtxietian2024-04-081-3/+3
| | | | result with certain resources
* Remove tracking logic for input attachments as it's not necessary.Dario2024-02-211-9/+0
|
* Add validation to render graph for draw and compute lists.Dario2024-02-141-0/+12
|
* Finish splitting functionality of the Vulkan and D3D12 backends into ↵Dario2024-02-121-12/+17
| | | | RenderingDeviceDriver.
* Improve stage and slice tracking behavior of RenderingDeviceGraph to fix ↵Dario2024-01-261-57/+138
| | | | various synchronization issues.
* Fix memory leak from not clearing the buffer barrier vector properly on the ↵Dario2024-01-181-0/+1
| | | | render graph.
* Acyclic Command Graph for RenderingDevice.Dario2024-01-081-0/+1930
Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.