vknulldrv: Report valid VkPhysicalDeviceFeatures
Change-Id: I616f8e40d42abb812cc150d31b3a07d41d86b43c
diff --git a/vulkan/nulldrv/null_driver.cpp b/vulkan/nulldrv/null_driver.cpp
index b4e21db..8f47bd1 100644
--- a/vulkan/nulldrv/null_driver.cpp
+++ b/vulkan/nulldrv/null_driver.cpp
@@ -378,6 +378,67 @@
properties->memoryHeaps[0].flags = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT;
}
+void GetPhysicalDeviceFeatures(VkPhysicalDevice /*gpu*/,
+ VkPhysicalDeviceFeatures* features) {
+ *features = VkPhysicalDeviceFeatures{
+ VK_TRUE, // robustBufferAccess
+ VK_FALSE, // fullDrawIndexUint32
+ VK_FALSE, // imageCubeArray
+ VK_FALSE, // independentBlend
+ VK_FALSE, // geometryShader
+ VK_FALSE, // tessellationShader
+ VK_FALSE, // sampleRateShading
+ VK_FALSE, // dualSrcBlend
+ VK_FALSE, // logicOp
+ VK_FALSE, // multiDrawIndirect
+ VK_FALSE, // drawIndirectFirstInstance
+ VK_FALSE, // depthClamp
+ VK_FALSE, // depthBiasClamp
+ VK_FALSE, // fillModeNonSolid
+ VK_FALSE, // depthBounds
+ VK_FALSE, // wideLines
+ VK_FALSE, // largePoints
+ VK_FALSE, // alphaToOne
+ VK_FALSE, // multiViewport
+ VK_FALSE, // samplerAnisotropy
+ VK_FALSE, // textureCompressionETC2
+ VK_FALSE, // textureCompressionASTC_LDR
+ VK_FALSE, // textureCompressionBC
+ VK_FALSE, // occlusionQueryPrecise
+ VK_FALSE, // pipelineStatisticsQuery
+ VK_FALSE, // vertexPipelineStoresAndAtomics
+ VK_FALSE, // fragmentStoresAndAtomics
+ VK_FALSE, // shaderTessellationAndGeometryPointSize
+ VK_FALSE, // shaderImageGatherExtended
+ VK_FALSE, // shaderStorageImageExtendedFormats
+ VK_FALSE, // shaderStorageImageMultisample
+ VK_FALSE, // shaderStorageImageReadWithoutFormat
+ VK_FALSE, // shaderStorageImageWriteWithoutFormat
+ VK_FALSE, // shaderUniformBufferArrayDynamicIndexing
+ VK_FALSE, // shaderSampledImageArrayDynamicIndexing
+ VK_FALSE, // shaderStorageBufferArrayDynamicIndexing
+ VK_FALSE, // shaderStorageImageArrayDynamicIndexing
+ VK_FALSE, // shaderClipDistance
+ VK_FALSE, // shaderCullDistance
+ VK_FALSE, // shaderFloat64
+ VK_FALSE, // shaderInt64
+ VK_FALSE, // shaderInt16
+ VK_FALSE, // shaderResourceResidency
+ VK_FALSE, // shaderResourceMinLod
+ VK_FALSE, // sparseBinding
+ VK_FALSE, // sparseResidencyBuffer
+ VK_FALSE, // sparseResidencyImage2D
+ VK_FALSE, // sparseResidencyImage3D
+ VK_FALSE, // sparseResidency2Samples
+ VK_FALSE, // sparseResidency4Samples
+ VK_FALSE, // sparseResidency8Samples
+ VK_FALSE, // sparseResidency16Samples
+ VK_FALSE, // sparseResidencyAliased
+ VK_FALSE, // variableMultisampleRate
+ VK_FALSE, // inheritedQueries
+ };
+}
+
// -----------------------------------------------------------------------------
// Device
@@ -842,10 +903,6 @@
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-parameter"
-void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
- ALOGV("TODO: vk%s", __FUNCTION__);
-}
-
void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
ALOGV("TODO: vk%s", __FUNCTION__);
}