radeonsi: don't pass si_shader to si_shader_binary_read
[mesa.git] / src / gallium / drivers / radeonsi / si_state.h
index f5726f0c5dedb59d8b07449473bed6038d14a73d..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 {
@@ -106,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;
@@ -122,6 +127,7 @@ union si_state_atoms {
                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];
 };
@@ -234,16 +240,6 @@ 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_ring_buffer(struct pipe_context *ctx, uint shader, uint slot,
                        struct pipe_resource *buffer,
@@ -286,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 */