On 01/11/2012 12:06 PM, Paul Berry wrote:
We always access pull constant buffers using the message types "OWord
Block Read" or "OWord Dual Block Read".  According to the Sandy Bridge
PRM, Vol 4 Part 1, pages 214 and 218, when using these messages:

     "the surface pitch is ignored, the surface is treated as a
     1-dimensional surface.  An element size (pitch) of 16 bytes is
     used to determine the size of the buffer for out-of-bounds
     checking if using the surface state model."

Previously we were setting the pitch for pull constant buffers to the
size of the whole constant buffer--this made no sense and would have
led to incorrect behavior if it were not for the fact that the pitch
is ignored.

For clarity, this patch sets the pitch for pull constant buffers to 16
bytes, consistent with the hardware's behavior.

No piglit regressions on Sandy Bridge or Ivy Bridge.
---
  src/mesa/drivers/dri/i965/brw_wm_surface_state.c  |    2 +-
  src/mesa/drivers/dri/i965/gen7_wm_surface_state.c |    2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)

I find it hilarious that you've managed to justify why (16 - 1) is the obviously correct value for an unused field. :) Consider me convinced.

Like Eric, I also prefer (16 - 1).

Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to