X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fr600%2Fr600_pipe.h;h=3fa7d77d37e8b665f5b0e9b171745f6c286ce4ca;hb=9a22c8561859edf6edc7641be1a0973792293941;hp=a05d543f0d15aac2490fab6d02514a22f47a3b92;hpb=fa8bc90990212ac213355140e59a57df655efb73;p=mesa.git diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index a05d543f0d1..3fa7d77d37e 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -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