For the series: Reviewed-by: Juan A. Suarez Romero <jasua...@igalia.com>
On Fri, 2017-09-15 at 10:17 -0700, Kenneth Graunke wrote: > If transform feedback is recording a varying, it needs a slot in the > VUE map, regardless of whether or not the shader writes it. > > Together with the previous patch, this fixes: > - KHR-GL45.enhanced_layouts.xfb_capture_struct > > The test captures a structure where the vertex shader writes the first > and third members - but the second still needs a slot. > --- > src/mesa/drivers/dri/i965/brw_link.cpp | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp > b/src/mesa/drivers/dri/i965/brw_link.cpp > index a1082a7a05a..c0fda0d4799 100644 > --- a/src/mesa/drivers/dri/i965/brw_link.cpp > +++ b/src/mesa/drivers/dri/i965/brw_link.cpp > @@ -181,7 +181,8 @@ unify_interfaces(struct shader_info **infos) > } > > static void > -update_xfb_info(struct gl_transform_feedback_info *xfb_info) > +update_xfb_info(struct gl_transform_feedback_info *xfb_info, > + struct shader_info *info) > { > if (!xfb_info) > return; > @@ -210,6 +211,8 @@ update_xfb_info(struct gl_transform_feedback_info > *xfb_info) > output->ComponentOffset = 3; > break; > } > + > + info->outputs_written |= 1ull << output->OutputRegister; > } > } > > @@ -236,8 +239,6 @@ brw_link_shader(struct gl_context *ctx, struct > gl_shader_program *shProg) > prog->ShadowSamplers = shader->shadow_samplers; > _mesa_update_shader_textures_used(shProg, prog); > > - update_xfb_info(prog->sh.LinkedTransformFeedback); > - > bool debug_enabled = > (INTEL_DEBUG & intel_debug_flag_for_shader_stage(shader->Stage)); > > @@ -252,6 +253,8 @@ brw_link_shader(struct gl_context *ctx, struct > gl_shader_program *shProg) > compiler->scalar_stage[stage]); > infos[stage] = &prog->nir->info; > > + update_xfb_info(prog->sh.LinkedTransformFeedback, infos[stage]); > + > /* Make a pass over the IR to add state references for any built-in > * uniforms that are used. This has to be done now (during linking). > * Code generation doesn't happen until the first time this shader is _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev