Direct3D Feature Level 是否保证对体积纹理的非 2 次幂支持?

Does Direct3D Feature Level guarantee non-power-of-2 support for volume textures?

在 Direct3D9 中有 capability flags 如:

  • D3DPTEXTURECAPS_NONPOW2CONDITIONAL: ... conditionally supports the use of 2D textures with dimensions that are not powers of two ...
  • D3DPTEXTURECAPS_POW2: ... all textures must have widths and heights specified as powers of two. This requirement does not apply to ... volume textures ...
  • D3DPTEXTURECAPS_VOLUMEMAP_POW2: Device requires that volume texture maps have dimensions specified as powers of two.

在 Direct3D10 中有 feature levels。 功能级别 10_0 及以上具有:

  • Nonpowers-of-2 unconditionally⁴

⁴ At feature levels 10_0, 10_1 and 11_0, the display device unconditionally supports the use of 2-D textures with dimensions that are not powers of two.

但是没有提到 3-D 纹理。

在 D3D10+ 中是否支持非 2 的幂次方体积纹理?

Direct3D 10 及更高版本将所有资源大小定义为对 2 的幂大小或与之关联的过滤功能没有特定限制。

While they are not super easy to understand, you can look at the engineering specs for Direct3D 11 on GitHub