Skip to content
Snippets Groups Projects
Commit 4a21edf0 authored by Marek Olšák's avatar Marek Olšák
Browse files

st/mesa: inline st_prepare_vertex_program


No other shader stage has a "prepare" function.
This will allow removing some variables from st_vertex_program.

Also, prepare_fragment_program was a dead prototype.

Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Reviewed-by: default avatarBrian Paul <brianp@vmware.com>
Tested-by: default avatarBrian Paul <brianp@vmware.com>
parent c80c19a9
No related branches found
No related tags found
No related merge requests found
...@@ -228,24 +228,25 @@ st_release_tep_variants(struct st_context *st, struct st_tesseval_program *sttep ...@@ -228,24 +228,25 @@ st_release_tep_variants(struct st_context *st, struct st_tesseval_program *sttep
/** /**
* Translate a Mesa vertex shader into a TGSI shader. * Translate a vertex program to create a new variant.
* \param outputMapping to map vertex program output registers (VARYING_SLOT_x)
* to TGSI output slots
* \param tokensOut destination for TGSI tokens
* \return pointer to cached pipe_shader object.
*/ */
void static struct st_vp_variant *
st_prepare_vertex_program(struct gl_context *ctx, st_translate_vertex_program(struct st_context *st,
struct st_vertex_program *stvp) struct st_vertex_program *stvp,
const struct st_vp_variant_key *key)
{ {
struct st_context *st = st_context(ctx); struct st_vp_variant *vpv = CALLOC_STRUCT(st_vp_variant);
struct pipe_context *pipe = st->pipe;
struct ureg_program *ureg;
enum pipe_error error;
unsigned num_outputs;
GLuint attr; GLuint attr;
stvp->num_inputs = 0; stvp->num_inputs = 0;
stvp->num_outputs = 0; stvp->num_outputs = 0;
if (stvp->Base.IsPositionInvariant) if (stvp->Base.IsPositionInvariant)
_mesa_insert_mvp_code(ctx, &stvp->Base); _mesa_insert_mvp_code(st->ctx, &stvp->Base);
/* /*
* Determine number of inputs, the mappings between VERT_ATTRIB_x * Determine number of inputs, the mappings between VERT_ATTRIB_x
...@@ -361,29 +362,9 @@ st_prepare_vertex_program(struct gl_context *ctx, ...@@ -361,29 +362,9 @@ st_prepare_vertex_program(struct gl_context *ctx,
stvp->result_to_output[VARYING_SLOT_EDGE] = stvp->num_outputs; stvp->result_to_output[VARYING_SLOT_EDGE] = stvp->num_outputs;
stvp->output_semantic_name[stvp->num_outputs] = TGSI_SEMANTIC_EDGEFLAG; stvp->output_semantic_name[stvp->num_outputs] = TGSI_SEMANTIC_EDGEFLAG;
stvp->output_semantic_index[stvp->num_outputs] = 0; stvp->output_semantic_index[stvp->num_outputs] = 0;
}
/**
* Translate a vertex program to create a new variant.
*/
static struct st_vp_variant *
st_translate_vertex_program(struct st_context *st,
struct st_vertex_program *stvp,
const struct st_vp_variant_key *key)
{
struct st_vp_variant *vpv = CALLOC_STRUCT(st_vp_variant);
struct pipe_context *pipe = st->pipe;
struct ureg_program *ureg;
enum pipe_error error;
unsigned num_outputs;
st_prepare_vertex_program(st->ctx, stvp);
if (!stvp->glsl_to_tgsi) if (!stvp->glsl_to_tgsi)
{
_mesa_remove_output_reads(&stvp->Base.Base, PROGRAM_OUTPUT); _mesa_remove_output_reads(&stvp->Base.Base, PROGRAM_OUTPUT);
}
ureg = ureg_create_with_screen(TGSI_PROCESSOR_VERTEX, st->pipe->screen); ureg = ureg_create_with_screen(TGSI_PROCESSOR_VERTEX, st->pipe->screen);
if (ureg == NULL) { if (ureg == NULL) {
......
...@@ -414,16 +414,6 @@ st_get_tep_variant(struct st_context *st, ...@@ -414,16 +414,6 @@ st_get_tep_variant(struct st_context *st,
struct st_tesseval_program *stgp, struct st_tesseval_program *stgp,
const struct st_tep_variant_key *key); const struct st_tep_variant_key *key);
extern void
st_prepare_vertex_program(struct gl_context *ctx,
struct st_vertex_program *stvp);
extern GLboolean
st_prepare_fragment_program(struct gl_context *ctx,
struct st_fragment_program *stfp);
extern void extern void
st_release_vp_variants( struct st_context *st, st_release_vp_variants( struct st_context *st,
struct st_vertex_program *stvp ); struct st_vertex_program *stvp );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment