Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3fe1509536 | ||
|
|
2ddbbe9fc7 | ||
|
|
7a959c7112 | ||
|
|
1508f4d8a6 | ||
|
|
b812006831 | ||
|
|
163d6e6470 | ||
|
|
4121cb6457 | ||
|
|
43c4160b8d |
@@ -0,0 +1,55 @@
|
|||||||
|
name: V37A EndScene Only
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- test/v37a-endscene-only
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: mlugg/setup-zig@v2
|
||||||
|
with:
|
||||||
|
version: '0.16.0'
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
zig build all-variants -Doptimize=ReleaseSmall \
|
||||||
|
-Dweirdperformance=false \
|
||||||
|
-Doutline=true \
|
||||||
|
-Dcustomassets=true \
|
||||||
|
-Dtransmogfix=true
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
rm -rf package dist
|
||||||
|
mkdir -p package/DLL package/Interface/AddOns/WeirdUtils_Outline dist
|
||||||
|
cp zig-out/variants/outline.dll package/DLL/outline.dll
|
||||||
|
cp src/outline/addon/Bindings.xml package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/Outline.lua package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/WeirdUtils_Outline.toc package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
printf '%s\n' \
|
||||||
|
'V37A EndScene-only isolation test.' \
|
||||||
|
'Base: V37A no-Reset-hook + ExitFix.' \
|
||||||
|
'Only IDirect3DDevice9::EndScene is hooked.' \
|
||||||
|
'DrawIndexedPrimitive and Reset are untouched.' \
|
||||||
|
'Visible outline is intentionally absent in this diagnostic build.' \
|
||||||
|
'main branch untouched; WeirdPerformance not modified.' \
|
||||||
|
> package/README_TEST.txt
|
||||||
|
(cd package && sha256sum DLL/outline.dll > SHA256SUMS.txt && zip -r ../dist/WeirdUtils_V37A_ENDSCENE_ONLY.zip DLL Interface README_TEST.txt SHA256SUMS.txt)
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: WeirdUtils-V37A-ENDSCENE-ONLY
|
||||||
|
path: dist/WeirdUtils_V37A_ENDSCENE_ONLY.zip
|
||||||
|
if-no-files-found: error
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
name: V37A No AutoRehook
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- test/v37a-no-autorehook
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: mlugg/setup-zig@v2
|
||||||
|
with:
|
||||||
|
version: '0.16.0'
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
zig build all-variants -Doptimize=ReleaseSmall \
|
||||||
|
-Dweirdperformance=false \
|
||||||
|
-Doutline=true \
|
||||||
|
-Dcustomassets=true \
|
||||||
|
-Dtransmogfix=true
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
rm -rf package dist
|
||||||
|
mkdir -p package/DLL package/Interface/AddOns/WeirdUtils_Outline dist
|
||||||
|
cp zig-out/variants/outline.dll package/DLL/outline.dll
|
||||||
|
cp src/outline/addon/Bindings.xml package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/Outline.lua package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/WeirdUtils_Outline.toc package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
printf '%s\n' \
|
||||||
|
'V37A no-auto-rehook isolation test.' \
|
||||||
|
'Base: V37A radii-only + ExitFix.' \
|
||||||
|
'Only runtime change: automatic lateRehookIfLost() call removed from RenderDraw.' \
|
||||||
|
'Initial deferred D3D9 hook installation remains unchanged.' \
|
||||||
|
'main branch untouched; WeirdPerformance not modified.' \
|
||||||
|
> package/README_TEST.txt
|
||||||
|
(cd package && sha256sum DLL/outline.dll > SHA256SUMS.txt && zip -r ../dist/WeirdUtils_V37A_NO_AUTOREHOOK.zip DLL Interface README_TEST.txt SHA256SUMS.txt)
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: WeirdUtils-V37A-NO-AUTOREHOOK
|
||||||
|
path: dist/WeirdUtils_V37A_NO_AUTOREHOOK.zip
|
||||||
|
if-no-files-found: error
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
name: V37A No Reset Hook
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- test/v37a-no-reset-hook
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: mlugg/setup-zig@v2
|
||||||
|
with:
|
||||||
|
version: '0.16.0'
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
zig build all-variants -Doptimize=ReleaseSmall \
|
||||||
|
-Dweirdperformance=false \
|
||||||
|
-Doutline=true \
|
||||||
|
-Dcustomassets=true \
|
||||||
|
-Dtransmogfix=true
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
rm -rf package dist
|
||||||
|
mkdir -p package/DLL package/Interface/AddOns/WeirdUtils_Outline dist
|
||||||
|
cp zig-out/variants/outline.dll package/DLL/outline.dll
|
||||||
|
cp src/outline/addon/Bindings.xml package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/Outline.lua package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/WeirdUtils_Outline.toc package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
printf '%s\n' \
|
||||||
|
'V37A no-Reset-hook isolation test.' \
|
||||||
|
'Base: V37A no-auto-rehook + ExitFix.' \
|
||||||
|
'EndScene and DrawIndexedPrimitive hooks remain active.' \
|
||||||
|
'Reset hook is NOT installed.' \
|
||||||
|
'Visible outline rendering should still work.' \
|
||||||
|
'main branch untouched; WeirdPerformance not modified.' \
|
||||||
|
> package/README_TEST.txt
|
||||||
|
(cd package && sha256sum DLL/outline.dll > SHA256SUMS.txt && zip -r ../dist/WeirdUtils_V37A_NO_RESET_HOOK.zip DLL Interface README_TEST.txt SHA256SUMS.txt)
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: WeirdUtils-V37A-NO-RESET-HOOK
|
||||||
|
path: dist/WeirdUtils_V37A_NO_RESET_HOOK.zip
|
||||||
|
if-no-files-found: error
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
name: V37A Radii Only
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- test/v37a-radii-only
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: mlugg/setup-zig@v2
|
||||||
|
with:
|
||||||
|
version: '0.16.0'
|
||||||
|
- name: Build
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
zig build all-variants -Doptimize=ReleaseSmall \
|
||||||
|
-Dweirdperformance=false \
|
||||||
|
-Doutline=true \
|
||||||
|
-Dcustomassets=true \
|
||||||
|
-Dtransmogfix=true
|
||||||
|
- name: Package
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
rm -rf package dist
|
||||||
|
mkdir -p package/DLL package/Interface/AddOns/WeirdUtils_Outline dist
|
||||||
|
cp zig-out/variants/outline.dll package/DLL/outline.dll
|
||||||
|
cp src/outline/addon/Bindings.xml package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/Outline.lua package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
cp src/outline/addon/WeirdUtils_Outline.toc package/Interface/AddOns/WeirdUtils_Outline/
|
||||||
|
printf '%s\n' \
|
||||||
|
'V37A isolation test.' \
|
||||||
|
'Base: V36 + ExitFix (stable in user test).' \
|
||||||
|
'Only runtime change: radii 1.5/3.0 -> 1.35/3.20.' \
|
||||||
|
'V36 decode shader remains unchanged.' \
|
||||||
|
'main branch untouched; WeirdPerformance not modified.' \
|
||||||
|
> package/README_TEST.txt
|
||||||
|
(cd package && sha256sum DLL/outline.dll > SHA256SUMS.txt && zip -r ../dist/WeirdUtils_V37A_RADII_ONLY.zip DLL Interface README_TEST.txt SHA256SUMS.txt)
|
||||||
|
- uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: WeirdUtils-V37A-RADII-ONLY
|
||||||
|
path: dist/WeirdUtils_V37A_RADII_ONLY.zip
|
||||||
|
if-no-files-found: error
|
||||||
@@ -1414,8 +1414,8 @@ fn runJfaPipeline(device: *anyopaque) void {
|
|||||||
if (saved_rt0) |rt| deviceSetRenderTarget(device, 0, rt);
|
if (saved_rt0) |rt| deviceSetRenderTarget(device, 0, rt);
|
||||||
deviceSetTexture(device, 0, rt_jfa_a_tex);
|
deviceSetTexture(device, 0, rt_jfa_a_tex);
|
||||||
deviceSetTexture(device, 1, rt_silhouette_tex);
|
deviceSetTexture(device, 1, rt_silhouette_tex);
|
||||||
// V36: thin 1.5px core plus a subtle 3px halo.
|
// V37A isolation test: V37 radii only, V36 decode shader unchanged.
|
||||||
c0 = [4]f32{ fw, fh, 1.5, 3.0 };
|
c0 = [4]f32{ fw, fh, 1.35, 3.20 };
|
||||||
deviceSetPSConstF(device, 0, &c0);
|
deviceSetPSConstF(device, 0, &c0);
|
||||||
deviceSetPtr(device, types.VT.SetPixelShader, jfa_decode_ps.?);
|
deviceSetPtr(device, types.VT.SetPixelShader, jfa_decode_ps.?);
|
||||||
deviceSetRS(device, types.D3DRS.ALPHABLENDENABLE, 1);
|
deviceSetRS(device, types.D3DRS.ALPHABLENDENABLE, 1);
|
||||||
@@ -1627,9 +1627,9 @@ pub fn installHooks() bool {
|
|||||||
const vtable_ptr = getD3D9VTable() orelse return false;
|
const vtable_ptr = getD3D9VTable() orelse return false;
|
||||||
d3d9_vtable = vtable_ptr;
|
d3d9_vtable = vtable_ptr;
|
||||||
|
|
||||||
|
// Isolation test: hook EndScene only.
|
||||||
|
// DrawIndexedPrimitive and Reset remain untouched.
|
||||||
if (!patchVtableEntry(vtable_ptr, types.VT.EndScene, @intFromPtr(&hkEndScene), &orig_endscene)) return false;
|
if (!patchVtableEntry(vtable_ptr, types.VT.EndScene, @intFromPtr(&hkEndScene), &orig_endscene)) return false;
|
||||||
if (!patchVtableEntry(vtable_ptr, types.VT.DrawIndexedPrimitive, @intFromPtr(&hkDIP), &orig_dip)) return false;
|
|
||||||
if (!patchVtableEntry(vtable_ptr, types.VT.Reset, @intFromPtr(&hkReset), &orig_reset)) return false;
|
|
||||||
|
|
||||||
hooks_installed = true;
|
hooks_installed = true;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -94,10 +94,8 @@ fn renderDrawDetour(this: u32, view_matrix: u32, batch_data: u32, batch_indices:
|
|||||||
api.initD3D9Deferred();
|
api.initD3D9Deferred();
|
||||||
}
|
}
|
||||||
|
|
||||||
// AutoFix: OutlineDebug() previously performed lateRehookIfLost() by hand.
|
// Isolation test: keep the initial deferred D3D9 hook install, but do not
|
||||||
// Check periodically from this always-active native model hook instead.
|
// repeatedly verify/rewrite the live vtable while rendering.
|
||||||
autoRepairD3D9Hooks();
|
|
||||||
|
|
||||||
// Skip reordering if nothing to outline or too many batches
|
// Skip reordering if nothing to outline or too many batches
|
||||||
if (!tracker.enabled or !tracker.hasTargets() or batch_count == 0 or batch_count > MAX_REORDER) {
|
if (!tracker.enabled or !tracker.hasTargets() or batch_count == 0 or batch_count > MAX_REORDER) {
|
||||||
render_draw_hook.callOriginal(.{ this, view_matrix, batch_data, batch_indices, batch_count });
|
render_draw_hook.callOriginal(.{ this, view_matrix, batch_data, batch_indices, batch_count });
|
||||||
|
|||||||
Reference in New Issue
Block a user