summaryrefslogtreecommitdiff
path: root/drivers/vulkan/vulkan_context.h
AgeCommit message (Collapse)Author
2022-08-25Let platforms override the sizing of Vulkan swapchain and windowPedro J. Estébanez
2022-08-09Apply correct formatting to comments in the Vulkan driverPedro J. Estébanez
2022-07-26Merge pull request #63323 from RandomShaper/const_ref_capabilitiesRémi Verschelde
Avoid copies of structures when returning Vulkan capabilities
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-22Avoid copies of structures when returning Vulkan capabilitiesPedro J. Estébanez
2022-07-17Adding Variable Rate Shading support to GodotBastiaan Olij
Improve GI renderer and add VRS support Implement render device has_feature and move subgroup settings to limit_get
2022-06-28Apply some small fixes/enhancements to the Vulkan RDPedro J. Estébanez
- Initialize queue indices to values meaning 'unset' - Remove unused parameters & members - Make texture update access flags consistent with texture copy - Fix style and pass type of some parameters - Synchronize setup-draw in flush with a semaphore - Add no current list validation to draw_list_begin_splits() - Update texture usage flags on destination of copy - Fix misuse of Vulkan flag
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-03Add `get_video_adapter_api_version()` to RenderingServerHugo Locurcio
This method can be used to get the graphics API version currently in use (such as Vulkan). It can be used by projects for troubleshooting or statistical purposes.
2022-05-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-02-23Implementing OpenXR driverBastiaan Olij
2022-02-18Merge pull request #58236 from bruvzg/win_min_fixRémi Verschelde
2022-02-17[Windows] Fix Vulkan driver crash on sub-window minimization.bruvzg
2022-02-17We were only getting our available shader features, now we also enabling themBastiaan Olij
2022-01-17Merge pull request #55020 from bruvzg/vlk_device_surface_checkRémi Verschelde
2022-01-04Merge pull request #55790 from Calinou/renderingserver-add-device-type-getterRémi Verschelde
Add `RenderingServer.get_video_adapter_type()` method
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-10Add `RenderingServer.get_video_adapter_type()` methodHugo Locurcio
This can be used to distinguish between integrated, dedicated, virtual and software-emulated GPUs. This in turn can be used to automatically adjust graphics settings, or warn users about features that may run slowly on their hardware.
2021-11-23Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm
2021-11-22[Vulkan] Check each device capabilities before selecting it.bruvzg
Split instance and physical device selection function and move device selection to window creation, to reject devices without present capability. Add device preferred type check in discrete > integrated > virtual > cpu > other order. Add device list printout. Add command line argument to override device selection.
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-09Expose Vulkan internal values for access from extensionsBastiaan Olij
2021-08-13Upgrade Vulkan memory allocatorPedro J. Estébanez
2021-08-12Use "volk" instead of statically linked Vulkan loader.bruvzg
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-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-13Add stereoscopic rendering through multiviewBastiaan Olij
2021-05-06Cleanup vulkan capabilities check and add multiview checkBastiaan Olij
2021-04-12Validation layers on AndroidSzymon Majewski
2021-03-31Merge pull request #47250 from BastiaanOlij/check_vulkan_versionRémi Verschelde
Obtain supported Vulkan API
2021-03-30WIP: Add support for VK_EXT_debug_report in VulkanSzymon Majewski
2021-03-26Obtain supported Vulkan APIBastiaan Olij
2021-02-04Rewrote how barriers work for faster renderingreduz
-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
2021-01-25Add named resources and debug labels in RenderDocclayjohn
2021-01-01Update copyright statements to 2021Rémi Verschelde
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 🎆
2020-11-23Initialize class/struct variables with default values in core/ and drivers/Rafał Mikrut
2020-11-18allow vulkan validation layers in release builds if explicity asked forJordan Schidlowsky
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-10-27Vulkan: Make validation layers optionalRémi Verschelde
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.
2020-07-13Add error messages if Vulkan init failed, prevent Vulkan context freeing ↵bruvzg
uninitialized device and instance.
2020-06-03Vulkan: Initialize struct members on declarationRémi Verschelde
Supersedes and closes #38945.
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-04-18Ability to create local RenderingDevice instances.Juan Linietsky
2020-04-03Vulkan rendering for AndroidPouleyKetchoupp
2020-03-26Added a Window node, and made it the scene root.Juan Linietsky
Still a lot of work to do.
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-11Add static Vulkan loader.bruvzg
Initial Vulkan support for Windows. Initial Vulkan support for macOS.
2020-02-11Completed material/2D shader support (missing SCREEN_TEXTURE)Juan Linietsky
2020-02-11basic 2D engine is more or less working with Vulkan, including editor.Juan Linietsky
Still a lot to do
2020-02-11Initial work on Vulkan:Juan Linietsky
-Added VulkanContext -Added an X11 implementation -Added a rendering device abstraction -added a Vulkan rendering device abstraction -Engine does not work, only shows Godot logo (run it from bin/)