diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-06-19 15:52:56 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-06-19 15:52:56 +0000 |
| commit | a44916beab60f1f86372386b0e996eb95be75aa1 (patch) | |
| tree | 26ef9857c3a65b89c9a71d41260b569d4c35017c /Graphics/GraphicsEngineVulkan | |
| parent | Implemented resource names string pool for D3D backends (diff) | |
| download | DiligentCore-a44916beab60f1f86372386b0e996eb95be75aa1.tar.gz DiligentCore-a44916beab60f1f86372386b0e996eb95be75aa1.zip | |
Fixed layout transition for depth textures in Vulkan
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
| -rw-r--r-- | Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp b/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp index b63c106c..9f548fa4 100644 --- a/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp +++ b/Graphics/GraphicsEngineVulkan/src/ShaderResourceCacheVk.cpp @@ -266,7 +266,15 @@ VkDescriptorImageInfo ShaderResourceCacheVk::Resource::GetImageDescriptorWriteIn // If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, for each descriptor that will be accessed // via load or store operations the imageLayout member for corresponding elements of pImageInfo // MUST be VK_IMAGE_LAYOUT_GENERAL (13.2.4) - DescrImgInfo.imageLayout = IsStorageImage ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + if(IsStorageImage) + DescrImgInfo.imageLayout = VK_IMAGE_LAYOUT_GENERAL; + else + { + if(ValidatedCast<const TextureVkImpl>(pTexViewVk->GetTexture())->GetDesc().BindFlags & BIND_DEPTH_STENCIL) + DescrImgInfo.imageLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL; + else + DescrImgInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + } return DescrImgInfo; } |
