Da Direct3D ja im direkten zusammenhang mit DirectX steht geh mal unter Start--->Ausführen--->dxdiag--->und lass dann unter Anzeige und Sound alle Tests durchlaufen.
Wenn dort kein Fehler angezeigt wird deinstalliere Battlefield 2142 und lösch die Registrationseinträge (Programm:
RegClean). Danach Installierst du Battlefield 2142 wieder und machst anschließend den Patch drauf.