protected override void UpdateBufferCore(DeviceBuffer buffer, uint bufferOffsetInBytes, IntPtr source, uint sizeInBytes) { VkBuffer stagingBuffer = GetStagingBuffer(sizeInBytes); _gd.UpdateBuffer(stagingBuffer, 0, source, sizeInBytes); CopyBuffer(stagingBuffer, 0, buffer, bufferOffsetInBytes, sizeInBytes); }
public override void UpdateBuffer(DeviceBuffer buffer, uint bufferOffsetInBytes, IntPtr source, uint sizeInBytes) { PooledStagingBufferInfo stagingBufferInfo = GetStagingBuffer(sizeInBytes); _gd.UpdateBuffer(stagingBufferInfo.Buffer, 0, source, sizeInBytes); CopyBuffer(stagingBufferInfo.Buffer, 0, buffer, bufferOffsetInBytes, sizeInBytes); vkCmdSetEvent(_cb, stagingBufferInfo.AvailableEvent, VkPipelineStageFlags.Transfer); }
public override void UpdateBuffer(Buffer buffer, uint bufferOffsetInBytes, IntPtr source, uint sizeInBytes) { VkBuffer stagingBuffer = GetStagingBuffer(sizeInBytes); _gd.UpdateBuffer(stagingBuffer, 0, source, sizeInBytes); CopyBuffer(stagingBuffer, 0, buffer, bufferOffsetInBytes, sizeInBytes); _referencedResources.Add(Util.AssertSubtype <Buffer, VkBuffer>(buffer)); }