X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fsoftpipe%2Fsp_state.h;h=af6b9782afa42111d1c6bb6238fbae463a15b682;hb=09bb8c85577e761062ff8c85847bf49bad4ea86f;hp=c35534c931d398dab780e3f5d7816d42def61e87;hpb=3d29e75a5f59639c3b9dfed26cd41ab13c0d60fc;p=mesa.git diff --git a/src/gallium/drivers/softpipe/sp_state.h b/src/gallium/drivers/softpipe/sp_state.h index c35534c931d..af6b9782afa 100644 --- a/src/gallium/drivers/softpipe/sp_state.h +++ b/src/gallium/drivers/softpipe/sp_state.h @@ -56,6 +56,8 @@ struct tgsi_sampler; +struct tgsi_image; +struct tgsi_buffer; struct tgsi_exec_machine; struct vertex_info; @@ -81,11 +83,14 @@ struct sp_fragment_shader_variant void (*prepare)(const struct sp_fragment_shader_variant *shader, struct tgsi_exec_machine *machine, - struct tgsi_sampler *sampler); + struct tgsi_sampler *sampler, + struct tgsi_image *image, + struct tgsi_buffer *buffer); unsigned (*run)(const struct sp_fragment_shader_variant *shader, struct tgsi_exec_machine *machine, - struct quad_header *quad); + struct quad_header *quad, + bool early_depth_test); /* Deletes this instance of the object */ void (*delete)(struct sp_fragment_shader_variant *shader, @@ -126,6 +131,13 @@ struct sp_so_state { struct pipe_stream_output_info base; }; +/** Subclass of pipe_compute_state */ +struct sp_compute_shader { + struct pipe_compute_state shader; + struct tgsi_token *tokens; + struct tgsi_shader_info info; + int max_sampler; /* -1 if no samplers */ +}; void softpipe_init_blend_funcs(struct pipe_context *pipe); @@ -148,6 +160,9 @@ softpipe_init_streamout_funcs(struct pipe_context *pipe); void softpipe_init_vertex_funcs(struct pipe_context *pipe); +void +softpipe_init_image_funcs(struct pipe_context *pipe); + void softpipe_set_framebuffer_state(struct pipe_context *, const struct pipe_framebuffer_state *); @@ -157,7 +172,7 @@ softpipe_update_derived(struct softpipe_context *softpipe, unsigned prim); void softpipe_set_sampler_views(struct pipe_context *pipe, - unsigned shader, + enum pipe_shader_type shader, unsigned start, unsigned num, struct pipe_sampler_view **views); @@ -174,9 +189,6 @@ void softpipe_unmap_texture_surfaces(struct softpipe_context *sp); -struct vertex_info * -softpipe_get_vertex_info(struct softpipe_context *softpipe); - struct vertex_info * softpipe_get_vbuf_vertex_info(struct softpipe_context *softpipe); @@ -208,4 +220,10 @@ void softpipe_cleanup_geometry_sampling(struct softpipe_context *ctx); +void +softpipe_launch_grid(struct pipe_context *context, + const struct pipe_grid_info *info); + +void +softpipe_update_compute_samplers(struct softpipe_context *softpipe); #endif