Lines Matching refs:batch

41 d3d12_init_batch(struct d3d12_context *ctx, struct d3d12_batch *batch)
45 batch->bos = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
47 batch->sampler_views = _mesa_set_create(NULL, _mesa_hash_pointer,
49 batch->surfaces = _mesa_set_create(NULL, _mesa_hash_pointer,
51 batch->objects = _mesa_set_create(NULL,
55 if (!batch->bos || !batch->sampler_views || !batch->surfaces || !batch->objects)
58 util_dynarray_init(&batch->zombie_samplers, NULL);
61 IID_PPV_ARGS(&batch->cmdalloc))))
65 batch->sampler_heap =
71 batch->view_heap =
77 if (!batch->sampler_heap && !batch->view_heap)
112 d3d12_reset_batch(struct d3d12_context *ctx, struct d3d12_batch *batch, uint64_t timeout_ns)
114 // batch hasn't been submitted before
115 if (!batch->fence && !batch->has_errors)
118 if (batch->fence) {
119 if (!d3d12_fence_finish(batch->fence, timeout_ns))
121 d3d12_fence_reference(&batch->fence, NULL);
124 _mesa_hash_table_clear(batch->bos, delete_bo);
125 _mesa_set_clear(batch->sampler_views, delete_sampler_view);
126 _mesa_set_clear(batch->surfaces, delete_surface);
127 _mesa_set_clear(batch->objects, delete_object);
129 util_dynarray_foreach(&batch->zombie_samplers, d3d12_descriptor_handle, handle)
131 util_dynarray_clear(&batch->zombie_samplers);
133 d3d12_descriptor_heap_clear(batch->view_heap);
134 d3d12_descriptor_heap_clear(batch->sampler_heap);
136 if (FAILED(batch->cmdalloc->Reset())) {
140 batch->has_errors = false;
141 batch->pending_memory_barrier = false;
146 d3d12_destroy_batch(struct d3d12_context *ctx, struct d3d12_batch *batch)
148 d3d12_reset_batch(ctx, batch, PIPE_TIMEOUT_INFINITE);
149 batch->cmdalloc->Release();
150 d3d12_descriptor_heap_free(batch->sampler_heap);
151 d3d12_descriptor_heap_free(batch->view_heap);
152 _mesa_hash_table_destroy(batch->bos, NULL);
153 _mesa_set_destroy(batch->sampler_views, NULL);
154 _mesa_set_destroy(batch->surfaces, NULL);
155 _mesa_set_destroy(batch->objects, NULL);
156 util_dynarray_fini(&batch->zombie_samplers);
160 d3d12_start_batch(struct d3d12_context *ctx, struct d3d12_batch *batch)
163 ID3D12DescriptorHeap* heaps[2] = { d3d12_descriptor_heap_get(batch->view_heap),
164 d3d12_descriptor_heap_get(batch->sampler_heap) };
166 d3d12_reset_batch(ctx, batch, PIPE_TIMEOUT_INFINITE);
170 if (FAILED(ctx->cmdlist->Reset(batch->cmdalloc, NULL))) {
172 batch->has_errors = true;
177 batch->cmdalloc, NULL,
180 batch->has_errors = true;
195 batch->submit_id = ++ctx->submit_id;
199 d3d12_end_batch(struct d3d12_context *ctx, struct d3d12_batch *batch)
208 batch->has_errors = true;
214 d3d12_process_batch_residency(screen, batch);
216 bool has_state_fixup = d3d12_context_state_resolve_submission(ctx, batch);
226 batch->fence = d3d12_create_fence(screen);
238 d3d12_batch_has_references(struct d3d12_batch *batch,
242 hash_entry *entry = _mesa_hash_table_search(batch->bos, bo);
250 d3d12_batch_reference_resource(struct d3d12_batch *batch,
254 hash_entry *entry = _mesa_hash_table_search(batch->bos, res->bo);
257 entry = _mesa_hash_table_insert(batch->bos, res->bo, NULL);
265 d3d12_batch_reference_sampler_view(struct d3d12_batch *batch,
268 struct set_entry *entry = _mesa_set_search(batch->sampler_views, sv);
270 entry = _mesa_set_add(batch->sampler_views, sv);
273 d3d12_batch_reference_resource(batch, d3d12_resource(sv->base.texture), false);
278 d3d12_batch_reference_surface_texture(struct d3d12_batch *batch,
281 d3d12_batch_reference_resource(batch, d3d12_resource(surf->base.texture), true);
285 d3d12_batch_reference_object(struct d3d12_batch *batch,
288 struct set_entry *entry = _mesa_set_search(batch->objects, object);
290 entry = _mesa_set_add(batch->objects, object);