Files
XCEngine/docs/api/rhi/capabilities/capabilities.md
2026-03-20 02:35:45 +08:00

3.3 KiB
Raw Blame History

RHICapabilities

命名空间: XCEngine::RHI

类型: struct

头文件: XCEngine/RHI/RHICapabilities.h

描述: GPU 设备能力结构体,描述了当前图形设备支持的各种功能和限制。

概述

RHICapabilities 是一个纯数据结构的 struct用于在运行时查询当前 GPU 设备的能力和限制。开发者可以通过 RHIDevice::GetCapabilities() 获取设备能力信息,据此决定是否启用特定图形特性(如光线追踪、网格着色器等),或在进行资源创建时确保不超过设备支持的范围。

结构体成员

成员 类型 描述 默认值
bSupportsRayTracing bool 支持光线追踪 -
bSupportsMeshShaders bool 支持 Mesh 着色器 -
bSupportsExplicitMultiThreading bool 支持显式多线程 -
bSupportsGeometryShaders bool 支持几何着色器 -
bSupportsTessellation bool 支持曲面细分 -
bSupportsComputeShaders bool 支持计算着色器 -
bSupportsDepthBoundsTest bool 支持深度范围测试 -
bSupportsAlphaToCoverage bool 支持 Alpha 到覆盖 -
bSupportsIndependentBlend bool 支持独立混合 -
bSupportsLogicOps bool 支持逻辑操作 -
bSupportsMultiViewport bool 支持多视口 -
bSupportsConservativeRasterization bool 支持保守光栅化 -
bSupportsProgrammableSamplePositions bool 支持可编程采样位置 -

资源限制

成员 类型 描述 默认值
maxTexture2DSize uint32_t 最大 2D 纹理尺寸 -
maxTexture3DSize uint32_t 最大 3D 纹理尺寸 -
maxTextureCubeSize uint32_t 最大立方体贴图尺寸 -
maxRenderTargets uint32_t 最大渲染目标数量 -
maxViewports uint32_t 最大视口数量 -
maxVertexAttribs uint32_t 最大顶点属性数量 -
maxConstantBufferSize uint32_t 最大常量缓冲大小 -
maxAnisotropy uint32_t 最大各向异性级别 -
maxColorAttachments uint32_t 最大颜色附件数量 -

线宽和点大小

成员 类型 描述 默认值
minSmoothedLineWidth float 最小平滑线宽 -
maxSmoothedLineWidth float 最大平滑线宽 -
minPointSize float 最小点大小 -
maxPointSize float 最大点大小 -
maxPointSizeAA float 抗锯齿最大点大小 -
maxLineWidth float 最大线宽 -
maxLineWidthAA float 抗锯齿最大线宽 -

版本信息

成员 类型 描述 默认值
majorVersion int 主版本号 -
minorVersion int 次版本号 -
shaderModel std::string 着色器模型版本 -

使用示例

const RHICapabilities& caps = device->GetCapabilities();

if (caps.bSupportsRayTracing) {
    // 启用光线追踪功能
}

if (caps.bSupportsComputeShaders) {
    // 启用计算着色器
}

uint32_t textureSize = std::min(requestedSize, caps.maxTexture2DSize);

相关文档