Loading...
Searching...
No Matches
score::gfx::interop::GpuCapabilities Struct Reference

Detailed Description

Result of the capability probe.

Public Member Functions

constexpr bool hasTier0 () const noexcept
 
constexpr bool hasTier1Dvp () const noexcept
 
constexpr bool rulesOutNvidiaPaths () const noexcept
 
constexpr bool hasTier2AmdPinned () const noexcept
 

Public Attributes

GpuVendor vendor {GpuVendor::Unknown}
 
HostOs os {HostOs::Other}
 
QRhiBackendKind backend {QRhiBackendKind::Unknown}
 
char rendererName [128] {}
 
char driverVersion [64] {}
 
bool dvpLoaded {}
 
bool dvpHaveGl {}
 
bool dvpHaveD3D11 {}
 
bool dvpHaveCuda {}
 
bool cudaLoaded {}
 
bool cudaVmmSupported {}
 
bool nvidiaPeermem {}
 
AmdGlExtensions amd {}
 
bool vkExternalMemorySupported {}
 
bool metalSupported {}
 

Member Function Documentation

◆ hasTier0()

constexpr bool score::gfx::interop::GpuCapabilities::hasTier0 ( ) const
inlineconstexprnoexcept

True when this system can do direct NIC/card → GPU VRAM.

◆ hasTier1Dvp()

constexpr bool score::gfx::interop::GpuCapabilities::hasTier1Dvp ( ) const
inlineconstexprnoexcept

True when this system can do NVIDIA DVP via some backend.

◆ hasTier2AmdPinned()

constexpr bool score::gfx::interop::GpuCapabilities::hasTier2AmdPinned ( ) const
inlineconstexprnoexcept

True when this system can do AMD pinned-host transfer.

◆ rulesOutNvidiaPaths()

constexpr bool score::gfx::interop::GpuCapabilities::rulesOutNvidiaPaths ( ) const
inlineconstexprnoexcept

True when the GPU is positively identified as one that cannot run the NVIDIA-only interop paths (DVP, CUDA RDMA), whatever the loaders report: dvpLoaded only says libdvp is installed, and it can be installed on a machine whose GPU is a Radeon.

Unknown deliberately returns false, so an unidentified GPU still tries and degrades on init failure.

Member Data Documentation

◆ amd

AmdGlExtensions score::gfx::interop::GpuCapabilities::amd {}

Per-extension presence. Populated only by probeGlExtensions().

◆ cudaLoaded

bool score::gfx::interop::GpuCapabilities::cudaLoaded {}

libcuda.so.1 / nvcuda.dll loaded; basic driver-API entry points resolved.

◆ cudaVmmSupported

bool score::gfx::interop::GpuCapabilities::cudaVmmSupported {}

CUDA Virtual Memory Management API (cuMemCreate / cuMemMap / cuMemSetAccess) available. Required for direct NIC→VRAM Rivermax-style allocation.

◆ driverVersion

char score::gfx::interop::GpuCapabilities::driverVersion[64] {}

Driver version string when obtainable (e.g. NVIDIA driver "555.42"). Empty when not detectable.

◆ dvpHaveCuda

bool score::gfx::interop::GpuCapabilities::dvpHaveCuda {}

DVP CUDA entry points fully resolved (cross-platform).

◆ dvpHaveD3D11

bool score::gfx::interop::GpuCapabilities::dvpHaveD3D11 {}

DVP D3D11 entry points fully resolved (Windows only).

◆ dvpHaveGl

bool score::gfx::interop::GpuCapabilities::dvpHaveGl {}

DVP GL entry points fully resolved.

◆ dvpLoaded

bool score::gfx::interop::GpuCapabilities::dvpLoaded {}

dvp.dll / libdvp.so.1 loaded successfully.

◆ metalSupported

bool score::gfx::interop::GpuCapabilities::metalSupported {}

Running on macOS with Metal-capable GPU. Implies Metal-IOS is the right path for shared GPU resources.

◆ nvidiaPeermem

bool score::gfx::interop::GpuCapabilities::nvidiaPeermem {}

nvidia_peermem kernel module loaded (Linux). Gates AJA-RDMA and Rivermax/Ximea direct-VRAM paths. Always false on non-Linux.

◆ rendererName

char score::gfx::interop::GpuCapabilities::rendererName[128] {}

GPU renderer/device name. Captured for logging + heuristics.

◆ vkExternalMemorySupported

bool score::gfx::interop::GpuCapabilities::vkExternalMemorySupported {}

QRhi's Vulkan backend is active AND has external-memory extensions usable. Set by probeFromQRhi.


The documentation for this struct was generated from the following file: