Diligent RenderStatePackager
Prebuilt Diligent Engine RenderStatePackager
command-line tool, distributed as a per-platform Python binary wheel on PyPI. It compiles declarative
render states (.drsn + HLSL) into a DeviceObjectArchive at build time, so an application can unpack
pipeline states at runtime through IDearchiver instead of compiling shaders on startup.
The wheel ships only the native executable — install it and run the tool, with no need to build the packager (and all of DiligentCore + Dawn) from source.
| Platform | Wheel tag | Serialized backends |
|---|---|---|
| Windows x64 | win_amd64 |
Direct3D11, Direct3D12, Vulkan, WebGPU |
| macOS arm64 | macosx_11_0_arm64 |
Vulkan, WebGPU |
| Linux x64 | manylinux_2_28_x86_64 |
Vulkan, WebGPU |
Installation
pip install diligent-drsn-packager
diligent-drsn-packager --help
The wheel is independent of the Python ABI (py3-none-<platform>) and works with any Python 3.8+.
Cloning the Repository
To build from source, clone with submodules:
git clone --recursive https://github.com/MikhailGorobets/Diligent-RenderStatePackager.git
If you cloned without --recursive, run git submodule update --init --recursive.
Repository Structure
| Path | Description |
|---|---|
CMakeLists.txt |
Builds only the Diligent-RenderStatePackager executable |
src/diligent_drsn_packager/ |
Python wrapper: get_executable_path() and a CLI passthrough |
pyproject.toml, setup.py |
Packaging into a platform-tagged binary wheel |
bootstrap.sh |
Init submodules, build, stage the binary |
.github/workflows/ |
CI — build wheels (build.yml), publish to PyPI (publish.yml) |
DiligentCore, DiligentTools |
Pinned submodules |
Build and Run Instructions
Requires CMake 3.19+, Ninja and a C++20 toolchain. On Linux also install X11/xcb development headers
(a configure-time dependency of DiligentTools' NativeApp): apt install libx11-dev libxcb1-dev or
dnf install libX11-devel libxcb-devel.
./bootstrap.sh # init submodules, build, stage the binary
python -m build --wheel # produce dist/*.whl
pip install dist/*.whl
Usage from CMake
Resolve the executable from the installed wheel at configure time:
find_package(Python3 COMPONENTS Interpreter REQUIRED)
set(_pfx "${CMAKE_BINARY_DIR}/_drsn_packager")
execute_process(COMMAND "${Python3_EXECUTABLE}" -m pip install --target "${_pfx}"
"diligent-drsn-packager==0.1.0")
execute_process(
COMMAND "${Python3_EXECUTABLE}" -c
"import sys;sys.path.insert(0,r'${_pfx}');import diligent_drsn_packager as p;print(p.get_executable_path())"
OUTPUT_VARIABLE PACKAGER_EXE OUTPUT_STRIP_TRAILING_WHITESPACE)
# e.g. ${PACKAGER_EXE} -o RenderStates.bin --vulkan --webgpu -s Shaders -r RenderStates -i Lib.drsn
Version Compatibility
A DeviceObjectArchive is bound to DiligentCore's serialization format (header ArchiveVersion); an
archive only loads in a runtime built from a compatible DiligentCore commit. The wheel records the
commit it was built from in diligent_drsn_packager.__diligentcore_sha__. When the submodules are
bumped, release a new wheel version and pin to it in the consumer.
Release
Set the version in pyproject.toml, then tag:
git tag v0.1.0 && git push --tags
publish.yml builds every platform wheel and uploads them to PyPI via Trusted Publishing (OIDC).
Configure the PyPI project's trusted publisher (this repository, environment pypi) beforehand.
License
Apache-2.0 — see LICENSE. Bundled binaries are built from DiligentCore and DiligentTools, which are also licensed under Apache-2.0.
Metadata
Release files for diligent-drsn-packager 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| diligent_drsn_packager-0.1.2-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| diligent_drsn_packager-0.1.2-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| diligent_drsn_packager-0.1.2-py3-none-macosx_10_9_universal2.whl | Python 3 | none | macOS 10.9+ universal2 (ARM64, x86-64) | Details |
Total release size: 18.5 MB
Release files / diligent_drsn_packager-0.1.2-py3-none-win_amd64.whl
| Download URL | diligent_drsn_packager-0.1.2-py3-none-win_amd64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f6ccc894c496705a26118f6884c1a7845a1153d22e5013c84bc5564861f80c7d
|
|
BLAKE2b-256 checksum How to use checksums |
7b90e90a4416bc9776bb2d6864cad46466b83c9e7360f0cd0c7cd5cd76f4dde9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / diligent_drsn_packager-0.1.2-py3-none-manylinux_2_28_x86_64.whl
| Download URL | diligent_drsn_packager-0.1.2-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 9.2 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
c88ec9f05024fc8641a8e11afcbacb448572e5c422d9ed1a836d20301025ba7c
|
|
BLAKE2b-256 checksum How to use checksums |
ec75bac9e972f9fe5796e614c4467b36657d96bef4764df037944ec598394912
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / diligent_drsn_packager-0.1.2-py3-none-macosx_10_9_universal2.whl
| Download URL | diligent_drsn_packager-0.1.2-py3-none-macosx_10_9_universal2.whl |
|---|---|
| Size | 5.1 MB |
| Tags | Python 3 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
0b1d0b451d3c4a23eeee26495cfffde415eaff408a32c67fd049087531318e90
|
|
BLAKE2b-256 checksum How to use checksums |
823929205a6372139ad7f05d19fdab145670694611f74cdffe6e2a114156682c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logSecurity for diligent-drsn-packager 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 3 files in this release have been uploaded with provenance metadata.
Attestation for diligent_drsn_packager-0.1.2-py3-none-win_amd64.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.