XLE  v0.02.0
Namespaces | Classes | Typedefs | Enumerations | Functions
BufferUploads Namespace Reference

Interface for uploading data to the GPU. More...

Namespaces

 AllocationRules
 Container for AllocationRules::Enum.
 
 BindFlag
 Container for BindFlag::Enum.
 
 CPUAccess
 Container for CPUAccess::Enum.
 
 GPUAccess
 Container for GPUAccess::Enum.
 

Classes

struct  AssemblyLineMetrics
 
struct  AssemblyLineRetirement
 
class  BasicRawDataPacket
 
struct  BatchedHeapMetrics
 
class  BatchedResources
 
struct  BatchingSystemMetrics
 
class  Box2D
 
struct  BufferDesc
 Description of a buffer More...
 
struct  BufferMetrics
 
class  CommandList
 
struct  CommandListMetrics
 
class  CommitStep
 
class  DataPacket
 
class  Event_ResourceReposition
 
class  IManager
 Main interface for BufferUploads More...
 
class  IResourcePool
 
struct  LinearBufferDesc
 
class  Manager
 
class  PartialResource
 Specifies a limited part of a resource More...
 
struct  PoolMetrics
 
struct  PoolSystemMetrics
 
class  ReferenceCountingLayer
 
class  ResourceLocator
 
class  ResourceSource
 
class  ResourcesPool
 
struct  TextureDesc
 
class  TexturePitches
 
struct  TextureSamples
 
class  ThreadContext
 

Typedefs

typedef uint64 TransactionID
 
typedef IManager Base_Manager
 
typedef IManager FLEX_MAKE_BASE_NAME(Manager)
 
typedef int64 TimeMarker
 
typedef RenderCore::Metal::Underlying::Resource UnderlyingResource
 
typedef uint64 DescHash
 

Enumerations

enum  TexFmt { DDS, TGA, WIC, Unknown }
 

Functions

std::unique_ptr< IManagerCreateManager (RenderCore::IDevice *renderDevice)
 
BufferDesc ExtractDesc (const RenderCore::Metal::Underlying::Resource &resource)
 
void AttachLibrary (ConsoleRig::GlobalServices &globalServices)
 
void DetachLibrary ()
 
intrusive_ptr< DataPacketCreateBasicPacket (size_t dataSize, const void *data, TexturePitches rowAndSlicePitch)
 
intrusive_ptr< DataPacketCreateEmptyPacket (const BufferDesc &desc)
 
intrusive_ptr< DataPacketCreateFileDataSource (const void *fileHandle, size_t offset, size_t dataSize, TexturePitches pitches)
 
intrusive_ptr< DataPacketCreateStreamingTextureSource (StringSection<::Assets::ResChar > filename, TextureLoadFlags::BitField flags)
 
TextureDesc LoadTextureFormat (StringSection<::Assets::ResChar > filename)
 
BufferDesc CreateDesc (BindFlag::BitField bindFlags, CPUAccess::BitField cpuAccess, GPUAccess::BitField gpuAccess, const TextureDesc &textureDesc, const char name[])
 
BufferDesc CreateDesc (BindFlag::BitField bindFlags, CPUAccess::BitField cpuAccess, GPUAccess::BitField gpuAccess, const LinearBufferDesc &linearBufferDesc, const char name[])
 
bool operator== (const Box2D &lhs, const Box2D &rhs)
 

Detailed Description

Interface for uploading data to the GPU.

The buffer uploads interface helps initialise buffer objects on the GPU in a asynchronous manner.

Buffer uploads are usually one of the following types:

But they can represent any large block of data.

The system also supports batching and defragmentation of memory within batches. This is important when uploading many small buffers. Some terrain implementations may frequently need to upload many small buffers per frame. But this can be done more efficiently by batching uploads into larger buffers.

For more information, start with BufferUploads::IManager.

See also
BufferUploads::IManager