Skip to content

Releases: prematurely/sa-renderstack

SA RenderStack v3.2.1

Choose a tag to compare

@prematurely prematurely released this 15 Sep 05:03

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: 42 and refused to import anything.
  • Windows CI failed at Run tests on bridge-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

Choose a tag to compare

@prematurely prematurely released this 14 Sep 16:34

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

Choose a tag to compare

@prematurely prematurely released this 14 Sep 16:34

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_MEAN dedup.

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

Pre-release

Choose a tag to compare

@prematurely prematurely released this 29 Aug 15:36

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.1 with 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.