radeonsi: don't pass si_shader to si_shader_binary_read
[mesa.git] / src / gallium / drivers / radeonsi / si_state.h
index a396f07e926d0d3b69617d021bf0d55853e71466..f5ca661f8d71943a2e3636bcd32f37f4b09ed2d4 100644 (file)
@@ -50,6 +50,7 @@ struct si_state_rasterizer {
        bool                    flatshade;
        bool                    two_side;
        bool                    multisample_enable;
+       bool                    force_persample_interp;
        bool                    line_stipple_enable;
        unsigned                sprite_coord_enable;
        unsigned                pa_sc_line_stipple;
@@ -58,6 +59,9 @@ struct si_state_rasterizer {
        bool                    poly_stipple_enable;
        bool                    line_smooth;
        bool                    poly_smooth;
+       bool                    uses_poly_offset;
+       bool                    clamp_fragment_color;
+       bool                    rasterizer_discard;
 };
 
 struct si_dsa_stencil_ref_part {
@@ -91,7 +95,6 @@ union si_state {
                struct si_state_rasterizer      *rasterizer;
                struct si_state_dsa             *dsa;
                struct si_pm4_state             *poly_offset;
-               struct si_pm4_state             *ta_bordercolor_base;
                struct si_pm4_state             *ls;
                struct si_pm4_state             *hs;
                struct si_pm4_state             *es;
@@ -99,7 +102,6 @@ union si_state {
                struct si_pm4_state             *vgt_shader_config;
                struct si_pm4_state             *vs;
                struct si_pm4_state             *ps;
-               struct si_pm4_state             *spi;
        } named;
        struct si_pm4_state     *array[0];
 };
@@ -108,6 +110,7 @@ union si_state_atoms {
        struct {
                /* The order matters. */
                struct r600_atom *cache_flush;
+               struct r600_atom *render_cond;
                struct r600_atom *streamout_begin;
                struct r600_atom *streamout_enable; /* must be after streamout_begin */
                struct r600_atom *framebuffer;
@@ -123,6 +126,8 @@ union si_state_atoms {
                struct r600_atom *scissors;
                struct r600_atom *viewports;
                struct r600_atom *stencil_ref;
+               struct r600_atom *spi_map;
+               struct r600_atom *spi_ps_input;
        } s;
        struct r600_atom *array[0];
 };
@@ -235,19 +240,7 @@ struct si_buffer_resources {
                                  si_pm4_block_idx(member)); \
        } while(0)
 
-#define si_pm4_set_state(sctx, member, value) \
-       do { \
-               if ((sctx)->queued.named.member != (value)) { \
-                       si_pm4_free_state(sctx, \
-                               (struct si_pm4_state *)(sctx)->queued.named.member, \
-                               si_pm4_block_idx(member)); \
-                       (sctx)->queued.named.member = (value); \
-               } \
-       } while(0)
-
 /* si_descriptors.c */
-void si_set_sampler_descriptors(struct si_context *sctx, unsigned shader,
-                               unsigned start, unsigned count, void **states);
 void si_set_ring_buffer(struct pipe_context *ctx, uint shader, uint slot,
                        struct pipe_resource *buffer,
                        unsigned stride, unsigned num_records,
@@ -267,8 +260,7 @@ struct si_shader_selector;
 
 void si_init_atom(struct si_context *sctx, struct r600_atom *atom,
                  struct r600_atom **list_elem,
-                 void (*emit_func)(struct si_context *ctx, struct r600_atom *state),
-                 unsigned num_dw);
+                 void (*emit_func)(struct si_context *ctx, struct r600_atom *state));
 boolean si_is_format_supported(struct pipe_screen *screen,
                                enum pipe_format format,
                                enum pipe_texture_target target,
@@ -290,7 +282,7 @@ si_create_sampler_view_custom(struct pipe_context *ctx,
                              unsigned force_level);
 
 /* si_state_shader.c */
-void si_update_shaders(struct si_context *sctx);
+bool si_update_shaders(struct si_context *sctx);
 void si_init_shader_functions(struct si_context *sctx);
 
 /* si_state_draw.c */
@@ -298,7 +290,4 @@ void si_emit_cache_flush(struct si_context *sctx, struct r600_atom *atom);
 void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *dinfo);
 void si_trace_emit(struct si_context *sctx);
 
-/* si_commands.c */
-void si_cmd_context_control(struct si_pm4_state *pm4);
-
 #endif