Lines Matching refs:execbuf
1172 struct drm_i915_gem_execbuffer2 execbuf; member
1220 __u64 *iter = &exec->execbuf.cliprects_ptr; in anv_execbuf_add_ext()
1222 exec->execbuf.flags |= I915_EXEC_USE_EXTENSIONS; in anv_execbuf_add_ext()
1560 setup_execbuf_for_cmd_buffer(struct anv_execbuf *execbuf, in setup_execbuf_for_cmd_buffer() argument
1571 anv_execbuf_add_bo_bitset(cmd_buffer->device, execbuf, in setup_execbuf_for_cmd_buffer()
1580 result = anv_execbuf_add_bo(cmd_buffer->device, execbuf, in setup_execbuf_for_cmd_buffer()
1595 result = anv_execbuf_add_bo(cmd_buffer->device, execbuf, in setup_execbuf_for_cmd_buffer()
1628 setup_execbuf_for_cmd_buffers(struct anv_execbuf *execbuf, in setup_execbuf_for_cmd_buffers() argument
1643 result = setup_execbuf_for_cmd_buffer(execbuf, cmd_buffers[i]); in setup_execbuf_for_cmd_buffers()
1651 result = anv_execbuf_add_bo(device, execbuf, bo, NULL, 0); in setup_execbuf_for_cmd_buffers()
1659 result = anv_execbuf_add_bo(device, execbuf, bo, NULL, 0); in setup_execbuf_for_cmd_buffers()
1666 result = anv_execbuf_add_bo(device, execbuf, bo, NULL, 0); in setup_execbuf_for_cmd_buffers()
1673 result = anv_execbuf_add_bo(device, execbuf, bo, NULL, 0); in setup_execbuf_for_cmd_buffers()
1680 result = anv_execbuf_add_bo(device, execbuf, bo, NULL, 0); in setup_execbuf_for_cmd_buffers()
1690 result = anv_execbuf_add_bo(device, execbuf, mem->bo, NULL, 0); in setup_execbuf_for_cmd_buffers()
1702 if (execbuf->has_relocs) { in setup_execbuf_for_cmd_buffers()
1703 no_reloc = execbuf_can_skip_relocations(execbuf); in setup_execbuf_for_cmd_buffers()
1731 relocate_cmd_buffer(cmd_buffers[i], execbuf); in setup_execbuf_for_cmd_buffers()
1760 if (first_batch_bo->bo->index != execbuf->bo_count - 1) { in setup_execbuf_for_cmd_buffers()
1762 uint32_t last_idx = execbuf->bo_count - 1; in setup_execbuf_for_cmd_buffers()
1764 struct drm_i915_gem_exec_object2 tmp_obj = execbuf->objects[idx]; in setup_execbuf_for_cmd_buffers()
1765 assert(execbuf->bos[idx] == first_batch_bo->bo); in setup_execbuf_for_cmd_buffers()
1767 execbuf->objects[idx] = execbuf->objects[last_idx]; in setup_execbuf_for_cmd_buffers()
1768 execbuf->bos[idx] = execbuf->bos[last_idx]; in setup_execbuf_for_cmd_buffers()
1769 execbuf->bos[idx]->index = idx; in setup_execbuf_for_cmd_buffers()
1771 execbuf->objects[last_idx] = tmp_obj; in setup_execbuf_for_cmd_buffers()
1772 execbuf->bos[last_idx] = first_batch_bo->bo; in setup_execbuf_for_cmd_buffers()
1778 assert(!execbuf->has_relocs); in setup_execbuf_for_cmd_buffers()
1786 if (execbuf->has_relocs) { in setup_execbuf_for_cmd_buffers()
1805 execbuf->execbuf = (struct drm_i915_gem_execbuffer2) { in setup_execbuf_for_cmd_buffers()
1806 .buffers_ptr = (uintptr_t) execbuf->objects, in setup_execbuf_for_cmd_buffers()
1807 .buffer_count = execbuf->bo_count, in setup_execbuf_for_cmd_buffers()
1827 setup_empty_execbuf(struct anv_execbuf *execbuf, struct anv_queue *queue) in setup_empty_execbuf() argument
1830 VkResult result = anv_execbuf_add_bo(device, execbuf, in setup_empty_execbuf()
1836 execbuf->execbuf = (struct drm_i915_gem_execbuffer2) { in setup_empty_execbuf()
1837 .buffers_ptr = (uintptr_t) execbuf->objects, in setup_empty_execbuf()
1838 .buffer_count = execbuf->bo_count, in setup_empty_execbuf()
1878 struct anv_execbuf execbuf; in anv_queue_execbuf_locked() local
1879 anv_execbuf_init(&execbuf); in anv_queue_execbuf_locked()
1880 execbuf.alloc = submit->alloc; in anv_queue_execbuf_locked()
1881 execbuf.alloc_scope = submit->alloc_scope; in anv_queue_execbuf_locked()
1882 execbuf.perf_query_pass = submit->perf_query_pass; in anv_queue_execbuf_locked()
1888 anv_execbuf_add_bo(device, &execbuf, device->workaround_bo, NULL, 0); in anv_queue_execbuf_locked()
1896 result = anv_execbuf_add_bo(device, &execbuf, bo, NULL, in anv_queue_execbuf_locked()
1903 result = setup_execbuf_for_cmd_buffers(&execbuf, queue, in anv_queue_execbuf_locked()
1907 result = anv_execbuf_add_bo(device, &execbuf, submit->simple_bo, NULL, 0); in anv_queue_execbuf_locked()
1911 execbuf.execbuf = (struct drm_i915_gem_execbuffer2) { in anv_queue_execbuf_locked()
1912 .buffers_ptr = (uintptr_t) execbuf.objects, in anv_queue_execbuf_locked()
1913 .buffer_count = execbuf.bo_count, in anv_queue_execbuf_locked()
1921 result = setup_empty_execbuf(&execbuf, queue); in anv_queue_execbuf_locked()
1934 execbuf.execbuf.batch_start_offset, execbuf.execbuf.batch_len); in anv_queue_execbuf_locked()
1935 for (uint32_t i = 0; i < execbuf.bo_count; i++) { in anv_queue_execbuf_locked()
1936 const struct anv_bo *bo = execbuf.bos[i]; in anv_queue_execbuf_locked()
1979 execbuf.timeline_fences.fence_count = submit->fence_count; in anv_queue_execbuf_locked()
1980 execbuf.timeline_fences.handles_ptr = (uintptr_t)submit->fences; in anv_queue_execbuf_locked()
1981 execbuf.timeline_fences.values_ptr = (uintptr_t)submit->fence_values; in anv_queue_execbuf_locked()
1982 anv_execbuf_add_ext(&execbuf, in anv_queue_execbuf_locked()
1984 &execbuf.timeline_fences.base); in anv_queue_execbuf_locked()
1986 execbuf.execbuf.flags |= I915_EXEC_FENCE_ARRAY; in anv_queue_execbuf_locked()
1987 execbuf.execbuf.num_cliprects = submit->fence_count; in anv_queue_execbuf_locked()
1988 execbuf.execbuf.cliprects_ptr = (uintptr_t)submit->fences; in anv_queue_execbuf_locked()
1994 execbuf.execbuf.flags |= I915_EXEC_FENCE_IN; in anv_queue_execbuf_locked()
1995 execbuf.execbuf.rsvd2 |= (uint32_t)submit->in_fence; in anv_queue_execbuf_locked()
2000 execbuf.execbuf.flags |= I915_EXEC_FENCE_OUT; in anv_queue_execbuf_locked()
2047 anv_gem_execbuffer(queue->device, &execbuf.execbuf); in anv_queue_execbuf_locked()
2051 struct drm_i915_gem_exec_object2 *objects = execbuf.objects; in anv_queue_execbuf_locked()
2052 for (uint32_t k = 0; k < execbuf.bo_count; k++) { in anv_queue_execbuf_locked()
2053 if (execbuf.bos[k]->flags & EXEC_OBJECT_PINNED) in anv_queue_execbuf_locked()
2054 assert(execbuf.bos[k]->offset == objects[k].offset); in anv_queue_execbuf_locked()
2055 execbuf.bos[k]->offset = objects[k].offset; in anv_queue_execbuf_locked()
2059 submit->out_fence = execbuf.execbuf.rsvd2 >> 32; in anv_queue_execbuf_locked()
2064 anv_execbuf_finish(&execbuf); in anv_queue_execbuf_locked()