panfrost: Replace the usage of PIPE_BIND_* with PAN_BIND_*
authorYonggang Luo <luoyonggang@gmail.com>
Thu, 1 Jun 2023 16:02:48 +0000 (00:02 +0800)
committerMarge Bot <emma+marge@anholt.net>
Sat, 10 Jun 2023 14:54:11 +0000 (14:54 +0000)
PIPE_BIND_* belongs to gallium, do not use it in panvk

As pan_format.h also used ban panfrost gallium driver, so static_assert it equal

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23526>

src/gallium/drivers/panfrost/pan_screen.c
src/panfrost/lib/pan_format.c
src/panfrost/lib/pan_format.h
src/panfrost/vulkan/panvk_formats.c

index 25e5ca9..fa468d1 100644 (file)
@@ -529,6 +529,18 @@ panfrost_get_paramf(struct pipe_screen *screen, enum pipe_capf param)
    }
 }
 
+static uint32_t
+pipe_to_pan_bind_flags(uint32_t pipe_bind_flags)
+{
+   static_assert(PIPE_BIND_DEPTH_STENCIL == PAN_BIND_DEPTH_STENCIL, "");
+   static_assert(PIPE_BIND_RENDER_TARGET == PAN_BIND_RENDER_TARGET, "");
+   static_assert(PIPE_BIND_SAMPLER_VIEW == PAN_BIND_SAMPLER_VIEW, "");
+   static_assert(PIPE_BIND_VERTEX_BUFFER == PAN_BIND_VERTEX_BUFFER, "");
+
+   return pipe_bind_flags & (PAN_BIND_DEPTH_STENCIL | PAN_BIND_RENDER_TARGET |
+                             PAN_BIND_VERTEX_BUFFER | PAN_BIND_SAMPLER_VIEW);
+}
+
 /**
  * Query format support for creating a texture, drawing surface, etc.
  * \param format  the format to test
@@ -576,9 +588,7 @@ panfrost_is_format_supported(struct pipe_screen *screen,
 
    /* Check we support the format with the given bind */
 
-   unsigned relevant_bind =
-      bind & (PIPE_BIND_DEPTH_STENCIL | PIPE_BIND_RENDER_TARGET |
-              PIPE_BIND_VERTEX_BUFFER | PIPE_BIND_SAMPLER_VIEW);
+   unsigned pan_bind_flags = pipe_to_pan_bind_flags(bind);
 
    struct panfrost_format fmt = dev->formats[format];
 
@@ -592,7 +602,7 @@ panfrost_is_format_supported(struct pipe_screen *screen,
    if (!supported)
       return false;
 
-   return MALI_EXTRACT_INDEX(fmt.hw) && ((relevant_bind & ~fmt.bind) == 0);
+   return MALI_EXTRACT_INDEX(fmt.hw) && ((pan_bind_flags & ~fmt.bind) == 0);
 }
 
 /* We always support linear and tiled operations, both external and internal.
index 35b91cd..7c758c2 100644 (file)
@@ -112,10 +112,10 @@ const struct pan_blendable_format
 
 /* Convenience */
 
-#define _V PIPE_BIND_VERTEX_BUFFER
-#define _T PIPE_BIND_SAMPLER_VIEW
-#define _R PIPE_BIND_RENDER_TARGET
-#define _Z PIPE_BIND_DEPTH_STENCIL
+#define _V PAN_BIND_VERTEX_BUFFER
+#define _T PAN_BIND_SAMPLER_VIEW
+#define _R PAN_BIND_RENDER_TARGET
+#define _Z PAN_BIND_DEPTH_STENCIL
 
 #define FLAGS_V___ (_V)
 #define FLAGS__T__ (_T)
index babf6d6..afa7ccf 100644 (file)
 
 typedef uint32_t mali_pixel_format;
 
+/* pan bind flags */
+#define PAN_BIND_DEPTH_STENCIL (1 << 0)
+#define PAN_BIND_RENDER_TARGET (1 << 1)
+#define PAN_BIND_SAMPLER_VIEW  (1 << 3)
+#define PAN_BIND_VERTEX_BUFFER (1 << 4)
+
 struct panfrost_format {
    mali_pixel_format hw;
    unsigned bind;
index 7d41da6..956d469 100644 (file)
@@ -61,10 +61,10 @@ get_format_properties(struct panvk_physical_device *physical_device,
    buffer |=
       VK_FORMAT_FEATURE_TRANSFER_SRC_BIT | VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
 
-   if (fmt.bind & PIPE_BIND_VERTEX_BUFFER)
+   if (fmt.bind & PAN_BIND_VERTEX_BUFFER)
       buffer |= VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT;
 
-   if (fmt.bind & PIPE_BIND_SAMPLER_VIEW) {
+   if (fmt.bind & PAN_BIND_SAMPLER_VIEW) {
       tex |= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT |
              VK_FORMAT_FEATURE_TRANSFER_DST_BIT |
              VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
@@ -81,7 +81,7 @@ get_format_properties(struct panvk_physical_device *physical_device,
    }
 
    /* SNORM rendering isn't working yet, disable */
-   if (fmt.bind & PIPE_BIND_RENDER_TARGET && !util_format_is_snorm(pfmt)) {
+   if (fmt.bind & PAN_BIND_RENDER_TARGET && !util_format_is_snorm(pfmt)) {
       tex |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT |
              VK_FORMAT_FEATURE_BLIT_DST_BIT;
 
@@ -92,7 +92,7 @@ get_format_properties(struct panvk_physical_device *physical_device,
       tex |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
    }
 
-   if (fmt.bind & PIPE_BIND_DEPTH_STENCIL)
+   if (fmt.bind & PAN_BIND_DEPTH_STENCIL)
       tex |= VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT;
 
 end: