llvmpipe: add images to the scene resource tracker.

This adds all the images to the scene resource tracker.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14923>
This commit is contained in:
Dave Airlie
2022-02-09 15:39:57 +10:00
committed by Marge Bot
parent eff32fa591
commit fae5188de7
2 changed files with 18 additions and 5 deletions
+12 -5
View File
@@ -1186,11 +1186,6 @@ lp_setup_is_resource_referenced( const struct lp_setup_context *setup,
return ref;
}
for (i = 0; i < ARRAY_SIZE(setup->images); i++) {
if (setup->images[i].current.resource == texture)
return LP_REFERENCED_FOR_READ | LP_REFERENCED_FOR_WRITE;
}
return LP_UNREFERENCED;
}
@@ -1414,6 +1409,18 @@ try_update_scene_state( struct lp_setup_context *setup )
}
}
}
for (i = 0; i < ARRAY_SIZE(setup->images); i++) {
if (setup->images[i].current.resource) {
if (!lp_scene_add_resource_reference(scene,
setup->images[i].current.resource,
new_scene,
setup->images[i].current.shader_access & PIPE_IMAGE_ACCESS_WRITE)) {
assert(!new_scene);
return FALSE;
}
}
}
}
}
@@ -4084,6 +4084,12 @@ llvmpipe_set_shader_images(struct pipe_context *pipe,
const struct pipe_image_view *image = images ? &images[idx] : NULL;
util_copy_image_view(&llvmpipe->images[shader][i], image);
if (image && image->resource) {
bool read_only = !(image->access & PIPE_IMAGE_ACCESS_WRITE);
llvmpipe_flush_resource(pipe, image->resource, 0, read_only, false,
false, "image");
}
}
llvmpipe->num_images[shader] = start_slot + count;