private void UpdateBuffer(EvaluationContext context) { int stride = Stride.GetValue(context); int sizeInBytes = stride * Count.GetValue(context); bool createSrv = CreateSrv.GetValue(context); bool createUav = CreateUav.GetValue(context); var bufferFlags = BufferFlags.GetValue(context); if (sizeInBytes <= 0) { return; } if (BufferWithViews.Value == null) { BufferWithViews.Value = new BufferWithViews(); } ResourceManager.Instance().SetupStructuredBuffer(sizeInBytes, stride, ref BufferWithViews.Value.Buffer); if (createSrv) { ResourceManager.Instance().CreateStructuredBufferSrv(BufferWithViews.Value.Buffer, ref BufferWithViews.Value.Srv); } if (createUav) { ResourceManager.Instance().CreateStructuredBufferUav(BufferWithViews.Value.Buffer, bufferFlags, ref BufferWithViews.Value.Uav); } }
private void Update(EvaluationContext context) { var resourceManager = ResourceManager.Instance(); var buffer = Buffer.GetValue(context); if (buffer == null) { return; } var bufferFlags = BufferFlags.GetValue(context); resourceManager.CreateStructuredBufferUav(buffer, bufferFlags, ref UnorderedAccessView.Value); if (UnorderedAccessView.Value == null) { return; } if (UnorderedAccessView.Value != null) { var symbolChild = Parent.Symbol.Children.Single(c => c.Id == SymbolChildId); UnorderedAccessView.Value.DebugName = symbolChild.ReadableName; // Log.Info($"{symbolChild.ReadableName} updated with ref {UnorderedAccessView.DirtyFlag.Reference}"); } }