summaryrefslogtreecommitdiff
path: root/drivers/vulkan
AgeCommit message (Collapse)Author
2020-05-15Merge pull request #38750 from madmiraal/fix-vulkan-uninitialized-warningRémi Verschelde
Silence mulitple may be used uninitialized warnings in RenderingDeviceVulkan::uniform_set_create()
2020-05-15Silence mulitple may be used uninitialized warnings inMarcel Admiraal
RenderingDeviceVulkan::uniform_set_create()
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-05-10New lightmapperJuan Linietsky
-Added LocalVector (needed it) -Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too) -Fixes and changes all around the place -Added library for 128 bits fixed point (required for Delaunay3D)
2020-05-10Style: clang-format: Disable AllowShortCaseLabelsOnASingleLineRémi Verschelde
Part of #33027.
2020-05-10Style: clang-format: Disable AllowShortIfStatementsOnASingleLineRémi Verschelde
Part of #33027, also discussed in #29848. Enforcing the use of brackets even on single line statements would be preferred, but `clang-format` doesn't have this functionality yet.
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.