acdream/docs/research/evidence/2026-08-22-vm2-cdb-readings.txt
Erik fe085cadaa research(vm2): retail runs SINGLE-PASS detail texturing - the #226 port targets the fallback
Live cdb read on the PDB-paired retail client (owner's AMD GPU):
  m_caps.bCanDoSinglePassDetailing = 1, trysinglepass = 1,
  MaxSimultaneousTextures = 8, bTexOpDotProduct3 = 1,
  LandscapeDetailTextures = 0, EnvironmentDetailTextures = 1,
  landscape/object detail surfaces null, building/environment non-null,
  tiling 4 everywhere.

So retail's detail combine on modern hardware is the texture-stage path in
D3DPolyRender::SetSurface (stage0 alpha PREMODULATE, stage1 colour
BLENDCURRENTALPHA): lerp(base*diffuse, detail.rgb, detail.a*diffuse.a) -
a mild DARKENING (~-10% mid-tones with 0x06006D58), not the
DSTCOLOR+INVSRCALPHA brightening that Campaign AR ported and that the
2026-08-21 findings doc + AR review both analysed. Those described the
fallback for adapters without D3DTEXOPCAPS_PREMODULATE; the reviewer's
guess that consumer drivers rarely advertised it was wrong.

VM1 now carries the re-port (SRCALPHA+INVSRCALPHA, detail.rgb /
detail.a*diffuseAlpha, neutral at a==0) together with the fade removal.
No distance fade exists on either path. Scripts are read-only attaches
with no breakpoints.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-22 18:23:27 +02:00

26 lines
1.3 KiB
Text

00866354 acclient!Render::landscape_detail_surface = 0x00000000
0081eca4 acclient!Render::curr_detail_dst_blend = 6
0081eca0 acclient!Render::curr_detail_src_blend = 5
0081ecb8 acclient!Render::curr_detail_tiling = 4
00866364 acclient!Render::curr_detail_surface = 0x00000000
0081eca8 acclient!Render::landscape_detail_tiling = 4
0081ecb0 acclient!Render::building_detail_tiling = 4
00866360 acclient!Render::object_detail_surface = 0x00000000
0081ecb4 acclient!Render::object_detail_tiling = 4
0081ecac acclient!Render::environment_detail_tiling = 4
00866358 acclient!Render::building_detail_surface = 0x0332e6a8
0086635c acclient!Render::environment_detail_surface = 0x03416de0
Type does not have given member error at 'm_D3DCaps.MaxSimultaneousTextures'
Type does not have given member error at 'm_D3DCaps.MaxTextureBlendStages'
+0x008 MaxSimultaneousTextures : 8
+0x00c MaxTextureBlendStages : 8
+0x010 MaxSimultaneousRenderTargets : 4
+0x01c bCanDoSinglePassDetailing : 1
+0x01d bTexOpDotProduct3 : 1
+0x01e bTexOpBumpEnvMap : 1
00820e40 00000001
00835c04 00000001
00835c10 00000001
+0x004 LandscapeDetailTextures : 0
+0x005 EnvironmentDetailTextures : 1
+0x006 MultiPassAlpha : 1