Mesa (master): nouveau: always align buffers to 0x100

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Mon Jul 20 17:12:58 UTC 2015


Module: Mesa
Branch: master
Commit: c2cb771354d2d738e0ab3ca7c8008748c5f57953
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c2cb771354d2d738e0ab3ca7c8008748c5f57953

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon Jul 20 18:47:17 2015 +0200

nouveau: always align buffers to 0x100

Only constbufs must be aligned to 0x100, but since all buffers can be
rebinded as constant buffers they must be also aligned.

This patch prevents this behaviour by aligning everything to 256-byte
increments at buffer creation.

This fixes dmesg fails for the following piglit test:
  ext_transform_feedback-immediate-reuse-uniform-buffer -auto -fbo

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/nouveau/nouveau_buffer.c |    8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nouveau_buffer.c b/src/gallium/drivers/nouveau/nouveau_buffer.c
index 2361946..83d5288 100644
--- a/src/gallium/drivers/nouveau/nouveau_buffer.c
+++ b/src/gallium/drivers/nouveau/nouveau_buffer.c
@@ -40,13 +40,7 @@ static INLINE boolean
 nouveau_buffer_allocate(struct nouveau_screen *screen,
                         struct nv04_resource *buf, unsigned domain)
 {
-   uint32_t size = buf->base.width0;
-
-   if (buf->base.bind & (PIPE_BIND_CONSTANT_BUFFER |
-                         PIPE_BIND_COMPUTE_RESOURCE |
-                         PIPE_BIND_SHADER_BUFFER |
-                         PIPE_BIND_SHADER_IMAGE))
-      size = align(size, 0x100);
+   uint32_t size = align(buf->base.width0, 0x100);
 
    if (domain == NOUVEAU_BO_VRAM) {
       buf->mm = nouveau_mm_allocate(screen->mm_VRAM, size,




More information about the mesa-commit mailing list