On 12 November 2013 17:51, Kenneth Graunke <kenn...@whitecape.org> wrote:

> Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_vec4_gs.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4_gs.c
> b/src/mesa/drivers/dri/i965/brw_vec4_gs.c
> index b52d646..e802c1e 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4_gs.c
> +++ b/src/mesa/drivers/dri/i965/brw_vec4_gs.c
> @@ -194,6 +194,12 @@ do_gs_prog(struct brw_context *brw,
>        c.prog_data.output_vertex_size_hwords * 32 *
> gp->program.VerticesOut;
>     output_size_bytes += 32 * c.prog_data.control_data_header_size_hwords;
>
> +   /* Broadwell stores "Vertex Count" as a full 8 DWord (32 byte) URB
> output,
> +    * which comes before the conttrol header.
> +    */
> +   if (brw->gen >= 8)
> +      output_size_bytes += 32;
> +
>     assert(output_size_bytes >= 1);
>     if (output_size_bytes > GEN7_MAX_GS_URB_ENTRY_SIZE_BYTES)
>        return false;
> --
> 1.8.3.2
>

It looks like changes also need to be made to
vec4_gs_visitor::emit_urb_write_opcode() and
vec4_gs_visitor::emit_control_data_bits() to offset the vertex data and
control data by 32 bytes, and to vec4_gs_visitor::emit_thread_end() to
cause the appropriate data to be written to the vertex count.  Are those
changes elsewhere in the series?
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to