Nvidia/Nokia and New-Year Nexus:

So in my last post, it had become clear that Nokia had removed the "-direct3d" support from Qt.
While this is still technically true, with the help of some Trolltech employees, I have been set on the correct path of righteousness once again.

I'm now using QPaintEngine* paintEngine() const; and getting it to return 0, as discussed in my first post. This should allow me to continue to use updated Qt toolkits with my DX10/DX11 development.

When installing Nexus monitor onto a remote PC, it was obvious that Qt4 had some very strange issues with dependencies. It appears i was getting "Side by Side configuration errors" looking up the event viewer, the .exe was failing to find a correct version of a debug .dll.

After a lot of testing and analysis, Microsoft MSVC2008 Pro ships with version MSVC90d.dll 9.0.21022.8, when installing the SP1 update for MSVC, this version is changed to 9.0.30729.1, after that another ATL security patch was released making the version 9.0.30729.4148.

It seems even though i use the later version, Qt has a dependency that was compiled against the original and this causes nothing but problems as it seems my laptops version used 9.0.30729.1, however the manifest that MSVC is exporting is for 9.0.21022.8 and when loading this on my remote PC, this version seems to be absent. Even when including the correct .dll files in the root directory, the errors continued.

I did find "Dependancy Walker" which was useful and helpful for sorting this issue, although it was also SXSTrace was also used to find the actual problem, both tools were new and now have a place in my toolset. Strangely the .manifest file seems to indicate the incorrect version, so by editing the .manifest to match the correct version string, i was able to run my debug programs on my remote Nexus machine. Some more reading and links can be found here: http://www.codeguru.com/cpp/v-s/devstudio_macros/visualstudionet/print.php/c15611

We all hate Microsoft sometimes but in this case their continual lack of skill shows through, in this case Nokia support for MSVC could also much improved.

Nvidia have released the Beta GPU tools known as Nvidia Nexus. I was given access to Nvidia's new GPU developer tools for MSVC last month and while currently known as Nvidia Nexus" this name caused a trademark infringement clash used by strategic partners Luxology, who sell their developer tools for 3D development, so the name will likely change after the beta.

http://developer.nvidia.com/object/nexus.html
http://forums.nvidia.com/index.php?showforum=191

One of the first issues i ran into when using Nexus was the fact that "-direct3d" was causing my programs to use a dx9.dll which caused Nexus to offer a error message "Direct3D 9 detected"
I have now managed to remove this dependency and D3D10 is used exclusively.

The second issue caused an invalid object exception error, was caused by the fact for some reason the default working directory on my remote machine was incorrect, the correct patch was changed from "qdec\debug" to "qdec\qdec" this solved this remaining remote Nexus issue, and all is now working well.

Comments

Popular posts from this blog

Qt and the Beast...

Microsoft and the DevIL