Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1.2 KB

README.md

File metadata and controls

44 lines (32 loc) · 1.2 KB

Performance markers for Microsoft's PIX profiler in Zig.

Getting started

Example build.zig:

pub fn build(b: *std.Build) void {
    const exe = b.addExecutable(.{ ... });

    const zpix = b.dependency("zpix", .{
        .enable = true,
        .path = @as([]const u8, ...folder containing WinPixGpuCapturer.dll, typically directory under C:\Program Files\\Microsoft PIX),
    });
    exe.root_module.addImport("zpix", zpix.module("root"));
}

Load GPU capture library before making any D3D12 calls:

const zpix = @import("zpix");

pub fn main() !void {
    const pix_library = try zpix.loadGpuCapturerLibrary();
    defer pix_library.deinit();
    ...
}

Then using the PIX UI:

  1. Under Select Target Process --> Attach
  2. Select process
  3. Select Attach
  4. Under GPU Capture, click on camera icon

Advanced usage

For programmic capture use beginCapture/endCapture.

If process has multiple windows, target one for GPU capture using setTargetWindow.

Full PIX documentation