Mesa (main): zink: simplify modifier ifdefs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 13 15:11:18 UTC 2021


Module: Mesa
Branch: main
Commit: d29c086fb9d2d75208f407979c1c62a255addcb4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d29c086fb9d2d75208f407979c1c62a255addcb4

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Tue Jul 13 08:55:27 2021 -0400

zink: simplify modifier ifdefs

these are the only two defines referenced, so they can be defined to 0
for platforms that don't support modifiers in order to remove a ton of
ifdefs and make the code more readable

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11847>

---

 src/gallium/drivers/zink/zink_resource.c | 39 ++++----------------------------
 1 file changed, 5 insertions(+), 34 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c
index 18a2715dada..add656aa9ff 100644
--- a/src/gallium/drivers/zink/zink_resource.c
+++ b/src/gallium/drivers/zink/zink_resource.c
@@ -51,6 +51,10 @@
 
 #ifdef ZINK_USE_DMABUF
 #include "drm-uapi/drm_fourcc.h"
+#else
+/* these won't actually be used */
+#define DRM_FORMAT_MOD_INVALID 0
+#define DRM_FORMAT_MOD_LINEAR 0
 #endif
 
 static void
@@ -243,10 +247,8 @@ check_ici(struct zink_screen *screen, VkImageCreateInfo *ici, uint64_t modifier)
 {
    VkImageFormatProperties image_props;
    VkResult ret;
-#ifdef ZINK_USE_DMABUF
    assert(modifier == DRM_FORMAT_MOD_INVALID ||
           (screen->vk.GetPhysicalDeviceImageFormatProperties2 && screen->info.have_EXT_image_drm_format_modifier));
-#endif
    if (screen->vk.GetPhysicalDeviceImageFormatProperties2) {
       VkImageFormatProperties2 props2 = {0};
       props2.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
@@ -258,7 +260,6 @@ check_ici(struct zink_screen *screen, VkImageCreateInfo *ici, uint64_t modifier)
       info.usage = ici->usage;
       info.flags = ici->flags;
 
-#ifdef ZINK_USE_DMABUF
       VkPhysicalDeviceImageDrmFormatModifierInfoEXT mod_info;
       if (modifier != DRM_FORMAT_MOD_INVALID) {
          mod_info.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT;
@@ -268,7 +269,6 @@ check_ici(struct zink_screen *screen, VkImageCreateInfo *ici, uint64_t modifier)
          mod_info.queueFamilyIndexCount = 0;
          info.pNext = &mod_info;
       }
-#endif
       ret = screen->vk.GetPhysicalDeviceImageFormatProperties2(screen->pdev, &info, &props2);
       image_props = props2.imageFormatProperties;
    } else
@@ -339,7 +339,6 @@ static VkImageUsageFlags
 get_image_usage(struct zink_screen *screen, VkImageCreateInfo *ici, const struct pipe_resource *templ, unsigned bind, unsigned modifiers_count, const uint64_t *modifiers, uint64_t *mod)
 {
    VkImageTiling tiling = ici->tiling;
-#ifdef ZINK_USE_DMABUF
    *mod = DRM_FORMAT_MOD_INVALID;
    if (modifiers_count) {
       bool have_linear = false;
@@ -373,7 +372,6 @@ get_image_usage(struct zink_screen *screen, VkImageCreateInfo *ici, const struct
          }
       }
    } else
-#endif
    {
       VkFormatProperties props = screen->format_props[templ->format];
       VkFormatFeatureFlags feats = tiling == VK_IMAGE_TILING_LINEAR ? props.linearTilingFeatures : props.optimalTilingFeatures;
@@ -384,9 +382,7 @@ get_image_usage(struct zink_screen *screen, VkImageCreateInfo *ici, const struct
             return usage;
       }
    }
-#ifdef ZINK_USE_DMABUF
    *mod = DRM_FORMAT_MOD_INVALID;
-#endif
    return 0;
 }
 
