diff options
author | Marek Olšák <[email protected]> | 2017-02-22 19:59:27 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-02-25 00:03:09 +0100 |
commit | e027935a795ecf546f3e4abcc25655766f9615ac (patch) | |
tree | 0022dfc08cfa224309eee5f5913fa0b9a95c7c57 /src/mesa/state_tracker/st_atom.h | |
parent | cc2f92b09f8ab0470106185585fdc1282da523e6 (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.h | 7 |
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) |