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