r300g/swtcl: fix crash when setting vertex buffers
[mesa.git] / src / gallium / drivers / nv50 / nv50_shader_state.c
index 586eefe50da1518bd73573e304b7e3d80db6170f..7f0524373579dd3bcb02067d384a06aa228d4585 100644 (file)
@@ -129,9 +129,12 @@ nv50_program_update_context_state(struct nv50_context *nv50,
 {
    const unsigned flags = NOUVEAU_BO_VRAM | NOUVEAU_BO_RDWR;
 
-   if (prog && prog->uses_lmem) {
-      if (!nv50->state.tls_required)
+   if (prog && prog->tls_space) {
+      if (nv50->state.new_tls_space)
+         nouveau_bufctx_reset(nv50->bufctx_3d, NV50_BIND_TLS);
+      if (!nv50->state.tls_required || nv50->state.new_tls_space)
          BCTX_REFN_bo(nv50->bufctx_3d, TLS, flags, nv50->screen->tls_bo);
+      nv50->state.new_tls_space = FALSE;
       nv50->state.tls_required |= 1 << stage;
    } else {
       if (nv50->state.tls_required == (1 << stage))