From bd11629739ae2b0619699c765354894ff32dacf1 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 22 Sep 2022 21:54:16 -0700 Subject: GFX: improve d3d12 performance. (#2408) --- tools/gfx/vulkan/vk-helper-functions.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tools/gfx/vulkan/vk-helper-functions.cpp') diff --git a/tools/gfx/vulkan/vk-helper-functions.cpp b/tools/gfx/vulkan/vk-helper-functions.cpp index 033096f8a..aa6c42ec5 100644 --- a/tools/gfx/vulkan/vk-helper-functions.cpp +++ b/tools/gfx/vulkan/vk-helper-functions.cpp @@ -83,6 +83,8 @@ VkImageLayout translateImageLayout(ResourceState state) case ResourceState::DepthWrite: return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; case ResourceState::ShaderResource: + case ResourceState::NonPixelShaderResource: + case ResourceState::PixelShaderResource: return VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; case ResourceState::ResolveDestination: case ResourceState::CopyDestination: @@ -116,6 +118,8 @@ VkAccessFlagBits calcAccessFlags(ResourceState state) return VkAccessFlagBits( VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT); case ResourceState::ShaderResource: + case ResourceState::NonPixelShaderResource: + case ResourceState::PixelShaderResource: return VK_ACCESS_INPUT_ATTACHMENT_READ_BIT; case ResourceState::UnorderedAccess: return VkAccessFlagBits(VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT); @@ -167,6 +171,8 @@ VkPipelineStageFlagBits calcPipelineStageFlags(ResourceState state, bool src) VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR); case ResourceState::ShaderResource: + case ResourceState::NonPixelShaderResource: + case ResourceState::PixelShaderResource: return VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; case ResourceState::RenderTarget: return VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; @@ -237,6 +243,8 @@ VkBufferUsageFlagBits _calcBufferUsageFlags(ResourceState state) return ( VkBufferUsageFlagBits)(VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); case ResourceState::ShaderResource: + case ResourceState::NonPixelShaderResource: + case ResourceState::PixelShaderResource: return ( VkBufferUsageFlagBits)(VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); case ResourceState::CopySource: @@ -277,6 +285,8 @@ VkImageUsageFlagBits _calcImageUsageFlags(ResourceState state) case ResourceState::DepthRead: return VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; case ResourceState::ShaderResource: + case ResourceState::NonPixelShaderResource: + case ResourceState::PixelShaderResource: return VK_IMAGE_USAGE_SAMPLED_BIT; case ResourceState::UnorderedAccess: return VK_IMAGE_USAGE_STORAGE_BIT; -- cgit v1.2.3