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 中
64 每月下载
17KB
289 行
Rust 对 AMD DirectX12 RGP 标记的绑定
在 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