From ba83c1e254d8a968c166610765ab92ce4cf0778e Mon Sep 17 00:00:00 2001 From: Yonggang Luo Date: Tue, 4 Jul 2023 16:47:45 +0800 Subject: [PATCH] radeonsi: Use ALIGN_POT instead ALIGN_TO MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ALIGN_POT would be a bit faster as it's have no divide arithmetic Signed-off-by: Yonggang Luo Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/radeon_vcn_enc.c | 10 +++++----- src/gallium/drivers/radeonsi/radeon_vcn_enc.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index e47b0b7..611b4a9 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -719,10 +719,10 @@ static int setup_dpb(struct radeon_encoder *enc) offset = 0; if (enc_pic->quality_modes.pre_encode_mode) { - uint32_t pre_size = ALIGN_TO((aligned_width >> 2), rec_alignment) * - ALIGN_TO((aligned_height >> 2), rec_alignment); - uint32_t full_size = ALIGN_TO(aligned_width, rec_alignment) * - ALIGN_TO(aligned_height, rec_alignment); + uint32_t pre_size = ALIGN_POT((aligned_width >> 2), rec_alignment) * + ALIGN_POT((aligned_height >> 2), rec_alignment); + uint32_t full_size = ALIGN_POT(aligned_width, rec_alignment) * + ALIGN_POT(aligned_height, rec_alignment); pre_size = align(pre_size, 4); full_size = align(full_size, 4); @@ -1168,7 +1168,7 @@ static void radeon_enc_av1_bs_copy_end(struct radeon_encoder *enc, uint32_t bits { assert(bits > 0); /* it must be dword aligned at the end */ - *enc->enc_pic.copy_start = ALIGN_TO(bits, 32) * 4 + 12; + *enc->enc_pic.copy_start = ALIGN_POT(bits, 32) * 4 + 12; *(enc->enc_pic.copy_start + 2) = bits; } diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.h b/src/gallium/drivers/radeonsi/radeon_vcn_enc.h index 452a8e2..3ee2d7a 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.h +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.h @@ -10,6 +10,7 @@ #define _RADEON_VCN_ENC_H #include "radeon_vcn.h" +#include "util/macros.h" #define RENCODE_IB_OP_INITIALIZE 0x01000001 #define RENCODE_IB_OP_CLOSE_SESSION 0x01000002 @@ -176,8 +177,7 @@ #define RENCODE_COLOR_SPACE_YUV 0 -#define ALIGN_TO(value, align) (((value) + ((align) - 1))/(align)) -#define PIPE_ALIGN_IN_BLOCK_SIZE(value, align) ALIGN_TO(value, align) +#define PIPE_ALIGN_IN_BLOCK_SIZE(value, alignment) ALIGN_POT(value, alignment) #define RADEON_ENC_CS(value) (enc->cs.current.buf[enc->cs.current.cdw++] = (value)) #define RADEON_ENC_BEGIN(cmd) \ -- 2.7.4