diff options
Diffstat (limited to 'src/gallium/winsys/amdgpu/drm/amdgpu_cs.h')
-rw-r--r-- | src/gallium/winsys/amdgpu/drm/amdgpu_cs.h | 8 |
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"); } |