Skip to content

Latest commit

 

History

History
81 lines (63 loc) · 3.51 KB

File metadata and controls

81 lines (63 loc) · 3.51 KB

DualSense validation plan

Use disposable Windows test machines or VM snapshots. Development certificates and Windows test-signing policy must never be enabled on an ordinary user's machine. Record OS build, Secure Boot state, package SHA-256, driver version, test certificate thumbprint, Sunshine revision, and client revision for every run.

Entry criteria

  • Release x64 solution build passes with no compiler errors.
  • ZakoVirtualGamepadTests.exe passes.
  • Inf2Cat reports zero errors and zero warnings.
  • verify-package.ps1 verifies every packaged file.
  • CAT and DLL signer thumbprints match the exported development certificate.

Installation and discovery

  1. Snapshot the test system.
  2. Enable test-signing policy manually if required and reboot.
  3. Run install-driver.ps1 -TrustDevelopmentCertificate elevated.
  4. Confirm ROOT\DEVGEN\ZAKOVIRTUALGAMEPAD is started.
  5. Run ZakoVirtualGamepadCli.exe info and verify protocol/capabilities.
  6. Run ZakoVirtualGamepadCli.exe hold 60 and verify one Sony VID_054C&PID_0CE6 HID child appears and disappears when the tool exits.

Failure messages must distinguish package trust, root-device start, control device access, ABI mismatch, and VHF child creation. A generic “driver failed” is not acceptable UX.

Input and consumer matrix

Test on Windows 10 22H2 and each supported Windows 11 release:

Consumer Discovery Buttons/axes Motion Touch Battery Feedback
joy.cpl / Game Controllers N/A N/A N/A N/A
SDL gamepad test
Steam Input controller test
Chromium Gamepad API
Native DualSense title A
Native DualSense title B

For feedback, record raw report bytes as well as normalized rumble, RGB, player-LED, mute-LED, and adaptive-trigger fields. A game producing no feedback is not proof of parser failure; first confirm it wrote an HID output report.

Rate and latency

Exercise 125, 250, 500, and 1000 Hz for at least ten minutes each. Record submit latency p50/p95/p99/max, rejected submissions, CPU usage of Sunshine and the UMDF host, and visible input stalls. The release target is 250 Hz with no loss; higher rates are compatibility measurements, not a guaranteed user setting.

Lifecycle and coexistence

  • Create/destroy 1,000 times and confirm no orphan HID children.
  • Terminate the owning process and confirm handle-close cleanup.
  • Disconnect/reconnect Moonlight during active feedback.
  • Test sleep/resume and reboot.
  • Run up to four controller handles concurrently.
  • Verify existing ViGEm Xbox 360 and DS4 backends remain functional.
  • Verify HidHide configurations do not accidentally hide the virtual DS5 from the game or expose duplicate physical/virtual devices.

Upgrade and rollback

Test clean install, same-version repair, upgrade, downgrade rejection policy, device-only removal, full Driver Store removal, and reinstall after reboot. Normal uninstall must not remove ViGEm or unrelated HID packages. Restore the test snapshot after certificate and signing-policy validation.

Exit criteria

  • No crash, hang, orphan device, or verifier finding.
  • Input works in every supported consumer class.
  • Feedback succeeds in at least one captured native DualSense consumer and one Steam/SDL path, or unsupported paths are accurately disclosed in Sunshine.
  • Sunshine reports actionable fallback to ViGEm DS4 on every driver failure.
  • Production package uses the approved commercial or Microsoft signing path; no test certificate ships.