summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device_driver.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@0f5f3bc9546b46b2029fc8896dc859697f1eab97Spartan3222024-11-111-6/+4
|\
| * Merge pull request #98910 from darksylinc/matias-id_arm32Thaddeus Crews2024-11-101-6/+4
| |\ | | | | | | | | | Force `RDD::id` to be always `uint64_t`
| | * Force RID::id to be always uint64_tMatias N. Goldberg2024-11-061-6/+4
| | | | | | | | | | | | | | | | | | | | | On Vulkan, some handles are meant to always be u64, even on 32-bit architectures such as arm32. Fixes #98654
* | | Merge commit godotengine/godot@87318a2fb7fffeb72adca934e31915be077c3d1fSpartan3222024-11-061-0/+4
|\| |
| * | Merge pull request #98709 from darksylinc/matias-upsidedown-splashThaddeus Crews2024-11-041-0/+3
| |\ \ | | | | | | | | | | | | Fix splash screen upside down on Android
| | * | Fix splash screen upside down on AndroidMatias N. Goldberg2024-10-311-0/+3
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes an issue introduced in #96439 (see https://github.com/godotengine/godot/pull/96439#issuecomment-2447288702) Godot was relying on Java's activity.getWindowManager().getDefaultDisplay().getRotation(); to apply pre-rotation but this is wrong. First, getRotation() may temporarily return a different value from the correct one; which is what was causing the splash screen to be upside down. It would return -90 instead of 90 for the first rendered frame. But unfortunately, the splash screen is just one frame rendered for a very long time, so the error lingered for a long time for everyone to see. Second, to determine what rotation to use, we should be looking at what Vulkan told us, which is the value we pass to VkSurfaceTransformFlagBitsKHR::preTransform. This commit removes the now-unnecessary screen_get_internal_current_rotation() function (which was introduced by #96439) and now saves the preTransform value in the swapchain.
| * / Add dependency detection improvements to the render graph.Dario2024-11-011-0/+1
| |/ | | | | | | | | | | - 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 commit godotengine/godot@8004c7524fb9f43425c4d6f614410a76678e0f7cSpartan3222024-10-301-0/+4
|\|
| * Merge pull request #96439 from darksylinc/matias-TheForge-pr03-rebasedClay John2024-10-291-0/+4
| |\ | | | | | | Add Swappy & Pre-Transformed Swapchain
| | * Add Swappy & Pre-Transformed SwapchainMatias N. Goldberg2024-10-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Adds Swappy for Android for stable frame pacing - Implements pre-transformed Swapchain so that Godot's compositor is in charge of rotating the screen instead of Android's compositor (performance optimization for phones that don't have HW rotator) ============================ The work was performed by collaboration of TheForge and Google. I am merely splitting it up into smaller PRs and cleaning it up. Changes from original PR: - Removed "display/window/frame_pacing/android/target_frame_rate" option to use Engine::get_max_fps instead. - Target framerate can be changed at runtime using Engine::set_max_fps. - Swappy is enabled by default. - Added documentation. - enable_auto_swap setting is replaced with swappy_mode.
* | | Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
| | |
* | | Merge commit godotengine/godot@80f0b33313dae52d072ba2771a88ebcc4f0b4d6dSpartan3222024-10-181-0/+2
|\| |
| * | Move transitions of textures initialized by transfer workers to the main ↵Dario2024-10-181-0/+2
| |/ | | | | | | | | | | graphics queue. Also adds a new possible texture layout and API trait to support a particular behavior in D3D12 where only the COMMON layout is supported in copy queues. Fixes #98158.
* | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* | Rebrand Godot to RedotRandolph W. Aarseth II2024-10-111-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Linux Editor tests workflow matrix Add Windows Editor w/ Mono workflow matrix Add Generate Glue Code job to Windows workflow Add Build GodotSharp job to Windows workflow Add godot compatibility version references Add Godot author info Add Godot version compatibility info Add Godot donor info Add Godot authors and donors to editor_about.cpp Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* Implement asynchronous transfer queues, thread guards on RenderingDevice. ↵Dario2024-10-021-2/+2
| | | | | | | | | | | Add ubershaders and rework pipeline caches for Forward+ and Mobile. - Implements asynchronous transfer queues from PR #87590. - Adds ubershaders that can run with specialization constants specified as push constants. - Pipelines with specialization constants can compile in the background. - Added monitoring for pipeline compilations. - Materials and shaders can now be created asynchronously on background threads. - Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
* Add debug utilities for VulkanMatias N. Goldberg2024-08-211-0/+6
| | | | | | | | | | | | | | | | | | | | | 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 Metal support for macOS (arm64) and iOSStuart Carnie2024-08-201-0/+1
|
* Merge pull request #91769 from DarioSamo/d3d12_enhanced_barriersRémi Verschelde2024-05-311-8/+18
|\ | | | | | | Add support for enhanced barriers in D3D12.
| * Add support for enhanced barriers in D3D12.Dario2024-05-201-8/+18
| | | | | | | | | | | | | | | | 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/+2
|/ | | | enabled.
* Fixes `RenderingDevice::get_driver_resource` will crash or give incorrect ↵jsjtxietian2024-04-081-1/+1
| | | | result with certain resources
* Enforce template syntax `typename` over `class`Thaddeus Crews2024-03-071-4/+4
|
* Merge pull request #87872 from RandomShaper/d3d12_tex_mem_is_lifeRémi Verschelde2024-02-271-1/+1
|\ | | | | | | Direct3D 12: Enhance management of texture data life cycle
| * Direct3D 12: Enhance management of texture data life cyclePedro J. Estébanez2024-02-271-1/+1
| |
* | Merge execute and present commands for RenderingDeviceDriver.Dario2024-02-191-2/+1
|/
* Finish splitting functionality of the Vulkan and D3D12 backends into ↵Dario2024-02-121-25/+105
| | | | RenderingDeviceDriver.
* Acyclic Command Graph for RenderingDevice.Dario2024-01-081-0/+11
| | | | Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
* Fix msvc 14.1 complains about "atempting to reference a deleted function"jsjtxietian2023-12-251-0/+2
| | | | in RenderPassClearValue
* Split RenderingDevice into API-agnostic and RenderingDeviceDriver partsPedro J. Estébanez2023-12-201-0/+687
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>