nv50,nvc0: always pull out bufctx on context destruction
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Cc: "10.2" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
8dc4a98c44
commit
7d11b761f2
|
@ -122,12 +122,9 @@ nv50_destroy(struct pipe_context *pipe)
|
|||
{
|
||||
struct nv50_context *nv50 = nv50_context(pipe);
|
||||
|
||||
if (nv50_context_screen(nv50)->cur_ctx == nv50) {
|
||||
nv50->base.pushbuf->kick_notify = NULL;
|
||||
if (nv50_context_screen(nv50)->cur_ctx == nv50)
|
||||
nv50_context_screen(nv50)->cur_ctx = NULL;
|
||||
nouveau_pushbuf_bufctx(nv50->base.pushbuf, NULL);
|
||||
}
|
||||
/* need to flush before destroying the bufctx */
|
||||
nouveau_pushbuf_bufctx(nv50->base.pushbuf, NULL);
|
||||
nouveau_pushbuf_kick(nv50->base.pushbuf, nv50->base.pushbuf->channel);
|
||||
|
||||
nv50_context_unreference_resources(nv50);
|
||||
|
|
|
@ -123,11 +123,12 @@ nvc0_destroy(struct pipe_context *pipe)
|
|||
{
|
||||
struct nvc0_context *nvc0 = nvc0_context(pipe);
|
||||
|
||||
if (nvc0->screen->cur_ctx == nvc0) {
|
||||
nvc0->base.pushbuf->kick_notify = NULL;
|
||||
if (nvc0->screen->cur_ctx == nvc0)
|
||||
nvc0->screen->cur_ctx = NULL;
|
||||
nouveau_pushbuf_bufctx(nvc0->base.pushbuf, NULL);
|
||||
}
|
||||
/* Unset bufctx, we don't want to revalidate any resources after the flush.
|
||||
* Other contexts will always set their bufctx again on action calls.
|
||||
*/
|
||||
nouveau_pushbuf_bufctx(nvc0->base.pushbuf, NULL);
|
||||
nouveau_pushbuf_kick(nvc0->base.pushbuf, nvc0->base.pushbuf->channel);
|
||||
|
||||
nvc0_context_unreference_resources(nvc0);
|
||||
|
|
Loading…
Reference in New Issue