google / amber

Amber is a multi-API shader test framework
Apache License 2.0
188 stars 63 forks source link

Add support check for all features listed in the Amberscript documentation #953

Closed ilkkasaa closed 3 years ago

ilkkasaa commented 3 years ago

Some of the features provided by extensions are not checked if they are supported or not on the device. If for example the feature Float16Int8Features.shaderFloat16 is requested, but it's not supported by the device, Amber doesn't print any meaningful message. The vkCreateDevice will just fail and Amber doesn't tell any reason why it failed.

All of the device features listed in amber_script.md should be checked if they are supported when they are requested:

Currently each of the items in VkPhysicalDeviceFeatures are recognized along with:

VariablePointerFeatures.variablePointers
VariablePointerFeatures.variablePointersStorageBuffer
Float16Int8Features.shaderFloat16
Float16Int8Features.shaderInt8
Storage8BitFeatures.storageBuffer8BitAccess
Storage8BitFeatures.uniformAndStorageBuffer8BitAccess
Storage8BitFeatures.storagePushConstant8
Storage16BitFeatures.storageBuffer16BitAccess
Storage16BitFeatures.uniformAndStorageBuffer16BitAccess
Storage16BitFeatures.storagePushConstant16
Storage16BitFeatures.storageInputOutput16
SubgroupSizeControl.subgroupSizeControl
SubgroupSizeControl.computeFullSubgroups