Mesa (gallium-0.2): nouveau: return buffer map to something sane.

Ben Skeggs darktama at kemper.freedesktop.org
Mon Jan 12 07:00:05 UTC 2009


Module: Mesa
Branch: gallium-0.2
Commit: df266471b1f0eae54cf23fd59a741fa3be9b93df
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=df266471b1f0eae54cf23fd59a741fa3be9b93df

Author: Ben Skeggs <skeggsb at gmail.com>
Date:   Mon Jan 12 13:27:13 2009 +1000

nouveau: return buffer map to something sane.

Sorry, but no, we're not doing this..  Correctness always takes precedence
over speed.  Implement this higher up where you know it's safe to do so,
and doesn't break other things in the process.

---

 .../drm/nouveau/common/nouveau_winsys_pipe.c       |   20 --------------------
 1 files changed, 0 insertions(+), 20 deletions(-)

diff --git a/src/gallium/winsys/drm/nouveau/common/nouveau_winsys_pipe.c b/src/gallium/winsys/drm/nouveau/common/nouveau_winsys_pipe.c
index c8f26d5..683710e 100644
--- a/src/gallium/winsys/drm/nouveau/common/nouveau_winsys_pipe.c
+++ b/src/gallium/winsys/drm/nouveau/common/nouveau_winsys_pipe.c
@@ -121,26 +121,6 @@ nouveau_pipe_bo_map(struct pipe_winsys *pws, struct pipe_buffer *buf,
 	if (flags & PIPE_BUFFER_USAGE_CPU_WRITE)
 		map_flags |= NOUVEAU_BO_WR;
 
-	/* XXX: Technically incorrect. If the client maps a buffer for write-only
-	 * and leaves part of the buffer untouched it probably expects those parts
-	 * to remain intact. This is violated because we allocate a whole new buffer
-	 * and don't copy the previous buffer's contents, so this optimization is
-	 * only valid if the client intends to overwrite the whole buffer.
-	 */
-	if ((map_flags & NOUVEAU_BO_RDWR) == NOUVEAU_BO_WR &&
-	    !nouveau_bo_busy(nvbuf->bo, map_flags)) {
-		struct nouveau_pipe_winsys *nvpws = (struct nouveau_pipe_winsys *)pws;
-		struct nouveau_context *nv = nvpws->nv;
-		struct nouveau_device *dev = nv->nv_screen->device;
-		struct nouveau_bo *rename;
-		uint32_t flags = nouveau_flags_from_usage(nv, buf->usage);
-
-		if (!nouveau_bo_new(dev, flags, buf->alignment, buf->size, &rename)) {
-			nouveau_bo_del(&nvbuf->bo);
-			nvbuf->bo = rename;
-		}
-	}
-
 	if (nouveau_bo_map(nvbuf->bo, map_flags))
 		return NULL;
 	return nvbuf->bo->map;




More information about the mesa-commit mailing list