diff --git a/.pick_status.json b/.pick_status.json index 3012694b7ae..0ee03461c94 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -22584,7 +22584,7 @@ "description": "lavapipe: use the component offset directly for xfb", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/frontends/lavapipe/lvp_pipeline.c b/src/gallium/frontends/lavapipe/lvp_pipeline.c index 99d440d9142..c66cc313dfc 100644 --- a/src/gallium/frontends/lavapipe/lvp_pipeline.c +++ b/src/gallium/frontends/lavapipe/lvp_pipeline.c @@ -544,7 +544,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]; }