summaryrefslogtreecommitdiff
path: root/drivers/vulkan
AgeCommit message (Collapse)Author
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-23Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm
2021-10-30Disallow compute dispatch with zero dimensions.Brian Semrau
2021-10-28Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
2021-10-20doctool: Fix differences between headless and Vulkan rendering backendsRémi Verschelde
Fixes #53913.
2021-10-12Replaced NULL with nullptrM. Huri
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-29Rename RID's `getornull()` to `get_or_null()`Hugo Locurcio
2021-09-17Merge pull request #52464 from raulsntos/fix_buffer_info_uninitializedRémi Verschelde
2021-09-17Fix buffer_info may be used uninitializedRaul Santos
2021-09-14Print the Vulkan API version and device used on the same lineHugo Locurcio
This matches Godot 3.x's OpenGL renderer behavior and is more compact.
2021-09-12Merge pull request #51604 from TechnoPorg/fix-vulkan-parent-materialJFonS
Vulkan: Fix CanvasItem::use_parent_material
2021-09-09Expose Vulkan internal values for access from extensionsBastiaan Olij
2021-08-26Optionally scale 3D render contentBastiaan Olij
2021-08-21Remove redundant assignments.Anilforextra
Use used_in_transfer instead of used_in_compute twice.
2021-08-17Fixes to mobile rendererreduz
* Make sure shaders are named, to aid in debug in case of failure * SceneRenderRD was being wrongly initialized (virtual functions being called when derivative class not initialized). * Fixed some bugs resulting on the above being corrected.
2021-08-17Vulkan: Fix CanvasItem::use_parent_materialTechnoPorg
The "Use Parent Material" option now does something when enabled on a CanvasItem. As before, it's not just limited to a node's direct parent but can move up the tree until it finds a material. Also corrected a typo in rendering_device_vulkan.h that didn't merit its own commit.
2021-08-17Fix init code so it works properly on Vulkan 1.1 devicesBastiaan Olij
2021-08-13Upgrade Vulkan memory allocatorPedro J. Estébanez
2021-08-12Android: Use volk instead of NDK Vulkan headersRémi Verschelde
We no longer build the Vulkan loader, and volk lets us load it dynamically. Roblox uses volk on Android so it should work well for us too.
2021-08-12Use "volk" instead of statically linked Vulkan loader.bruvzg
2021-08-10Fixes and optimizations to mobile rendererreduz
* Only apply final actions to attachments used in the last pass. * Fixes to draw list final action (was using continue instead of read/drop). * Profiling regions inside draw lists now properly throw errors. * Ability to enable gpu profile printing from project settings. (used to debug).
2021-08-06Use subpasses to do 3D rendering and resolve in mobile rendererBastiaan Olij
2021-07-31Merge pull request #51103 from Calinou/vulkan-detect-intel-title-caseRémi Verschelde
Use title case instead of uppercase for Vulkan Intel GPU detection
2021-07-31Merge pull request #51108 from Calinou/vulkan-print-verboseRémi Verschelde
Move Vulkan debugging prints to verbose
2021-07-31Use title case instead of uppercase for Vulkan Intel GPU detectionHugo Locurcio
This matches how the vendor name is displayed in most places. The Apple GPU vendor was also added for the M1.
2021-07-31Move Vulkan debugging prints to verboseHugo Locurcio
These messages can now be displayed in release builds if the `--verbose` command line argument is specified, which is useful for troubleshooting.
2021-07-31Print the Vulkan device name in release builds tooHugo Locurcio
This is important information to include in bug reports for exported projects, and is consistent with the behavior found in the GLES3 and GLES2 renderers in `3.x`.
2021-07-26Merge pull request #50847 from reduz/implement-binary-shader-compilationRémi Verschelde
Implement Binary Shader Compilation
2021-07-26Implement Binary Shader Compilationreduz
* Added an extra stage before compiling shader, which is generating a binary blob. * On Vulkan, this allows caching the SPIRV reflection information, which is expensive to parse. * On other (future) RenderingDevices, it allows caching converted binary data, such as DXIL or MSL. This PR makes the shader cache include the reflection information, hence editor startup times are significantly improved. I tested this well and it appears to work, and I added a lot of consistency checks, but because it includes writing and reading binary information, rare bugs may pop up, so be aware. There was not much of a choice for storing the reflection information, given shaders can be a lot, take a lot of space and take time to parse.
2021-07-25Fix various typosluz paz
Follow-up typos found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25Merge pull request #50809 from akien-mga/iterators-const-referencesRémi Verschelde
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-25Fix various typos with codespellluz paz
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-22Fix MoltenVK static linking on macOS (add missing include path, Vulkan SDK ↵bruvzg
path option, use xcframework instead of static framework).
2021-07-15Fixes to forward mobilereduz
* use valid format for framebuffer: VK_FORMAT_A2B10G10R10_UNORM_PACK32 * Unfortunately cant be used for compute. * Mobile will need to do refprobe, sky, mipmapblurring using raster.
2021-07-12Use specialization constants in clustered rendererreduz
* Keep track of when projector, softshadow or directional sofshadow were enabled. * Enable them via specializaton constant where it makes sense. * Re-implements soft shadows. * Re-implements light projectors.
2021-07-11Implement Specialization Constantsreduz
* Added support to our local copy of SpirV Reflect (which does not support it). * Pass them on render or compute pipeline creation. * Not implemented in our shaders yet.
2021-07-10Merge pull request #48622 from Geometror/reimplement-disableable-vsyncHugo Locurcio
2021-07-07Fix material invalidation on reimport.reduz
* IF a texture was reimported (calling replace as an example), it would invalidate all materials using it, causing plenty of errors. * Added the possibility to get a notification when a uniform set is erased. * With this notification, materials can be queued for update properly.
2021-07-07Fix threaded update for texturesreduz
* Previews and other stuff now works again. * Not the best solution, will have to be improved in the future usinc async queues where supported.
2021-07-06Restructure and reimplement vsync optionsHendrik Brucker
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX -Removed the V-Sync via Compositor option
2021-07-03Fix Render Inforeduz
* Fixed and redone the process to obtain render information from a viewport * Some stats, such as material changes are too difficult to guess on Vulkan, were removed. * Separated visible and shadow stats, which causes confusion. * Texture, buffer and general video memory can be queried now. * Fixed the performance metrics too.
2021-06-30Enum constant in boolean contextK. S. Ernest (iFire) Lee
error: enum constant in boolean context [-Werror=int-in-bool-context]
2021-06-28Fix Context Validation Layer Errorsreduz
* Multisampling was wrongly selected, possibly fixes #49937 * Image semaphore acquisition is now per window, possibly fixes #41614 Please make sure to test the above two issues again, since I can't reproduce either anyway.
2021-06-24Implement Framebuffer Subpass supportreduz
* Required for better optimizing mobile platforms * Will be used by the Vulkan mobile renderer.
2021-06-13Add stereoscopic rendering through multiviewBastiaan Olij