Skip to content

Commit 7bcdb8c

Browse files
azhirnovTheMostDiligent
authored andcommitted
Vulkan: disable render target bind flag for 3D texture in GetSparseTextureFormatInfo()
1 parent 0f6c391 commit 7bcdb8c

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

Graphics/GraphicsEngineVulkan/src/RenderDeviceVkImpl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ SparseTextureFormatInfo RenderDeviceVkImpl::GetSparseTextureFormatInfo(TEXTURE_F
771771

772772
if ((ComponentType == COMPONENT_TYPE_DEPTH || ComponentType == COMPONENT_TYPE_DEPTH_STENCIL) && CheckUsage(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT))
773773
Info.BindFlags |= BIND_DEPTH_STENCIL;
774-
else if (ComponentType != COMPONENT_TYPE_COMPRESSED && CheckUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT))
774+
else if (ComponentType != COMPONENT_TYPE_COMPRESSED && Dimension != RESOURCE_DIM_TEX_3D && CheckUsage(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT))
775775
Info.BindFlags |= BIND_RENDER_TARGET;
776776

777777
if ((Info.BindFlags & (BIND_DEPTH_STENCIL | BIND_RENDER_TARGET)) != 0 && CheckUsage(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT))

Tests/DiligentCoreAPITest/src/SparseResourcesTest.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2210,6 +2210,7 @@ TEST_F(SparseResourceTest, GetSparseTextureFormatInfo)
22102210

22112211
const bool IsDirect3D = pDevice->GetDeviceInfo().IsD3DDevice();
22122212
const bool IsMetal = pDevice->GetDeviceInfo().IsMetalDevice();
2213+
const bool IsVulkan = pDevice->GetDeviceInfo().IsVulkanDevice();
22132214

22142215
const auto CheckInfo = [&](TEXTURE_FORMAT TexFormat, RESOURCE_DIMENSION Dimension, Uint32 SampleCount, const char* FmtName, BIND_FLAGS PossibleBindFlags) //
22152216
{
@@ -2292,8 +2293,8 @@ TEST_F(SparseResourceTest, GetSparseTextureFormatInfo)
22922293
CheckInfo(TEX_FORMAT_RGBA8_UNORM, RESOURCE_DIM_TEX_2D, 8, "RGBA8_UNORM", BIND_RENDER_TARGET);
22932294
CheckInfo(TEX_FORMAT_RGBA8_UNORM, RESOURCE_DIM_TEX_2D, 16, "RGBA8_UNORM", BIND_RENDER_TARGET);
22942295

2295-
CheckInfo(TEX_FORMAT_RGBA8_UNORM, RESOURCE_DIM_TEX_3D, 1, "RGBA8_UNORM", BIND_RENDER_TARGET);
2296-
CheckInfo(TEX_FORMAT_RGBA32_FLOAT, RESOURCE_DIM_TEX_3D, 1, "RGBA32_FLOAT", BIND_RENDER_TARGET);
2296+
CheckInfo(TEX_FORMAT_RGBA8_UNORM, RESOURCE_DIM_TEX_3D, 1, "RGBA8_UNORM", IsVulkan ? BIND_NONE : BIND_RENDER_TARGET);
2297+
CheckInfo(TEX_FORMAT_RGBA32_FLOAT, RESOURCE_DIM_TEX_3D, 1, "RGBA32_FLOAT", IsVulkan ? BIND_NONE : BIND_RENDER_TARGET);
22972298
// clang-format on
22982299
}
22992300

0 commit comments

Comments
 (0)