aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Xiong <[email protected]>2019-10-14 15:55:18 -0700
committerKenneth Graunke <[email protected]>2019-10-15 23:19:04 +0000
commitfd235484fef7d9164f98cc907d10cf680881a9c6 (patch)
tree5dd3c38554fc717bc27315e496126a6fada4a281
parente6ca6e587e7f88d6b06c0a5c966438beac6cb18e (diff)
iris: finish aux import on get_param
A buffer and its aux are imported separately, if the aux import is not completed yet when resource_get_param is called, merge the separate aux a.k.a the 2nd image into the main image. Fixes: 246eebba4a8 ("iris: Export and import surfaces with modifiers that have aux data") Signed-off-by: James Xiong <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
-rw-r--r--src/gallium/drivers/iris/iris_resource.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index cfdd43c6e21..cd411c3e6b8 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -1078,10 +1078,14 @@ iris_resource_get_param(struct pipe_screen *screen,
bool mod_with_aux =
res->mod_info && res->mod_info->aux_usage != ISL_AUX_USAGE_NONE;
bool wants_aux = mod_with_aux && plane > 0;
- struct iris_bo *bo = wants_aux ? res->aux.bo : res->bo;
bool result;
unsigned handle;
+ if (iris_resource_unfinished_aux_import(res))
+ iris_resource_finish_aux_import(screen, res);
+
+ struct iris_bo *bo = wants_aux ? res->aux.bo : res->bo;
+
iris_resource_disable_aux_on_first_query(resource, handle_usage);
switch (param) {