summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_atom.h
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-02-22 19:59:27 +0100
committerMarek Olšák <[email protected]>2017-02-25 00:03:09 +0100
commite027935a795ecf546f3e4abcc25655766f9615ac (patch)
tree0022dfc08cfa224309eee5f5913fa0b9a95c7c57 /src/mesa/state_tracker/st_atom.h
parentcc2f92b09f8ab0470106185585fdc1282da523e6 (diff)
st/mesa: don't update unrelated states in non-draw calls such as Clear
If a VAO isn't bound and u_vbuf isn't enabled because of the Core profile, we'll get user vertex buffers in drivers if we update vertex buffers in glClear. So don't do that. This fixes a regression since disabling u_vbuf for Core profiles. Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_atom.h')
-rw-r--r--src/mesa/state_tracker/st_atom.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_atom.h b/src/mesa/state_tracker/st_atom.h
index 37e382c4456..45c3e487647 100644
--- a/src/mesa/state_tracker/st_atom.h
+++ b/src/mesa/state_tracker/st_atom.h
@@ -43,6 +43,8 @@ struct st_context;
*/
enum st_pipeline {
ST_PIPELINE_RENDER,
+ ST_PIPELINE_CLEAR,
+ ST_PIPELINE_UPDATE_FRAMEBUFFER,
ST_PIPELINE_COMPUTE,
};
@@ -145,6 +147,11 @@ enum {
/* All state flags within each group: */
#define ST_PIPELINE_RENDER_STATE_MASK (ST_NEW_CS_STATE - 1)
#define ST_PIPELINE_COMPUTE_STATE_MASK (0xffllu << ST_NEW_CS_STATE_INDEX)
+#define ST_PIPELINE_CLEAR_STATE_MASK (ST_NEW_FB_STATE | \
+ ST_NEW_SCISSOR | \
+ ST_NEW_WINDOW_RECTANGLES)
+/* For ReadPixels, ReadBuffer, GetSamplePosition: */
+#define ST_PIPELINE_UPDATE_FB_STATE_MASK (ST_NEW_FB_STATE)
#define ST_ALL_STATES_MASK (ST_PIPELINE_RENDER_STATE_MASK | \
ST_PIPELINE_COMPUTE_STATE_MASK)