Repository navigation
Releases: prematurely/sa-renderstack
Release list
SA RenderStack v3.2.1
Tooling and release-hygiene fix on top of v3.2. No bridge source changed — the d3d9.dll in this release is byte-identical to the one in v3.2.
Fixed: the audited-bridge importer had been refusing to run
tools/migration/import-audited-bridge.ps1 guards the overlay allowlist with a hardcoded entry count, and tests/bridge-importer-path-safety-test.ps1 carries the same number as a canary. When the ProperShaders guard and state-ring files were added to tools/migration/bridge-overlay-files.txt, the allowlist grew from 38 to 42 entries but both guards stayed at 38.
Consequences:
- The importer threw
Unexpected Bridge overlay count: 42and refused to import anything. - Windows CI failed at
Run testsonbridge-importer-path-safety. The build itself was clean.
Both guards now read 42. The 38 in tests/bridge-migration-manifest-test.ps1 is deliberately unchanged — that test validates the 67f1750 baseline git blob, not the working tree.
On version naming
VERSION names the SDK/ABI generation, not the release. It is a separate axis from the v3.x release tag line and stays at 0.1.0-alpha.1. Windows CI names every package from VERSION, so the packages below carry the SDK generation in their filenames — that is intentional, not a packaging mistake.
Assets
| File | What it is | sha256 |
|---|---|---|
SA-RenderStack-v0.1.0-alpha.1-sdk.zip |
SDK headers and import libraries | 4cf0ce06…17ef2d |
SA-RenderStack-v0.1.0-alpha.1-split.zip |
The audited Bridge overlay split | 78777584…632b9e8 |
SA-RenderStack-v0.1.0-alpha.1-symbols.zip |
Debug symbols | 6a2c7833…b368a839 |
SA-RenderStack-v0.1.0-alpha.1-source-manifest.json |
Per-file source manifest with hashes | 45d46fbd…4cdeb1 |
d3d9.dll |
The bridge proxy, identical to v3.2 | 0de68a85…8fd0d076 |
The four packages are produced by Windows CI from this tag. d3d9.dll is a local build (VS 18 Build Tools, MSVC 14.51.36231, toolset v145, C++23, Win32 Release); it loads the D3D9 backend from backend/dxvk-gta at runtime, which is not included.
Verification
Windows CI green on this tag: build, full test suite, package, package-layout verification.
In-game verification of the ProperShaders guard remains pending — see v3.2.
SA RenderStack v3.2
The ProperShaders render-state guard now lives in the bridge.
What changed
Migration. ProperShadersRenderStateGuard.{h,cpp} and ProperShadersStateRing.{h,cpp} are added under src/bridge/legacy/ and activated from BridgeDirect3D9::CreateDevice. They wrap three ProperShaders patch sites and re-synchronise RenderWare's alpha-test states onto the D3D9 device around the scene render.
Vtable fix. SetRenderState is now resolved from its own IDirect3DDevice9 vtable slot 57. The original code resolved both the set and get entries from slot 58, which made every device-side "set" call a no-op GetRenderState.
Patch sites re-audited for the 2026-07-03 ProperShaders build (1,534,592 bytes, .text CRC32 0x526DBD01):
| Patch site | Old RVA | New RVA |
|---|---|---|
| RenderScene entry | PS+0x1ED80 |
PS+0x25880 |
| RenderFadingEntities | PS+0x1ED60 |
PS+0x25591 |
| main-scene state restore | PS+0x1EAB0 |
PS+0x25BEB |
| phaseAlternate capture | PS+0x153CE4 |
PS+0x16BFF8 |
The RenderScene prologue grew from 5 to 6 bytes (55 8B EC 83 E4 F8); the trampoline steals the complete 6-byte prologue.
Configuration. [ProperShadersRenderStateGuard] and [ProperShadersStateRing] in BridgeD3D9.ini.
Asset
d3d9.dll — the bridge proxy, built from this tag. It loads the D3D9 backend from backend/dxvk-gta at runtime; that backend is not included.
Verification status
Builds clean (0 warnings, 0 errors). Bridge and DXVK export verification passes for both the build artifact and the deployed file.
In-game verification pending.
Requires
FLA++ v1.11 or later. FLA++ no longer contains the guard, so this side has sole ownership, and the text-hash gate accepts exactly the 2026-07-03 ProperShaders build.
Provenance
d3d9.dll built with VS 18 Build Tools (v145), C++23, Win32 Release.
SA RenderStack v3.1
Pre-migration baseline, frozen immediately before the ProperShaders render-state guard moved into the BridgeD3D9 layer.
Contents since v3.0.1
- Full-stack C++23 modernization.
- M1 optional thread scheduling.
- API1-7 sample projects.
- SIMD constant dedup.
- Bridge and DXVK export verification tooling.
- MSVC C++23 format-string compatibility fixes and
WIN32_LEAN_AND_MEANdedup.
Assets
Source only. No verified binary build of this tag is published — build from the tag with tools/build.ps1 -Component Bridge.
Note
This is the last revision in which the D3D9 layer does not contain the ProperShaders render-state guard. With FLA++ v1.10c3 the guard is owned by FLA++; with FLA++ v1.11 or later no side owns it until v3.2.
SA RenderStack v0.1.0-alpha.1
SA RenderStack v0.1.0-alpha.1
This is the first split-DLL alpha baseline for GTA San Andreas.
Contents
- x86 Bridge D3D9 proxy at the game root:
d3d9.dll - x86 DXVK GTA backend at
backend/dxvk-gta/d3d9.dll - Product configuration:
SA.RenderStack.ini - Legacy Bridge configuration path:
scripts/BridgeD3D9.ini - DXVK configuration:
dxvk.conf - Manual installation and rollback guide:
docs/INSTALL.md - SDK headers and Bridge symbols in their separate archives
Backend
The backend is based on official DXVK v3.0.1 and uses the audited SA
RenderStack GTA compatibility overlay. DXGI is merged into the D3D9 backend
for this x86 split profile; the separate DXGI target is disabled.
The supported deployment remains two DLLs. The single-DLL architecture is a
later experimental target and is not part of this alpha. The split archive is
installed by extracting it into the GTA game root; PowerShell and the source
repository are not runtime dependencies.
Validation
The release is produced only from the reproducible x86 Release build and the
repository test gates. The generated split and source manifests are the
authoritative file and provenance records for each package.
Changelog
- Added the first reproducible x86 split Bridge/DXVK package layout.
- Vendored official DXVK
v3.0.1with the audited GTA SA compatibility overlay. - Added API v7 ABI checks, export verification, runtime probes, and symbols.
- Added ordered proxy/plugin configuration metadata for later chain expansion.
Compatibility
| Component | Supported baseline |
|---|---|
| Game | GTA San Andreas 1.0.0.0 US, 32-bit |
| Bridge | Win32 x86, MSVC Release |
| Backend | DXVK v3.0.1, LLVM-MinGW x86 |
| API | Backend API v7, Bridge plugin API v2 |
| DXGI | Merged into the D3D9 backend |
| ReShade/ENB | Optional external components; not bundled or validated |
Rollback
Keep the existing audited split installation unchanged until the alpha has
passed the fixed game workload and soak test. The release package never writes
to the game directory. Restore the previous Bridge and backend files from the
existing installation or its separately preserved backup after stopping the
game and all loader processes.
Known limitations
- This is an alpha baseline for controlled testing, not a drop-in replacement
for every third-party D3D9 proxy. - ReShade and ENB are optional external components and are not redistributed.
- No performance claim is made without the fixed-scene measurements described
by the project validation plan.