class GpuDeviceCapabilities

Information about hardware (GPU) and driver capabilities, such as supported features, limits and conventions.

Public

Methods

SetCapability

void SetCapability(const GpuCapabilityBits c)

Sets a capability flag indicating this capability is supported.

UnsetCapability

void UnsetCapability(const GpuCapabilityBits c)

Remove a capability flag indicating this capability is not supported (default).

HasCapability

bool HasCapability(const GpuCapabilityBits c) const

Checks is the specified capability supported.

AddShaderProfile

void AddShaderProfile(const String &profile)

Adds a shader profile to the list of render-system specific supported profiles.

IsShaderProfileSupported

bool IsShaderProfileSupported(const String &profile) const

Returns true if the provided profile is supported.

GetSupportedShaderProfiles

const UnorderedSet<String> &GetSupportedShaderProfiles() const

Returns a set of all supported shader profiles.

staticVendorFromString

static GPUVendor VendorFromString(const String &vendorString)

Parses a vendor string and returns an enum with the vendor if parsed succesfully.

staticVendorToString

static String VendorToString(GPUVendor vendor)

Converts a vendor enum to a string.

Fields

BackendName

StringID BackendName

The identifier associated with the GPU backend.

DriverVersion

GpuDriverVersion DriverVersion

Current version of the GPU driver.

DeviceName

String DeviceName

The name of the GPU device as reported by the GPU backend.

DeviceVendor

GPUVendor DeviceVendor

Vendor of the GPU device.

SampledTexturesPerStage

u16[6] SampledTexturesPerStage

The number of sampled textures that can be bound per stage.

TotalSampledTexturesCount

u16 TotalSampledTexturesCount

Total number of sampled textures that can be bound.

UniformBufferCountPerStage

u16[6] UniformBufferCountPerStage

The number of uniform buffers that can be bound per stage.

TotalUniformBuffersCount

u16 TotalUniformBuffersCount

Total number of uniform buffers that can be bound.

StorageTexturesPerStage

u16[6] StorageTexturesPerStage

The number of storage (load/store, UAV) textures that can be bound.

TotalStorageTexturesCount

u16 TotalStorageTexturesCount

Total number of storage (load/store, UAV) textures that can be bound.

VertexBufferCount

u32 VertexBufferCount

Maximum number of vertex buffers we can bind at once.

RenderTargetCount

u16 RenderTargetCount

The number of simultaneous render targets supported.

GeometryProgramNumOutputVertices

u32 GeometryProgramNumOutputVertices

The number of vertices a geometry program can emit in a single run.

MinimumUniformBufferOffsetAlignment

u32 MinimumUniformBufferOffsetAlignment

Minimum alignment required for uniform buffers that are sub-allocated within a larger buffer.

OptimalBufferToBufferCopyOffsetAlignment

u32 OptimalBufferToBufferCopyOffsetAlignment

Optimal alignment for offsets used in buffers for copy source or destination operations, when copying from a buffer to another buffer.

OptimalBufferToImageCopyOffsetAlignment

u32 OptimalBufferToImageCopyOffsetAlignment

Optimal alignment for offsets used in buffers for copy source or destination operations, when copying from a buffer to an image, or vice versa.

HorizontalTexelOffset

float HorizontalTexelOffset

Horizontal texel offset used for mapping texels to pixels.

VerticalTexelOffset

float VerticalTexelOffset

Vertical texel offset used for mapping texels to pixels.

MinDepth

float MinDepth

Minimum (closest) depth value used by this render backend

MaxDepth

float MaxDepth

Maximum (farthest) depth value used by this render backend.

Conventions

Returns various conventions expected by the render backend.

VertexColorType

VertexElementType VertexColorType

Native type used for vertex colors.

Private

Fields

mCapabilities

u32[32] mCapabilities

Stores the capabilities flags.

mSupportedShaderProfiles

UnorderedSet<String> mSupportedShaderProfiles

The list of supported shader profiles.