From 1eab712245280f12b81d45163817339f21fe79ea Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Fri, 31 Oct 2025 13:59:55 +0100 Subject: [PATCH] pvr: move static_asserts to source-files This avoids needless dependencies on HW-defs in header files. Reviewed-by: Frank Binns Part-of: --- src/imagination/vulkan/pvr_clear.c | 4 ++++ src/imagination/vulkan/pvr_clear.h | 4 ---- src/imagination/vulkan/pvr_job_render.c | 17 +++++++++++++++++ src/imagination/vulkan/pvr_job_render.h | 15 --------------- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/imagination/vulkan/pvr_clear.c b/src/imagination/vulkan/pvr_clear.c index dde1571cd64..7367780eade 100644 --- a/src/imagination/vulkan/pvr_clear.c +++ b/src/imagination/vulkan/pvr_clear.c @@ -37,6 +37,10 @@ #include "vk_alloc.h" #include "vk_log.h" +static_assert(PVR_STATIC_CLEAR_PPP_PDS_TYPE_TEXTUREDATABASE + 1 == + PVR_STATIC_CLEAR_PDS_STATE_COUNT, + "pvr_static_clear_ppp_pds_state_type might require fixing."); + static void pvr_device_setup_graphics_static_clear_ppp_base( struct pvr_static_clear_ppp_base *const base) { diff --git a/src/imagination/vulkan/pvr_clear.h b/src/imagination/vulkan/pvr_clear.h index 15c0c8fdf0e..8fc580cee63 100644 --- a/src/imagination/vulkan/pvr_clear.h +++ b/src/imagination/vulkan/pvr_clear.h @@ -62,10 +62,6 @@ enum pvr_static_clear_ppp_pds_state_type { PVR_STATIC_CLEAR_PPP_PDS_TYPE_TEXTUREDATABASE = 5, }; -static_assert(PVR_STATIC_CLEAR_PPP_PDS_TYPE_TEXTUREDATABASE + 1 == - PVR_STATIC_CLEAR_PDS_STATE_COUNT, - "pvr_static_clear_ppp_pds_state_type might require fixing."); - #define PVR_STATIC_CLEAR_VARIANT_COUNT (VK_IMAGE_ASPECT_STENCIL_BIT << 1U) struct pvr_bo; diff --git a/src/imagination/vulkan/pvr_job_render.c b/src/imagination/vulkan/pvr_job_render.c index 693d2823b12..3192a3abfca 100644 --- a/src/imagination/vulkan/pvr_job_render.c +++ b/src/imagination/vulkan/pvr_job_render.c @@ -53,6 +53,23 @@ #include "vk_log.h" #include "vk_util.h" +static_assert(pvr_cmd_length(PBESTATE_REG_WORD0) == 2, + "PBESTATE_REG_WORD0 cannot be stored in uint64_t"); +static_assert(pvr_cmd_length(PBESTATE_REG_WORD1) == 2, + "PBESTATE_REG_WORD1 cannot be stored in uint64_t"); +static_assert(ROGUE_NUM_PBESTATE_REG_WORDS >= 2, + "Cannot store both PBESTATE_REG_WORD{0,1}"); + +static_assert(pvr_cmd_length(CR_PDS_BGRND0_BASE) == 2, + "CR_PDS_BGRND0_BASE cannot be stored in uint64_t"); +static_assert(pvr_cmd_length(CR_PDS_BGRND1_BASE) == 2, + "CR_PDS_BGRND1_BASE cannot be stored in uint64_t"); +static_assert(pvr_cmd_length(CR_PDS_BGRND3_SIZEINFO) == 2, + "CR_PDS_BGRND3_SIZEINFO cannot be stored in uint64_t"); +static_assert(ROGUE_NUM_CR_PDS_BGRND_WORDS == 3, + "Cannot store all CR_PDS_BGRND words"); + + #define ROGUE_BIF_PM_FREELIST_BASE_ADDR_ALIGNSIZE 16U /* FIXME: Is there a hardware define we can use instead? */ diff --git a/src/imagination/vulkan/pvr_job_render.h b/src/imagination/vulkan/pvr_job_render.h index 50c0761841f..2537466e0af 100644 --- a/src/imagination/vulkan/pvr_job_render.h +++ b/src/imagination/vulkan/pvr_job_render.h @@ -133,26 +133,11 @@ struct pvr_render_job { */ uint32_t max_tiles_in_flight; - static_assert(pvr_cmd_length(PBESTATE_REG_WORD0) == 2, - "PBESTATE_REG_WORD0 cannot be stored in uint64_t"); - static_assert(pvr_cmd_length(PBESTATE_REG_WORD1) == 2, - "PBESTATE_REG_WORD1 cannot be stored in uint64_t"); - static_assert(ROGUE_NUM_PBESTATE_REG_WORDS >= 2, - "Cannot store both PBESTATE_REG_WORD{0,1}"); uint64_t pbe_reg_words[PVR_MAX_COLOR_ATTACHMENTS] [ROGUE_NUM_PBESTATE_REG_WORDS]; uint64_t pr_pbe_reg_words[PVR_MAX_COLOR_ATTACHMENTS] [ROGUE_NUM_PBESTATE_REG_WORDS]; - static_assert(pvr_cmd_length(CR_PDS_BGRND0_BASE) == 2, - "CR_PDS_BGRND0_BASE cannot be stored in uint64_t"); - static_assert(pvr_cmd_length(CR_PDS_BGRND1_BASE) == 2, - "CR_PDS_BGRND1_BASE cannot be stored in uint64_t"); - static_assert(pvr_cmd_length(CR_PDS_BGRND3_SIZEINFO) == 2, - "CR_PDS_BGRND3_SIZEINFO cannot be stored in uint64_t"); - static_assert(ROGUE_NUM_CR_PDS_BGRND_WORDS == 3, - "Cannot store all CR_PDS_BGRND words"); - struct pvr_view_state { struct { uint32_t pds_pixel_event_data_offset;