diff --git a/.pick_status.json b/.pick_status.json index d87d5ab75f0..21a1e67dcd7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1260,7 +1260,7 @@ "description": "iris: Return a 64B stride for clear color plane", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "because_sha": "db475c81b7cdde9d967b0216e6f12d17e0adae83" }, { diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index 4a420ba7b26..0a74bc4c213 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -1605,14 +1605,18 @@ iris_resource_get_param(struct pipe_screen *pscreen, } return true; case PIPE_RESOURCE_PARAM_STRIDE: - *value = wants_cc ? 1 : + *value = wants_cc ? 64 : wants_aux ? res->aux.surf.row_pitch_B : res->surf.row_pitch_B; /* Mesa's implementation of eglCreateImage rejects strides of zero (see * dri2_check_dma_buf_attribs). Ensure we return a non-zero stride as * this value may be queried from GBM and passed into EGL. + * + * Also, although modifiers which use a clear color plane specify that + * the plane's pitch should be ignored, some kernels have been found to + * require 64-byte alignment. */ - assert(*value); + assert(*value != 0 && *value % 64 == 0); return true; case PIPE_RESOURCE_PARAM_OFFSET: