radeonsi: split si_clear_buffer to remove enum si_method
[mesa.git] / src / gallium / drivers / radeonsi / si_state.h
index 4f62c8b98f368eed8ac7c7c92ee1a21f5354774a..89bb5b64a3ecd1ccbdb72bb577fcd073c1bf1043 100644 (file)
@@ -213,6 +213,7 @@ union si_state_atoms {
                struct si_atom stencil_ref;
                struct si_atom spi_map;
                struct si_atom scratch_state;
+               struct si_atom window_rectangles;
        } s;
        struct si_atom array[0];
 };
@@ -276,12 +277,20 @@ enum si_tracked_reg {
        SI_TRACKED_PA_SC_BINNER_CNTL_0,
        SI_TRACKED_DB_DFSM_CONTROL,
 
+       SI_TRACKED_PA_CL_GB_VERT_CLIP_ADJ, /* 4 consecutive registers */
+       SI_TRACKED_PA_CL_GB_VERT_DISC_ADJ,
+       SI_TRACKED_PA_CL_GB_HORZ_CLIP_ADJ,
+       SI_TRACKED_PA_CL_GB_HORZ_DISC_ADJ,
+
+       SI_TRACKED_PA_SC_CLIPRECT_RULE,
+
        SI_NUM_TRACKED_REGS,
 };
 
 struct si_tracked_regs {
        uint32_t                reg_saved;
        uint32_t                reg_value[SI_NUM_TRACKED_REGS];
+       uint32_t                spi_ps_input_cntl[32];
 };
 
 /* Private read-write buffer slots. */
@@ -488,15 +497,23 @@ void si_set_occlusion_query_state(struct si_context *sctx,
 void si_emit_dpbb_state(struct si_context *sctx);
 
 /* si_state_shaders.c */
+void *si_get_ir_binary(struct si_shader_selector *sel);
+bool si_shader_cache_load_shader(struct si_screen *sscreen, void *ir_binary,
+                                struct si_shader *shader);
+bool si_shader_cache_insert_shader(struct si_screen *sscreen, void *ir_binary,
+                                  struct si_shader *shader,
+                                  bool insert_into_disk_cache);
 bool si_update_shaders(struct si_context *sctx);
 void si_init_shader_functions(struct si_context *sctx);
 bool si_init_shader_cache(struct si_screen *sscreen);
 void si_destroy_shader_cache(struct si_screen *sscreen);
+void si_schedule_initial_compile(struct si_context *sctx, unsigned processor,
+                                struct util_queue_fence *ready_fence,
+                                struct si_compiler_ctx_state *compiler_ctx_state,
+                                void *job, util_queue_execute_func execute);
 void si_get_active_slot_masks(const struct tgsi_shader_info *info,
                              uint32_t *const_and_shader_buffers,
                              uint64_t *samplers_and_images);
-void *si_get_blit_vs(struct si_context *sctx, enum blitter_attrib_type type,
-                    unsigned num_layers);
 
 /* si_state_draw.c */
 void si_init_ia_multi_vgt_param_table(struct si_context *sctx);