diff options
author | Dave Airlie <airlied@redhat.com> | 2023-06-30 13:16:17 +1000 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2023-07-15 22:52:37 +0100 |
commit | 5398b13476cdaf3580727531ba258f93ba8a9f47 (patch) | |
tree | d0fa7625ee25ab4c584c5fad8af1508ce8cab513 /src | |
parent | 981aeaba4916f8d5afd167dd1a651e5054781b01 (diff) | |
download | mesa-5398b13476cdaf3580727531ba258f93ba8a9f47.tar.gz mesa-5398b13476cdaf3580727531ba258f93ba8a9f47.tar.bz2 mesa-5398b13476cdaf3580727531ba258f93ba8a9f47.zip |
draw/gs: handle extra shader outputs in geometry.
When geometry shader is used with unfilled lines and front face,
we don't handle the extra shader output.
Instead of taking the output from the gs, ask draw for the total
which should give the correct answer.
Fixes a test program attached to:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/8644
Reviewed-by: Brian Paul <brianp@vmware.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23943>
(cherry picked from commit 384c8677f590df290c442b378b077fe8e8c365b9)
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c index 7cbb2e22db9..dff17a41ac0 100644 --- a/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c +++ b/src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline_llvm.c @@ -120,7 +120,7 @@ llvm_middle_end_prepare_gs(struct llvm_middle_end *fpme) } } - variant = draw_gs_llvm_create_variant(llvm, gs->info.num_outputs, key); + variant = draw_gs_llvm_create_variant(llvm, draw_total_gs_outputs(draw), key); if (variant) { list_add(&variant->list_item_local.list, &shader->variants.list); |