mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-17 16:50:34 +01:00
lvp: avoid advertising dmabuf support for kms_swrast
Lavapipe relies on true udmabuf support for dmabuf export allocation.
This changes aligns the behavior with both llvmpipe_allocate_memory_fd
and llvmpipe_import_memory_fd.
Fixes: 7d0a631f20 ("llvmpipe: export dmabuf caps for kms_swrast")
Reviewed-by: Lucas Fryzek <lfryzek@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40211>
This commit is contained in:
parent
bfde63e4d8
commit
5ab8c8a439
2 changed files with 4 additions and 4 deletions
|
|
@ -342,7 +342,7 @@ lvp_device_memory_type_for_handle_types(const struct lvp_physical_device *pdevic
|
|||
assert(!(types & ~(VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT |
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT)));
|
||||
|
||||
#ifdef HAVE_LIBDRM
|
||||
#if defined(HAVE_LIBDRM) && defined(HAVE_LINUX_UDMABUF_H)
|
||||
int dmabuf_bits = DRM_PRIME_CAP_EXPORT | DRM_PRIME_CAP_IMPORT;
|
||||
if ((pdevice->pscreen->caps.dmabuf & dmabuf_bits) == dmabuf_bits) {
|
||||
/* If we have full dma-buf support, everything is a dma-buf */
|
||||
|
|
@ -1441,7 +1441,7 @@ lvp_physical_device_init(struct lvp_physical_device *device,
|
|||
|
||||
device->max_images = device->pscreen->shader_caps[MESA_SHADER_FRAGMENT].max_shader_images;
|
||||
device->vk.supported_extensions = lvp_device_extensions_supported;
|
||||
#ifdef HAVE_LIBDRM
|
||||
#if defined(HAVE_LIBDRM) && defined(HAVE_LINUX_UDMABUF_H)
|
||||
int dmabuf_bits = DRM_PRIME_CAP_EXPORT | DRM_PRIME_CAP_IMPORT;
|
||||
int supported_dmabuf_bits = device->pscreen->caps.dmabuf;
|
||||
/* if import or export is supported then EXT_external_memory_dma_buf is supported */
|
||||
|
|
|
|||
|
|
@ -492,7 +492,7 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_GetPhysicalDeviceImageFormatProperties2(
|
|||
VkExternalMemoryHandleTypeFlags compat_flags = 0;
|
||||
|
||||
switch (external_info->handleType) {
|
||||
#ifdef HAVE_LIBDRM
|
||||
#if defined(HAVE_LIBDRM) && defined(HAVE_LINUX_UDMABUF_H)
|
||||
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: {
|
||||
int params = physical_device->pscreen->caps.dmabuf;
|
||||
flags = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT;
|
||||
|
|
@ -663,7 +663,7 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceExternalBufferProperties(
|
|||
VkExternalMemoryHandleTypeFlags export_flags = 0;
|
||||
VkExternalMemoryHandleTypeFlags compat_flags = 0;
|
||||
switch (pExternalBufferInfo->handleType) {
|
||||
#ifdef HAVE_LIBDRM
|
||||
#if defined(HAVE_LIBDRM) && defined(HAVE_LINUX_UDMABUF_H)
|
||||
case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: {
|
||||
VK_FROM_HANDLE(lvp_physical_device, physical_device, physicalDevice);
|
||||
int params = physical_device->pscreen->caps.dmabuf;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue