summaryrefslogtreecommitdiffstats
path: root/src/video_core/vulkan_common/vulkan_wrapper.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* renderer_vulkan: Add setting to log pipeline statisticsReinUsesLisp2021-07-281-0/+8
| | | | | | | | | | | | | | | | Use VK_KHR_pipeline_executable_properties when enabled and available to log statistics about the pipeline cache in a game. For example, this is on Turing GPUs when generating a pipeline cache from Super Smash Bros. Ultimate: Average pipeline statistics ========================================== Code size: 6433.167 Register count: 32.939 More advanced results could be presented, at the moment it's just an average of all 3D and compute pipelines.
* vk_graphics_pipeline: Implement line widthReinUsesLisp2021-07-231-0/+5
|
* vk_graphics_pipeline: Use VK_KHR_push_descriptor when availableReinUsesLisp2021-07-231-12/+19
| | | | ~51% faster on Nvidia compared to previous method.
* vulkan: Add VK_EXT_vertex_input_dynamic_state supportReinUsesLisp2021-07-231-0/+8
| | | | | Reduces the number of total pipelines generated on Vulkan. Tested on Super Smash Bros. Ultimate.
* vk_staging_buffer_pool: Add stream buffer for small uploadsReinUsesLisp2021-02-131-2/+3
| | | | | | | | This uses a ring buffer similar to OpenGL's stream buffer for small uploads. This stops us from allocating several small buffers, reducing memory fragmentation and cache locality. It uses dedicated allocations when possible.
* vulkan_wrapper: Add memory barrier pipeline barrier helperReinUsesLisp2021-02-131-0/+6
|
* vulkan_wrapper: Add interop functionsReinUsesLisp2021-02-131-1/+11
|
* vulkan_wrapper: Pull Windows symbolsReinUsesLisp2021-02-131-0/+11
|
* gpu: Report renderer errors with exceptionsReinUsesLisp2021-02-131-0/+3
| | | | | | 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.
* vulkan_common: Silence missing initializer warningsReinUsesLisp2021-01-151-142/+142
| | | | Silence warnings explicitly initializing all members on construction.
* renderer_vulkan: Remove two step initialization on VKDeviceReinUsesLisp2020-12-311-1/+1
| | | | | The Vulkan device abstraction either initializes successfully on the constructor or throws a Vulkan exception.
* renderer_vulkan: Throw when enumerating devices failsReinUsesLisp2020-12-311-1/+2
| | | | | | Report device enumeration errors with exceptions to be consistent with other initialization related function calls. Reduces the amount of code to maintain.
* renderer_vulkan: Initialize surface in separate fileReinUsesLisp2020-12-311-0/+5
| | | | | | Move surface initialization code to a separate file. It's unlikely to use this code outside of Vulkan, but keeping platform-specific code (Win32, Xlib, Wayland) in its own translation unit keeps things cleaner.
* renderer_vulkan: Create debug callback on separate file and throwReinUsesLisp2020-12-311-6/+9
| | | | | | | | Initialize debug callbacks (messenger) from a separate file. This allows sharing code with different backends. Change our Vulkan error handling to use exceptions instead of error codes, simplifying the initialization process.
* vulkan_common: Rename renderer_vulkan/wrapper.h to vulkan_common/vulkan_wrapper.hReinUsesLisp2020-12-311-0/+1213
Allows sharing Vulkan wrapper code between different rendering backends.