#include "lp_jit.h"
#include "lp_setup.h"
#include "lp_state_fs.h"
+#include "lp_state_cs.h"
#include "lp_state_setup.h"
struct draw_stage;
struct draw_vertex_shader;
struct lp_fragment_shader;
+struct lp_compute_shader;
struct lp_blend_state;
struct lp_setup_context;
struct lp_setup_variant;
struct lp_fragment_shader *fs;
struct draw_vertex_shader *vs;
const struct lp_geometry_shader *gs;
+ struct lp_compute_shader *cs;
const struct lp_velems_state *velems;
const struct lp_so_state *so;
struct pipe_viewport_state viewports[PIPE_MAX_VIEWPORTS];
struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];
+ struct pipe_shader_buffer ssbos[PIPE_SHADER_TYPES][LP_MAX_TGSI_SHADER_BUFFERS];
+ struct pipe_image_view images[PIPE_SHADER_TYPES][LP_MAX_TGSI_SHADER_IMAGES];
+
unsigned num_samplers[PIPE_SHADER_TYPES];
unsigned num_sampler_views[PIPE_SHADER_TYPES];
+ unsigned num_images[PIPE_SHADER_TYPES];
unsigned num_vertex_buffers;
unsigned active_occlusion_queries;
unsigned dirty; /**< Mask of LP_NEW_x flags */
-
+ unsigned cs_dirty; /**< Mask of LP_CSNEW_x flags */
/** Mapped vertex buffers */
ubyte *mapped_vbuffer[PIPE_MAX_ATTRIBS];
struct lp_setup_variant_list_item setup_variants_list;
unsigned nr_setup_variants;
+ /** List of all compute shader variants */
+ struct lp_cs_variant_list_item cs_variants_list;
+ unsigned nr_cs_variants;
+ unsigned nr_cs_instrs;
+ struct lp_cs_context *csctx;
+
/** Conditional query object and mode */
struct pipe_query *render_cond_query;
enum pipe_render_cond_flag render_cond_mode;