diff options
| author | Tony Barbour <tony@LunarG.com> | 2015-11-02 11:46:29 -0700 |
|---|---|---|
| committer | Tony Barbour <tony@LunarG.com> | 2015-11-02 11:48:21 -0700 |
| commit | 70a76549490e9c2f57f5ab28e1042d406e698e26 (patch) | |
| tree | 6254ca3e48d73438889dd5e03a8ebff5a589a0bd /layers/draw_state.cpp | |
| parent | e0ba544bf922f9c92274b8f11481a8904905400b (diff) | |
| download | usermoji-70a76549490e9c2f57f5ab28e1042d406e698e26.tar.xz | |
layers: Use descriptor type to decide which pointer to free
Diffstat (limited to 'layers/draw_state.cpp')
| -rwxr-xr-x | layers/draw_state.cpp | 33 |
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: |
