return VK_ERROR_EXTENSION_NOT_PRESENT;
}
+unsigned anv_ahb_format_for_vk_format(VkFormat vk_format)
+{
+ return 0;
+}
+
VkResult
anv_import_ahw_memory(VkDevice device_h,
struct anv_device_memory *mem)
static const VkExternalMemoryProperties android_image_props = {
- .externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT |
- VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT |
+ /* VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT will be set dynamically */
+ .externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT |
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
.exportFromImportedHandleTypes =
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
*/
if (ahw_supported && external_props) {
external_props->externalMemoryProperties = android_image_props;
+ if (anv_ahb_format_for_vk_format(base_info->format)) {
+ external_props->externalMemoryProperties.externalMemoryFeatures |=
+ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT;
+ }
break;
}
FALLTHROUGH; /* If ahw not supported */
struct anv_image *image,
const VkNativeBufferANDROID *gralloc_info);
+unsigned anv_ahb_format_for_vk_format(VkFormat vk_format);
+
VkResult anv_import_ahw_memory(VkDevice device_h,
struct anv_device_memory *mem,
const VkImportAndroidHardwareBufferInfoANDROID *info);
return VK_ERROR_EXTENSION_NOT_PRESENT;
}
+unsigned anv_ahb_format_for_vk_format(VkFormat vk_format)
+{
+ return 0;
+}
+
VkResult
anv_import_ahw_memory(VkDevice device_h,
struct anv_device_memory *mem,
static const VkExternalMemoryProperties android_image_props = {
- .externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT |
- VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT |
+ /* VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT will be set dynamically */
+ .externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT |
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
.exportFromImportedHandleTypes =
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
*/
if (ahw_supported && external_props) {
external_props->externalMemoryProperties = android_image_props;
+ if (anv_ahb_format_for_vk_format(base_info->format)) {
+ external_props->externalMemoryProperties.externalMemoryFeatures |=
+ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT;
+ }
break;
}
FALLTHROUGH; /* If ahw not supported */
extern VkFormat
vk_format_from_android(unsigned android_format, unsigned android_usage);
-unsigned anv_ahb_format_for_vk_format(VkFormat vk_format);
-
static inline struct isl_swizzle
anv_swizzle_for_render(struct isl_swizzle swizzle)
{