Radeon™ GPU Analyzer 2.3 for Direct3D® 12 Graphics

首次发布时间:

今年早些时候,RGA 2.2发布了一个新的命令行工具模式,增加了对Direct3D® 12计算管道的支持。RGA 2.3将该功能扩展到支持图形管道。使用新模式,您可以编译D3D®12图形管道,并为各种目标GPU生成GCN/RDNA ISA反汇编和硬件资源使用统计数据,无论您的系统上安装了什么设备。

使用RGA 2.3进行D3D12

本文解释了RGA for DX12的工作原理。新的dx12模式(-s dx12)和旧的dx11模式(-s dx11,以前命名为-s hlsl)之间的关键区别在于,dx12模式使用实时驱动程序,并遵循与实际D3D12应用程序相同的编译路径。因此,它具有生成最接近实际情况的反汇编和硬件资源使用统计数据的能力,从而做出更好的性能优化决策。

要编译D3D12图形管道,除了HLSL源文件外,还需要向工具提供以下输入:

  • Root Signature:Root Signature可以在HLSL源代码中定义,也可以提供预编译的二进制文件,正如我们在之前的文章中所述。.gpso文件:对于计算管道,HLSL源代码和有效的Root Signature足以成功编译管道。然而,对于图形而言,还需要D3D12图形管道状态的一个子集。如果没有这些额外数据,RGA将无法正确设置着色器的管道状态,这将导致编译失败。RGA所需的图形管道状态子集定义在一个自定义的.gpso文件中,格式如下:
终端窗口
# schemaVersion
1.0
# InputLayoutNumElements: Number of D3D12_INPUT_ELEMENT_DESC elements in the D3D12_INPUT_LAYOUT_DESC structure.
# Must match the following "InputLayout" section.
2
# InputLayout
# { SemanticName, SemanticIndex, Format, InputSlot, AlignedByteOffset, InputSlotClass, InstanceDataStepRate }
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 },
{ "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 }
# PrimitiveTopologyType: The D3D12_PRIMITIVE_TOPOLOGY_TYPE value to be used when creating the PSO.
D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE
# NumRenderTargets: The number of formats in the upcoming RTVFormats section.
1
# RTVFormats: An array of DXGI_FORMAT-typed values for the render target formats.
# The number of items in the array should match the above NumRenderTargets section.
{ DXGI_FORMAT_R8G8B8A8_UNORM }

相关新闻和技术文章

相关视频

© . This site is unofficial and not affiliated with AMD.