summaryrefslogtreecommitdiff
path: root/drivers/vulkan
AgeCommit message (Collapse)Author
2020-04-26[Vulkan] Use `VK_LAYER_KHRONOS_validation` instead of deprecated ↵bruvzg
`VK_LAYER_LUNARG_standard_validation`.
2020-04-21Add proper type to most public API uses of ArrayJuan Linietsky
2020-04-20Exposed RenderingDevice to script APIJuan Linietsky
Also added an easier way to load native GLSL shaders. Extras: Had to fix no-cache for subresources in resource loader, it was not properly working, making shaders not properly reload. Note: The precommit hooks are broken because they don't seem to support enums from one class being used in another. Feel free to fix this after merging this PR.
2020-04-18Ability to create local RenderingDevice instances.Juan Linietsky
2020-04-15Fixes leaks in ResourceCache, Vulkan and X11qarmin
2020-04-14Merge pull request #37881 from qarmin/leak_vulkanRémi Verschelde
Fixes leaks with Vulkan device and instance
2020-04-14Fixes leaks with Vulkan device and instanceqarmin
2020-04-14Implement decalsJuan Linietsky
Also implemented decal atlas, so projectors and other stuff can be added. Sidenote: Had to make RID hashable, so some unrelated includes changed in order to include it in hashfuncs.h
2020-04-12Implement MSAAJuan Linietsky
2020-04-11Merge pull request #37808 from reduz/port-effects-to-computeJuan Linietsky
Moved most of the effect code to compute.
2020-04-11Moved most of the effect code to compute.Juan Linietsky
Simplifies it and improves performance. Improves image barrier handling per mipmap on RenderingDeviceVulkan
2020-04-10Shows proper scene render time in editor infoJuan Linietsky
Also fixed GPU profiler, which was not working on nvidia hardware.
2020-04-10Fix extra warnings in Android buildPouleyKetchoupp
2020-04-09Merge pull request #36919 from nekomatata/android-vulkan-renderingRémi Verschelde
Vulkan rendering support on Android
2020-04-08Display Server supportPouleyKetchoupp
2020-04-07Merge pull request #37586 from qarmin/vulkan_allocator_leakRémi Verschelde
Fix leak with Vulkan allocator
2020-04-06Merge pull request #37635 from qarmin/leak_vertexRémi Verschelde
Fixed leak with vertex_formats
2020-04-06Fixed leak with vertex_formatsqarmin
2020-04-06Vulkan: Use VK_NULL_HANDLE for handles, fixes 32-bit buildsRémi Verschelde
Some Vulkan types are defined as "non dispatchable handles" and use a different typedef on 32-bit and 64-bit systems (struct pointer on 64-bit, `uint64_t` otherwise). https://github.com/KhronosGroup/Vulkan-Headers/blob/0e78ffd1dcfc3e9f14a966b9660dbc59bd967c5c/include/vulkan/vulkan_core.h#L59-L65 Contrarily to `NULL`, `nullptr` can't be converted to `uint64_t` so build was now failing on 32-bit after converting the codebase from using `NULL` to `nullptr`. Fixes #37620.
2020-04-04Fix leak with Vulkan allocatorqarmin
2020-04-03Vulkan rendering for AndroidPouleyKetchoupp
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.