summaryrefslogtreecommitdiffstats
path: root/drivers/vulkan/rendering_device_driver_vulkan.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Vulkan: account for externally backed textures (i.e., created via ↵Sander2024-09-121-4/+5
| | | | | | `texture_create_from_extension()`), as such textures lack ownership information. More info: #96832
* Merge pull request #96045 from darksylinc/matias-TheForge-pr02Rémi Verschelde2024-09-021-0/+11
|\ | | | | | | Add `VK_EXT_astc_decode_mode` support
| * Add VK_EXT_astc_decode_mode supportMatias N. Goldberg2024-08-241-0/+11
| | | | | | | | | | The work was performed by collaboration of TheForge and Google. I am merely splitting it up into smaller PRs and cleaning it up.
* | Disable extra memory tracking by defaultMatias N. Goldberg2024-08-241-1/+5
|/ | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add debug utilities for VulkanMatias N. Goldberg2024-08-211-67/+432
| | | | | | | | | | | | | | | | | | | | | 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.
* vulkan: Update all components to Vulkan SDK 1.3.183.0Rémi Verschelde2024-06-031-0/+4
| | | | | | | 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>
* Merge pull request #91769 from DarioSamo/d3d12_enhanced_barriersRémi Verschelde2024-05-311-37/+84
|\ | | | | | | Add support for enhanced barriers in D3D12.
| * Add support for enhanced barriers in D3D12.Dario2024-05-201-37/+84
| | | | | | | | | | | | | | | | 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.
* | [DisplayServer] Add method to check if window transparency is supported and ↵bruvzg2024-05-231-0/+8
|/ | | | enabled.
* Merge pull request #80232 from Calinou/vulkan-pipeline-cache-improve-messagesRémi Verschelde2024-05-201-3/+3
|\ | | | | | | Improve warning messages related to Vulkan pipeline cache
| * Improve warning messages related to Vulkan pipeline cacheHugo Locurcio2024-03-261-3/+3
| | | | | | | | | | | | | | | | | | 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).
* | [Core] Add `LocalVector::has` for convenienceA Thousand Ships2024-05-061-1/+1
| |
* | Improvements to VRS/Foveated renderingBastiaan Olij2024-05-031-1/+7
| |
* | Fix crash on compatibility fallback when vkCreateRenderPass2KHR is unavailable.Dario2024-04-251-1/+1
|/
* Use `Vector*` component-wise `min/max/clamp` functions where applicableA Thousand Ships2024-03-201-2/+1
|
* Merge pull request #89209 from RandomShaper/padding_for_dummiesRémi Verschelde2024-03-061-33/+17
|\ | | | | | | Make shader binary alignment handling simpler and more robust
| * Make shader binary alignment handling simpler and more robustPedro J. Estébanez2024-03-061-33/+17
| | | | | | | | | | Bonus: Also simplified the rounding to block size in image size calculations.
* | Vulkan: Don't warn about pipelines cache if missingRémi Verschelde2024-03-051-1/+3
|/ | | | | | | | It used to warn when opening a new project because no cache pre-exists, which isn't particularly helpful. Also include the rendering method in the cache filename, as it differs between Forward+ and Mobile for a same GPU.
* Merge execute and present commands for RenderingDeviceDriver.Dario2024-02-191-98/+125
|
* Handle VK_SUBOPTIMAL_KHR as a valid error code to fix Android performance.Dario2024-02-151-8/+21
|
* Finish splitting functionality of the Vulkan and D3D12 backends into ↵Dario2024-02-121-165/+1683
| | | | RenderingDeviceDriver.
* Improve stage and slice tracking behavior of RenderingDeviceGraph to fix ↵Dario2024-01-261-0/+47
| | | | various synchronization issues.
* Merge pull request #86855 from RandomShaper/fix_vk_get_imageRémi Verschelde2024-01-151-2/+5
|\ | | | | | | Fix determination of copyable layout for compressed textures in Vulkan
| * Fix determination of copyable layout for compressed textures in VulkanPedro J. Estébanez2024-01-061-2/+5
| |
* | Acyclic Command Graph for RenderingDevice.Dario2024-01-081-16/+34
|/ | | | Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
* Fix wrong error message when graphics pipeline creation failswarriormaster122023-12-211-1/+1
|
* Split RenderingDevice into API-agnostic and RenderingDeviceDriver partsPedro J. Estébanez2023-12-201-0/+3350
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>