IDeviceContext.ReadBuffer
Declaration
public void ReadBuffer(BufferSlice<T> src, NativeArray<T> dst);public void ReadBuffer(BufferSlice<T> src, NativeArray<T> dst, LightTransport.EventID id);Параметры
| Параметр | Описание |
|---|---|
| сердце | Буферный фрагмент, указывающий исходные данные на устройстве. |
| дст | Массив назначения в памяти CPU. Должен оставаться действительным до завершения операции. |
| Идентификатор | Необязательное событие ID для отслеживания завершения операции чтения. |
Описание
Асинхронное копирование данных из буфера устройства в память узла.
Инициирует асинхронную передачу данных из памяти устройства в память узла. Метод возвращается сразу после очереди операции. Используйте Flush, чтобы убедиться, что операция начала выполняться, затем используйте Wait или IsCompleted с указанным событием, чтобы определить, когда передача завершена.
Место назначения NativeArray<T0> должно оставаться выделенным и неизменным до завершения операции чтения, как указано событием.
Предупреждение: экземпляры EventID являются одноразовыми. Не используйте повторно событие, переданное этому методу.
// Read data from buffer with event tracking using var outputData = new NativeArray<int>(1024, Allocator.Persistent); var readEvent = context.CreateEvent(); context.ReadBuffer(bufferSlice, outputData, readEvent);
// Start execution and wait for completion context.Flush(); bool success = context.Wait(readEvent); Assert.IsTrue(success);
context.DestroyEvent(readEvent); // outputData now contains the buffer contents