none
DirectX 9 program runs terribly after win10 update 1607

    Question

  • Hi,

    I've got an old game project i've been working on for years, built on directX 9, C++, visual studio 2012. Its worked fine for ages, fine on winXP, win7 and etc, but recently i got the Win10 update 1607 and suddenly everything is running dog-slow ; 2 FPS where i used to get 50-60. This has happened on all 3, very different spec PCs that i've tried it on.  All have up-to-date drivers and decent enough graphics cards and CPUs.  A brief bit of profiling on my part hasn't revealed anything obvious beyond that *everything* seems to be rendering a whole lot more slowly than it did before. 

    Bit of a shot in the dark but before i go and bang my head against the wall for a week, does anyone have any ideas or clues why this windows update might have caused my program to behave so badly? 

    thanks

    mitch

    Monday, September 26, 2016 11:05 PM

Answers

  • Found it..!  I'd got D3DCREATE_SOFTWARE_VERTEXPROCESSING on in the CreateDevice.  

    Oddly this didn't produce any noticeable performance problems previously, but it does now...

    Thursday, September 29, 2016 10:57 AM

All replies

  • Hi mitch,

    It often cause by GameDVR setting, try turning off the Game Bar DVR feature by navigating to this Registry key:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\ApplicationManagement\AllowGameDVR

    Set that value to 0 and reboot.

    Best Regards,
    Li Wang


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Tuesday, September 27, 2016 6:52 AM
    Moderator
  • Hey Li,

    Thanks very much for the response, most appreciated!

    Unfortunately, no difference.. still get the terrible framerate.  (Also would like to find a solution that means the program works ok for the game's players without them having to disable features or amend their windows update).

    Edit: I've built a little test app that does nothing much other than render a few hundred models using DX9 ID3DXMesh::DrawSubset(). Take that one call out and the app runs normally, but when drawing stuff it is many orders of magnitude slower than it would have been prior to the windows update.

    Anyone have any other ideas?

    regards
    Mitch



    Tuesday, September 27, 2016 7:55 AM

  • I've read various reports of DirectX9 game performance issues after update 1607, but as it doesn't appear to be 100% there's presumably something wrong in my setup that I can address.

    As soon as my head stops throbbing i'll start the long process of converting over to DX11, but meantime - as thats gonna take me a while - it'd be fantastic to get a solution.


    • Edited by OldPulteney1972 Thursday, September 29, 2016 10:53 AM removed links
    Wednesday, September 28, 2016 11:25 AM
  • Can't help with the specific concerns about legacy Direct3D 9 performance, but for the converting to Direct3D 11 thing see:

    https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/

    https://github.com/Microsoft/DirectXTK/wiki/Getting-Started

    Wednesday, September 28, 2016 4:25 PM
  • thanks for the links, Chuck - that's some useful stuff :).  I'd prefer to be spending my time elsewhere but i guess its long past due..

    Wednesday, September 28, 2016 10:02 PM
  • Found it..!  I'd got D3DCREATE_SOFTWARE_VERTEXPROCESSING on in the CreateDevice.  

    Oddly this didn't produce any noticeable performance problems previously, but it does now...

    Thursday, September 29, 2016 10:57 AM
  • Thanks for posting your solution, this will hopefully help others who make the same mistake.

    Please mark your post as the answer to close the thread.


    Cheers
    Eddie

    Thursday, September 29, 2016 2:16 PM
  • Why did you have D3DCREATE_SOFTWARE_VERTEXPROCESSING  there in the first place?
    Wednesday, October 19, 2016 5:03 AM
  • Wasn't intentional..  It was a long time ago :] .. I vaguely recall I was having some oddities on a particular graphics card and was experimenting with different settings - using that had resolved the problem (although I assume it was just hiding a problem elsewhere in my renderer).. Hadn't meant to leave it on but it didn't appear to have any obvious performance impact until now so hadn't noticed it.  


    Wednesday, October 19, 2016 9:28 AM
  • Did you ever figure out why this made such a difference?

    We are getting reports of our 3D rendering being really slow on Windows 10 and narrowed it down to system with 1607.

    We do use the D3DCREATE_SOFTWARE_VERTEXPROCESSING and this worked great on  version 1511 but makes it almost unbearable with 1607.

    This is a 32 bit application and the comment in the code why we used software was to deal with very large samples and the huge number of vertexes it can have.

    --Additional Information ---
    This has not been fully tested but the testing we have done on both a 32 bit application and 64 bit application this has resolved the performance issue.

    The issue was introduced with the 1607 update from 1511. One of the files that was updated was the D3D9.dll.
    We pulled the appropriate (32bit or 64bit version ) from a system running 1511 and placed it the application directory.
    This brought the performance back.


    • Edited by McNitt Friday, June 09, 2017 8:08 PM Additional Info
    Friday, June 09, 2017 5:39 PM