void ilo_render_emit_draw_dynamic_states(struct ilo_render *render, const struct ilo_state_vector *vec, struct ilo_render_draw_session *session) { const unsigned dynamic_used = ilo_builder_dynamic_used(render->builder); ILO_DEV_ASSERT(render->dev, 6, 7.5); if (ilo_dev_gen(render->dev) >= ILO_GEN(7)) gen7_emit_draw_dynamic_viewports(render, vec, session); else gen6_emit_draw_dynamic_viewports(render, vec, session); gen6_emit_draw_dynamic_cc(render, vec, session); gen6_emit_draw_dynamic_scissors(render, vec, session); gen6_emit_draw_dynamic_pcb(render, vec, session); gen6_emit_draw_dynamic_samplers(render, vec, PIPE_SHADER_VERTEX, session); gen6_emit_draw_dynamic_samplers(render, vec, PIPE_SHADER_FRAGMENT, session); assert(ilo_builder_dynamic_used(render->builder) <= dynamic_used + ilo_render_get_draw_dynamic_states_len(render, vec)); }
int ilo_render_get_draw_len(const struct ilo_render *render, const struct ilo_state_vector *vec) { ILO_DEV_ASSERT(render->dev, 6, 8); return ilo_render_get_draw_dynamic_states_len(render, vec) + ilo_render_get_draw_surface_states_len(render, vec) + ilo_render_get_draw_commands_len(render, vec); }