From f86d15ed94df59e4b3cdb4099d69cdd81f52fc27 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Sun, 20 Nov 2016 21:44:29 +1100 Subject: st/mesa/glsl: change xfb_program field to last_vert_prog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the i965 backend doesn't depend on this field we can make it more generic and short circuit a bunch of code paths. The new field will be used in a following patch for another clean-up. Reviewed-by: Nicolai Hähnle --- src/mesa/main/mtypes.h | 2 +- src/mesa/main/shader_query.cpp | 2 +- src/mesa/main/transformfeedback.c | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/mesa/main') diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index c733911c476..e8eddce0603 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2742,7 +2742,7 @@ struct gl_shader_program GLchar **VaryingNames; /**< Array [NumVarying] of char * */ } TransformFeedback; - struct gl_program *xfb_program; + struct gl_program *last_vert_prog; /** Post-link gl_FragDepth layout for ARB_conservative_depth. */ enum gl_frag_depth_layout FragDepthLayout; diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp index f465b3959e5..30e5b087abb 100644 --- a/src/mesa/main/shader_query.cpp +++ b/src/mesa/main/shader_query.cpp @@ -1047,7 +1047,7 @@ get_buffer_property(struct gl_shader_program *shProg, return 1; case GL_ACTIVE_VARIABLES: struct gl_transform_feedback_info *linked_xfb = - shProg->xfb_program->sh.LinkedTransformFeedback; + shProg->last_vert_prog->sh.LinkedTransformFeedback; for (int i = 0; i < linked_xfb->NumVarying; i++) { unsigned index = linked_xfb->Varyings[i].BufferIndex; struct gl_program_resource *buf_res = diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index 06fa56ab993..96f3df1c961 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -65,9 +65,12 @@ bool _mesa_transform_feedback_is_using_program(struct gl_context *ctx, struct gl_shader_program *shProg) { + if (!shProg->last_vert_prog) + return false; + struct using_program_tuple callback_data; callback_data.found = false; - callback_data.prog = shProg->xfb_program; + callback_data.prog = shProg->last_vert_prog; _mesa_HashWalk(ctx->TransformFeedback.Objects, active_xfb_object_references_program, &callback_data); -- cgit v1.2.3