summaryrefslogtreecommitdiff
path: root/tools/gfx/vulkan/vk-helper-functions.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-09-22 21:54:16 -0700
committerGitHub <noreply@github.com>2022-09-22 21:54:16 -0700
commitbd11629739ae2b0619699c765354894ff32dacf1 (patch)
tree4f72313bc33ed34dd96d16cec6623ca9b0a8292e /tools/gfx/vulkan/vk-helper-functions.cpp
parenta6fcb3b0ed2b185723afde750bd4491b5b4113eb (diff)
GFX: improve d3d12 performance. (#2408)
Diffstat (limited to 'tools/gfx/vulkan/vk-helper-functions.cpp')
-rw-r--r--tools/gfx/vulkan/vk-helper-functions.cpp10
1 files changed, 10 insertions, 0 deletions
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;