summaryrefslogtreecommitdiffstats
path: root/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/winsys/amdgpu/drm/amdgpu_cs.h')
-rw-r--r--src/gallium/winsys/amdgpu/drm/amdgpu_cs.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
index 4f49a9065c6..56788cdc27e 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.h
@@ -57,6 +57,7 @@ struct amdgpu_cs_buffer {
enum ib_type {
IB_MAIN,
+ IB_PARALLEL_COMPUTE,
IB_NUM,
};
@@ -113,6 +114,10 @@ struct amdgpu_cs_context {
struct amdgpu_fence_list syncobj_dependencies;
struct amdgpu_fence_list syncobj_to_signal;
+ /* The compute IB uses the dependencies above + these: */
+ struct amdgpu_fence_list compute_fence_dependencies;
+ struct amdgpu_fence_list compute_start_fence_dependencies;
+
struct pipe_fence_handle *fence;
/* the error returned from cs_flush for non-async submissions */
@@ -121,6 +126,7 @@ struct amdgpu_cs_context {
struct amdgpu_cs {
struct amdgpu_ib main; /* must be first because this is inherited */
+ struct amdgpu_ib compute_ib; /* optional parallel compute IB */
struct amdgpu_ctx *ctx;
enum ring_type ring_type;
struct drm_amdgpu_cs_chunk_fence fence_chunk;
@@ -220,6 +226,8 @@ amdgpu_cs_from_ib(struct amdgpu_ib *ib)
switch (ib->ib_type) {
case IB_MAIN:
return get_container(ib, struct amdgpu_cs, main);
+ case IB_PARALLEL_COMPUTE:
+ return get_container(ib, struct amdgpu_cs, compute_ib);
default:
unreachable("bad ib_type");
}