summaryrefslogtreecommitdiffstats
path: root/tools/gfx/vulkan/vk-framebuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/vulkan/vk-framebuffer.cpp')
-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.