Fix nouveau_pipe_create() / nouveau_context_init(): raise an error if the screen/pipe creation failed
This commit is contained in:
parent
a06dd4de87
commit
19229fcf3a
|
@ -132,8 +132,10 @@ nouveau_context_init(struct nouveau_screen *nv_screen,
|
|||
struct pipe_screen *pscreen;
|
||||
|
||||
pipe = nouveau_pipe_create(nv);
|
||||
if (!pipe)
|
||||
if (!pipe) {
|
||||
NOUVEAU_ERR("Couldn't create hw pipe\n");
|
||||
return 1;
|
||||
}
|
||||
pscreen = nvc->pscreen;
|
||||
|
||||
nv->cap.hw_vertex_buffer =
|
||||
|
@ -199,7 +201,7 @@ nouveau_context_cleanup(struct nouveau_context *nv)
|
|||
nv->nv_screen->nvc = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* XXX: Who cleans up the pipe? */
|
||||
}
|
||||
|
||||
|
|
|
@ -133,8 +133,13 @@ nouveau_pipe_create(struct nouveau_context *nv)
|
|||
|
||||
ws = nouveau_create_pipe_winsys(nv);
|
||||
|
||||
if (!nvc->pscreen)
|
||||
if (!nvc->pscreen) {
|
||||
nvc->pscreen = hws_create(ws, nvws);
|
||||
if (!nvc->pscreen) {
|
||||
NOUVEAU_ERR("Couldn't create hw screen\n");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
nvc->pctx[nv->pctx_id] = hw_create(nvc->pscreen, nv->pctx_id);
|
||||
return nvc->pctx[nv->pctx_id];
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue