@@ -7193,24 +7193,7 @@ static void ggml_vk_buffer_read(vk_buffer& src, size_t offset, void * dst, size_
71937193 if(src->memory_property_flags & vk::MemoryPropertyFlagBits::eHostVisible && src->device->uma) {
71947194 GGML_ASSERT(src->memory_property_flags & vk::MemoryPropertyFlagBits::eHostCoherent);
71957195
7196- std::lock_guard<std::recursive_mutex> guard(src->device->mutex);
7197- vk_context subctx = ggml_vk_create_temporary_context(src->device->compute_queue.cmd_pool);
7198- ggml_vk_ctx_begin(src->device, subctx);
7199- subctx->s->buffer->buf.pipelineBarrier(
7200- vk::PipelineStageFlagBits::eComputeShader | vk::PipelineStageFlagBits::eTransfer,
7201- vk::PipelineStageFlagBits::eHost,
7202- {},
7203- { { vk::AccessFlagBits::eShaderWrite | vk::AccessFlagBits::eTransferWrite,
7204- vk::AccessFlagBits::eHostRead } },
7205- {}, {});
7206- ggml_vk_ctx_end(subctx);
7207- ggml_vk_submit(subctx, src->device->fence);
7208- VK_CHECK(src->device->device.waitForFences({ src->device->fence }, true, UINT64_MAX),
7209- "vk_buffer_read uma waitForFences");
7210- src->device->device.resetFences({ src->device->fence });
7211- ggml_vk_queue_command_pools_cleanup(src->device);
7212-
7213- memcpy(dst, (const uint8_t *) src->ptr + offset, size);
7196+ memcpy(dst, (uint8_t *) src->ptr + offset, size);
72147197 } else {
72157198 std::lock_guard<std::recursive_mutex> guard(src->device->mutex);
72167199
0 commit comments