+void iris_init_flush_functions(struct pipe_context *ctx);
+
+/* iris_blorp.c */
+void gen8_init_blorp(struct iris_context *ice);
+void gen9_init_blorp(struct iris_context *ice);
+void gen10_init_blorp(struct iris_context *ice);
+void gen11_init_blorp(struct iris_context *ice);
+
+/* iris_border_color.c */
+
+void iris_init_border_color_pool(struct iris_context *ice);
+void iris_destroy_border_color_pool(struct iris_context *ice);
+void iris_border_color_pool_reserve(struct iris_context *ice, unsigned count);
+uint32_t iris_upload_border_color(struct iris_context *ice,
+ union pipe_color_union *color);
+
+/* iris_state.c */
+void gen8_init_state(struct iris_context *ice);
+void gen9_init_state(struct iris_context *ice);
+void gen10_init_state(struct iris_context *ice);
+void gen11_init_state(struct iris_context *ice);
+void gen8_emit_urb_setup(struct iris_context *ice,
+ struct iris_batch *batch,
+ const unsigned size[4],
+ bool tess_present, bool gs_present);
+void gen9_emit_urb_setup(struct iris_context *ice,
+ struct iris_batch *batch,
+ const unsigned size[4],
+ bool tess_present, bool gs_present);
+void gen10_emit_urb_setup(struct iris_context *ice,
+ struct iris_batch *batch,
+ const unsigned size[4],
+ bool tess_present, bool gs_present);
+void gen11_emit_urb_setup(struct iris_context *ice,
+ struct iris_batch *batch,
+ const unsigned size[4],
+ bool tess_present, bool gs_present);
+
+/* iris_program.c */
+const struct shader_info *iris_get_shader_info(const struct iris_context *ice,
+ gl_shader_stage stage);
+struct iris_bo *iris_get_scratch_space(struct iris_context *ice,
+ unsigned per_thread_scratch,
+ gl_shader_stage stage);
+
+/* iris_program_cache.c */
+
+void iris_init_program_cache(struct iris_context *ice);
+void iris_destroy_program_cache(struct iris_context *ice);
+void iris_print_program_cache(struct iris_context *ice);
+struct iris_compiled_shader *iris_find_cached_shader(struct iris_context *ice,
+ enum iris_program_cache_id,
+ uint32_t key_size,
+ const void *key);
+struct iris_compiled_shader *iris_upload_shader(struct iris_context *ice,
+ enum iris_program_cache_id,
+ uint32_t key_size,
+ const void *key,
+ const void *assembly,
+ struct brw_stage_prog_data *,
+ uint32_t *streamout,
+ enum brw_param_builtin *sysv,
+ unsigned num_system_values,
+ unsigned num_cbufs);
+const void *iris_find_previous_compile(const struct iris_context *ice,
+ enum iris_program_cache_id cache_id,
+ unsigned program_string_id);
+bool iris_blorp_lookup_shader(struct blorp_batch *blorp_batch,
+ const void *key,
+ uint32_t key_size,
+ uint32_t *kernel_out,
+ void *prog_data_out);
+bool iris_blorp_upload_shader(struct blorp_batch *blorp_batch,
+ const void *key, uint32_t key_size,
+ const void *kernel, uint32_t kernel_size,
+ const struct brw_stage_prog_data *prog_data,
+ uint32_t prog_data_size,
+ uint32_t *kernel_out,
+ void *prog_data_out);
+
+/* iris_query.c */
+
+void iris_math_div32_gpr0(struct iris_context *ice,
+ struct iris_batch *batch,
+ uint32_t D);
+void iris_math_add32_gpr0(struct iris_context *ice,
+ struct iris_batch *batch,
+ uint32_t x);
+
+uint64_t iris_timebase_scale(const struct gen_device_info *devinfo,
+ uint64_t gpu_timestamp);
+void iris_resolve_conditional_render(struct iris_context *ice);
+
+/* iris_resolve.c */
+
+void iris_predraw_resolve_inputs(struct iris_context *ice,
+ struct iris_batch *batch,
+ bool *draw_aux_buffer_disabled,
+ gl_shader_stage stage,
+ bool consider_framebuffer);
+void iris_predraw_resolve_framebuffer(struct iris_context *ice,
+ struct iris_batch *batch,
+ bool *draw_aux_buffer_disabled);
+void iris_postdraw_update_resolve_tracking(struct iris_context *ice,
+ struct iris_batch *batch);