|
@@ -818,6 +818,11 @@ Error GrManagerImpl::initDevice()
|
|
|
m_extensions |= VulkanExtensions::kEXT_host_query_reset;
|
|
m_extensions |= VulkanExtensions::kEXT_host_query_reset;
|
|
|
extensionsToEnable[extensionsToEnableCount++] = extensionName.cstr();
|
|
extensionsToEnable[extensionsToEnableCount++] = extensionName.cstr();
|
|
|
}
|
|
}
|
|
|
|
|
+ else if(extensionName == VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)
|
|
|
|
|
+ {
|
|
|
|
|
+ m_extensions |= VulkanExtensions::kKHR_fragment_shader_barycentric;
|
|
|
|
|
+ extensionsToEnable[extensionsToEnableCount++] = extensionName.cstr();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
ANKI_VK_LOGI("Will enable the following device extensions:");
|
|
ANKI_VK_LOGI("Will enable the following device extensions:");
|
|
@@ -1160,6 +1165,25 @@ Error GrManagerImpl::initDevice()
|
|
|
return Error::kFunctionFailed;
|
|
return Error::kFunctionFailed;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // Barycentrics
|
|
|
|
|
+ VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR baryFeatures = {};
|
|
|
|
|
+ if(!!(m_extensions & VulkanExtensions::kKHR_fragment_shader_barycentric))
|
|
|
|
|
+ {
|
|
|
|
|
+ baryFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
|
|
|
|
|
+ getPhysicalDevicaFeatures2(baryFeatures);
|
|
|
|
|
+
|
|
|
|
|
+ if(baryFeatures.fragmentShaderBarycentric == false)
|
|
|
|
|
+ {
|
|
|
|
|
+ ANKI_VK_LOGE("VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR::fragmentShaderBarycentric is false");
|
|
|
|
|
+ return Error::kFunctionFailed;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ baryFeatures.pNext = const_cast<void*>(ci.pNext);
|
|
|
|
|
+ ci.pNext = &baryFeatures;
|
|
|
|
|
+
|
|
|
|
|
+ m_capabilities.m_barycentrics = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
VkPhysicalDeviceMaintenance4FeaturesKHR maintenance4Features = {};
|
|
VkPhysicalDeviceMaintenance4FeaturesKHR maintenance4Features = {};
|
|
|
if(!!(m_extensions & VulkanExtensions::kKHR_maintenance_4))
|
|
if(!!(m_extensions & VulkanExtensions::kKHR_maintenance_4))
|
|
|
{
|
|
{
|