void ilo_render_emit_rectlist_dynamic_states(struct ilo_render *render, const struct ilo_blitter *blitter, struct ilo_render_rectlist_session *session) { const unsigned dynamic_used = ilo_builder_dynamic_used(render->builder); ILO_DEV_ASSERT(render->dev, 6, 7.5); /* both are inclusive */ session->vb_start = gen6_user_vertex_buffer(render->builder, sizeof(blitter->vertices), (const void *) blitter->vertices); session->vb_end = session->vb_start + sizeof(blitter->vertices) - 1; if (blitter->uses & ILO_BLITTER_USE_DSA) { render->state.DEPTH_STENCIL_STATE = gen6_DEPTH_STENCIL_STATE(render->builder, &blitter->dsa); } if (blitter->uses & ILO_BLITTER_USE_CC) { render->state.COLOR_CALC_STATE = gen6_COLOR_CALC_STATE(render->builder, &blitter->cc.stencil_ref, blitter->cc.alpha_ref, &blitter->cc.blend_color); } if (blitter->uses & ILO_BLITTER_USE_VIEWPORT) { render->state.CC_VIEWPORT = gen6_CC_VIEWPORT(render->builder, &blitter->viewport, 1); } assert(ilo_builder_dynamic_used(render->builder) <= dynamic_used + ilo_render_get_rectlist_dynamic_states_len(render, blitter)); }
int ilo_render_get_rectlist_len(const struct ilo_render *render, const struct ilo_blitter *blitter) { ILO_DEV_ASSERT(render->dev, 6, 8); return ilo_render_get_rectlist_dynamic_states_len(render, blitter) + ilo_render_get_rectlist_commands_len(render, blitter); }