context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
- VkPhysicalDeviceFeatures2 features;
- VkPhysicalDeviceDescriptorIndexingFeaturesEXT indexingFeatures;
- VkPhysicalDeviceInlineUniformBlockFeaturesEXT inlineUniformFeatures;
- getNeededFeatures(context, features, inlineUniformFeatures, indexingFeatures);
+ // Get needed features.
+ auto features = context.getDeviceFeatures2();
+ auto indexingFeatures = context.getDescriptorIndexingFeatures();
- auto inlineUniformFeatures = context.getInlineUniformBlockFeatures();
++ auto inlineUniformFeatures = context.getInlineUniformBlockFeaturesEXT();
+ // Check needed properties and features
if (m_data.stage == STAGE_VERTEX && !features.features.vertexPipelineStoresAndAtomics)
{
- return TCU_THROW(NotSupportedError, "Vertex pipeline stores and atomics not supported");
+ TCU_THROW(NotSupportedError, "Vertex pipeline stores and atomics not supported");
}
- else if (m_data.stage == STAGE_RAYGEN &&
- !context.isDeviceFunctionalitySupported("VK_NV_ray_tracing"))
+ else if (m_data.stage == STAGE_RAYGEN)
{
- return TCU_THROW(NotSupportedError, "Ray tracing is not supported");
+ context.requireDeviceFunctionality("VK_NV_ray_tracing");
}
+
if ((m_data.indexType == INDEX_TYPE_PUSHCONSTANT ||
m_data.indexType == INDEX_TYPE_DEPENDENT ||
m_data.indexType == INDEX_TYPE_RUNTIME_SIZE) &&
RandomLayout randomLayout(m_data.numDescriptorSets);
generateRandomLayout(randomLayout, m_data);
-
+ // Get needed properties.
VkPhysicalDeviceProperties2 properties;
deMemset(&properties, 0, sizeof(properties));
properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
properties.pNext = &rayTracingProperties;
}
- m_context.getInstanceInterface().getPhysicalDeviceProperties2(m_context.getPhysicalDevice(), &properties);
+ vki.getPhysicalDeviceProperties2(physicalDevice, &properties);
- VkPhysicalDeviceFeatures2 features;
- VkPhysicalDeviceInlineUniformBlockFeaturesEXT inlineUniformFeatures;
- VkPhysicalDeviceDescriptorIndexingFeaturesEXT indexingFeatures;
- getNeededFeatures(m_context, features, inlineUniformFeatures, indexingFeatures);
+ // Get needed features.
+ auto descriptorIndexingSupported = m_context.isDeviceFunctionalitySupported("VK_EXT_descriptor_indexing");
+ auto indexingFeatures = m_context.getDescriptorIndexingFeatures();
- auto inlineUniformFeatures = m_context.getInlineUniformBlockFeatures();
++ auto inlineUniformFeatures = m_context.getInlineUniformBlockFeaturesEXT();
deRandom rnd;
deRandom_init(&rnd, m_data.seed);