r600g: set pipe_context::priv = NULL
[mesa.git] / src / gallium / drivers / r600 / r600_pipe.h
index a05d543f0d15aac2490fab6d02514a22f47a3b92..3fa7d77d37e8b665f5b0e9b171745f6c286ce4ca 100644 (file)
@@ -189,6 +189,7 @@ struct r600_framebuffer {
        bool cb0_is_integer;
        bool is_msaa_resolve;
        bool dual_src_blend;
+       bool do_update_surf_dirtiness;
 };
 
 struct r600_sample_mask {
@@ -279,6 +280,7 @@ struct r600_rasterizer_state {
        bool                            scissor_enable;
        bool                            multisample_enable;
        bool                            clip_halfz;
+       bool                            rasterizer_discard;
 };
 
 struct r600_poly_offset_state {
@@ -322,9 +324,9 @@ struct r600_pipe_shader_selector {
        enum pipe_shader_type   type;
 
        /* geometry shader properties */
-       unsigned        gs_output_prim;
-       unsigned        gs_max_out_vertices;
-       unsigned        gs_num_invocations;
+       enum pipe_prim_type     gs_output_prim;
+       unsigned                gs_max_out_vertices;
+       unsigned                gs_num_invocations;
 
        /* TCS/VS */
        uint64_t        lds_patch_outputs_written_mask;
@@ -507,11 +509,10 @@ struct r600_context {
         * the GPU addresses are updated. */
        struct list_head                texture_buffers;
 
-       /* Index buffer. */
-       struct pipe_index_buffer        index_buffer;
-
        /* Last draw state (-1 = unset). */
        enum pipe_prim_type             last_primitive_type; /* Last primitive type used in draw_vbo. */
+       enum pipe_prim_type             current_rast_prim; /* primitive type after TES, GS */
+       enum pipe_prim_type             last_rast_prim;
        unsigned                        last_start_instance;
 
        void                            *sb_context;
@@ -523,6 +524,13 @@ struct r600_context {
        struct r600_pipe_shader_selector *last_tcs;
        unsigned last_num_tcs_input_cp;
        unsigned lds_alloc;
+
+       /* Debug state. */
+       bool                    is_debug;
+       struct radeon_saved_cs  last_gfx;
+       struct r600_resource    *last_trace_buf;
+       struct r600_resource    *trace_buf;
+       unsigned                trace_id;
 };
 
 static inline void r600_emit_command_buffer(struct radeon_winsys_cs *cs,
@@ -951,4 +959,8 @@ static inline unsigned r600_get_flush_flags(enum r600_coherency coher)
 #define     V_028A6C_OUTPRIM_TYPE_TRISTRIP             2
 
 unsigned r600_conv_prim_to_gs_out(unsigned mode);
+
+void eg_trace_emit(struct r600_context *rctx);
+void eg_dump_debug_state(struct pipe_context *ctx, FILE *f,
+                        unsigned flags);
 #endif