From 593ad9294bee4a735b5ad5bccd4537c23b9eb738 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 11 Aug 2021 13:34:26 -0400 Subject: [PATCH] crocus: align staging resource pitch on gen4/5 to allow BLT usage. Aligning the pitch to 4 bytes allows the BLT engine to be used for transfers to/from these surfaces. Fixes: f3630548f1da ("crocus: initial gallium driver for Intel gfx 4-7") Part-of: --- src/gallium/drivers/crocus/crocus_resource.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/crocus/crocus_resource.c b/src/gallium/drivers/crocus/crocus_resource.c index a01703e..2c8ea3a 100644 --- a/src/gallium/drivers/crocus/crocus_resource.c +++ b/src/gallium/drivers/crocus/crocus_resource.c @@ -228,6 +228,14 @@ crocus_resource_configure_main(const struct crocus_screen *screen, const enum isl_format format = crocus_format_for_usage(&screen->devinfo, templ->format, usage).fmt; + if (row_pitch_B == 0 && templ->usage == PIPE_USAGE_STAGING && + templ->target == PIPE_TEXTURE_2D && + devinfo->ver < 6) { + /* align row pitch to 4 so we can keep using BLT engine */ + row_pitch_B = util_format_get_stride(templ->format, templ->width0); + row_pitch_B = ALIGN(row_pitch_B, 4); + } + const struct isl_surf_init_info init_info = { .dim = crocus_target_to_isl_surf_dim(templ->target), .format = format, -- 2.7.4