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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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