#amd #marker #gpu #bindings #instrumentation #direct-x12 #pix3

amd-ext-d3d

Rust 对 AMD DirectX12 修改后的 PIX3 RGP 标记的绑定

6 个版本

0.3.1 2024 年 7 月 14 日
0.3.0 2024 年 6 月 28 日
0.2.1 2023 年 11 月 17 日
0.2.0 2023 年 8 月 26 日
0.1.0 2023 年 5 月 25 日

166图形 API

Download history 1/week @ 2024-05-10 6/week @ 2024-05-31 4/week @ 2024-06-07 3/week @ 2024-06-14 249/week @ 2024-06-28 35/week @ 2024-07-05 128/week @ 2024-07-12 25/week @ 2024-07-19 19/week @ 2024-07-26 8/week @ 2024-08-02 9/week @ 2024-08-09

64 每月下载

MIT 许可证

17KB
289

Rust 对 AMD DirectX12 RGP 标记的绑定

Actions Status Latest version Documentation Lines of code MIT Contributor Covenant

Banner

在 Rust 中直接调用 AMD 命令列表标记,以在 Radeon GPU Profiler 中进行事件跟踪,以及其他在 IAmdExtD3DDevice1 上提供的功能。

用法

将此添加到您的 Cargo.toml

[dependencies]
amd-ext-d3d = "0.3.1"

虽然 上游文档 详细说明了如何将这些调用嵌入现有的 PIX3 标记(在 C #derive 后面),但在 Rust 中您可以显式调用它们

use amd_ext_d3d::AmdExtD3DDevice;
use std::ffi::CStr;
use windows::Win32::Graphics::Direct3D12::{ID3D12Device, ID3D12GraphicsCommandList};


let device: ID3D12Device = todo!("Open DirectX12 graphics device");
let cmd_list: ID3D12GraphicsCommandList = todo!("device.CreateCommandList(...)");

// Load the extension
let amd_device = unsafe { AmdExtD3DDevice::new(device.into()) }.unwrap();

let name = CStr::from_bytes_with_nul(b"My super cool GPU event!\0").unwrap();
unsafe { amd_device.push_marker(&cmd_list, name) };
// Submit work to the GPU...
unsafe { amd_device.pop_marker(&cmd_list) };

贡献

有关从上游头文件重新生成元数据和 Rust 代码的详细信息,请参阅 CONTRIBUTING.md

依赖关系

~128MB
~2M SLoC