Mesa (master): v3d: add helper to check if format supports TLB resolve
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Dec 9 12:45:16 UTC 2020
Module: Mesa
Branch: master
Commit: 9eb2517a88e3b48cd84fa4b0c50112dc6de2da06
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9eb2517a88e3b48cd84fa4b0c50112dc6de2da06
Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date: Fri Nov 27 14:17:59 2020 +0100
v3d: add helper to check if format supports TLB resolve
It checks if the TLB can perform multisample resolve for the specified
format.
v1:
- Fix commit title (Iago)
v2:
- Fix identation (Iago)
- Fix prototype style (Iago)
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>
---
src/gallium/drivers/v3d/v3d_context.h | 2 ++
src/gallium/drivers/v3d/v3d_formats.c | 25 +++++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/src/gallium/drivers/v3d/v3d_context.h b/src/gallium/drivers/v3d/v3d_context.h
index f2c5dadc9e9..a5275c41243 100644
--- a/src/gallium/drivers/v3d/v3d_context.h
+++ b/src/gallium/drivers/v3d/v3d_context.h
@@ -686,6 +686,8 @@ void v3d_get_internal_type_bpp_for_output_format(const struct v3d_device_info *d
uint32_t *bpp);
bool v3d_tfu_supports_tex_format(const struct v3d_device_info *devinfo,
uint32_t tex_format);
+bool v3d_format_supports_tlb_msaa_resolve(const struct v3d_device_info *devinfo,
+ enum pipe_format f);
void v3d_init_query_functions(struct v3d_context *v3d);
void v3d_blit(struct pipe_context *pctx, const struct pipe_blit_info *blit_info);
diff --git a/src/gallium/drivers/v3d/v3d_formats.c b/src/gallium/drivers/v3d/v3d_formats.c
index 5bd8db0dbd4..df1c8a5cb3e 100644
--- a/src/gallium/drivers/v3d/v3d_formats.c
+++ b/src/gallium/drivers/v3d/v3d_formats.c
@@ -37,6 +37,10 @@
#include "v3d_context.h"
#include "v3d_format_table.h"
+/* The format internal types are the same across V3D versions */
+#define V3D_VERSION 33
+#include "broadcom/cle/v3dx_pack.h"
+
static const struct v3d_format *
get_format(const struct v3d_device_info *devinfo, enum pipe_format f)
{
@@ -153,3 +157,24 @@ v3d_tfu_supports_tex_format(const struct v3d_device_info *devinfo,
return v3d33_tfu_supports_tex_format(tex_format);
}
}
+
+bool
+v3d_format_supports_tlb_msaa_resolve(const struct v3d_device_info *devinfo,
+ enum pipe_format f)
+{
+ uint32_t internal_type;
+ uint32_t internal_bpp;
+
+ const struct v3d_format *vf = get_format(devinfo, f);
+
+ if (!vf)
+ return false;
+
+ v3d_get_internal_type_bpp_for_output_format(devinfo,
+ vf->rt_type,
+ &internal_type,
+ &internal_bpp);
+
+ return internal_type == V3D_INTERNAL_TYPE_8 ||
+ internal_type == V3D_INTERNAL_TYPE_16F;
+}
More information about the mesa-commit
mailing list