st/mesa: remove output register reads inside shaders
This is a GLSL2 regression fix.
This commit is contained in:
@@ -207,6 +207,9 @@ st_translate_vertex_program(struct st_context *st,
|
||||
enum pipe_error error;
|
||||
unsigned num_outputs;
|
||||
|
||||
_mesa_remove_output_reads(&stvp->Base.Base, PROGRAM_OUTPUT);
|
||||
_mesa_remove_output_reads(&stvp->Base.Base, PROGRAM_VARYING);
|
||||
|
||||
ureg = ureg_create( TGSI_PROCESSOR_VERTEX );
|
||||
if (ureg == NULL) {
|
||||
FREE(vpv);
|
||||
@@ -298,6 +301,8 @@ st_translate_fragment_program(struct st_context *st,
|
||||
ubyte fs_output_semantic_index[PIPE_MAX_SHADER_OUTPUTS];
|
||||
uint fs_num_outputs = 0;
|
||||
|
||||
_mesa_remove_output_reads(&stfp->Base.Base, PROGRAM_OUTPUT);
|
||||
|
||||
/*
|
||||
* Convert Mesa program inputs to TGSI input register semantics.
|
||||
*/
|
||||
@@ -485,6 +490,9 @@ st_translate_geometry_program(struct st_context *st,
|
||||
GLuint maxSlot = 0;
|
||||
struct ureg_program *ureg;
|
||||
|
||||
_mesa_remove_output_reads(&stgp->Base.Base, PROGRAM_OUTPUT);
|
||||
_mesa_remove_output_reads(&stgp->Base.Base, PROGRAM_VARYING);
|
||||
|
||||
ureg = ureg_create( TGSI_PROCESSOR_GEOMETRY );
|
||||
if (ureg == NULL) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user