mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 18:08:40 +02: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> (cherry picked from commit5ab8c8a439) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40359>
This commit is contained in:
parent
60e29a07c0
commit
2b6e7f0be2
3 changed files with 5 additions and 5 deletions
|
|
@ -1554,7 +1554,7 @@
|
|||
"description": "lvp: avoid advertising dmabuf support for kms_swrast",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "7d0a631f20dc71efb1cc7adb57b2d162523fcd37",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -340,7 +340,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 */
|
||||
|
|
@ -1420,7 +1420,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