On Fri,  8 Apr 2011 13:16:28 -0700, Kenneth Graunke <kenn...@whitecape.org> 
wrote:
> ---
>  src/mesa/drivers/dri/i965/brw_context.h |    8 ++++----
>  src/mesa/drivers/dri/i965/brw_vs_emit.c |    6 ++++++
>  src/mesa/drivers/dri/i965/gen6_urb.c    |   14 +++++++++++++-
>  3 files changed, 23 insertions(+), 5 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_context.h 
> b/src/mesa/drivers/dri/i965/brw_context.h
> index 7b0551a..d63e8a4 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.h
> +++ b/src/mesa/drivers/dri/i965/brw_context.h
> @@ -555,12 +555,12 @@ struct brw_context
>        GLuint nr_sf_entries;
>        GLuint nr_cs_entries;
>  
> -      /* gen6 */
> +      /* gen6:
> +       * The length of each URB entry owned by the VS (or GS), as
> +       * a number of 1024-bit (128-byte) units.  Should be >= 1.
> +       */

I'd say "rows" instead of "units", since that's what they're called all
through the docs.

>        GLuint vs_size;
>  /*       GLuint gs_size; */
> -/*       GLuint clip_size; */
> -/*       GLuint sf_size; */
> -/*       GLuint cs_size; */
>  
>        GLuint vs_start;
>        GLuint gs_start;
> diff --git a/src/mesa/drivers/dri/i965/brw_vs_emit.c 
> b/src/mesa/drivers/dri/i965/brw_vs_emit.c
> index acacf37..96150ec 100644
> --- a/src/mesa/drivers/dri/i965/brw_vs_emit.c
> +++ b/src/mesa/drivers/dri/i965/brw_vs_emit.c
> @@ -437,8 +437,14 @@ static void brw_vs_alloc_regs( struct brw_vs_compile *c )
>        if (c->key.nr_userclip)
>        header_regs += 2;
>  
> +      /* Each attribute is 16 bytes (1 vec4), so dividing by 8 gives us the
> +       * number of 128-byte (1024-bit) units.
> +       */
>        c->prog_data.urb_entry_size = (attributes_in_vue + header_regs + 7) / 
> 8;
>     } else if (intel->gen == 5)
> +      /* Each attribute is 16 bytes (1 vec4), so dividing by 4 gives us the
> +       * number of 64-byte (512-bit) units.
> +       */
>        c->prog_data.urb_entry_size = (attributes_in_vue + 6 + 3) / 4;
>     else
>        c->prog_data.urb_entry_size = (attributes_in_vue + 2 + 3) / 4;
> diff --git a/src/mesa/drivers/dri/i965/gen6_urb.c 
> b/src/mesa/drivers/dri/i965/gen6_urb.c
> index c3819f9..38382f1 100644
> --- a/src/mesa/drivers/dri/i965/gen6_urb.c
> +++ b/src/mesa/drivers/dri/i965/gen6_urb.c
> @@ -34,9 +34,13 @@
>  static void
>  prepare_urb( struct brw_context *brw )
>  {
> -   int urb_size, max_urb_entry;
> +   int urb_size; /* total size of the URB, in bytes */
> +   int max_urb_entry;
>     struct intel_context *intel = &brw->intel;
>  
> +   /* According to volume 5c.5, Sandybridge GT1 has 32kB of URB space, while 
> GT2
> +    * has 64kB. In addition, each has a maximum number of VS URB entries 
> (128 or 256).
> +    */
>     if (IS_GT1(intel->intelScreen->deviceID)) {
>       urb_size = 32 * 1024;
>       max_urb_entry = 128;
> @@ -45,12 +49,20 @@ prepare_urb( struct brw_context *brw )
>       max_urb_entry = 256;
>     }

I don't like how we have IS_GTn checks in here.  I'd rather the values
be all set up once in brw-> in brw_context.c like the other
chipset-dependent values.

Attachment: pgpuX5xhXFFm2.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to