summaryrefslogtreecommitdiff
path: root/drivers/vulkan
AgeCommit message (Collapse)Author
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-30SCons: Format buildsystem files with psf/blackRémi Verschelde
Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
2020-03-27Renaming of servers for coherency.Juan Linietsky
VisualServer -> RenderingServer PhysicsServer -> PhysicsServer3D Physics2DServer -> PhysicsServer2D NavigationServer -> NavigationServer3D Navigation2DServer -> NavigationServer2D Also renamed corresponding files.
2020-03-26Added a Window node, and made it the scene root.Juan Linietsky
Still a lot of work to do.
2020-03-26Effective DisplayServer separation, rename X11 -> LinuxBSDJuan Linietsky
2020-03-17Style: Set clang-format Standard to Cpp11Rémi Verschelde
For us, it practically only changes the fact that `A<A<int>>` is now used instead of the C++03 compatible `A<A<int> >`. Note: clang-format 10+ changed the `Standard` arguments to fully specified `c++11`, `c++14`, etc. versions, but we can't use `c++17` now if we want to preserve compatibility with clang-format 8 and 9. `Cpp11` is still supported as deprecated alias for `Latest`.
2020-03-10Revert "Enhanced physical device selection to use device type and available ↵Rémi Verschelde
memory in relation to issue #35397" This reverts commit 4f3006e5ac30d00b90eb531f3bdfd4bfa0d4025b.
2020-03-10Initializes VulkanContext::queue_props to NULLHaoyu Qiu
2020-03-09More explicit error messages when vulkan calls return errorsPouleyKetchoupp
2020-03-04Merge pull request #36792 from akien-mga/vulkan-better-debug-printsRémi Verschelde
Vulkan: Use Godot print macros matching MessageSeverity flag
2020-03-04Vulkan: Use Godot print macros matching MessageSeverity flagRémi Verschelde
Otherwise any verbose/info/warning debug message from Vulkan would raise an error, confusing users about the severity of the message. Cf. #36185, #36790.
2020-03-04Merge pull request #36733 from qarmin/static_analyzer_fixesRémi Verschelde
Fixes bugs found by Sonarcloud and Coverity
2020-03-04Merge pull request #36385 from kuruk-mm/some_static_assertsRémi Verschelde
Change when we can ERR_FAIL_COND and ERR_FAIL_CONV_V to static_assert
2020-03-04Merge pull request #36585 from disks86/masterRémi Verschelde
Enhanced physical device selection
2020-03-04Change when we can ERR_FAIL_COND and ERR_FAIL_CONV_V to static_assertMateo Dev .59
2020-03-02Fixes bugs found by Sonarcloud and Coverityqarmin
2020-02-29Adds null check of pMessageIdNameHaoyu Qiu
2020-02-28Enhanced physical device selection to use device type and available memory ↵Christopher Joseph Dean Schaefer
in relation to issue #35397
2020-02-27Merge pull request #36186 from Calinou/remove-vulkan-debugging-printsRémi Verschelde
Remove Vulkan debugging prints
2020-02-22Merge pull request #36454 from akien-mga/vulkan-workaround-32-bit-lib-errorRémi Verschelde
Vulkan: Work around false positive on 64-bit Linux w/ 32-bit ICDs
2020-02-22Correct condition wrongly converted to ERR_FAIL_COND_MSGJuan Linietsky
Fixes debugging of giprobes not working, likely other stuff
2020-02-22Vulkan: Work around false positive on 64-bit Linux w/ 32-bit ICDsRémi Verschelde
In the vast majority of cases, this will be a false positive error thrown by Vulkan-Loader when a Linux system has Vulkan ICDs for both 32-bit and 64-bit. The error is of the form: ``` ERROR: [Loader Message] Code 0 : /usr/lib/libvulkan_intel.so: wrong ELF class: ELFCLASS32 ERROR: [Loader Message] Code 0 : /usr/lib/libvulkan_radeon.so: wrong ELF class: ELFCLASS32 ``` The loader dlopen's the 32-bit ICDs first, raises this error, and then happily goes on to try and use the 64-bit ICDs. Upstream report: https://github.com/KhronosGroup/Vulkan-Loader/issues/262 Fixes #36185.
2020-02-21Add iphone to vulkan drivers SCsubSam Green
2020-02-19rendering_vulkan: VertexDescriptionKey equal comparator was checking only ↵Mateo Dev .59
the first element of his vector of VertexDescription
2020-02-18Merge pull request #36320 from madmiraal/fix-c4996-warning-vulkan_contextRémi Verschelde
Fix VisualStudio throwing multiple C4996 warnings in vulkan_context.cpp.
2020-02-18Fix VisualStudio throwing multiple C4996 warnings in vulkan_context.cpp.Marcel Admiraal
Use Godot's String to concatenate C-strings instead of strcat and sprintf, which are unsafe, because they don't check for buffer overflows.
2020-02-18PoolVector is gone, replaced by VectorJuan Linietsky
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are sugar for `Vector<Type>`.
2020-02-14Vulkan-Loader: Mark secure_getenv as available on LinuxRémi Verschelde
It's a GNU extension part of glibc since 2.17, and it was also added recently to musl libc. It doesn't seem to be available on *BSD (but also not used there by Vulkan-Loader). Could be made more thorough by doing a test compilation of a file to check for the existence of the function on the host system, but unless we run into actual issues, that's likely overkill.
2020-02-14Fix various GCC compilation warnings after Vulkan mergeRémi Verschelde
Part of #36132.
2020-02-13Remove Vulkan debugging printsHugo Locurcio
2020-02-13Fixes some memory leaksHaoyu Qiu
2020-02-11Vulkan: Move thirdparty code out of drivers, style fixesRémi Verschelde
- `vk_enum_string_helper.h` is a generated file taken from the SDK (Vulkan-ValidationLayers). - `vk_mem_alloc.h` is a library from GPUOpen: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
2020-02-11Auto exposure re-implemented in VulkanJuan Linietsky
2020-02-11Update Vulkan loader to 1.1.127bruvzg
2020-02-11Several fixes to GIProbesJuan Linietsky
2020-02-11Use a different strategy to get textures from GPU (via buffers), for more ↵Juan Linietsky
compatibility.
2020-02-11Improve HiDPI handling, fix incorrect window viewport clipping.bruvzg
2020-02-11Dynamic object support for GI Probes (a bit buggy still)Juan Linietsky
2020-02-11More GIProbe work and fixesJuan Linietsky
2020-02-11Better GIProbe quality settings.Juan Linietsky
2020-02-11GIProbes working.Juan Linietsky
2020-02-11Untested support for compute shadersJuan Linietsky
2020-02-11Visual GPU profiler and related profiling support in Vulkan.Juan Linietsky
2020-02-11Several fixes to 3D rendering, and multimesh implementation.Juan Linietsky
2020-02-11Rewrote large part of rendering, omni and spot shadows now work.Juan Linietsky
2020-02-11Environment sky more or less working.Juan Linietsky
2020-02-11Yay very basic 3D (only white) finally shows.Juan Linietsky
2020-02-11Base 3D engine done, still untested, though.Juan Linietsky
2020-02-11SCons: Streamline Vulkan buildsystem + fixupsRémi Verschelde
- Renamed option to `builtin_vulkan`, since that's the name of the library and if we were to add new components, we'd likely use that same option. - Merge `vulkan_loader/SCsub` in `vulkan/SCsub`. - Accordingly, don't use built-in Vulkan headers when not building against the built-in loader library. - Drop Vulkan registry which we don't appear to need currently. - Style and permission fixes.
2020-02-11Merge pull request #29993 from bruvzg/vulkanRémi Verschelde
Initial Vulkan support for macOS (MoltenVK) and Windows