Mesa (master): r300,r600,radeonsi: set winsys_handle::stride,offset in drivers, not winsyses

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Sep 10 03:44:12 UTC 2019


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue Aug 27 19:35:25 2019 -0400

r300,r600,radeonsi: set winsys_handle::stride,offset in drivers, not winsyses

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>

---

 src/gallium/drivers/r300/r300_texture.c       | 6 ++++--
 src/gallium/drivers/r600/r600_texture.c       | 6 ++++--
 src/gallium/drivers/radeon/radeon_winsys.h    | 3 ---
 src/gallium/drivers/radeonsi/si_texture.c     | 6 ++++--
 src/gallium/winsys/amdgpu/drm/amdgpu_bo.c     | 5 -----
 src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 6 ------
 6 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_texture.c b/src/gallium/drivers/r300/r300_texture.c
index 737a4f90418..f977dd14dc7 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -1049,8 +1049,10 @@ bool r300_resource_get_handle(struct pipe_screen* screen,
         return false;
     }
 
-    return rws->buffer_get_handle(rws, tex->buf, tex->tex.stride_in_bytes[0],
-                                  0, 0, whandle);
+    whandle->stride = tex->tex.stride_in_bytes[0];
+    whandle->offset = 0;
+
+    return rws->buffer_get_handle(rws, tex->buf, whandle);
 }
 
 static const struct u_resource_vtbl r300_texture_vtbl =
diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 03f217b988a..4b9b15bc0cd 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -570,8 +570,10 @@ static bool r600_texture_get_handle(struct pipe_screen* screen,
 		res->external_usage = usage;
 	}
 
-	return rscreen->ws->buffer_get_handle(rscreen->ws, res->buf, stride,
-					      offset, slice_size, whandle);
+	whandle->stride = stride;
+	whandle->offset = offset + slice_size * whandle->layer;
+
+	return rscreen->ws->buffer_get_handle(rscreen->ws, res->buf, whandle);
 }
 
 static void r600_texture_destroy(struct pipe_screen *screen,
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h b/src/gallium/drivers/radeon/radeon_winsys.h
index 505b6c9a2cb..31eed8f5300 100644
--- a/src/gallium/drivers/radeon/radeon_winsys.h
+++ b/src/gallium/drivers/radeon/radeon_winsys.h
@@ -412,13 +412,10 @@ struct radeon_winsys {
      * \param ws        The winsys instance for which the handle is to be valid
      * \param buf       A winsys buffer object to get the handle from.
      * \param whandle   A winsys handle pointer.
-     * \param stride    A stride of the buffer in bytes, for texturing.
      * \return          true on success.
      */
     bool (*buffer_get_handle)(struct radeon_winsys *ws,
                               struct pb_buffer *buf,
-                              unsigned stride, unsigned offset,
-                              unsigned slice_size,
                               struct winsys_handle *whandle);
 
     /**
diff --git a/src/gallium/drivers/radeonsi/si_texture.c b/src/gallium/drivers/radeonsi/si_texture.c
index a4a08a6e321..64fcd50f3a1 100644
--- a/src/gallium/drivers/radeonsi/si_texture.c
+++ b/src/gallium/drivers/radeonsi/si_texture.c
@@ -1029,8 +1029,10 @@ static bool si_texture_get_handle(struct pipe_screen* screen,
 		res->external_usage = usage;
 	}
 
-	return sscreen->ws->buffer_get_handle(sscreen->ws, res->buf, stride,
-					      offset, slice_size, whandle);
+	whandle->stride = stride;
+	whandle->offset = offset + slice_size * whandle->layer;
+
+	return sscreen->ws->buffer_get_handle(sscreen->ws, res->buf, whandle);
 }
 
 static void si_texture_destroy(struct pipe_screen *screen,
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
index 53f2bd67ea9..6a395967117 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
@@ -1519,8 +1519,6 @@ error:
 
 static bool amdgpu_bo_get_handle(struct radeon_winsys *rws,
                                  struct pb_buffer *buffer,
-                                 unsigned stride, unsigned offset,
-                                 unsigned slice_size,
                                  struct winsys_handle *whandle)
 {
    struct amdgpu_screen_winsys *sws = amdgpu_screen_winsys(rws);
@@ -1565,9 +1563,6 @@ static bool amdgpu_bo_get_handle(struct radeon_winsys *rws,
    util_hash_table_set(ws->bo_export_table, bo->bo, bo);
    simple_mtx_unlock(&ws->bo_export_table_lock);
 
-   whandle->stride = stride;
-   whandle->offset = offset;
-   whandle->offset += slice_size * whandle->layer;
    bo->is_shared = true;
    return true;
 }
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index f8a7b89966a..c0a763d45ba 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -1274,8 +1274,6 @@ fail:
 
 static bool radeon_winsys_bo_get_handle(struct radeon_winsys *rws,
                                         struct pb_buffer *buffer,
-                                        unsigned stride, unsigned offset,
-                                        unsigned slice_size,
                                         struct winsys_handle *whandle)
 {
     struct drm_gem_flink flink;
@@ -1312,10 +1310,6 @@ static bool radeon_winsys_bo_get_handle(struct radeon_winsys *rws,
             return false;
     }
 
-    whandle->stride = stride;
-    whandle->offset = offset;
-    whandle->offset += slice_size * whandle->layer;
-
     return true;
 }
 




More information about the mesa-commit mailing list