mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 22:00:39 -06:00
Vulkan: Move shader/pipeline-related methods to ShaderCache
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
|
||||
#include "VideoBackends/Vulkan/CommandBufferManager.h"
|
||||
#include "VideoBackends/Vulkan/ObjectCache.h"
|
||||
#include "VideoBackends/Vulkan/ShaderCache.h"
|
||||
#include "VideoBackends/Vulkan/Texture2D.h"
|
||||
#include "VideoBackends/Vulkan/Util.h"
|
||||
#include "VideoBackends/Vulkan/VulkanContext.h"
|
||||
@ -43,12 +44,12 @@ void VulkanPostProcessing::BlitFromTexture(const TargetRectangle& dst, const Tar
|
||||
{
|
||||
// If the source layer is negative we simply copy all available layers.
|
||||
VkShaderModule geometry_shader =
|
||||
src_layer < 0 ? g_object_cache->GetPassthroughGeometryShader() : VK_NULL_HANDLE;
|
||||
src_layer < 0 ? g_shader_cache->GetPassthroughGeometryShader() : VK_NULL_HANDLE;
|
||||
VkShaderModule fragment_shader =
|
||||
m_fragment_shader != VK_NULL_HANDLE ? m_fragment_shader : m_default_fragment_shader;
|
||||
UtilityShaderDraw draw(g_command_buffer_mgr->GetCurrentCommandBuffer(),
|
||||
g_object_cache->GetPipelineLayout(PIPELINE_LAYOUT_STANDARD), render_pass,
|
||||
g_object_cache->GetPassthroughVertexShader(), geometry_shader,
|
||||
g_shader_cache->GetPassthroughVertexShader(), geometry_shader,
|
||||
fragment_shader);
|
||||
|
||||
// Source is always bound.
|
||||
@ -240,7 +241,7 @@ bool VulkanPostProcessing::RecompileShader()
|
||||
if (m_fragment_shader != VK_NULL_HANDLE)
|
||||
{
|
||||
g_command_buffer_mgr->WaitForGPUIdle();
|
||||
g_object_cache->ClearPipelineCache();
|
||||
g_shader_cache->ClearPipelineCache();
|
||||
vkDestroyShaderModule(g_vulkan_context->GetDevice(), m_fragment_shader, nullptr);
|
||||
m_fragment_shader = VK_NULL_HANDLE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user