From 8eb84f8854219e95e2795d36aee99418a7bcda79 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Tue, 2 Sep 2025 17:56:56 +0200 Subject: [PATCH] radeonsi/vcn: Fix calculating QP map region dimensions It needs to be aligned to block size otherwise it would skip last row/column on resolutions like 1080p. Cc: mesa-stable Reviewed-by: Ruijing Dong Part-of: --- src/gallium/drivers/radeonsi/radeon_vcn_enc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index e5da69a94a4..f4fb0d338b2 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -205,10 +205,10 @@ static void radeon_vcn_enc_get_roi_param(struct radeon_encoder *enc, } else map->qp_delta = region->qp_value; - map->x_in_unit = CLAMP((region->x / block_length), 0, width_in_block - 1); - map->y_in_unit = CLAMP((region->y / block_length), 0, height_in_block - 1); - map->width_in_unit = CLAMP((region->width / block_length), 0, width_in_block); - map->height_in_unit = CLAMP((region->height / block_length), 0, width_in_block); + map->x_in_unit = MIN2(DIV_ROUND_UP(region->x, block_length), width_in_block - 1); + map->y_in_unit = MIN2(DIV_ROUND_UP(region->y, block_length), height_in_block - 1); + map->width_in_unit = MIN2(DIV_ROUND_UP(region->width, block_length), width_in_block); + map->height_in_unit = MIN2(DIV_ROUND_UP(region->height, block_length), width_in_block); } } }