Skip to content

Commit

Permalink
fixed size 0 allocs in UniformBufferManager
Browse files Browse the repository at this point in the history
  • Loading branch information
krauthaufen committed Oct 9, 2019
1 parent c069d7b commit 054436e
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions src/Aardvark.Rendering.GL/Management/ResourceManager.fs
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,24 @@ type UniformBufferManager(ctx : Context) =
let bufferMemory : Management.Memory<Buffer> =

let alloc (size : nativeint) =
use __ = ctx.ResourceLock
let handle = GL.GenBuffer()
if size = 0n then
new Buffer(ctx, 0n, 0)
else
use __ = ctx.ResourceLock
let handle = GL.GenBuffer()

BufferMemoryUsage.addUniformBuffer ctx (int64 size)
BufferMemoryUsage.addUniformBuffer ctx (int64 size)

GL.NamedBufferStorage(handle, size, 0n, BufferStorageFlags.DynamicStorageBit)
GL.Check "could not allocate uniform buffer"
GL.NamedBufferStorage(handle, size, 0n, BufferStorageFlags.DynamicStorageBit)
GL.Check "could not allocate uniform buffer"

new Buffer(ctx, size, handle)
new Buffer(ctx, size, handle)

let free (buffer : Buffer) (size : nativeint) =
GL.DeleteBuffer(buffer.Handle)
BufferMemoryUsage.removeUniformBuffer ctx (int64 size)
GL.Check "could not free uniform buffer"
if buffer.Handle <> 0 then
GL.DeleteBuffer(buffer.Handle)
BufferMemoryUsage.removeUniformBuffer ctx (int64 size)
GL.Check "could not free uniform buffer"

{
malloc = alloc
Expand Down

0 comments on commit 054436e

Please sign in to comment.