nextPtr = &physicalDeviceScalarBlockLayoutFeaturesEXT.pNext;
}
+ vk::VkPhysicalDeviceTimelineSemaphoreFeaturesKHR physicalDeviceTimelineSemaphoreFeaturesKHR;
+ deMemset(&physicalDeviceTimelineSemaphoreFeaturesKHR, 0, sizeof(physicalDeviceTimelineSemaphoreFeaturesKHR));
+
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_timeline_semaphore")) )
+ {
+ physicalDeviceTimelineSemaphoreFeaturesKHR.sType = getStructureType<VkPhysicalDeviceTimelineSemaphoreFeaturesKHR>();
+ *nextPtr = &physicalDeviceTimelineSemaphoreFeaturesKHR;
+ nextPtr = &physicalDeviceTimelineSemaphoreFeaturesKHR.pNext;
+ }
+
vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR physicalDeviceUniformBufferStandardLayoutFeaturesKHR;
deMemset(&physicalDeviceUniformBufferStandardLayoutFeaturesKHR, 0, sizeof(physicalDeviceUniformBufferStandardLayoutFeaturesKHR));
}
}
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_timeline_semaphore")) )
+ {
+ if ( physicalDeviceTimelineSemaphoreFeaturesKHR.timelineSemaphore == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature timelineSemaphore not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
return result;
}
VkPhysicalDeviceScalarBlockLayoutFeaturesEXT scalarBlockLayout REQUIREMENTS ( VK_EXT_scalar_block_layout )
VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR uniformBufferStandardLayout REQUIREMENTS ( VK_KHR_uniform_buffer_standard_layout )
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR pipelineExecutableInfo REQUIREMENTS ( VK_KHR_pipeline_executable_properties )
+VkPhysicalDeviceTimelineSemaphoreFeaturesKHR timelineSemaphore REQUIREMENTS ( VK_KHR_timeline_semaphore )