mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-18 10:48:21 +02:00
panfrost: Update sampler views when the texture bo changes
The BO reallocation path in panfrost_transfer_map caused textures and
sampler views to get out of sync.
v2: Use the GPU address of the BO in case two BOs get allocated at the
same address.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5573>
This commit is contained in:
parent
9630012060
commit
65b3b08aaf
3 changed files with 4 additions and 1 deletions
|
|
@ -1400,7 +1400,8 @@ panfrost_update_sampler_view(struct panfrost_sampler_view *view,
|
|||
struct pipe_context *pctx)
|
||||
{
|
||||
struct panfrost_resource *rsrc = pan_resource(view->base.texture);
|
||||
if (view->layout != rsrc->layout) {
|
||||
if (view->texture_bo != rsrc->bo->gpu ||
|
||||
view->layout != rsrc->layout) {
|
||||
panfrost_bo_unreference(view->bo);
|
||||
panfrost_create_sampler_view_bo(view, pctx, &rsrc->base);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -918,6 +918,7 @@ panfrost_create_sampler_view_bo(struct panfrost_sampler_view *so,
|
|||
struct panfrost_resource *prsrc = (struct panfrost_resource *)texture;
|
||||
assert(prsrc->bo);
|
||||
|
||||
so->texture_bo = prsrc->bo->gpu;
|
||||
so->layout = prsrc->layout;
|
||||
|
||||
unsigned char user_swizzle[4] = {
|
||||
|
|
|
|||
|
|
@ -265,6 +265,7 @@ struct panfrost_sampler_view {
|
|||
struct pipe_sampler_view base;
|
||||
struct panfrost_bo *bo;
|
||||
struct bifrost_texture_descriptor *bifrost_descriptor;
|
||||
mali_ptr texture_bo;
|
||||
enum mali_texture_layout layout;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue