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

Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-pra...@amd.com>
Date:   Tue Oct  3 10:24:20 2023 +0200

radeonsi/winsys: add cs_get_ip_type function

Will be used in the next commit.

Reviewed-by: Marek Olšák <marek.ol...@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26774>

---

 src/gallium/include/winsys/radeon_winsys.h    | 5 +++++
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c     | 8 ++++++++
 src/gallium/winsys/radeon/drm/radeon_drm_cs.c | 7 +++++++
 3 files changed, 20 insertions(+)

diff --git a/src/gallium/include/winsys/radeon_winsys.h 
b/src/gallium/include/winsys/radeon_winsys.h
index f68911091f1..ce254a92745 100644
--- a/src/gallium/include/winsys/radeon_winsys.h
+++ b/src/gallium/include/winsys/radeon_winsys.h
@@ -676,6 +676,11 @@ struct radeon_winsys {
     */
    void (*cs_add_syncobj_signal)(struct radeon_cmdbuf *cs, struct 
pipe_fence_handle *fence);
 
+   /**
+    * Returns the amd_ip_type type of a CS.
+    */
+   enum amd_ip_type (*cs_get_ip_type)(struct radeon_cmdbuf *cs);
+
    /**
     * Wait for the fence and return true if the fence has been signalled.
     * The timeout of 0 will only return the status.
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index 57778d15c79..87c5dbf7a55 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -940,6 +940,13 @@ static void amdgpu_destroy_cs_context(struct amdgpu_winsys 
*ws, struct amdgpu_cs
 }
 
 
+static enum amd_ip_type amdgpu_cs_get_ip_type(struct radeon_cmdbuf *rcs)
+{
+   struct amdgpu_cs *cs = amdgpu_cs(rcs);
+   return cs->ip_type;
+}
+
+
 static bool
 amdgpu_cs_create(struct radeon_cmdbuf *rcs,
                  struct radeon_winsys_ctx *rwctx,
@@ -1815,6 +1822,7 @@ void amdgpu_cs_init_functions(struct amdgpu_screen_winsys 
*ws)
    ws->base.cs_sync_flush = amdgpu_cs_sync_flush;
    ws->base.cs_add_fence_dependency = amdgpu_cs_add_fence_dependency;
    ws->base.cs_add_syncobj_signal = amdgpu_cs_add_syncobj_signal;
+   ws->base.cs_get_ip_type = amdgpu_cs_get_ip_type;
    ws->base.fence_wait = amdgpu_fence_wait_rel_timeout;
    ws->base.fence_reference = amdgpu_fence_reference;
    ws->base.fence_import_syncobj = amdgpu_fence_import_syncobj;
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c 
b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
index a44d67d3db6..2193be10281 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_cs.c
@@ -167,6 +167,13 @@ static void radeon_destroy_cs_context(struct 
radeon_cs_context *csc)
 }
 
 
+static enum amd_ip_type radeon_drm_cs_get_ip_type(struct radeon_cmdbuf *rcs)
+{
+   struct radeon_drm_cs *cs = radeon_drm_cs(rcs);
+   return cs->ip_type;
+}
+
+
 static bool
 radeon_drm_cs_create(struct radeon_cmdbuf *rcs,
                      struct radeon_winsys_ctx *ctx,

Reply via email to