my_device_data->deviceMap[device].pPhysicalDevice = pPhysicalDevice;
pPhysicalDevice->pDevice = &my_device_data->deviceMap[device];
} else {
+ // TBD: Should we leave error in (since Swapchain really needs this
+ // link)?
log_msg(my_instance_data->report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
(uint64_t)physicalDevice , __LINE__, SWAPCHAIN_INVALID_HANDLE, "Swapchain",
"vkCreateDevice() called with a non-valid VkPhysicalDevice.");
// Free memory that was allocated for/by this SwpPhysicalDevice:
SwpPhysicalDevice *pPhysicalDevice = it->second;
- free(pPhysicalDevice->pSurfaceFormats);
- free(pPhysicalDevice->pPresentModes);
+ if (pPhysicalDevice) {
+ free(pPhysicalDevice->pSurfaceFormats);
+ free(pPhysicalDevice->pPresentModes);
+ }
// Erase the SwpPhysicalDevice's from the my_data->physicalDeviceMap (which
// are simply pointed to by the SwpInstance):
VkBool32 result = VK_FALSE;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the platform
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->mirSurfaceExtensionEnabled) {
+
+ // Validate that the platform extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->mirSurfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkBool32 result = VK_FALSE;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the platform
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->waylandSurfaceExtensionEnabled) {
+
+ // Validate that the platform extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->waylandSurfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkBool32 result = VK_FALSE;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the platform
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->win32SurfaceExtensionEnabled) {
+
+ // Validate that the platform extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->win32SurfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkBool32 result = VK_FALSE;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the platform
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->xcbSurfaceExtensionEnabled) {
+
+ // Validate that the platform extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->xcbSurfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkBool32 result = VK_FALSE;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the platform
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->xlibSurfaceExtensionEnabled) {
+
+ // Validate that the platform extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->xlibSurfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
- // Validate that a valid VkPhysicalDevice was used:
- SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice, "VkPhysicalDevice");
- }
-
- if (VK_TRUE == skipCall)
- return VK_ERROR_VALIDATION_FAILED_EXT;
-
- layer_data *my_device_data = get_my_data_ptr(get_dispatch_key(*pDevice), layer_data_map);
- // Call down the call chain:
- result = my_device_data->device_dispatch_table->CreateDevice(
- physicalDevice, pCreateInfo, pAllocator, pDevice);
- if (result == VK_SUCCESS) {
- // Since it succeeded, do layer-specific work:
- layer_data *my_instance_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
- my_device_data->report_data = layer_debug_report_create_device(my_instance_data->report_data, *pDevice);
- createDeviceRegisterExtensions(physicalDevice, pCreateInfo, *pDevice);
+ if (VK_FALSE == skipCall) {
+ layer_data *my_device_data = get_my_data_ptr(get_dispatch_key(*pDevice), layer_data_map);
+ // Call down the call chain:
+ result = my_device_data->device_dispatch_table->CreateDevice(
+ physicalDevice, pCreateInfo, pAllocator, pDevice);
+ if (result == VK_SUCCESS) {
+ // Since it succeeded, do layer-specific work:
+ layer_data *my_instance_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
+ my_device_data->report_data = layer_debug_report_create_device(my_instance_data->report_data, *pDevice);
+ createDeviceRegisterExtensions(physicalDevice, pCreateInfo, *pDevice);
+ }
}
return result;
}
VkResult result = VK_SUCCESS;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the instance
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
+
+ // Validate that the surface extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkResult result = VK_SUCCESS;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the instance
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
+
+ // Validate that the surface extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkResult result = VK_SUCCESS;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the instance
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
+
+ // Validate that the surface extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",
VkResult result = VK_SUCCESS;
VkBool32 skipCall = VK_FALSE;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);
-
- // Validate that a valid VkPhysicalDevice was used, and that the instance
- // extension was enabled:
SwpPhysicalDevice *pPhysicalDevice = &my_data->physicalDeviceMap[physicalDevice];
- if (!pPhysicalDevice || !pPhysicalDevice->pInstance) {
- skipCall |= LOG_ERROR_NON_VALID_OBJ(VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
- physicalDevice,
- "VkPhysicalDevice");
- } else if (!pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
+
+ // Validate that the surface extension was enabled:
+ if (pPhysicalDevice && pPhysicalDevice->pInstance &&
+ !pPhysicalDevice->pInstance->surfaceExtensionEnabled) {
skipCall |= LOG_ERROR(VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
pPhysicalDevice->pInstance,
"VkInstance",