aboutsummaryrefslogtreecommitdiff
path: root/layers/draw_state.cpp
diff options
context:
space:
mode:
authorTony Barbour <tony@LunarG.com>2015-11-02 11:46:29 -0700
committerTony Barbour <tony@LunarG.com>2015-11-02 11:48:21 -0700
commit70a76549490e9c2f57f5ab28e1042d406e698e26 (patch)
tree6254ca3e48d73438889dd5e03a8ebff5a589a0bd /layers/draw_state.cpp
parente0ba544bf922f9c92274b8f11481a8904905400b (diff)
downloadusermoji-70a76549490e9c2f57f5ab28e1042d406e698e26.tar.xz
layers: Use descriptor type to decide which pointer to free
Diffstat (limited to 'layers/draw_state.cpp')
-rwxr-xr-xlayers/draw_state.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index fec569f9..cb2c46dd 100755
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1169,14 +1169,31 @@ static void freeShadowUpdateTree(SET_NODE* pSet)
{
case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:
pWDS = (VkWriteDescriptorSet*)pFreeUpdate;
- if (pWDS->pImageInfo) {
- delete[] pWDS->pImageInfo;
- }
- if (pWDS->pBufferInfo) {
- delete[] pWDS->pBufferInfo;
- }
- if (pWDS->pTexelBufferView) {
- delete[] pWDS->pTexelBufferView;
+ switch (pWDS->descriptorType) {
+ case VK_DESCRIPTOR_TYPE_SAMPLER:
+ case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
+ case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
+ case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
+ {
+ delete[] pWDS->pImageInfo;
+ }
+ break;
+ case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
+ case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:
+ {
+ delete[] pWDS->pTexelBufferView;
+ }
+ break;
+ case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:
+ case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:
+ case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
+ case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
+ {
+ delete[] pWDS->pBufferInfo;
+ }
+ break;
+ default:
+ break;
}
break;
case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: