mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 09:18:04 +02:00
pvr: add more helper format function for tq pbe formats
Will be used later for the NIR run time generation of these tq shaders. Signed-off-by: SoroushIMG <soroush.kashani@imgtec.com> Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
parent
e12826da71
commit
a4e91bf00a
2 changed files with 159 additions and 0 deletions
|
|
@ -1259,3 +1259,160 @@ uint32_t pvr_pbe_pixel_num_loads(enum pvr_transfer_pbe_pixel_src pbe_format)
|
||||||
return 0U;
|
return 0U;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool pvr_pbe_pixel_is_norm(enum pvr_transfer_pbe_pixel_src pbe_format)
|
||||||
|
{
|
||||||
|
switch (pbe_format) {
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_Y_U_V:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_YUV_PACKED:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_Y_UV_INTERLEAVED:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_YVU_PACKED:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F16F16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_U16NORM:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_S16NORM:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F32X2:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F32X4:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F16_U8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_D32_D24S8:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_UU8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_US8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_UU16U16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_US16S16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SS8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU16U16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SS16S16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_UU1010102:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU1010102:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RBSWAP_UU1010102:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RBSWAP_SU1010102:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU32U32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_S4XU32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_US32S32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_U4XS32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RAW32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RAW64:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RAW128:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SWAP_LMSB:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MOV_BY45:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_S8D24:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_S8_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_D24S8_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_D32S8_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D32S8_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_D24_D32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_D32U_D32F:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_S8_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_D24S8_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D24S8_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK48:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK64:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK96:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK128:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_S8D24_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D32_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D32U_D24S8:
|
||||||
|
return false;
|
||||||
|
|
||||||
|
default:
|
||||||
|
UNREACHABLE("Invalid pvr_transfer_pbe_pixel_src");
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t pvr_pbe_pixel_size(enum pvr_transfer_pbe_pixel_src pbe_format)
|
||||||
|
{
|
||||||
|
switch (pbe_format) {
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_UU8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_US8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SS8888:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_UU1010102:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU1010102:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RBSWAP_UU1010102:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RBSWAP_SU1010102:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F16_U8:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SWAP_LMSB:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RAW32:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_S8D24:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_D24_D32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_D32U_D32F:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_S8_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_D24S8_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D24S8_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_D32_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D32_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D32U_D24S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_CONV_S8D24_D24S8:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_YUV_PACKED:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_YVU_PACKED:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK32:
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_UU16U16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_US16S16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU16U16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SS16S16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SU32U32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_US32S32:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F16F16:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_U16NORM:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_S16NORM:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MOV_BY45:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F32X2:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RAW64:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_S8_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_D24S8_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_SMRG_D32S8_D32S8:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_DMRG_D32S8_D32S8:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_Y_U_V:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_Y_UV_INTERLEAVED:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK48:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK64:
|
||||||
|
return 2;
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK96:
|
||||||
|
return 3;
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_U4XS32:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_S4XU32:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_F32X4:
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_RAW128:
|
||||||
|
|
||||||
|
case PVR_TRANSFER_PBE_PIXEL_SRC_MASK128:
|
||||||
|
return 4;
|
||||||
|
|
||||||
|
default:
|
||||||
|
UNREACHABLE("Invalid pvr_transfer_pbe_pixel_src");
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -252,6 +252,8 @@ void pvr_get_hw_clear_color(VkFormat vk_format,
|
||||||
uint32_t packed_out[static const 4]);
|
uint32_t packed_out[static const 4]);
|
||||||
|
|
||||||
uint32_t pvr_pbe_pixel_num_loads(enum pvr_transfer_pbe_pixel_src pbe_format);
|
uint32_t pvr_pbe_pixel_num_loads(enum pvr_transfer_pbe_pixel_src pbe_format);
|
||||||
|
bool pvr_pbe_pixel_is_norm(enum pvr_transfer_pbe_pixel_src pbe_format);
|
||||||
|
uint32_t pvr_pbe_pixel_size(enum pvr_transfer_pbe_pixel_src pbe_format);
|
||||||
|
|
||||||
static inline bool pvr_vk_format_has_32bit_component(VkFormat vk_format)
|
static inline bool pvr_vk_format_has_32bit_component(VkFormat vk_format)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue