internal unsafe BufferView GetShaderResourceView(PixelFormat viewFormat) { var createInfo = new BufferViewCreateInfo { StructureType = StructureType.BufferViewCreateInfo, Buffer = NativeBuffer, Format = viewFormat == PixelFormat.None ? Format.Undefined : VulkanConvertExtensions.ConvertPixelFormat(viewFormat), Range = (ulong)SizeInBytes, // this.ElementCount //View = (Description.BufferFlags & BufferFlags.RawBuffer) != 0 ? BufferViewType.Raw : BufferViewType.Formatted }; return(GraphicsDevice.NativeDevice.CreateBufferView(ref createInfo)); }
public unsafe Auto <DisposableBufferView> CreateView(VkFormat format, int offset, int size) { var bufferViewCreateInfo = new BufferViewCreateInfo() { SType = StructureType.BufferViewCreateInfo, Buffer = new VkBuffer(_bufferHandle), Format = format, Offset = (uint)offset, Range = (uint)size }; _gd.Api.CreateBufferView(_device, bufferViewCreateInfo, null, out var bufferView).ThrowOnError(); return(new Auto <DisposableBufferView>(new DisposableBufferView(_gd.Api, _device, bufferView), _waitable, _buffer)); }
public void BindMemoryAndCreateBufferView() { using (Buffer buffer = CreateBuffer()) { PhysicalDeviceMemoryProperties deviceMemProps = PhysicalDevice.GetMemoryProperties(); MemoryRequirements memReq = buffer.GetMemoryRequirements(); var memoryAllocateInfo = new MemoryAllocateInfo( memReq.Size, deviceMemProps.MemoryTypes.IndexOf(memReq.MemoryTypeBits, 0)); using (DeviceMemory memory = Device.AllocateMemory(memoryAllocateInfo)) { buffer.BindMemory(memory); var bufferViewCreateInfo = new BufferViewCreateInfo(Format.R32UInt); using (buffer.CreateView(bufferViewCreateInfo)) { } using (buffer.CreateView(bufferViewCreateInfo, CustomAllocator)) { } } } }
internal unsafe BufferView GetShaderResourceView(PixelFormat viewFormat) { var createInfo = new BufferViewCreateInfo { StructureType = StructureType.BufferViewCreateInfo, Buffer = NativeBuffer, Format = viewFormat == PixelFormat.None ? Format.Undefined : VulkanConvertExtensions.ConvertPixelFormat(viewFormat), Range = (ulong)SizeInBytes, // this.ElementCount //View = (Description.BufferFlags & BufferFlags.RawBuffer) != 0 ? BufferViewType.Raw : BufferViewType.Formatted }; return GraphicsDevice.NativeDevice.CreateBufferView(ref createInfo); }
internal static unsafe extern Result vkCreateBufferView(Device device, BufferViewCreateInfo* createInfo, AllocationCallbacks* allocator, BufferView* view);
public unsafe BufferView CreateBufferView(ref BufferViewCreateInfo createInfo, AllocationCallbacks* allocator = null) { BufferView view; fixed (BufferViewCreateInfo* __createInfo__ = &createInfo) { vkCreateBufferView(this, __createInfo__, allocator, &view).CheckError(); } return view; }