diff options
author | Mathias Fröhlich <[email protected]> | 2018-02-05 22:02:51 +0100 |
---|---|---|
committer | Mathias Fröhlich <[email protected]> | 2018-02-09 04:26:13 +0100 |
commit | 437cae411e7664e01d9c1c280317274b3ffc0734 (patch) | |
tree | f986d3d16af2058ab01453c39c7722d29547c21a /src/mesa/state_tracker/st_atom.c | |
parent | 2f9eb0aad5a0d2177b52a22d012fd53438edf9fe (diff) |
gallium: Mute arrays for several meta like callbacks.
Set the _DrawArray pointer to NULL when calling into the Drivers
Bitmap/CopyPixels/DrawAtlasBitmaps/DrawPixels/DrawTex hooks.
This fixes an assert that gets uncovered when the following
patch gets applied.
v2: Mute from within the state tracker instead of generic mesa.
v3: Avoid evaluating _DrawArrays from within st_validate_state.
Signed-off-by: Mathias Fröhlich <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker/st_atom.c')
-rw-r--r-- | src/mesa/state_tracker/st_atom.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c index 253b5081640..b597c62632e 100644 --- a/src/mesa/state_tracker/st_atom.c +++ b/src/mesa/state_tracker/st_atom.c @@ -203,6 +203,16 @@ void st_validate_state( struct st_context *st, enum st_pipeline pipeline ) pipeline_mask = ST_PIPELINE_CLEAR_STATE_MASK; break; + case ST_PIPELINE_META: + if (st->gfx_shaders_may_be_dirty) { + check_program_state(st); + st->gfx_shaders_may_be_dirty = false; + } + + st_manager_validate_framebuffers(st); + pipeline_mask = ST_PIPELINE_META_STATE_MASK; + break; + case ST_PIPELINE_UPDATE_FRAMEBUFFER: st_manager_validate_framebuffers(st); pipeline_mask = ST_PIPELINE_UPDATE_FB_STATE_MASK; |