diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c index 609a941bad9..eab2c1d9fbb 100644 --- a/src/gallium/frontends/lavapipe/lvp_pipeline.c +++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c @@ -561,7 +561,7 @@ lvp_shader_xfb_init(struct lvp_shader *shader) shader->stream_output.output[i].dst_offset = xfb_info->outputs[i].offset / 4; shader->stream_output.output[i].register_index = output_mapping[xfb_info->outputs[i].location]; shader->stream_output.output[i].num_components = util_bitcount(xfb_info->outputs[i].component_mask); - shader->stream_output.output[i].start_component = ffs(xfb_info->outputs[i].component_mask) - 1; + shader->stream_output.output[i].start_component = xfb_info->outputs[i].component_offset; shader->stream_output.output[i].stream = xfb_info->buffer_to_stream[xfb_info->outputs[i].buffer]; }