1 Year Ago
Add synchronous IRenderDevice::ReadBuffer and asynchronous IRenderContext::ReadBuffer Add ComputeBuffer class for creating, reading and writing GPU buffers for usage with ComputeShader Can be passed to RenderAttributes.Set( string, ComputeBuffer ) Read data from GPU with ComputeBuffer.GetData<T>( Span<T>, int, int ) Add ComputeBuffer.SetData( Span<T> ) and ComputeBuffer.CopyStructureCount( ComputeBuffer, ComputeBuffer, int ) Can set/copy data outside a graphics block Flush this shit when using ComputeBuffer in a sync way, I'll do it a different way for an async/callback API API makes more sense to be ComputeBuffer<T> Drop access type to keep things simple, add List<T> SetData variants, add elementOffset arguments, additional error checking AppendConsume buffers still need the structured buffer flag too ComputeBuffer<T>.CopyStructureCount<U>( ... ) YUCKY generics Don't make ByteAddress buffers with unordered access Docs, GetData alternative with no count, checks for disposed buffers