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

Author: Marek Olšák <[email protected]>
Date:   Sat Mar 31 01:31:47 2012 +0200

r600g: optimize r600_resource_va

Avoid calling get_radeon_bo and inline it.

---

 src/gallium/drivers/r600/r600_pipe.h          |    8 ++++++++
 src/gallium/drivers/r600/r600_resource.c      |   11 -----------
 src/gallium/drivers/r600/r600_resource.h      |    2 --
 src/gallium/winsys/radeon/drm/radeon_drm_bo.c |    6 ++----
 src/gallium/winsys/radeon/drm/radeon_winsys.h |    2 +-
 5 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_pipe.h 
b/src/gallium/drivers/r600/r600_pipe.h
index c5ea55e..9139b61 100644
--- a/src/gallium/drivers/r600/r600_pipe.h
+++ b/src/gallium/drivers/r600/r600_pipe.h
@@ -696,4 +696,12 @@ static INLINE unsigned r600_pack_float_12p4(float x)
               x >= 4096 ? 0xffff : x * 16;
 }
 
+static INLINE uint64_t r600_resource_va(struct pipe_screen *screen, struct 
pipe_resource *resource)
+{
+       struct r600_screen *rscreen = (struct r600_screen*)screen;
+       struct r600_resource *rresource = (struct r600_resource*)resource;
+
+       return rscreen->ws->buffer_get_virtual_address(rresource->cs_buf);
+}
+
 #endif
diff --git a/src/gallium/drivers/r600/r600_resource.c 
b/src/gallium/drivers/r600/r600_resource.c
index 0689d91..de339e0 100644
--- a/src/gallium/drivers/r600/r600_resource.c
+++ b/src/gallium/drivers/r600/r600_resource.c
@@ -62,14 +62,3 @@ void r600_init_context_resource_functions(struct 
r600_context *r600)
        r600->context.transfer_destroy = u_transfer_destroy_vtbl;
        r600->context.transfer_inline_write = u_default_transfer_inline_write;
 }
-
-uint64_t r600_resource_va(struct pipe_screen *screen, struct pipe_resource 
*resource)
-{
-       struct r600_screen *rscreen = (struct r600_screen*)screen;
-       struct r600_resource *rresource = (struct r600_resource*)resource;
-
-       if (rresource->buf) {
-               return rscreen->ws->buffer_get_virtual_address(rresource->buf);
-       }
-       return 0;
-}
diff --git a/src/gallium/drivers/r600/r600_resource.h 
b/src/gallium/drivers/r600/r600_resource.h
index 15b706d..5bb5e57 100644
--- a/src/gallium/drivers/r600/r600_resource.h
+++ b/src/gallium/drivers/r600/r600_resource.h
@@ -98,6 +98,4 @@ struct r600_context;
 
 void r600_upload_const_buffer(struct r600_context *rctx, struct r600_resource 
**rbuffer, uint32_t *offset);
 
-uint64_t r600_resource_va(struct pipe_screen *screen, struct pipe_resource 
*resource);
-
 #endif
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c 
b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index 31a47c6..47bbcb8 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -898,11 +898,9 @@ static boolean radeon_winsys_bo_get_handle(struct 
pb_buffer *buffer,
     return TRUE;
 }
 
-static uint64_t radeon_winsys_bo_va(struct pb_buffer *buffer)
+static uint64_t radeon_winsys_bo_va(struct radeon_winsys_cs_handle *buf)
 {
-    struct radeon_bo *bo = get_radeon_bo(buffer);
-
-    return bo->va;
+    return ((struct radeon_bo*)buf)->va;
 }
 
 void radeon_bomgr_init_functions(struct radeon_drm_winsys *ws)
diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h 
b/src/gallium/winsys/radeon/drm/radeon_winsys.h
index 7d5259a..6eef6b1 100644
--- a/src/gallium/winsys/radeon/drm/radeon_winsys.h
+++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h
@@ -255,7 +255,7 @@ struct radeon_winsys {
      * \param buf       A winsys buffer object
      * \return          virtual address
      */
-    uint64_t (*buffer_get_virtual_address)(struct pb_buffer *buf);
+    uint64_t (*buffer_get_virtual_address)(struct radeon_winsys_cs_handle 
*buf);
 
     /**************************************************************************
      * Command submission.

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to