[Mesa-dev] [PATCH 08/15] i965: Reserve space for "Vertex Count" in GS outputs.

Paul Berry stereotype441 at gmail.com
Sat Nov 30 10:29:05 PST 2013


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

> Signed-off-by: Kenneth Graunke <kenneth at 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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131130/253f3e4a/attachment-0001.html>


More information about the mesa-dev mailing list