Lines Matching refs:ib
59 unsigned size, struct amdgpu_ib *ib) in amdgpu_ib_get() argument
66 &ib->sa_bo, size, 256); in amdgpu_ib_get()
72 ib->ptr = amdgpu_sa_bo_cpu_addr(ib->sa_bo); in amdgpu_ib_get()
75 ib->gpu_addr = amdgpu_sa_bo_gpu_addr(ib->sa_bo); in amdgpu_ib_get()
78 amdgpu_sync_create(&ib->sync); in amdgpu_ib_get()
80 ib->ring = ring; in amdgpu_ib_get()
81 ib->vm = vm; in amdgpu_ib_get()
94 void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib) in amdgpu_ib_free() argument
96 amdgpu_sync_free(adev, &ib->sync, &ib->fence->base); in amdgpu_ib_free()
97 amdgpu_sa_bo_free(adev, &ib->sa_bo, &ib->fence->base); in amdgpu_ib_free()
98 if (ib->fence) in amdgpu_ib_free()
99 fence_put(&ib->fence->base); in amdgpu_ib_free()
126 struct amdgpu_ib *ib = &ibs[0]; in amdgpu_ib_schedule() local
173 amdgpu_vm_flush(ring, vm, ib->sync.last_vm_update); in amdgpu_ib_schedule()
176 amdgpu_ring_emit_gds_switch(ring, ib->vm->ids[ring->idx].id, in amdgpu_ib_schedule()
177 ib->gds_base, ib->gds_size, in amdgpu_ib_schedule()
178 ib->gws_base, ib->gws_size, in amdgpu_ib_schedule()
179 ib->oa_base, ib->oa_size); in amdgpu_ib_schedule()
187 ib = &ibs[i]; in amdgpu_ib_schedule()
189 if (ib->ring != ring || ib->ctx != ctx || ib->vm != vm) { in amdgpu_ib_schedule()
194 amdgpu_ring_emit_ib(ring, ib); in amdgpu_ib_schedule()
198 r = amdgpu_fence_emit(ring, owner, &ib->fence); in amdgpu_ib_schedule()
206 if (!amdgpu_enable_scheduler && ib->ctx) in amdgpu_ib_schedule()
207 ib->sequence = amdgpu_ctx_add_fence(ib->ctx, ring, in amdgpu_ib_schedule()
208 &ib->fence->base); in amdgpu_ib_schedule()
211 if (ib->user) { in amdgpu_ib_schedule()
212 uint64_t addr = amdgpu_bo_gpu_offset(ib->user->bo); in amdgpu_ib_schedule()
213 addr += ib->user->offset; in amdgpu_ib_schedule()
214 amdgpu_ring_emit_fence(ring, addr, ib->sequence, in amdgpu_ib_schedule()
218 if (ib->vm) in amdgpu_ib_schedule()
219 amdgpu_vm_fence(adev, ib->vm, &ib->fence->base); in amdgpu_ib_schedule()