GLuint inputMapping[FRAG_ATTRIB_MAX];
GLuint interpMode[PIPE_MAX_SHADER_INPUTS]; /* XXX size? */
GLuint attr;
- const GLbitfield64 inputsRead = stfp->Base.Base.InputsRead;
+ GLbitfield64 inputsRead;
struct ureg_program *ureg;
GLboolean write_all = GL_FALSE;
/*
* Convert Mesa program inputs to TGSI input register semantics.
*/
+ inputsRead = stfp->Base.Base.InputsRead;
for (attr = 0; attr < FRAG_ATTRIB_MAX; attr++) {
if ((inputsRead & BITFIELD64_BIT(attr)) != 0) {
const GLuint slot = fs_num_inputs++;
case FRAG_ATTRIB_CLIP_DIST0:
input_semantic_name[slot] = TGSI_SEMANTIC_CLIPDIST;
input_semantic_index[slot] = 0;
- interpMode[slot] = TGSI_INTERPOLATE_LINEAR;
+ interpMode[slot] = TGSI_INTERPOLATE_PERSPECTIVE;
break;
case FRAG_ATTRIB_CLIP_DIST1:
input_semantic_name[slot] = TGSI_SEMANTIC_CLIPDIST;
input_semantic_index[slot] = 1;
- interpMode[slot] = TGSI_INTERPOLATE_LINEAR;
+ interpMode[slot] = TGSI_INTERPOLATE_PERSPECTIVE;
break;
/* In most cases, there is nothing special about these
* inputs, so adopt a convention to use the generic
GLuint outputMapping[GEOM_RESULT_MAX];
struct pipe_context *pipe = st->pipe;
GLuint attr;
- const GLbitfield64 inputsRead = stgp->Base.Base.InputsRead;
+ GLbitfield64 inputsRead;
GLuint vslot = 0;
GLuint num_generic = 0;
/*
* Convert Mesa program inputs to TGSI input register semantics.
*/
+ inputsRead = stgp->Base.Base.InputsRead;
for (attr = 0; attr < GEOM_ATTRIB_MAX; attr++) {
if ((inputsRead & BITFIELD64_BIT(attr)) != 0) {
const GLuint slot = gs_num_inputs;
_mesa_HashWalk(st->ctx->Shared->ShaderObjects,
destroy_shader_program_variants_cb, st);
}
+
+
+/**
+ * For debugging, print/dump the current vertex program.
+ */
+void
+st_print_current_vertex_program(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (ctx->VertexProgram._Current) {
+ struct st_vertex_program *stvp =
+ (struct st_vertex_program *) ctx->VertexProgram._Current;
+ struct st_vp_variant *stv;
+
+ debug_printf("Vertex program %u\n", stvp->Base.Base.Id);
+
+ for (stv = stvp->variants; stv; stv = stv->next) {
+ debug_printf("variant %p\n", stv);
+ tgsi_dump(stv->tgsi.tokens, 0);
+ }
+ }
+}