mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
st/mesa: Invalidate drawables on context switch
This commit is contained in:
parent
e251b3903a
commit
0c74091591
1 changed files with 13 additions and 9 deletions
|
|
@ -707,6 +707,15 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi,
|
|||
return &st->iface;
|
||||
}
|
||||
|
||||
static struct st_context_iface *
|
||||
st_api_get_current(struct st_api *stapi)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct st_context *st = (ctx) ? ctx->st : NULL;
|
||||
|
||||
return (st) ? &st->iface : NULL;
|
||||
}
|
||||
|
||||
static boolean
|
||||
st_api_make_current(struct st_api *stapi, struct st_context_iface *stctxi,
|
||||
struct st_framebuffer_iface *stdrawi,
|
||||
|
|
@ -742,6 +751,10 @@ st_api_make_current(struct st_api *stapi, struct st_context_iface *stctxi,
|
|||
}
|
||||
|
||||
if (stdraw && stread) {
|
||||
if (stctxi != st_api_get_current(stapi)) {
|
||||
p_atomic_set(&stdraw->revalidate, TRUE);
|
||||
p_atomic_set(&stread->revalidate, TRUE);
|
||||
}
|
||||
st_framebuffer_validate(stdraw, st);
|
||||
if (stread != stdraw)
|
||||
st_framebuffer_validate(stread, st);
|
||||
|
|
@ -773,15 +786,6 @@ st_api_make_current(struct st_api *stapi, struct st_context_iface *stctxi,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static struct st_context_iface *
|
||||
st_api_get_current(struct st_api *stapi)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
struct st_context *st = (ctx) ? ctx->st : NULL;
|
||||
|
||||
return (st) ? &st->iface : NULL;
|
||||
}
|
||||
|
||||
static st_proc_t
|
||||
st_api_get_proc_address(struct st_api *stapi, const char *procname)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue