drm/amdgpu: add CE preamble flag v3
The CE preamble IB can be dropped for the same context v2: use the flags directly v3: remove 'CE' for potential preamble usage by other rings Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
parent
de807f818b
commit
aa2bdb2476
|
@ -2518,6 +2518,13 @@ static void gfx_v7_0_ring_emit_ib(struct amdgpu_ring *ring,
|
||||||
{
|
{
|
||||||
u32 header, control = 0;
|
u32 header, control = 0;
|
||||||
u32 next_rptr = ring->wptr + 5;
|
u32 next_rptr = ring->wptr + 5;
|
||||||
|
|
||||||
|
/* drop the CE preamble IB for the same context */
|
||||||
|
if ((ring->type == AMDGPU_RING_TYPE_GFX) &&
|
||||||
|
(ib->flags & AMDGPU_IB_FLAG_PREAMBLE) &&
|
||||||
|
!ring->need_ctx_switch)
|
||||||
|
return;
|
||||||
|
|
||||||
if (ring->type == AMDGPU_RING_TYPE_COMPUTE)
|
if (ring->type == AMDGPU_RING_TYPE_COMPUTE)
|
||||||
control |= INDIRECT_BUFFER_VALID;
|
control |= INDIRECT_BUFFER_VALID;
|
||||||
|
|
||||||
|
|
|
@ -3647,6 +3647,13 @@ static void gfx_v8_0_ring_emit_ib(struct amdgpu_ring *ring,
|
||||||
{
|
{
|
||||||
u32 header, control = 0;
|
u32 header, control = 0;
|
||||||
u32 next_rptr = ring->wptr + 5;
|
u32 next_rptr = ring->wptr + 5;
|
||||||
|
|
||||||
|
/* drop the CE preamble IB for the same context */
|
||||||
|
if ((ring->type == AMDGPU_RING_TYPE_GFX) &&
|
||||||
|
(ib->flags & AMDGPU_IB_FLAG_PREAMBLE) &&
|
||||||
|
!ring->need_ctx_switch)
|
||||||
|
return;
|
||||||
|
|
||||||
if (ring->type == AMDGPU_RING_TYPE_COMPUTE)
|
if (ring->type == AMDGPU_RING_TYPE_COMPUTE)
|
||||||
control |= INDIRECT_BUFFER_VALID;
|
control |= INDIRECT_BUFFER_VALID;
|
||||||
|
|
||||||
|
|
|
@ -369,6 +369,9 @@ union drm_amdgpu_cs {
|
||||||
/* GDS is used by this IB */
|
/* GDS is used by this IB */
|
||||||
#define AMDGPU_IB_FLAG_GDS (1<<1)
|
#define AMDGPU_IB_FLAG_GDS (1<<1)
|
||||||
|
|
||||||
|
/* CE Preamble */
|
||||||
|
#define AMDGPU_IB_FLAG_PREAMBLE (1<<2)
|
||||||
|
|
||||||
struct drm_amdgpu_cs_chunk_ib {
|
struct drm_amdgpu_cs_chunk_ib {
|
||||||
/**
|
/**
|
||||||
* Handle of GEM object to be used as IB or 0 if it is already in
|
* Handle of GEM object to be used as IB or 0 if it is already in
|
||||||
|
|
Loading…
Reference in New Issue