diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_link.cpp | 9 |
1 files 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 |