st/mesa: only expose ARB_shader_bit_encoding with GLSL 1.3
[mesa.git] / src / mesa / state_tracker / st_cb_viewport.c
index 049755e45c0b74f20432009682dfb513b9d14921..d4742eb897d6388bb056879cfb73115f4628b3e2 100644 (file)
@@ -56,13 +56,20 @@ static void st_viewport(struct gl_context * ctx, GLint x, GLint y,
    if (!st->invalidate_on_gl_viewport)
       return;
 
+   /*
+    * Normally we'd want the state tracker manager to mark the drawables
+    * invalid only when needed. This will force the state tracker manager
+    * to revalidate the drawable, rather than just update the context with
+    * the latest cached drawable info.
+    */
+
    stdraw = st_ws_framebuffer(st->ctx->DrawBuffer);
    stread = st_ws_framebuffer(st->ctx->ReadBuffer);
 
-   if (stdraw)
-      p_atomic_set(&stdraw->revalidate, TRUE);
-   if (stread && stread != stdraw)
-      p_atomic_set(&stread->revalidate, TRUE);
+   if (stdraw && stdraw->iface)
+      stdraw->iface_stamp = p_atomic_read(&stdraw->iface->stamp) - 1;
+   if (stread && stread != stdraw && stread->iface)
+      stread->iface_stamp = p_atomic_read(&stread->iface->stamp) - 1;
 }
 
 void st_init_viewport_functions(struct dd_function_table *functions)