From a4356e1fb0a69ef353381561c4b244d3cc0a66e2 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Tue, 30 Aug 2016 11:30:04 -0600 Subject: layers: Fix Dota2 crash in Windows Two issues, in_use was not initialized in SAMPLER_NODE and an invalid access during resource tracking for SAMPLER_NODE and SET_NODE. This occured during GetFenceStatus after a call to DestroySampler. Change-Id: I7654a7c4a2677450097643422f44290be5dbac2a --- layers/core_validation.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 1f899031..46b1d616 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -4596,12 +4596,16 @@ static void DecrementBoundResources(layer_data const *dev_data, GLOBAL_CB_NODE c switch (obj.type) { case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT: { auto set_node = getSetNode(dev_data, reinterpret_cast(obj.handle)); - set_node->in_use.fetch_sub(1); + if (set_node) { + set_node->in_use.fetch_sub(1); + } break; } case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT: { auto sampler_node = getSamplerNode(dev_data, reinterpret_cast(obj.handle)); - sampler_node->in_use.fetch_sub(1); + if (sampler_node) { + sampler_node->in_use.fetch_sub(1); + } break; } default: -- cgit v1.2.3