diff options
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_render.c')
-rw-r--r-- | src/gallium/drivers/ilo/ilo_render.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/gallium/drivers/ilo/ilo_render.c b/src/gallium/drivers/ilo/ilo_render.c index 4b85f8cbeb3..3b3b9cae7ae 100644 --- a/src/gallium/drivers/ilo/ilo_render.c +++ b/src/gallium/drivers/ilo/ilo_render.c @@ -88,8 +88,6 @@ ilo_render_create(struct ilo_builder *builder) break; } - render->invalidate_flags = ILO_RENDER_INVALIDATE_ALL; - render->workaround_bo = intel_winsys_alloc_buffer(builder->winsys, "PIPE_CONTROL workaround", 4096, false); if (!render->workaround_bo) { @@ -117,6 +115,9 @@ ilo_render_create(struct ilo_builder *builder) sample_position_8x[4 + i].y << (8 * i); } + ilo_render_invalidate_hw(render); + ilo_render_invalidate_builder(render); + return render; } @@ -161,3 +162,20 @@ ilo_render_get_sample_position(const struct ilo_render *render, *x = (float) pos[sample_index].x / 16.0f; *y = (float) pos[sample_index].y / 16.0f; } + +void +ilo_render_invalidate_hw(struct ilo_render *render) +{ + render->hw_ctx_changed = true; +} + +void +ilo_render_invalidate_builder(struct ilo_render *render) +{ + render->batch_bo_changed = true; + render->state_bo_changed = true; + render->instruction_bo_changed = true; + + /* Kernel flushes everything. Shouldn't we set all bits here? */ + render->state.current_pipe_control_dw1 = 0; +} |