diff options
Diffstat (limited to 'src/mesa/state_tracker/st_program.h')
-rw-r--r-- | src/mesa/state_tracker/st_program.h | 62 |
1 files changed, 14 insertions, 48 deletions
diff --git a/src/mesa/state_tracker/st_program.h b/src/mesa/state_tracker/st_program.h index c2df2463273..3ec455d2744 100644 --- a/src/mesa/state_tracker/st_program.h +++ b/src/mesa/state_tracker/st_program.h @@ -219,34 +219,6 @@ struct st_vp_variant /** - * Derived from Mesa gl_program: - */ -struct st_vertex_program -{ - struct gl_program Base; /**< The Mesa vertex program */ - struct pipe_shader_state state; - struct glsl_to_tgsi_visitor* glsl_to_tgsi; - uint64_t affected_states; /**< ST_NEW_* flags to mark dirty when binding */ - - /* used when bypassing glsl_to_tgsi: */ - struct gl_shader_program *shader_program; - - /** maps a TGSI input index back to a Mesa VERT_ATTRIB_x */ - ubyte index_to_input[PIPE_MAX_ATTRIBS]; - ubyte num_inputs; - /** Reverse mapping of the above */ - ubyte input_to_index[VERT_ATTRIB_MAX]; - - /** Maps VARYING_SLOT_x to slot */ - ubyte result_to_output[VARYING_SLOT_MAX]; - - /** List of translated variants of this vertex program. - */ - struct st_vp_variant *variants; -}; - - -/** * Geometry program variant. */ struct st_common_variant @@ -276,16 +248,20 @@ struct st_common_program union { struct st_common_variant *variants; + struct st_vp_variant *vp_variants; struct st_fp_variant *fp_variants; }; -}; + /** maps a TGSI input index back to a Mesa VERT_ATTRIB_x */ + ubyte index_to_input[PIPE_MAX_ATTRIBS]; + ubyte num_inputs; + /** Reverse mapping of the above */ + ubyte input_to_index[VERT_ATTRIB_MAX]; + + /** Maps VARYING_SLOT_x to slot */ + ubyte result_to_output[VARYING_SLOT_MAX]; +}; -static inline struct st_vertex_program * -st_vertex_program( struct gl_program *vp ) -{ - return (struct st_vertex_program *)vp; -} static inline struct st_common_program * st_common_program( struct gl_program *cp ) @@ -294,16 +270,6 @@ st_common_program( struct gl_program *cp ) } static inline void -st_reference_vertprog(struct st_context *st, - struct st_vertex_program **ptr, - struct st_vertex_program *prog) -{ - _mesa_reference_program(st->ctx, - (struct gl_program **) ptr, - (struct gl_program *) prog); -} - -static inline void st_reference_prog(struct st_context *st, struct st_common_program **ptr, struct st_common_program *prog) @@ -328,7 +294,7 @@ st_set_prog_affected_state_flags(struct gl_program *prog); extern struct st_vp_variant * st_get_vp_variant(struct st_context *st, - struct st_vertex_program *stvp, + struct st_common_program *stvp, const struct st_common_variant_key *key); @@ -344,7 +310,7 @@ st_get_common_variant(struct st_context *st, extern void st_release_vp_variants( struct st_context *st, - struct st_vertex_program *stvp ); + struct st_common_program *stvp ); extern void st_release_fp_variants( struct st_context *st, @@ -360,14 +326,14 @@ extern void st_finalize_nir_before_variants(struct nir_shader *nir); extern void -st_prepare_vertex_program(struct st_vertex_program *stvp); +st_prepare_vertex_program(struct st_common_program *stvp); extern void st_translate_stream_output_info(struct gl_program *prog); extern bool st_translate_vertex_program(struct st_context *st, - struct st_vertex_program *stvp); + struct st_common_program *stvp); extern bool st_translate_fragment_program(struct st_context *st, |