diff options
authorKenneth Graunke <>2021-10-12 18:09:04 -0700
committerMarge Bot <>2021-10-13 18:46:03 +0000
commit02435f1294d6b9163560f1f5d49b4d2c55b83c79 (patch)
parent94e07058ee5b3ecdbf4b1afe347cd815dc7fe640 (diff)
iris: Require a 4K alignment for extra clear color BOs.21.3-branchpoint
Apparently, we've been requiring a 4K alignment for internally allocated clear color addresses to work around some unknown issues. There's a comment to that effect in iris_resource_create_with_modifiers(). When importing a dmabuf and tacking on an additional clear color BO, we only required an alignment of 1. This wasn't a problem for a long time because all BO allocations were naturally aligned to the 4K page size. However, once we enabled suballocation, we were able to allocate "BOs" at 256B granularity, making this no longer 4K aligned. Increase the alignment requirement to 4K to match the behavior of our normal allocations and also our previous behavior. Fixes Piglit's ext_image_dma_buf_import-intel-modifiers. Closes: Fixes: ce2e2296ab6 ("iris: Suballocate BO using the Gallium pb_slab mechanism") Reviewed-by: Paulo Zanoni <> Reviewed-by: Nanley Chery <> Part-of: <>
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index 195f3fe83da..21b32376880 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -941,11 +941,16 @@ iris_resource_finish_aux_import(struct pipe_screen *pscreen,
import_aux_info(r[0], r[1]);
map_aux_addresses(screen, r[0], format, 0);
- /* Add on a clear color BO. */
+ /* Add on a clear color BO.
+ *
+ * Also add some padding to make sure the fast clear color state buffer
+ * starts at a 4K alignment to avoid some unknown issues. See the
+ * matching comment in iris_resource_create_with_modifiers().
+ */
if (iris_get_aux_clear_color_state_size(screen) > 0) {
res->aux.clear_color_bo =
iris_bo_alloc(screen->bufmgr, "clear color_buffer",
- iris_get_aux_clear_color_state_size(screen), 1,
+ iris_get_aux_clear_color_state_size(screen), 4096,