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