public void Deallocate(H1GpuMemoryBlock block)
        {
            // apply alloc bits as deallocated
            Int32 startIndex = block.Start;
            Int32 counts     = block.Counts;

            for (Int32 index = startIndex; index < counts; ++index)
            {
                // reset alloc bit as deallocated (free space)
                m_AllocBits.Set(index, false);
            }

            // invalidate memory block
            block.Invalidate();

            // update available memory blocks
            UpdateAvailableMemoryBlocks();
        }