@@ -467,11 +463,7 @@ create_ici(struct zink_screen *screen, VkImageCreateInfo *ici, const struct pipe
 
    bool first = true;
    bool tried[2] = {0};
-#ifdef ZINK_USE_DMABUF
    uint64_t mod = DRM_FORMAT_MOD_INVALID;
-#else
-   uint64_t mod = 0;
-#endif
    while (!ici->usage) {
       if (!first) {
          switch (ici->tiling) {
@@ -485,11 +477,7 @@ create_ici(struct zink_screen *screen, VkImageCreateInfo *ici, const struct pipe
          case VK_IMAGE_TILING_LINEAR:
             if (bind & PIPE_BIND_LINEAR) {
                *success = false;
-#ifdef ZINK_USE_DMABUF
                return DRM_FORMAT_MOD_INVALID;
-#else
-               return 0;
-#endif
             }
             ici->tiling = VK_IMAGE_TILING_OPTIMAL;
             break;
@@ -498,11 +486,7 @@ create_ici(struct zink_screen *screen, VkImageCreateInfo *ici, const struct pipe
          }
          if (tried[ici->tiling]) {
             *success = false;
-#ifdef ZINK_USE_DMABUF
                return DRM_FORMAT_MOD_INVALID;
-#else
-               return 0;
-#endif
          }
       }
       ici->usage = get_image_usage(screen, ici, templ, bind, modifiers_count, modifiers, &mod);
@@ -551,21 +535,15 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
       obj->is_buffer = true;
       obj->transfer_dst = true;
    } else {
-#ifdef ZINK_USE_DMABUF
       bool winsys_modifier = shared && whandle && whandle->modifier != DRM_FORMAT_MOD_INVALID;
-#else
-      bool winsys_modifier = false;
-#endif
       const uint64_t *ici_modifiers = winsys_modifier ? &whandle->modifier : modifiers;
       unsigned ici_modifier_count = winsys_modifier ? 1 : modifiers_count;
       bool success = false;
       VkImageCreateInfo ici = {0};
       uint64_t mod = create_ici(screen, &ici, templ, templ->bind, ici_modifier_count, ici_modifiers, &success);
       VkExternalMemoryImageCreateInfo emici = {0};
-#ifdef ZINK_USE_DMABUF
       VkImageDrmFormatModifierExplicitCreateInfoEXT idfmeci = {0};
       VkImageDrmFormatModifierListCreateInfoEXT idfmlci;
-#endif
       if (!success)
          goto fail1;
 
@@ -574,7 +552,6 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
          emici.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT;
          ici.pNext = &emici;
 
-#ifdef ZINK_USE_DMABUF
          assert(ici.tiling != VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT || mod != DRM_FORMAT_MOD_INVALID);
          if (winsys_modifier && ici.tiling == VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT) {
             assert(mod == whandle->modifier);
@@ -604,9 +581,7 @@ resource_object_create(struct zink_screen *screen, const struct pipe_resource *t
             idfmlci.drmFormatModifierCount = 1;
             idfmlci.pDrmFormatModifiers = &mod;
             ici.pNext = &idfmlci;
-         } else
-#endif
-         if (ici.tiling == VK_IMAGE_TILING_OPTIMAL) {
+         } else if (ici.tiling == VK_IMAGE_TILING_OPTIMAL) {
             // TODO: remove for wsi
             ici.pNext = NULL;
             scanout = false;
@@ -892,7 +867,6 @@ zink_resource_get_param(struct pipe_screen *pscreen, struct pipe_context *pctx,
    }
 
    case PIPE_RESOURCE_PARAM_MODIFIER: {
-#ifdef ZINK_USE_DMABUF
       *value = DRM_FORMAT_MOD_INVALID;
       if (!screen->info.have_EXT_image_drm_format_modifier)
          return false;
@@ -902,9 +876,6 @@ zink_resource_get_param(struct pipe_screen *pscreen, struct pipe_context *pctx,
       if (screen->vk.GetImageDrmFormatModifierPropertiesEXT(screen->dev, obj->image, &prop) == VK_SUCCESS)
          *value = prop.drmFormatModifier;
       break;
-#else
-      return false;
-#endif
    }
 
    case PIPE_RESOURCE_PARAM_LAYER_STRIDE: {



More information about the mesa-commit mailing list