amd-ext-d3d 0.3.1

Rust bindings for AMD's DirectX12 modified PIX3 RGP markers
docs.rs failed to build amd-ext-d3d-0.3.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: amd-ext-d3d-0.3.0

Rust bindings for AMD's DirectX12 RGP markers

Actions Status Latest version Documentation Lines of code MIT Contributor Covenant

Banner

Call AMD's command list markers directly in Rust for event instrumentation in Radeon GPU Profiler, as well as other functionality provided on IAmdExtD3DDevice1.

Usage

Add this to your Cargo.toml:

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

While upstream documentation details how to embed these calls into existing PIX3 markers (behind a C #derive), you get to call them explicitly in 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) };

Contributing

See CONTRIBUTING.md for details on regenerating the metadata and Rust code from upstream headers.