const char*const* ppEnabledExtensionNames;
} VkInstanceCreateInfo;
+typedef struct {
+ bool32_t robustBufferAccess;
+ bool32_t fullDrawIndexUint32;
+ bool32_t imageCubeArray;
+ bool32_t independentBlend;
+ bool32_t geometryShader;
+ bool32_t tessellationShader;
+ bool32_t sampleRateShading;
+ bool32_t dualSourceBlend;
+ bool32_t logicOp;
+ bool32_t instancedDrawIndirect;
+ bool32_t depthClip;
+ bool32_t depthBiasClamp;
+ bool32_t fillModeNonSolid;
+ bool32_t depthBounds;
+ bool32_t wideLines;
+ bool32_t largePoints;
+ bool32_t textureCompressionETC2;
+ bool32_t textureCompressionASTC_LDR;
+ bool32_t textureCompressionBC;
+ bool32_t pipelineStatisticsQuery;
+ bool32_t vertexSideEffects;
+ bool32_t tessellationSideEffects;
+ bool32_t geometrySideEffects;
+ bool32_t fragmentSideEffects;
+ bool32_t shaderTessellationPointSize;
+ bool32_t shaderGeometryPointSize;
+ bool32_t shaderTextureGatherExtended;
+ bool32_t shaderStorageImageExtendedFormats;
+ bool32_t shaderStorageImageMultisample;
+ bool32_t shaderStorageBufferArrayConstantIndexing;
+ bool32_t shaderStorageImageArrayConstantIndexing;
+ bool32_t shaderUniformBufferArrayDynamicIndexing;
+ bool32_t shaderSampledImageArrayDynamicIndexing;
+ bool32_t shaderStorageBufferArrayDynamicIndexing;
+ bool32_t shaderStorageImageArrayDynamicIndexing;
+ bool32_t shaderClipDistance;
+ bool32_t shaderCullDistance;
+ bool32_t shaderFloat64;
+ bool32_t shaderInt64;
+ bool32_t shaderFloat16;
+ bool32_t shaderInt16;
+} VkPhysicalDeviceFeatures;
+
typedef struct {
VkFormatFeatureFlags linearTilingFeatures;
VkFormatFeatureFlags optimalTilingFeatures;
typedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance);
typedef VkResult (VKAPI *PFN_vkDestroyInstance)(VkInstance instance);
typedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
+typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceInfo)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceInfoType infoType, size_t* pDataSize, void* pData);
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceFormatInfo)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatInfo);
typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
uint32_t* pPhysicalDeviceCount,
VkPhysicalDevice* pPhysicalDevices);
+VkResult VKAPI vkGetPhysicalDeviceFeatures(
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceFeatures* pFeatures);
+
VkResult VKAPI vkGetPhysicalDeviceInfo(
VkPhysicalDevice physicalDevice,
VkPhysicalDeviceInfoType infoType,
return VK_SUCCESS;
}
+VkResult anv_GetPhysicalDeviceFeatures(
+ VkPhysicalDevice physicalDevice,
+ VkPhysicalDeviceFeatures* pFeatures)
+{
+ anv_finishme("Get correct values for PhysicalDeviceFeatures");
+
+ *pFeatures = (VkPhysicalDeviceFeatures) {
+ .robustBufferAccess = false,
+ .fullDrawIndexUint32 = false,
+ .imageCubeArray = false,
+ .independentBlend = false,
+ .geometryShader = true,
+ .tessellationShader = false,
+ .sampleRateShading = false,
+ .dualSourceBlend = true,
+ .logicOp = true,
+ .instancedDrawIndirect = true,
+ .depthClip = false,
+ .depthBiasClamp = false,
+ .fillModeNonSolid = true,
+ .depthBounds = false,
+ .wideLines = true,
+ .largePoints = true,
+ .textureCompressionETC2 = true,
+ .textureCompressionASTC_LDR = true,
+ .textureCompressionBC = true,
+ .pipelineStatisticsQuery = true,
+ .vertexSideEffects = false,
+ .tessellationSideEffects = false,
+ .geometrySideEffects = false,
+ .fragmentSideEffects = false,
+ .shaderTessellationPointSize = false,
+ .shaderGeometryPointSize = true,
+ .shaderTextureGatherExtended = true,
+ .shaderStorageImageExtendedFormats = false,
+ .shaderStorageImageMultisample = false,
+ .shaderStorageBufferArrayConstantIndexing = false,
+ .shaderStorageImageArrayConstantIndexing = false,
+ .shaderUniformBufferArrayDynamicIndexing = true,
+ .shaderSampledImageArrayDynamicIndexing = false,
+ .shaderStorageBufferArrayDynamicIndexing = false,
+ .shaderStorageImageArrayDynamicIndexing = false,
+ .shaderClipDistance = false,
+ .shaderCullDistance = false,
+ .shaderFloat64 = false,
+ .shaderInt64 = false,
+ .shaderFloat16 = false,
+ .shaderInt16 = false,
+ };
+
+ return VK_SUCCESS;
+}
+
VkResult anv_GetPhysicalDeviceInfo(
VkPhysicalDevice physicalDevice,
VkPhysicalDeviceInfoType infoType,