From 462bd043ab02a4cac8664dabd813210c2f9b1cc4 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Tue, 17 Nov 2015 12:42:57 -0700 Subject: layers: Fix Dota 2 crash in draw_state layer Memsetting STL vectors again -- added default constructor to struct. --- layers/draw_state.cpp | 1 - layers/draw_state.h | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index a5b42bdc..57307502 100644 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -2124,7 +2124,6 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(VkDev "Out of memory while attempting to allocate LAYOUT_NODE in vkCreateDescriptorSetLayout()")) return VK_ERROR_VALIDATION_FAILED; } - memset(pNewNode, 0, sizeof(LAYOUT_NODE)); memcpy((void*)&pNewNode->createInfo, pCreateInfo, sizeof(VkDescriptorSetLayoutCreateInfo)); pNewNode->createInfo.pBinding = new VkDescriptorSetLayoutBinding[pCreateInfo->bindingCount]; memcpy((void*)pNewNode->createInfo.pBinding, pCreateInfo->pBinding, sizeof(VkDescriptorSetLayoutBinding)*pCreateInfo->bindingCount); diff --git a/layers/draw_state.h b/layers/draw_state.h index db05bacd..a1fd1d35 100755 --- a/layers/draw_state.h +++ b/layers/draw_state.h @@ -170,7 +170,10 @@ typedef struct _LAYOUT_NODE { vector descriptorTypes; // Type per descriptor in this layout to verify correct updates vector stageFlags; // stageFlags per descriptor in this layout to verify correct updates unordered_set bindings; + // Default constructor + _LAYOUT_NODE():layout{},createInfo{},startIndex(0),endIndex(0),dynamicDescriptorCount(0) {}; } LAYOUT_NODE; + // Store layouts and pushconstants for PipelineLayout struct PIPELINE_LAYOUT_NODE { vector descriptorSetLayouts; -- cgit v1.2.3