i965: Use 64-byte offset alignment for shader storage buffers
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 19 Mar 2015 10:27:21 +0000 (11:27 +0100)
committerSamuel Iglesias Gonsalvez <siglesias@igalia.com>
Fri, 25 Sep 2015 06:39:20 +0000 (08:39 +0200)
commit332ff009ffcbdad2402f089060623c0a86fa253c
tree97efc93b3d688f656c375c5cf2752c0b841c5d29
parent4cf908f9cbaac5563dd3ff355399e2b56addbca4
i965: Use 64-byte offset alignment for shader storage buffers

This should be a cacheline (64 bytes) so that we can safely have the
CPU and GPU writing the same SSBO on non-cachecoherent systems (our
Atom CPUs). With UBOs, the GPU never writes, so there's no
problem. For an SSBO, the GPU and the CPU can be updating disjoint
regions of the buffer simultaneously and that will break if the
regions overlap the same cacheline.

v2:
- Use cacheline size (64 bytes) instead of 16 bytes (Kristian).
- Update commit log and add a comment in the code explaining
  why we use cacheline size (Ben).

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
src/mesa/drivers/dri/i965/brw_context.c