aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-08-30 11:30:04 -0600
committerMark Lobodzinski <mark@lunarg.com>2016-08-30 13:03:55 -0600
commita4356e1fb0a69ef353381561c4b244d3cc0a66e2 (patch)
tree34fb3e6c1613323867d7c4fcbd5e780ebca8cd8e /layers/core_validation.cpp
parent9a612db9a43e7a99eff37d9a3c208270300d7133 (diff)
downloadusermoji-a4356e1fb0a69ef353381561c4b244d3cc0a66e2.tar.xz
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
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp8
1 files changed, 6 insertions, 2 deletions
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<VkDescriptorSet &>(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<VkSampler &>(obj.handle));
- sampler_node->in_use.fetch_sub(1);
+ if (sampler_node) {
+ sampler_node->in_use.fetch_sub(1);
+ }
break;
}
default: