summaryrefslogtreecommitdiffstats
path: root/drivers/vulkan/vulkan_context.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix init code so it works properly on Vulkan 1.1 devicesBastiaan Olij2021-08-171-28/+26
|
* Use "volk" instead of statically linked Vulkan loader.bruvzg2021-08-121-0/+9
|
* Merge pull request #51103 from Calinou/vulkan-detect-intel-title-caseRémi Verschelde2021-07-311-1/+2
|\ | | | | Use title case instead of uppercase for Vulkan Intel GPU detection
| * Use title case instead of uppercase for Vulkan Intel GPU detectionHugo Locurcio2021-07-311-1/+2
| | | | | | | | | | | | This matches how the vendor name is displayed in most places. The Apple GPU vendor was also added for the M1.
* | Merge pull request #51108 from Calinou/vulkan-print-verboseRémi Verschelde2021-07-311-14/+10
|\ \ | | | | | | Move Vulkan debugging prints to verbose
| * | Move Vulkan debugging prints to verboseHugo Locurcio2021-07-311-14/+10
| |/ | | | | | | | | | | These messages can now be displayed in release builds if the `--verbose` command line argument is specified, which is useful for troubleshooting.
* / Print the Vulkan device name in release builds tooHugo Locurcio2021-07-311-2/+2
|/ | | | | | 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`.
* Restructure and reimplement vsync optionsHendrik Brucker2021-07-061-10/+46
| | | | | -Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX -Removed the V-Sync via Compositor option
* Enum constant in boolean contextK. S. Ernest (iFire) Lee2021-06-301-1/+1
| | | error: enum constant in boolean context [-Werror=int-in-bool-context]
* Fix Context Validation Layer Errorsreduz2021-06-281-12/+51
| | | | | | | * 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.
* Add stereoscopic rendering through multiviewBastiaan Olij2021-06-131-2/+45
|
* Merge pull request #49506 from akien-mga/vulkan_prefer_discrete_gpuRémi Verschelde2021-06-111-1/+18
|\ | | | | Prefer discrete GPU over integrated one
| * Prefer discrete GPU over integrated oneBlazej Floch2021-06-111-1/+18
| | | | | | | | | | | | | | | | | | | | This unblocks launching on Linux laptops that default to the integrated GPU which can not handle Vulkan in many instances. Ideally a manual device selection, or an option for the optimal selection strategy should be provided via CLI or config, but for the time being this will unblock the Linux devs. Partially addresses #42348 and #43714
* | Fix typos with codespellRémi Verschelde2021-05-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using codespell 2.0.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear dof doubleclick fave findn GIRD leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
* | Remove debugging prints in the Linux DisplayServerHugo Locurcio2021-05-081-7/+7
| | | | | | | | | | Some Vulkan debugging prints were also changed to be printed only in verbose mode.
* | Cleanup vulkan capabilities check and add multiview checkBastiaan Olij2021-05-061-17/+77
| |
* | Replace remaining uses of `NULL` with `nullptr`Rémi Verschelde2021-04-291-1/+1
| | | | | | | | Follow-up to #38736 (these uses were likely added after this PR was merged).
* | Validation layers on AndroidSzymon Majewski2021-04-121-59/+52
| |
* | Merge pull request #47640 from BastiaanOlij/fix_vulkan_formatRémi Verschelde2021-04-051-2/+25
|\ \ | | | | | | Chose format from supported ones that we support
| * | Chose format from supported ones that we supportBastiaan Olij2021-04-051-2/+25
| | |
* | | Style: Apply clang-tidy's `modernize-use-nullptr`Rémi Verschelde2021-04-051-1/+1
|/ /
* | Removed debug codeSzymon Majewski2021-04-011-1/+1
| |
* | Merge pull request #47250 from BastiaanOlij/check_vulkan_versionRémi Verschelde2021-03-311-1/+231
|\ \ | | | | | | Obtain supported Vulkan API
| * | Obtain supported Vulkan APIBastiaan Olij2021-03-261-1/+231
| | |
* | | WIP: Add support for VK_EXT_debug_report in VulkanSzymon Majewski2021-03-301-0/+72
|/ /
* | Fixes small typos and grammar correctionAnshul7sp12021-03-121-3/+3
| |
* | Fix memory leak in VulkanContextRafał Mikrut2021-03-071-1/+1
|/
* Rewrote how barriers work for faster renderingreduz2021-02-041-8/+54
| | | | | | | | | | | -Added more finegrained control in RenderingDevice API -Optimized barriers (use less ones for thee same) -General optimizations -Shadows render all together unbarriered -GI can render together with shadows. -SDFGI can render together with depth-preoass. -General fixes -Added GPU detection
* Always init `DEBUG_UTILS_MESSENGER_CREATE_INFO` structure if `DEBUG_UTILS` ↵bruvzg2021-02-021-3/+5
| | | | functions are used. Add temporary variables to fix potential use-after-free.
* Merge pull request #45476 from qarmin/add_temp_variableRémi Verschelde2021-01-261-1/+2
|\ | | | | Add temporary variable to not use freed memory
| * Add temporary variable to not use freed memoryRafał Mikrut2021-01-261-1/+2
| |
* | Reorganize RenderingDevice barriersreduz2021-01-261-0/+19
|/ | | | | | | -Removed sync to draw, now everything syncs to draw by default. -Fixed many validation layer errors. -Added support for VkImageViewUsageCreateInfo to fix validation layer warnings. -Texture, buffer, raster and compute functions now all allow spcifying which barriers will be used.
* Add named resources and debug labels in RenderDocclayjohn2021-01-251-4/+54
|
* Update copyright statements to 2021Rémi Verschelde2021-01-011-2/+2
| | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* Turn off robust buffer access by default.reduz2020-12-181-0/+2
| | | | It can be a performance bottleneck in some hardware.
* Better error handling of vkEnumerateInstanceExtensionPropertiesHanif Bin Ariffin2020-11-281-4/+3
| | | | | | | | | Refer: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkEnumerateInstanceExtensionProperties.html According to the documentation, there are 2 success code: 1. VK_SUCCESS 2. VK_INCOMPLETE VK_INCOMPLETE will be returned when not all avaiable properties are returned.
* allow vulkan validation layers in release builds if explicity asked forJordan Schidlowsky2020-11-181-1/+1
|
* Remove empty lines around braces with the formatting scriptAaron Franke2020-11-161-1/+0
|
* Fixes crash if Vulkan presentation surface is not available.bruvzg2020-11-141-1/+2
|
* Reorganized core/ directory, it was too fatty alreadyreduz2020-11-071-3/+3
| | | | | | -Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
* Vulkan: Make validation layers optionalRémi Verschelde2020-10-271-19/+9
| | | | | | | | | | | | | | | They're now disabled by default, and can be enabled with the command line argument `--vk-layers`. When enabled, the errors about them being missing are now warnings, as users were confused and thought this meant Vulkan is broken for them. Fix crash in `~VulkanContext` when validation layers are disabled (exposed by this PR since before they could not be disabled without source modification). Also moved VulkanContext member initializations to header. Fixes #37102.
* Fix spelling & grammar in comments, docs, and messagesAndy Maloney2020-07-211-1/+1
|
* Add error messages if Vulkan init failed, prevent Vulkan context freeing ↵bruvzg2020-07-131-9/+18
| | | | uninitialized device and instance.
* Style: Enforce separation line between function definitionsRémi Verschelde2020-05-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde2020-05-141-19/+0
| | | | | | | | | | | | | | 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.
* New lightmapperJuan Linietsky2020-05-101-0/+9
| | | | | | | -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)
* Style: clang-format: Disable AllowShortIfStatementsOnASingleLineRémi Verschelde2020-05-101-6/+7
| | | | | | | 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.
* [Vulkan] Use `VK_LAYER_KHRONOS_validation` instead of deprecated ↵bruvzg2020-04-261-23/+30
| | | | `VK_LAYER_LUNARG_standard_validation`.
* Ability to create local RenderingDevice instances.Juan Linietsky2020-04-181-0/+81
|
* Fixes leaks in ResourceCache, Vulkan and X11qarmin2020-04-151-0/+9
|