From 732beb96411472ddb7bddd4b39b26b660cf019e6 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 19 Jan 2023 13:22:30 -0500 Subject: [PATCH] zink: don't add dmabuf export type if dmabuf isn't supported avoid trying to create dmabuf-exportable resources too cc: mesa-stable Part-of: (cherry picked from commit 01d2e7afce562013a8cb9b6b9fd1190e317e896a) --- .pick_status.json | 2 +- .../drivers/zink/ci/zink-lvp-fails.txt | 27 ------------------- src/gallium/drivers/zink/zink_resource.c | 5 +++- 3 files changed, 5 insertions(+), 29 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index ca3daee945b..fd6f6872d6a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -4144,7 +4144,7 @@ "description": "zink: don't add dmabuf export type if dmabuf isn't supported", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt index e61edddab14..ed5c2c92282 100644 --- a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt @@ -156,33 +156,6 @@ spec@ext_framebuffer_multisample@interpolation 4 centroid-disabled,Fail spec@ext_framebuffer_multisample@interpolation 4 centroid-edges,Fail spec@ext_framebuffer_multisample@interpolation 4 non-centroid-deriv-disabled,Fail spec@ext_framebuffer_multisample@interpolation 4 non-centroid-disabled,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-intel_external_sampler_only,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-invalid_attributes,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-invalid_hints,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-missing_attributes,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-ownership_transfer,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-reimport-bug,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_argb8888,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_ayuv,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_nv12,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_p010,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_p012,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_p016,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_uyvy,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_xrgb8888,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_xyuv,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y210,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y212,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y216,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y410,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y412,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_y416,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuv420,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yuyv,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-sample_yvu420,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-transcode-nv12-as-r8-gr88,Fail -spec@ext_image_dma_buf_import@ext_image_dma_buf_import-unsupported_format,Fail spec@ext_packed_float@query-rgba-signed-components,Fail spec@ext_texture_swizzle@depth_texture_mode_and_swizzle,Fail spec@intel_performance_query@intel_performance_query-issue_2235,Fail diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 84fed5c3482..cb21502e6db 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -633,9 +633,12 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t #else external = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT; #endif - } else { + } else if (screen->info.have_EXT_external_memory_dma_buf) { external = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT; export_types |= VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT; + } else { + /* can't export anything, fail early */ + return NULL; } }