Skip to content

D3DRS_PATCHSEGMENTS set every frame floods DXVK logs (~72k warnings per 12-minute session) #12

Description

@fadi-labib

ShaderClass::Apply (GeneralsMD/Code/Libraries/Source/WWVegas/WW3D2/shader.cpp) sets D3DRS_PATCHSEGMENTS whenever the NPATCHENABLE shader bit flips. N-patch tessellation (ATI TruForm, 2002) doesn't exist in DXVK's D3D8/9 — it ignores the state and logs Unimplemented render state D3DRS_PATCHSEGMENTS per call. Measured on Android: ~72,000 log lines in a 12-minute session; your iOS build works around the same spam at the sink (the filtered stderr log with DXVK_LOG_LEVEL=none), but the writes still burn cycles in the hot path.

Source fix is one #ifdef — the state can only ever do something on real D3D8 hardware drivers, i.e. Windows:

// N-patch tessellation (ATI TruForm) does not exist in DXVK's D3D8/9
#ifdef _WIN32
	if (diff&ShaderClass::MASK_NPATCHENABLE) { ... }
#endif

Fixed in b1186e717, verified on-device (warn count 72k → 0, no visual change — the tessellation never activated on DXVK anyway). Happy to open a PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions