Timothy Arceri <timothy.arc...@collabora.com> writes: > This will help allow us to store gl_program in the CurrentProgram array rather > than gl_shader_program which will allow a bunch of simplifications. > > Note that we make LinkedTransformFeedback a pointer so we don't waste > memory creating a struct for each stage. We also store a pointer to > the gl_program that will contain the pointer in gl_shader_program so > we can get easy access to the correct stage. > --- > src/compiler/glsl/link_varyings.cpp | 34 > +++++++++++++-------------- > src/compiler/glsl/linker.cpp | 30 ++++++++++++++++------- > src/mesa/drivers/dri/i965/brw_ff_gs.c | 2 +- > src/mesa/drivers/dri/i965/gen6_gs_visitor.cpp | 2 +- > src/mesa/drivers/dri/i965/gen6_sol.c | 9 +++---- > src/mesa/drivers/dri/i965/gen7_sol_state.c | 6 ++--- > src/mesa/main/mtypes.h | 6 +++-- > src/mesa/main/shader_query.cpp | 8 +++---- > src/mesa/main/transformfeedback.c | 2 +- > src/mesa/state_tracker/st_cb_xformfb.c | 8 +++---- > src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 +- > src/mesa/state_tracker/st_program.c | 2 +- > 12 files changed, 63 insertions(+), 48 deletions(-) >
> @@ -4589,6 +4590,19 @@ link_varyings_and_uniforms(unsigned first, unsigned > last, > varying_names = prog->TransformFeedback.VaryingNames; > } > > + /* Find the program used for xfb. Even if we don't use xfb we still want > to > + * set this so we can fill the default values for program interface query. > + */ > + prog->xfb_program = prog->_LinkedShaders[last]->Program; > + int next = last == MESA_SHADER_FRAGMENT ? last - 1 : last; > + for (int i = next; i >= 0; i--) { > + if (prog->_LinkedShaders[i] == NULL) > + continue; > + > + prog->xfb_program = prog->_LinkedShaders[i]->Program; > + break; > + } I think the loop would be nicer as for (int i = MESA_SHADER_GEOMETRY; i >= MESA_SHADER_VERTEX; i--) to match transformfeedback.c's get_xfb_source(). Other than that, Reviewed-by: Eric Anholt <e...@anholt.net>
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev