summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTapani Pälli <tapani.palli@intel.com>2019-01-16 14:15:28 +0200
committerTapani Pälli <tapani.palli@intel.com>2019-01-16 14:45:27 +0200
commitad6f2db44978f57017a07d196b5c0721c72a6b98 (patch)
treec590f3e52c9b9ed5953f6cad5876c19bb74ec680
parent5b51d754d00dfd7d8f4069aca4619f3b056c4eac (diff)
downloadmesa-ahw-fix.tar.gz
anv: do not advertise AHW support if extension not enabledahw-fix
Fixes following failing vk-gl-cts cases on Linux desktop: dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.info dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.info dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.info dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.info Fixes: 517103abf1c "anv/android: add ahardwarebuffer external memory properties" Reported-by: Juan A. Suarez <jasuarez@igalia.com> Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
-rw-r--r--src/intel/vulkan/anv_formats.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c
index 124d76c0e9f..7e9ae1ab4c4 100644
--- a/src/intel/vulkan/anv_formats.c
+++ b/src/intel/vulkan/anv_formats.c
@@ -1044,7 +1044,10 @@ VkResult anv_GetPhysicalDeviceImageFormatProperties2(
if (result != VK_SUCCESS)
goto fail;
- if (android_usage) {
+ bool ahw_supported =
+ physical_device->supported_extensions.ANDROID_external_memory_android_hardware_buffer;
+
+ if (ahw_supported && android_usage) {
android_usage->androidHardwareBufferUsage =
anv_ahw_usage_from_vk_usage(base_info->flags,
base_info->usage);
@@ -1067,9 +1070,11 @@ VkResult anv_GetPhysicalDeviceImageFormatProperties2(
external_props->externalMemoryProperties = prime_fd_props;
break;
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID:
- if (external_props)
+ if (ahw_supported && external_props) {
external_props->externalMemoryProperties = android_image_props;
- break;
+ break;
+ }
+ /* fallthrough if ahw not supported */
default:
/* From the Vulkan 1.0.42 spec:
*
@@ -1147,15 +1152,19 @@ void anv_GetPhysicalDeviceExternalBufferProperties(
if (pExternalBufferInfo->flags)
goto unsupported;
+ ANV_FROM_HANDLE(anv_physical_device, physical_device, physicalDevice);
+
switch (pExternalBufferInfo->handleType) {
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT:
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT:
pExternalBufferProperties->externalMemoryProperties = prime_fd_props;
return;
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID:
- pExternalBufferProperties->externalMemoryProperties =
- android_buffer_props;
- return;
+ if (physical_device->supported_extensions.ANDROID_external_memory_android_hardware_buffer) {
+ pExternalBufferProperties->externalMemoryProperties = android_buffer_props;
+ return;
+ }
+ /* fallthrough if ahw not supported */
default:
goto unsupported;
}