跳转至

D3D12

Early Z-Test

由图形驱动控制,不能用 D3D API 控制。如果像素着色器会修改深度(SV_Depth),就不能应用 Early Z-Test。参考 DX12 龙书第 400 页。

Shader 中越界访问

D3D11 中,Shader 越界读写没有问题,越界读会返回 0。1 但在 D3D12 中,如果资源使用的是 Root Descriptor,由于只提供了 D3D12_GPU_VIRTUAL_ADDRESS 而没有 Size,GPU 无法做越界检查,越界读写可能崩溃。如果是在 Descriptor Table 中的 Descriptor,由于创建对应 View 时在 Desc 中指定了 Size,所以越界读写行为和 D3D11 一致。2