mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
iris: don't let render/compute contexts stomp each other's dirty bits
only clear what you process
This commit is contained in:
parent
f8796079da
commit
b3a40c27a2
2 changed files with 10 additions and 3 deletions
|
|
@ -111,6 +111,14 @@ struct blorp_params;
|
|||
#define IRIS_DIRTY_VF (1ull << 53)
|
||||
#define IRIS_DIRTY_VF_TOPOLOGY (1ull << 54)
|
||||
|
||||
#define IRIS_ALL_DIRTY_FOR_COMPUTE (IRIS_DIRTY_CS | \
|
||||
IRIS_DIRTY_SAMPLER_STATES_CS | \
|
||||
IRIS_DIRTY_UNCOMPILED_CS | \
|
||||
IRIS_DIRTY_CONSTANTS_CS | \
|
||||
IRIS_DIRTY_BINDINGS_CS)
|
||||
|
||||
#define IRIS_ALL_DIRTY_FOR_RENDER ~IRIS_ALL_DIRTY_FOR_COMPUTE
|
||||
|
||||
#define IRIS_ALL_DIRTY_BINDINGS (IRIS_DIRTY_BINDINGS_VS | \
|
||||
IRIS_DIRTY_BINDINGS_TCS | \
|
||||
IRIS_DIRTY_BINDINGS_TES | \
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ iris_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
|
|||
ice->vtbl.update_surface_base_address(batch, &ice->state.binder);
|
||||
ice->vtbl.upload_render_state(ice, batch, info);
|
||||
|
||||
ice->state.dirty = 0ull;
|
||||
ice->state.dirty &= ~IRIS_ALL_DIRTY_FOR_RENDER;
|
||||
|
||||
iris_postdraw_update_resolve_tracking(ice, batch);
|
||||
}
|
||||
|
|
@ -163,8 +163,7 @@ iris_launch_grid(struct pipe_context *ctx, const struct pipe_grid_info *grid)
|
|||
ice->vtbl.update_surface_base_address(batch, &ice->state.binder);
|
||||
ice->vtbl.upload_compute_state(ice, batch, grid);
|
||||
|
||||
// XXX: this is wrong. we need separate dirty tracking for compute/render
|
||||
ice->state.dirty = 0ull;
|
||||
ice->state.dirty &= ~IRIS_ALL_DIRTY_FOR_COMPUTE;
|
||||
|
||||
// XXX: postdraw resolve tracking
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue