projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gallium: squash-merge of gallium screen context
[mesa.git]
/
src
/
gallium
/
drivers
/
nv50
/
nv50_state_validate.c
diff --git
a/src/gallium/drivers/nv50/nv50_state_validate.c
b/src/gallium/drivers/nv50/nv50_state_validate.c
index 956da9b304c3d7949563b86fa7655ef661dcb222..ee28fa63c1466f6b808884a49337ff3d8c675449 100644
(file)
--- a/
src/gallium/drivers/nv50/nv50_state_validate.c
+++ b/
src/gallium/drivers/nv50/nv50_state_validate.c
@@
-185,10
+185,10
@@
nv50_state_emit(struct nv50_context *nv50)
struct nv50_screen *screen = nv50->screen;
struct nouveau_channel *chan = screen->base.channel;
struct nv50_screen *screen = nv50->screen;
struct nouveau_channel *chan = screen->base.channel;
- /*
I don't want to copy headers from the winsys. */
- screen->cur_ctx = nv50;
-
- if (
nv50->pctx_id != screen->cur_pctx
) {
+ /*
XXX: this is racy for multiple contexts active on separate
+ * threads.
+ */
+ if (
screen->cur_ctx != nv50
) {
if (nv50->state.fb)
nv50->state.dirty |= NV50_NEW_FRAMEBUFFER;
if (nv50->state.blend)
if (nv50->state.fb)
nv50->state.dirty |= NV50_NEW_FRAMEBUFFER;
if (nv50->state.blend)
@@
-217,7
+217,7
@@
nv50_state_emit(struct nv50_context *nv50)
nv50->state.dirty |= NV50_NEW_TEXTURE;
if (nv50->state.vtxfmt && nv50->state.vtxbuf)
nv50->state.dirty |= NV50_NEW_ARRAYS;
nv50->state.dirty |= NV50_NEW_TEXTURE;
if (nv50->state.vtxfmt && nv50->state.vtxbuf)
nv50->state.dirty |= NV50_NEW_ARRAYS;
- screen->cur_
pctx = nv50->pctx_id
;
+ screen->cur_
ctx = nv50
;
}
if (nv50->state.dirty & NV50_NEW_FRAMEBUFFER)
}
if (nv50->state.dirty & NV50_NEW_FRAMEBUFFER)