11 releases (7 breaking)

new 0.8.0 Apr 10, 2025
0.7.0 Apr 10, 2025
0.6.0 Oct 25, 2024
0.5.0 Oct 9, 2024
0.1.1 Aug 6, 2024

#174 in Graphics APIs

Download history 21/week @ 2025-02-09 204/week @ 2025-04-06

204 downloads per month

MIT license

760KB
11K SLoC

Contains (Windows DLL, 59KB) WinPixEventRuntime.dll, (Windows DLL, 59KB) WinPixEventRuntime.dll, (static library, 7KB) WinPixEventRuntime.lib, (static library, 7KB) WinPixEventRuntime.lib

oxidx

This project provides low-level wrapper for D3D12 API.

Features

  • Provides a low-level API around DirectX 12. All methods correspond to DirectX 12 C++ methods, but they are done in a Rust way.
  • Based on official windows crate.
  • No library/runtime validation, only driver validation.
  • PIX methods.
  • D3D12 and DXGI prefixes have been stripped from all types.

Minimum supported Rust version

oxidx's MSRV is 1.80.

Examples

Device creation

let entry = Entry;

let factory: Factory4 = entry.create_factory(FactoryCreationFlags::empty())?;

let adapter = factory.enum_adapters(0)?;

let device: Device = entry
    .create_device(&adapter, FeatureLevel::Level11)
    .unwrap();

Feature fetching

let mut options = Options1Feature::default();
device.check_feature_support(&mut options)?;

Dependencies

~115MB
~2M SLoC