summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_graphics_pipeline.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #8858 from vonchenplus/mipmapbunnei2022-11-041-1/+3
|\ | | | | video_core: Generate mipmap texture by drawing
| * video_core: Generate mipmap texture by drawingFengChen2022-09-201-1/+3
| |
* | VideoCore: Fix channels with disk pipeline/shader cache.Fernando Sahmkow2022-10-061-11/+17
|/
* video_core: Replace VKUpdateDescriptorQueue with UpdateDescriptorQueuegerman772022-06-271-3/+3
|
* video_core: Replace VKScheduler with Schedulergerman772022-06-271-3/+3
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* vulkan: Implement rescaling shader patchingReinUsesLisp2021-11-161-1/+3
|
* renderer_vulkan: Add setting to log pipeline statisticsReinUsesLisp2021-07-281-2/+4
| | | | | | | | | | | | | | | | 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.
* shader_recompiler, video_core: Resolve clang errorslat9nq2021-07-231-3/+1
| | | | | | | | | | Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors
* vk_graphics_pipeline: Use VK_KHR_push_descriptor when availableReinUsesLisp2021-07-231-0/+1
| | | | ~51% faster on Nvidia compared to previous method.
* vk_pipeline_cache,shader_notify: Add shader notificationsReinUsesLisp2021-07-231-10/+12
|
* vk_pipeline_cache: Add asynchronous shadersReinUsesLisp2021-07-231-1/+5
|
* buffer_cache: Reduce uniform buffer size from shader usageReinUsesLisp2021-07-231-1/+2
| | | | Increases performance significantly on certain titles.
* buffer_cache: Mark uniform buffers as dirty if any enable bit changesReinUsesLisp2021-07-231-0/+3
|
* shader: Move pipeline cache logic to separate filesReinUsesLisp2021-07-231-1/+1
| | | | | | | | | Move code to separate files to be able to reuse it from OpenGL. This greatly simplifies the pipeline cache logic on Vulkan. Transform feedback state is not yet abstracted and it's still intrusively stored inside vk_pipeline_cache. It will be moved when needed on OpenGL.
* vulkan: Defer descriptor set work to the Vulkan threadReinUsesLisp2021-07-231-2/+3
| | | | | | | Move descriptor lookup and update code to a separate thread. Delaying this removes work from the main GPU thread and allows creating descriptor layouts on another thread. This reduces a bit the workload of the main thread when new pipelines are encountered.
* vulkan: Rework descriptor allocation algorithmReinUsesLisp2021-07-231-1/+1
| | | | | | Create multiple descriptor pools on demand. There are some degrees of freedom what is considered a compatible pool to avoid wasting large pools on small descriptors.
* vk_graphics_pipeline: Generate specialized pipeline config functions and improve codeReinUsesLisp2021-07-231-2/+20
|
* shader: Accelerate pipeline transitions and use dirty flags for shadersReinUsesLisp2021-07-231-2/+52
|
* shader: Remove atomic flags and use mutex + cond variable for pipelinesReinUsesLisp2021-07-231-1/+6
|
* vulkan: Build pipelines in parallel at runtimeReinUsesLisp2021-07-231-14/+17
| | | | | Wait from the worker thread for a pipeline to build before binding it to the command buffer. This allows queueing pipelines to multiple threads.
* shader: Add partial rasterizer integrationReinUsesLisp2021-07-231-0/+66
|
* shader: Remove old shader managementReinUsesLisp2021-07-231-103/+0
|
* renderer_vulkan: Rename VKDevice to DeviceReinUsesLisp2021-01-031-3/+3
| | | | | | | 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.
* vulkan_common: Rename renderer_vulkan/wrapper.h to vulkan_common/vulkan_wrapper.hReinUsesLisp2020-12-311-1/+1
| | | | Allows sharing Vulkan wrapper code between different rendering backends.
* video_core: Rewrite the texture cacheReinUsesLisp2020-12-301-17/+9
| | | | | | | | | | | | | | 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.
* video_core: Resolve more variable shadowing scenarios pt.2Lioncash2020-12-051-7/+7
| | | | | | | Migrates the video core code closer to enabling variable shadowing warnings as errors. This primarily sorts out shadowing occurrences within the Vulkan code.
* Remove unneeded newlines, optional Registry in shader paramsameerj2020-08-161-1/+1
| | | | Addressing feedback from Rodrigo
* Address feedback, add shader compile notifier, update setting textameerj2020-08-161-6/+24
|
* Address feedback. Bruteforce delete duplicatesameerj2020-08-161-1/+1
|
* Vk Async pipeline compilationameerj2020-08-161-0/+6
|
* vulkan: Remove unnecessary includesLioncash2020-04-291-3/+0
| | | | | | | Reduces some header churn and reduces rebuilds when some header internals change. While we're at it we can also resolve a missing include in buffer_cache.
* renderer_vulkan: Drop Vulkan-HppReinUsesLisp2020-04-111-19/+19
|
* vk_graphics_pipeline: Initial implementationReinUsesLisp2020-01-071-0/+90
This abstractio represents the state of the 3D engine at a given draw. Instead of changing individual bits of the pipeline how it's done in APIs like D3D11, OpenGL and NVN; on Vulkan we are forced to put everything together into a single, immutable object. It takes advantage of the few dynamic states Vulkan offers.