使用 RGA 的 Visual Studio® Code 扩展

最初发布时间:
Rosanna Ashworth-Jones's avatar
Rosanna Ashworth-Jones

这是用于 Radeon GPU Analyzer (RGA) 的 Visual Studio® Code 扩展。安装此扩展后,即可直接在 Visual Studio Code 中使用 RGA。RGA 支持多种模式,但本文将重点介绍 Microsoft® DirectX® 12。

之前,只能通过命令行界面使用 RGA 进行 DX12 计算图形。RGA Visual Studio Code 扩展通过提供该工具的 GUI 前端,并组合用于从命令行调用 RGA 的命令,从而使工作更轻松。因此,有必要单独下载 RGA,并在 Visual Studio Code 内的扩展设置中设置 rga.exe 的路径。

安装

  1. 从 GitHub 此处获取最新版本的 RGA。
  2. 从 VS Code Marketplace 此处安装 RGA Visual Studio Code 扩展。
  3. 打开 VS Code 设置(“文件 -> 首选项 -> 设置”)并搜索“Rga: Path”。
  4. 添加已安装的 rga.exe 的路径 – 例如: d:\tools\rga\rga.exe
  5. RGA 扩展现已准备就绪。

重要提示

  • 请确保路径名称不包含任何空格。这包括 RGA 安装目录和所有源文件。

用法

以下说明将以 Radeon RX 5700 XT 为例,解释如何编译 DX12 图形管道。下面的动画 GIF 说明了这些步骤。可能需要单击图像才能查看动画。

准备工作

  1. 在着色器的父目录中打开 VS Code。
  2. 在 VS Code 中打开着色器。
  3. 如果使用 HLSL 定义根签名,请确保 [RootSignature()] 属性位于您的着色器正上方。有关如何定义根签名的更多信息,请 参见此处
  4. 如果您正在编译图形管道,请确保 gpso 文件可用。它定义了 D3D12 图形管道的一个子集,有关更多信息,请 参见此处。注意:将文件名(包括路径)复制到剪贴板可能更方便。
  5. 选择管道的**顶点着色器入口点**。只需要函数名。
  6. 在选择像素着色器入口点时,按住**Alt**键(或使用其他多选方式)。

构建配置

  1. 使用 Ctrl+Shift+P 打开 VS Code 的命令面板。
  2. 输入命令 Call RGA: DX12
  3. 选择首选的目标体系结构。对于 Radeon RX 5700 XT,它将是 gfx1010。直接调用 rga.exe 可以显示支持的 ASIC 的完整列表。
  4. 选择第一个入口点的着色器类型。在这种情况下,对于 VSMain 来说是 vs
  5. 对第二个入口点重复此操作,依此类推。
  6. 从下拉列表中选择首选的着色器配置文件。例如 – 6_0 代表 Shader Model 6.0。
  7. 键入 gpso 文件的路径,或从剪贴板粘贴,或从最近路径列表中选择。
  8. 键入任何自定义参数。如果 [RootSignature()] 是以二进制形式定义的,请在此处添加 —rs-bin 参数,后跟绝对路径。这也是支持 RGA 的任何任意命令的阶段。
  9. 如果着色器编译成功,生成的 AMD IL 和 AMD GCN/RDNA ISA 反汇编将分别在单独的视图中打开。

所有输出都重定向到终端。这意味着可以在那里检查错误消息,以及用于调用 RGA 的构造命令。

可以根据需要更改着色器。按 F7 键(默认)将重新运行最后一个命令。

提示与技巧

RGA 选项

在 VS Code 设置中搜索“RGA”可以提供更多自定义行为的选项。其中一些选项包括:

  • 配置命令字符串。对某些用户来说,持续覆盖位于 c:\vs_code\rs\rga.fx.rs 下的单个根签名二进制文件可能比将不同路径复制到剪贴板更可取。

  • ‘Rga > View Column: Isa’ 用于控制 ISA 在编辑器中显示的列。

  • 语法高亮

    要为“AMD GCN ISA”(也适用于 RDNA)添加语法高亮

    1. 从 marketplace 安装 GCN VS Code 扩展。

    2. 将 editor.tokenColorCustomizations 字段添加到您的主题设置。通过以下方式访问此文件(settings.json):

    • 转到 VS Code 设置(“文件 -> 首选项 -> 设置”)
    • 在设置窗口的右上角,有三个图标。选择这里突出显示的带圆圈的第一个图标:

3. 要将新条目与上一个条目(可能是路径设置)分开,请使用逗号。

4. 要添加的代码如下:

"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": "storage.type.amd-gcn-isa",
"settings": {
"foreground": "#CC3333"
}
},
{
"scope": "keyword.vector.amd-gcn-isa",
"settings": {
"foreground": "#33CCCC"
}
},
{
"scope": "keyword.scalar.amd-gcn-isa",
"settings": {
"foreground": "#CC33CC"
}
},
{
"scope": "support.variable.vector.amd-gcn-isa",
"settings": {
"foreground": "#CCCC33"
}
},
{
"scope": "support.variable.scalar.amd-gcn-isa",
"settings": {
"foreground": "#6495ED"
}
},
{
"scope": "keyword.control.label.amd-gcn-isa",
"settings": {
"foreground": "#33CC33"
}
}
]
}

相关工具

相关教程

Rosanna Ashworth-Jones's avatar

Rosanna Ashworth-Jones

Rosanna Ashworth-Jones 是 GPUOpen 网站管理员和开发者推广经理,也是欧洲游戏工程团队的成员。第三方网站链接和第三方商标引用仅供参考和说明之用。除非明确说明,否则 AMD 对此类链接的内容概不负责,并且不暗示任何第三方对 AMD 或其任何产品的认可。

相关新闻和技术文章

相关视频

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