Change scope of validationExt and validationLayerName variables
Pointer to a variable declared into a block statement is stored and used outside of the block by vkCreateInstance. This can lead to segmentation fault. Move the declaration of validationExt/validationLayerName outside of the block to fix the crash.
This commit is contained in:
parent
334692a6ef
commit
1b22456d07
3 changed files with 6 additions and 5 deletions
|
|
@ -95,11 +95,12 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation)
|
||||||
instanceCreateInfo.enabledExtensionCount = (uint32_t)instanceExtensions.size();
|
instanceCreateInfo.enabledExtensionCount = (uint32_t)instanceExtensions.size();
|
||||||
instanceCreateInfo.ppEnabledExtensionNames = instanceExtensions.data();
|
instanceCreateInfo.ppEnabledExtensionNames = instanceExtensions.data();
|
||||||
}
|
}
|
||||||
if (settings.validation)
|
|
||||||
{
|
|
||||||
// The VK_LAYER_KHRONOS_validation contains all current validation functionality.
|
// The VK_LAYER_KHRONOS_validation contains all current validation functionality.
|
||||||
// Note that on Android this layer requires at least NDK r20
|
// Note that on Android this layer requires at least NDK r20
|
||||||
const char* validationLayerName = "VK_LAYER_KHRONOS_validation";
|
const char* validationLayerName = "VK_LAYER_KHRONOS_validation";
|
||||||
|
if (settings.validation)
|
||||||
|
{
|
||||||
// Check if this layer is available at instance level
|
// Check if this layer is available at instance level
|
||||||
uint32_t instanceLayerCount;
|
uint32_t instanceLayerCount;
|
||||||
vkEnumerateInstanceLayerProperties(&instanceLayerCount, nullptr);
|
vkEnumerateInstanceLayerProperties(&instanceLayerCount, nullptr);
|
||||||
|
|
|
||||||
|
|
@ -170,9 +170,9 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *validationExt = VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
|
||||||
if (layersAvailable) {
|
if (layersAvailable) {
|
||||||
instanceCreateInfo.ppEnabledLayerNames = validationLayers;
|
instanceCreateInfo.ppEnabledLayerNames = validationLayers;
|
||||||
const char *validationExt = VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
|
|
||||||
instanceCreateInfo.enabledLayerCount = layerCount;
|
instanceCreateInfo.enabledLayerCount = layerCount;
|
||||||
instanceCreateInfo.enabledExtensionCount = 1;
|
instanceCreateInfo.enabledExtensionCount = 1;
|
||||||
instanceCreateInfo.ppEnabledExtensionNames = &validationExt;
|
instanceCreateInfo.ppEnabledExtensionNames = &validationExt;
|
||||||
|
|
|
||||||
|
|
@ -200,9 +200,9 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *validationExt = VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
|
||||||
if (layersAvailable) {
|
if (layersAvailable) {
|
||||||
instanceCreateInfo.ppEnabledLayerNames = validationLayers;
|
instanceCreateInfo.ppEnabledLayerNames = validationLayers;
|
||||||
const char *validationExt = VK_EXT_DEBUG_REPORT_EXTENSION_NAME;
|
|
||||||
instanceCreateInfo.enabledLayerCount = layerCount;
|
instanceCreateInfo.enabledLayerCount = layerCount;
|
||||||
instanceCreateInfo.enabledExtensionCount = 1;
|
instanceCreateInfo.enabledExtensionCount = 1;
|
||||||
instanceCreateInfo.ppEnabledExtensionNames = &validationExt;
|
instanceCreateInfo.ppEnabledExtensionNames = &validationExt;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue