[Mesa-dev] [PATCH 4/4] draw: use the prim type from prim_info not emit in passthrough emit

Jose Fonseca jfonseca at vmware.com
Tue Dec 2 08:41:26 PST 2014


Series sort of sounds sensible but it's really outside my expertise. 
Zack would be a much better reviewer.

This should be thoroughly tested too.

Jose

On 02/12/14 01:31, sroland at vmware.com wrote:
> From: Roland Scheidegger <sroland at vmware.com>
>
> The prim assembler may change the prim type when injecting prim ids now,
> which isn't reflected by what's stored in emit.
> This looks brittle and potentially dangerous (it is not obvious if such prim
> type changes are really supported by pt emit, the prim type is actually also
> set in prepare which would then be different).
> I guess ideally shouldn't mess with topologies when injecting prim ids and
> just inject them at the right vertices (depending on prim type and provoking
> vertex convention).
>
> This fixes piglit primitive-id-no-gs-first-vertex.shader_test.
> ---
>   src/gallium/auxiliary/draw/draw_pt_emit.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/auxiliary/draw/draw_pt_emit.c b/src/gallium/auxiliary/draw/draw_pt_emit.c
> index 011efe7..b215c5f 100644
> --- a/src/gallium/auxiliary/draw/draw_pt_emit.c
> +++ b/src/gallium/auxiliary/draw/draw_pt_emit.c
> @@ -143,7 +143,7 @@ draw_pt_emit(struct pt_emit *emit,
>      /* XXX: and work out some way to coordinate the render primitive
>       * between vbuf.c and here...
>       */
> -   draw->render->set_primitive(draw->render, emit->prim);
> +   render->set_primitive(draw->render, prim_info->prim);
>
>      render->allocate_vertices(render,
>                                (ushort)translate->key.output_stride,
> @@ -214,7 +214,7 @@ draw_pt_emit_linear(struct pt_emit *emit,
>      /* XXX: and work out some way to coordinate the render primitive
>       * between vbuf.c and here...
>       */
> -   draw->render->set_primitive(draw->render, emit->prim);
> +   render->set_primitive(draw->render, prim_info->prim);
>
>      if (!render->allocate_vertices(render,
>                                     (ushort)translate->key.output_stride,
>



More information about the mesa-dev mailing list