#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 | \
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);
}
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
}