panfrost: Store internal format

It's needed by u_transfer_helper to know when the depth+stencil buffer
has been split.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
Tomeu Vizoso 2020-01-02 16:44:18 +01:00 committed by Alyssa Rosenzweig
parent 14bc4c7cce
commit 829f338a59
2 changed files with 7 additions and 2 deletions

View file

@ -83,6 +83,7 @@ panfrost_resource_from_handle(struct pipe_screen *pscreen,
prsc->screen = pscreen;
rsc->bo = panfrost_bo_import(screen, whandle->handle);
rsc->internal_format = templat->format;
rsc->slices[0].stride = whandle->stride;
rsc->slices[0].offset = whandle->offset;
rsc->slices[0].initialized = true;
@ -515,6 +516,7 @@ panfrost_resource_create(struct pipe_screen *screen,
so->base = *template;
so->base.screen = screen;
so->internal_format = template->format;
pipe_reference_init(&so->base.reference, 1);
@ -755,8 +757,9 @@ panfrost_invalidate_resource(struct pipe_context *pctx, struct pipe_resource *pr
}
static enum pipe_format
panfrost_resource_get_internal_format(struct pipe_resource *prsrc) {
return prsrc->format;
panfrost_resource_get_internal_format(struct pipe_resource *rsrc) {
struct panfrost_resource *prsrc = (struct panfrost_resource *) rsrc;
return prsrc->internal_format;
}
static bool

View file

@ -83,6 +83,8 @@ struct panfrost_resource {
/* Is transaciton elimination enabled? */
bool checksummed;
enum pipe_format internal_format;
};
static inline struct panfrost_resource *