diff --git a/.pick_status.json b/.pick_status.json index abd096ecfa2..0f9270ec9b4 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -6334,7 +6334,7 @@ "description": "radeonsi/vcn: Fix calculating QP map region dimensions", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c index a909e27179a..c342c43a9eb 100644 --- a/src/gallium/drivers/radeonsi/radeon_vcn_enc.c +++ b/src/gallium/drivers/radeonsi/radeon_vcn_enc.c @@ -206,10 +206,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); } } }