summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_graphics_pipeline.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-12-04vulkan_common: promote descriptor update template usage to coreLiam1-1/+1
2022-10-06VideoCore: Fix channels with disk pipeline/shader cache.Fernando Sahmkow1-11/+17
2022-09-20video_core: Generate mipmap texture by drawingFengChen1-1/+3
2022-06-27video_core: Replace VKUpdateDescriptorQueue with UpdateDescriptorQueuegerman771-3/+3
2022-06-27video_core: Replace VKScheduler with Schedulergerman771-3/+3
2022-04-23general: Convert source file copyright comments over to SPDXMorph1-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.
2021-11-16vulkan: Implement rescaling shader patchingReinUsesLisp1-1/+3
2021-07-28renderer_vulkan: Add setting to log pipeline statisticsReinUsesLisp1-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.
2021-07-23shader_recompiler, video_core: Resolve clang errorslat9nq1-3/+1
Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors
2021-07-23vk_graphics_pipeline: Use VK_KHR_push_descriptor when availableReinUsesLisp1-0/+1
~51% faster on Nvidia compared to previous method.
2021-07-23vk_pipeline_cache,shader_notify: Add shader notificationsReinUsesLisp1-10/+12
2021-07-23vk_pipeline_cache: Add asynchronous shadersReinUsesLisp1-1/+5
2021-07-23buffer_cache: Reduce uniform buffer size from shader usageReinUsesLisp1-1/+2
Increases performance significantly on certain titles.
2021-07-23buffer_cache: Mark uniform buffers as dirty if any enable bit changesReinUsesLisp1-0/+3
2021-07-23shader: Move pipeline cache logic to separate filesReinUsesLisp1-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.
2021-07-23vulkan: Defer descriptor set work to the Vulkan threadReinUsesLisp1-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.
2021-07-23vulkan: Rework descriptor allocation algorithmReinUsesLisp1-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.
2021-07-23vk_graphics_pipeline: Generate specialized pipeline config functions and improve codeReinUsesLisp1-2/+20
2021-07-23shader: Accelerate pipeline transitions and use dirty flags for shadersReinUsesLisp1-2/+52
2021-07-23shader: Remove atomic flags and use mutex + cond variable for pipelinesReinUsesLisp1-1/+6
2021-07-23vulkan: Build pipelines in parallel at runtimeReinUsesLisp1-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.
2021-07-23shader: Add partial rasterizer integrationReinUsesLisp1-0/+66
2021-07-23shader: Remove old shader managementReinUsesLisp1-103/+0
2021-01-03renderer_vulkan: Rename VKDevice to DeviceReinUsesLisp1-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.
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-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.
2020-12-05video_core: Resolve more variable shadowing scenarios pt.2Lioncash1-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.
2020-08-16Remove unneeded newlines, optional Registry in shader paramsameerj1-1/+1
Addressing feedback from Rodrigo
2020-08-16Address feedback, add shader compile notifier, update setting textameerj1-6/+24
2020-08-16Address feedback. Bruteforce delete duplicatesameerj1-1/+1
2020-08-16Vk Async pipeline compilationameerj1-0/+6
2020-04-29vulkan: Remove unnecessary includesLioncash1-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.
2020-04-11renderer_vulkan: Drop Vulkan-HppReinUsesLisp1-19/+19
2020-01-07vk_graphics_pipeline: Initial implementationReinUsesLisp1-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.