void StoreTest::checkSupport (Context& context) const
{
- const VkFormatProperties3KHR formatProperties (context.getFormatProperties(m_format));
+ const VkFormatProperties3 formatProperties (context.getFormatProperties(m_format));
+ if (!m_declareImageFormatInShader && !(formatProperties.bufferFeatures & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR))
+ TCU_THROW(NotSupportedError, "Format not supported for unformatted stores via storage buffer");
+
if (!m_declareImageFormatInShader && !(formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR))
TCU_THROW(NotSupportedError, "Format not supported for unformatted stores via storage images");
flushAlloc(vk, device, buffers[1]->getAllocation());
flushAlloc(vk, device, buffers[2]->getAllocation());
- const VkBool32 computeFullSubgroups = subgroupProperties.subgroupSize <= 64 &&
- m_context.getSubgroupSizeControlFeatures().computeFullSubgroups;
+ const VkBool32 computeFullSubgroups = (subgroupProperties.subgroupSize <= 64) &&
- (m_context.getSubgroupSizeControlFeaturesEXT().computeFullSubgroups) &&
- (m_context.getSubgroupSizeControlPropertiesEXT().requiredSubgroupSizeStages & VK_SHADER_STAGE_COMPUTE_BIT);
++ (m_context.getSubgroupSizeControlFeatures().computeFullSubgroups) &&
++ (m_context.getSubgroupSizeControlProperties().requiredSubgroupSizeStages & VK_SHADER_STAGE_COMPUTE_BIT);
const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT subgroupSizeCreateInfo =
{