From 6a08dc7cabf54a6369b657a68363f0c2aa7d9f2b Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Thu, 27 Apr 2023 17:16:22 +0100 Subject: [PATCH] v3d: fix tfu_supports_tex_format() param type, and document why MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit tex_format should be `enum V3DX(Texture_Data_Formats)`, but using that enum type in the header requires including `v3dx_pack.h`, which triggers circular include dependencies issues, so use a `uint32_t` for now. "fix" the one place that was using the correct enum, because doing so triggers `-Wenum-int-mismatch` in GCC 13 as the function declaration doesn't match the function definition. Reported-by: Michel Dänzer Signed-off-by: Eric Engestrom Acked-by: Juan A. Suarez Part-of: --- src/broadcom/vulkan/v3dvx_private.h | 4 ++++ src/gallium/drivers/v3d/v3dx_context.h | 5 +++++ src/gallium/drivers/v3d/v3dx_format_table.c | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/broadcom/vulkan/v3dvx_private.h b/src/broadcom/vulkan/v3dvx_private.h index c693952..ad8ddfa 100644 --- a/src/broadcom/vulkan/v3dvx_private.h +++ b/src/broadcom/vulkan/v3dvx_private.h @@ -165,6 +165,10 @@ v3dX(format_supports_tlb_resolve)(const struct v3dv_format *format); bool v3dX(format_supports_blending)(const struct v3dv_format *format); +/* FIXME: tex_format should be `enum V3DX(Texture_Data_Formats)`, but using + * that enum type in the header requires including v3dx_pack.h, which triggers + * circular include dependencies issues, so we're using a `uint32_t` for now. + */ bool v3dX(tfu_supports_tex_format)(uint32_t tex_format); diff --git a/src/gallium/drivers/v3d/v3dx_context.h b/src/gallium/drivers/v3d/v3dx_context.h index 9c64752..03d7c24 100644 --- a/src/gallium/drivers/v3d/v3dx_context.h +++ b/src/gallium/drivers/v3d/v3dx_context.h @@ -44,5 +44,10 @@ const struct v3d_format *v3dX(get_format_desc)(enum pipe_format f); void v3dX(get_internal_type_bpp_for_output_format)(uint32_t format, uint32_t *type, uint32_t *bpp); + +/* FIXME: tex_format should be `enum V3DX(Texture_Data_Formats)`, but using + * that enum type in the header requires including v3dx_pack.h, which triggers + * circular include dependencies issues, so we're using a `uint32_t` for now. + */ bool v3dX(tfu_supports_tex_format)(uint32_t tex_format, bool for_mipmap); diff --git a/src/gallium/drivers/v3d/v3dx_format_table.c b/src/gallium/drivers/v3d/v3dx_format_table.c index 89b4449..9920aa8 100644 --- a/src/gallium/drivers/v3d/v3dx_format_table.c +++ b/src/gallium/drivers/v3d/v3dx_format_table.c @@ -327,10 +327,10 @@ v3dX(get_internal_type_bpp_for_output_format)(uint32_t format, } bool -v3dX(tfu_supports_tex_format)(enum V3DX(Texture_Data_Formats) format, +v3dX(tfu_supports_tex_format)(uint32_t tex_format, bool for_mipmap) { - switch (format) { + switch (tex_format) { case TEXTURE_DATA_FORMAT_R8: case TEXTURE_DATA_FORMAT_R8_SNORM: case TEXTURE_DATA_FORMAT_RG8: -- 2.7.4