summaryrefslogtreecommitdiffstats
path: root/tools/gfx/vulkan
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-10-13 14:07:26 -0700
committerGitHub <noreply@github.com>2022-10-13 14:07:26 -0700
commit09054f7ae00aad0458de465a7f0b780a91c694dd (patch)
tree776f50b5ebe51ae7088d6990eaa5f6d84d8a6c2a /tools/gfx/vulkan
parentafa9f4b2786c92e72a563f316e074f62770630cb (diff)
Make `optimalClearValue` optional in `ITextureResource::Desc` (#2450)
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tools/gfx/vulkan')
-rw-r--r--tools/gfx/vulkan/vk-framebuffer.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/tools/gfx/vulkan/vk-framebuffer.cpp b/tools/gfx/vulkan/vk-framebuffer.cpp
index 0cc2a7799..e3e28816e 100644
--- a/tools/gfx/vulkan/vk-framebuffer.cpp
+++ b/tools/gfx/vulkan/vk-framebuffer.cpp
@@ -164,20 +164,26 @@ Result FramebufferImpl::init(DeviceImpl* renderer, const IFramebuffer::Desc& des
auto resourceView = static_cast<TextureResourceViewImpl*>(desc.renderTargetViews[i]);
renderTargetViews[i] = resourceView;
imageViews[i] = resourceView->m_view;
- memcpy(
- &m_clearValues[i],
- &resourceView->m_texture->getDesc()->optimalClearValue.color,
- sizeof(gfx::ColorClearValue));
+ if (resourceView->m_texture->getDesc()->optimalClearValue)
+ {
+ memcpy(
+ &m_clearValues[i],
+ &resourceView->m_texture->getDesc()->optimalClearValue->color,
+ sizeof(gfx::ColorClearValue));
+ }
}
if (dsv)
{
imageViews[desc.renderTargetCount] = dsv->m_view;
depthStencilView = dsv;
- memcpy(
- &m_clearValues[desc.renderTargetCount],
- &dsv->m_texture->getDesc()->optimalClearValue.depthStencil,
- sizeof(gfx::DepthStencilClearValue));
+ if (dsv->m_texture->getDesc()->optimalClearValue)
+ {
+ memcpy(
+ &m_clearValues[desc.renderTargetCount],
+ &dsv->m_texture->getDesc()->optimalClearValue->depthStencil,
+ sizeof(gfx::DepthStencilClearValue));
+ }
}
// Create framebuffer.