template <typename GpuMapping>

class Ringbuffer

Defined at line 22 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

Template class containing a ringbuffer of instructions, which can be mapped

onto both the CPU and GPU.

Public Methods

uint32_t size ()

Defined at line 27 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

uint32_t tail ()

Defined at line 29 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

uint32_t head ()

Defined at line 31 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

void update_head (uint32_t head)

Defined at line 33 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

void Reset (uint32_t offset)

Defined at line 40 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

void Ringbuffer<GpuMapping> (std::unique_ptr<typename GpuMapping::BufferType> && buffer, uint32_t size)

If specified, |size| must be less than the buffer size.

Defined at line 80 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

void Write32 (uint32_t value)

Defined at line 96 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

bool HasSpace (uint32_t bytes)

Defined at line 109 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

bool Map (std::shared_ptr<AddressSpace<GpuMapping>> address_space, uint64_t * gpu_addr_out)

Maps to both CPU and GPU.

Defined at line 119 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

bool MultiMap (std::shared_ptr<AddressSpace<GpuMapping>> address_space, uint64_t gpu_addr, std::shared_ptr<GpuMapping> * out_gpu_mapping)

Thread-safe variant of |Map|. The created GPU mapping is returned in |out_gpu_mapping|.

Defined at line 142 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

bool MapCpu ()

Defined at line 163 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

bool Unmap ()

Defined at line 178 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

Protected Methods

uint32_t * vaddr ()

Defined at line 60 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

void update_tail (uint32_t tail)

Defined at line 62 of file ../../src/graphics/magma/lib/magma_service/util/ringbuffer.h

Friends

template <typename GpuMapping>
class TestRingbuffer