Windows-GPU-UNLOCK README

The project's README from github.com/impacifist/Windows-GPU-UNLOCK. As one markdown file: README.md.

Windows GPU UNLOCK

English | 한국어

Experimental UEFI GPU unlock and direct Windows handoff, expanded through community contributions.

GPU support

Success reports apply to specific cards and systems, not every card of the same GPU model. Check the linked motherboard, BIOS and card requirements before building.

GPU Current status Details
RTX 3060 12GB (GA104 / GA106) Hardware success reported; headless USB only GA104 · GA106
RTX 3070 Ti 8GB Hardware success reported; internal headless Supported configuration
RTX 3080 No dedicated profile in this port; upstream project target Project origins
RTX 3090 FE 24GB Hardware success recorded; internal headless; default profile Supported configuration
RTX 3090 Ti 24GB Hardware success reported; headless USB only Supported configuration

The compatibility guide lists exact build profiles and distinguishes maintainer tests from contributor reports. Results concern their recorded builds; later main-branch hardening has host/build checks, not a new physical boot or recovery test.

The latest tagged release, v0.3.1, is a source-only pre-release. This source tree has changes beyond that tag, including the USB route and X870 profile; those are not a newly published release. Build locally with your own partition GUIDs. Firmware assets and private, partition-specific EFI binaries are not bundled.

Choose the correct boot path

Path Display and input Instructions
Internal headless B650M/3090 FE or B660M/3070 Ti profile; monitors on RTX; display temporarily removed; no T/U/Enter Internal headless guide
Headless USB Reported RTX 3060 / 3090 Ti configurations; profile-specific wrapper and child on a FAT32 USB stick Headless USB guide
Internal AMD-display manual / Auto Original B650M profile, motherboard/iGPU display preserved; manual variant requires U Existing internal guide
Legacy USB manual Original AMD/iGPU display profile; U once, then Boot Override to Windows without reset Legacy USB guide

X870, B660-PLUS and H610M are not wired into Configure.ps1 or Headless.ps1; use the USB guide. USB packages can also be built for the first two profiles, but their recorded internal boots do not validate those USB routes. The legacy USB EFI retains its AMD display requirement. BIOS priority USB → Windows alone does not implement direct handoff.

Internal headless quick start

This example is for the default B650M / RTX 3090 FE profile. For B660M, select -HardwareProfile b660m-3070ti in both configuration and build as described in compatibility. X870 uses the separate USB route.

Read the full guide and recovery procedure before changing boot settings. Use the exact supported hardware, Secure Boot disabled, a fully decrypted Windows C: with BitLocker protection off, and a connected keyboard. The tools do not disable encryption.

Preserve the existing Windows ESP and recovery partition. Prepare a separate GPT FAT32 EFI System Partition of at least 1 GiB, with a letter such as U:. Tools do not create, shrink, delete or format partitions. An ordinary FAT32 data partition alone is not the required ESP.

You need Python 3.9+, clang/lld-link 20.1.8, the pinned repository dependencies and five locally obtained firmware assets. Host integration tests additionally need MSVC/Windows SDK and private fixtures.

From an administrator PowerShell in the repository root:

