Skip to content

Latest commit

 

History

History

zpix

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

zpix v0.10.0 - performance markers for PIX

Getting started

Copy zpix and zwin32 to a subdirectory of your project and add the following to your build.zig.zon .dependencies:

    .zpix = .{ .path = "libs/zpix" },
    .zwin32 = .{ .path = "libs/zwin32" },

Then in your build.zig add:

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 = 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