summaryrefslogtreecommitdiffstats
path: root/src/video_core/vulkan_common/vulkan_device.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-02-13vulkan_device: Require VK_EXT_robustness2ReinUsesLisp1-1/+0
We are already using robustness2 features without requiring it explicitly, causing potential crashes on drivers without the extension. Requiring this at boot allows better diagnostics for it and formalizes our usage on the extension.
2021-02-13vulkan_common: Expose interop and headless devicesReinUsesLisp1-2/+2
2021-02-13gpu: Report renderer errors with exceptionsReinUsesLisp1-1/+1
Instead of using a two step initialization to report errors, initialize the GPU renderer and rasterizer on the constructor and report errors through std::runtime_error.
2021-01-15vulkan_device: Enable shaderStorageImageMultisample conditionallyReinUsesLisp1-17/+18
Fix Vulkan initialization on ANV.
2021-01-04renderer_vulkan/nsight_aftermath_tracker: Move to vulkan_commonReinUsesLisp1-2/+3
2021-01-04renderer_vulkan: Move device abstraction to vulkan_commonReinUsesLisp1-0/+0
2021-01-03renderer_vulkan: Rename VKDevice to DeviceReinUsesLisp1-4/+4
The "VK" prefix predates the "Vulkan" namespace. It was carried around the codebase for consistency. "VKDevice" currently is a bad alias with "VkDevice" (only an upcase character of difference) that can cause confusion. Rename all instances of it.
2020-12-31vulkan_instance: Allow different Vulkan versions and enforce 1.1ReinUsesLisp1-7/+2
For listing the available physical devices we can use Vulkan 1.0. Now that MoltenVK supports 1.1 we can require it for running games. Add missing documentation.
2020-12-31vk_device: Stop initialization when device is not suitableReinUsesLisp1-2/+2
VKDevice::IsSuitable was not being called. To address this issue, check suitability before initialization and throw an exception if it fails. By doing this, we can deduplicate some code on queue searches. Previosuly we would first search if a present and graphics queue existed, then on initialization we would search again to find the index.
2020-12-31renderer_vulkan: Remove two step initialization on VKDeviceReinUsesLisp1-3/+0
The Vulkan device abstraction either initializes successfully on the constructor or throws a Vulkan exception.
2020-12-31vulkan_common: Rename renderer_vulkan/wrapper.h to vulkan_common/vulkan_wrapper.hReinUsesLisp1-1/+1
Allows sharing Vulkan wrapper code between different rendering backends.
2020-12-30video_core: Rewrite the texture cacheReinUsesLisp1-0/+34
The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage.The current texture cache has several points that hurt maintainability and performance. It's easy to break unrelated parts of the cache when doing minor changes. The cache can easily forget valuable information about the cached textures by CPU writes or simply by its normal usage. This commit aims to address those issues.
2020-08-20vk_device: Use Vulkan 1.0 properlyReinUsesLisp1-3/+9
Enable the required capabilities to use Vulkan 1.0 without validation errors and disable those that are not compatible with it.
2020-08-16Address feedback, add shader compile notifier, update setting textameerj1-1/+4
2020-08-16Vk Async pipeline compilationameerj1-0/+5
2020-07-16renderer_{opengl,vulkan}: Clamp shared memory to host's limitReinUsesLisp1-0/+5
This stops shaders from failing to build when the exceed host's shared memory size limit. An error is logged.
2020-06-27vk_device: Enable VK_EXT_extended_dynamic_state when availableReinUsesLisp1-0/+6
2020-05-05vk_sampler_cache: Use VK_EXT_custom_border_color when availableReinUsesLisp1-0/+6
This should fix grass interactions on Breath of the Wild on Vulkan. It is currently untested against validation layers. Nvidia's Windows 443.09 beta driver or Linux 440.66.12 is required for now.
2020-05-04vk_graphics_pipeline: Implement viewport swizzles with NV_viewport_swizzleReinUsesLisp1-0/+6
2020-04-22vk_memory_manager: Remove unified memory model flagReinUsesLisp1-5/+0
All drivers (even Intel) seem to have a device local memory type that is not host visible. Remove this flag so all devices follow the same path. This fixes a crash when trying to map to host device local memory on integrated devices.
2020-04-14renderer_vulkan: Integrate Nvidia Nsight Aftermath on WindowsReinUsesLisp1-1/+8
Adds optional support for Nsight Aftermath. It is enabled through ENABLE_NSIGHT_AFTERMATH in cmake. A path to the SDK has to be provided by the environment variable NSIGHT_AFTERMATH_SDK. Nsight Aftermath allows an application to generate "minidumps" of the GPU state when a device loss happens. By analysing these on Nsight we can know what a game was doing and why it triggered a device loss. The dump is generated inside %APPDATA%\yuzu\log\gpucrash and this directory is deleted every time a new instance is initialized with Nsight enabled. To enable it on yuzu there has a to be a driver and device capable of running Nsight Aftermath on Vulkan. That means only Turing based GPUs on the latest stable driver, beta drivers won't work for now. It is manually enabled in Configuration>Debug>Enable Graphics Debugging because when using all debugging capabilities there is a runtime cost.
2020-04-13renderer_vulkan: Remove Nvidia checkpointsReinUsesLisp1-5/+0
2020-04-11renderer_vulkan: Drop Vulkan-HppReinUsesLisp1-41/+37
2020-04-07yuzu: Drop SDL2 and Qt frontend Vulkan requirementsReinUsesLisp1-11/+10
Create Vulkan instances and surfaces from the Vulkan backend.
2020-03-13vk_device: Enable VK_EXT_transform_feedback when availableReinUsesLisp1-0/+6
2020-03-13vk_device: Shrink formatless capability name sizeReinUsesLisp1-20/+19
2020-02-19vk_device: add check for shaderStorageImageReadWithoutFormatNguyen Dac Nam1-0/+7
2019-12-19vk_device: Add entry to catch device lossesReinUsesLisp1-0/+9
VK_NV_device_diagnostic_checkpoints allows us to push data to a Vulkan queue and then query it even after a device loss. This allows us to push the current pipeline object and see what was the call that killed the device.
2019-12-09vk_device: Misc changesReinUsesLisp1-17/+77
- Setup more features and requirements. - Improve logging for missing features. - Collect telemetry parameters. - Add queries for more image formats. - Query push constants limits. - Optionally enable some extensions.
2019-09-13vk_device: Add miscellaneous features and minor style changesReinUsesLisp1-18/+44
* Increase minimum Vulkan requirements * Require VK_EXT_vertex_attribute_divisor * Require depthClamp, samplerAnisotropy and largePoints features * Search and expose VK_KHR_uniform_buffer_standard_layout * Search and expose VK_EXT_index_type_uint8 * Search and expose native float16 arithmetics * Track current driver with VK_KHR_driver_properties * Query and expose SSBO alignment * Query more image formats * Improve logging overall * Minor style changes * Minor rephrasing of commentaries
2019-05-26vk_device: Enable features when available and misc changesReinUsesLisp1-15/+43
Keeps track of native ASTC support, VK_EXT_scalar_block_layout availability and SSBO range. Check for independentBlend and vertexPipelineStorageAndAtomics as a required feature. Always enable it. Use vk::to_string format to log Vulkan enums. Style changes.
2019-02-13vk_device: Abstract device handling into a classReinUsesLisp1-0/+116
VKDevice contains all the data required to manage and initialize a physical device. Its intention is to be passed across Vulkan objects to query device-specific data (for example the logical device and the dispatch loader).