# Replace the GUID and tool paths with your own values.
.\internal-boot\Configure.ps1 -UnlockDriveLetter U `
  -WindowsEspGuid 'YOUR-WINDOWS-ESP-GUID'
.\research\headless\build-unlock.ps1 `
  -Clang 'C:\TOOLS\LLVM20\bin\clang.exe' `
  -LldLink 'C:\TOOLS\LLVM20\bin\lld-link.exe'

# Stage and append a separate F8 test entry; retain existing boot priority.
.\internal-boot\Headless.ps1 -Assets '.\assets' -Register

Without an action switch, Headless.ps1 -Assets '.\assets' only stages files. Configuration and build do not register a boot entry.

  1. Save work and fully power off. On the tested ASUS firmware, select F8 → GPU Headless UNLOCK - EXPERIMENTAL.

  2. Wait without T, U or Enter. Initial Esc within five seconds skips release and unlock and boots Windows directly.

  3. The screen becomes black while the RTX GOP is removed. The child attempts once and the wrapper starts Windows directly. Do not reset between unlock and Windows. Confirm display recovery and measure.

  4. Only after that F8 test succeeds, enable default automatic boot:

    .\internal-boot\Headless.ps1 -EnableAutomatic -ConfirmedSuccess
    

That explicit action places headless first and Windows Boot Manager second and disables Windows Fast Startup. Test registration alone does not. Publishing this release does not change the research PC's current default boot selection.

The two Esc windows differ: initial wrapper Esc boots Windows without release; the later three-second child Esc window is after release and cancels into a stop. It does not restore the display or continue to Windows. On failure or if Windows does not return, fully power off and choose F8 → Windows Boot Manager.

.\internal-boot\Headless.ps1 -RestoreWindowsFirst

Windows-first recovery is independent of experimental EFI/build artifacts and still works without saved state. Restoring the prior Fast Startup setting needs that state; retain it and backups. Recovery details.

Original B650M results and limits

The original B650M hardware run's successful child reported SS0 0x88888888, SS1 0x8, BME disabled, zero remaining mappings, completed cleanup and one FLR. The wrapper verified the released topology before Windows entry. Windows display recovery was observed by the operator.

CUDA 12.6 / cuBLAS 12.6, 4096 × 4096 Three-run median
FP32 pedantic 22.85 TFLOPS
FP16 Tensor / FP32 accumulation 124.97 TFLOPS
BF16 Tensor / FP32 accumulation 128.93 TFLOPS

Future runs of the benchmark tool also measure TF32 separately. The historical measurements above predate that addition and have no TF32 result.

There is no contemporary controlled locked baseline for this headless boot, so these values do not establish an unlock percentage. They do not establish game or ComfyUI gains, long-term stability, sleep/hibernate resume or repeated automatic cold-boot reliability. Sanitized measurements and earlier results describe separate experiments.

For the other machines' measurements, see B660M Profile 2, X870 USB evidence and B660-PLUS / 3060 USB evidence (controlled locked baseline: FP16 1.88–1.92×, BF16 1.92–1.95×, TF32 1.93–1.94× over two boots). Those results are tied to their reported builds; a later successful build or host test does not extend the physical test record.

Implementation and boundaries

Headless is a separate compile-time profile. Exact GPU/PROM/PCI state, firmware driver code, ownership, cold state, immutable selectors and cleanup checks remain. The child logs to files only and rejects physical GOP reappearance or changed console/input interfaces. Ordinary builds retain their AMD display guards. Do not remove checks or substitute a PROM hash to force another machine through.

Path Purpose
internal-boot/, research/headless/ Internal/headless source, local build, installation and host tests
unlock/, release/ Preserved legacy USB manual implementation and historical artifacts
benchmark/, evidence/ Measurement tools and selected public evidence
docs/ Compatibility, assets, boot guides and limitations

No VBIOS flashing or Windows driver replacement is part of the procedure. Driver 617.14 was unchanged in the documented run. Host mock tests do not add hardware support. New systems require compatibility reporting and portability validation. A machine inside the hardware-proven envelope can build and test its own local profile with the new-machine pipeline. This experimental workflow inventories NVIDIA display devices, but deep capture is limited to one RTX 3090 / 3090 Ti in the reviewed PCI/BAR state. A generated local profile does not add another verified machine profile. USB write builds require all 19 host jobs and unchanged profile, fixtures and build inputs; hardware validation is still required. Staging the unlock package needs -StageUnlock.

License and attribution

The port and reused core are GPL-2.0-only; EDK2 and separately attributed components retain their licenses. Based on rough2515-hub/rtx3080-unlock-public and Zagitta/gpu-unlock. Preserve LICENSE, third-party notices and change history. NVIDIA firmware, PROM/BIOS images, drivers and CUDA DLLs are not redistributed in this source release.

Windows-GPU-UNLOCK (impacifist/Windows-GPU-UNLOCK)

Searching Database…

What is this?Windows GPU UNLOCK is an experimental UEFI-stage tool that releases an NVIDIA RTX GPU from its initial locked PCI/BAR state and hands control straight to Windows without a reset cycle, instead of going through the normal boot/reset flow. It is a port of an earlier RTX3080 unlock project, extended to other RTX cards through community testing.
Is this a driver or a firmware mod for my GPU?Neither. It is a custom UEFI boot stage (built on EDK2) that runs before Windows loads, performs the unlock sequence, then chains into the existing Windows Boot Manager; it never flashes VBIOS or replaces any Windows driver.
How do I build and run it?From an administrator PowerShell in the repo root you run Configure.ps1 and Headless.ps1 with the matching -HardwareProfile (e.g. b660m-3070ti), test it once via a dedicated F8 boot menu entry, and only after that succeeds do you register it as the default boot path.
What do I need before building this?Python 3.9+, clang/lld-link 20.1.8, the pinned repo dependencies, and five firmware assets you must obtain yourself (not bundled); host integration tests additionally need MSVC and the Windows SDK.
Will this work on any RTX GPU and motherboard?No — hardware success has only been verified on specific card/board combinations (RTX 3060, 3070 Ti, 3090 FE, 3090 Ti on particular profiles), and success on one unit does not guarantee it on another of the same model; boards like X870, B660-PLUS and H610M aren't wired into the automated scripts yet.
Does this only run on Windows?Yes, it's built specifically to unlock a GPU for a Windows boot, and requires Secure Boot disabled, BitLocker fully off, and a dedicated FAT32 EFI System Partition on the Windows machine itself.
What happens if the unlock boot fails or the screen stays black?Power off and pick F8 then Windows Boot Manager; this recovery path is independent of the experimental build and works even without any saved state, though you'll need backups to restore the original Fast Startup setting.
Does using this redistribute NVIDIA firmware or drivers?No, NVIDIA firmware, PROM/BIOS images, drivers and CUDA DLLs are not redistributed in the source release; you have to source the five required firmware assets yourself.
What performance gain does the unlock actually show?On a controlled two-boot comparison it measured roughly FP16 1.88-1.95x and BF16 1.92-1.95x over the locked baseline on one tested machine, but these numbers are tied to that specific build and aren't guaranteed to transfer to other systems or workloads like gaming/ComfyUI.
Is there a stable release I can just download?The latest tagged release, v0.3.1, is source-only and a pre-release; newer work like the USB route and X870 profile exists only in the source tree beyond that tag, so you build it yourself.
Which topics is it in?c
Creator
impacifist
Size
2.3 MB
Stars
763
Updated
CommitOct 26
Age
6d
Commits · 90 Days