Uit tests zou blijken dat de slechte prestaties van PhysX-berekeningen op een normale cpu voortvloeien uit een gebrek aan optimalisaties. De driver zou verouderde x87-instructies gebruiken in plaats van de snellere sse-instructies.
David Kanter van de website Real World Technologies heeft onderzocht hoe het komt dat de prestaties van de PhysX-api in een systeem zonder Nvidia-gpu relatief zo slecht zijn. Normaal draaien de PhysX-berekeningen op de cuda-cores van de Nvidia-gpu en als deze niet aanwezig is, wordt deze taak door de cpu overgenomen. Kanter vond het verschil in prestaties zo groot dat hij heeft uitgezocht hoe de cpu-kant van de PhysX-driver in elkaar steekt.
Door tijdens het draaien van PhysX-benchmarks de processen met Intels VTune-software te analyseren, kwam Kanter erachter dat de PhysX-driver veelvuldig gebruikmaakt van de ouderwetse x87-instructies. Sinds de Pentium 3 verkiezen veel ontwikkelaars de sse-instructies boven x87, omdat deze in bijna alle gevallen sneller zouden zijn. Ook viel op dat de PhysX-berekeningen singlethreaded waren en geen gebruikmaakten van de extra aanwezige cores. Kanter stelt dat als gebruik zou worden gemaakt van sse-instructies en multithreading, de PhysX-prestaties op systemen zonder Nvidia-kaart een stuk hoger zouden liggen.
Omdat PhysX op consoles wel multithreaded is en daar instructies gebruikt die vergelijkbaar zijn met sse, beweert Kanter dat Nvidia de driver opzettelijk niet heeft geoptimaliseerd, om mensen aan te sporen Nvidia videokaarten te kopen. De website Semiaccurate, altijd kritisch ten opzichte van Nvidia, deelt deze mening en vermeldt dat compilers tegenwoordig automatisch sse gebruiken en je deze instelling dus bewust moet uitschakelen. De site stelt dat een geoptimaliseerde PhysX-driver berekeningen op de cpu sneller kan uitvoeren dan op de gpu.
Nvidia ontkent de beschuldigingen en zegt er alles aan te doen om PhysX ook op systemen zonder Nvidia-videokaart zo snel mogelijk te laten draaien. Het bedrijf weerlegt de claim over singlethreading en zegt dat het absoluut mogelijk is om de code multithreaded te draaien, maar dat het aan ontwikkelaars is om dit te implementeren. Het zou niet standaard in de driver gebeuren, omdat de originele code stamt uit de tijd dat multicore-processors nog geen gemeengoed waren, aldus het bedrijf. In versie 3 van de PhysX-sdk moeten multithreading en sse-instructies wel standaard zijn ingeschakeld, al claimt het bedrijf dat sse niet in alle gevallen sneller is. Ook zijn er volgens Nvidia nog steeds ontwikkelaars die liever geen gebruikmaken van de instructies, omdat ze mensen met oudere hardware niet buiten willen sluiten. Dat argument lijkt echter niet sterk, omdat cpu's sinds de Pentium 3 sse ondersteunen.