coreFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
void** nextPtr = &coreFeatures.pNext;
+ vk::VkPhysicalDevice16BitStorageFeaturesKHR physicalDevice16BitStorageFeaturesKHR;
+ deMemset(&physicalDevice16BitStorageFeaturesKHR, 0, sizeof(physicalDevice16BitStorageFeaturesKHR));
+
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_16bit_storage")) )
+ {
+ physicalDevice16BitStorageFeaturesKHR.sType = getStructureType<VkPhysicalDevice16BitStorageFeaturesKHR>();
+ *nextPtr = &physicalDevice16BitStorageFeaturesKHR;
+ nextPtr = &physicalDevice16BitStorageFeaturesKHR.pNext;
+ }
+
vk::VkPhysicalDevice8BitStorageFeaturesKHR physicalDevice8BitStorageFeaturesKHR;
deMemset(&physicalDevice8BitStorageFeaturesKHR, 0, sizeof(physicalDevice8BitStorageFeaturesKHR));
}
}
+ if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_16bit_storage")) )
+ {
+ if ( physicalDevice16BitStorageFeaturesKHR.storageBuffer16BitAccess == VK_FALSE )
+ {
+ log << tcu::TestLog::Message << "Mandatory feature storageBuffer16BitAccess not supported" << tcu::TestLog::EndMessage;
+ result = false;
+ }
+ }
+
if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_float16_int8")) )
{
if ( ( physicalDeviceShaderFloat16Int8Features.shaderFloat16 == VK_FALSE ) && ( physicalDeviceShaderFloat16Int8Features.shaderInt8 == VK_FALSE ) )
VkPhysicalDeviceFragmentDensityMapFeaturesEXT FEATURES ( fragmentDensityMap ) REQUIREMENTS ( VK_EXT_fragment_density_map )
VkPhysicalDeviceShaderClockFeaturesKHR FEATURES ( shaderSubgroupClock ) REQUIREMENTS ( VK_KHR_shader_clock )
VkPhysicalDeviceShaderAtomicInt64FeaturesKHR FEATURES ( shaderBufferInt64Atomics ) REQUIREMENTS ( VK_KHR_shader_atomic_int64 )
+VkPhysicalDevice16BitStorageFeaturesKHR FEATURES ( storageBuffer16BitAccess ) REQUIREMENTS ( VK_KHR_16bit_storage )
VkPhysicalDeviceShaderFloat16Int8Features FEATURES ( shaderFloat16 shaderInt8 ) REQUIREMENTS ( VK_KHR_shader_float16_int8 )
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT FEATURES ( fragmentShaderSampleInterlock fragmentShaderPixelInterlock fragmentShaderShadingRateInterlock ) REQUIREMENTS ( VK_EXT_fragment_shader_interlock )
VkPhysicalDeviceLineRasterizationFeaturesEXT FEATURES ( rectangularLines bresenhamLines smoothLines stippledRectangularLines stippledBresenhamLines stippledSmoothLines ) REQUIREMENTS ( VK_EXT_line_rasterization )