Hi guys,

Just a progress report, some encouraging news.

I've been discussing with nvidia dev support on these issues since Friday. They have really been responsive and quick, and they are thorough in their investigations too (I guess I was lucky because the guy replying had the same model laptop on his desk for an unrelated issue, so he could test exactly the same drivers on the same hardware).

The white paper on nvidia's site
http://www.nvidia.com/object/optimus_technology.html says these three
automatically power on the GPU:
"
DX Calls: Any 3D game engine or DirectX application will trigger these
calls
DXVA Calls: Video playback will trigger these calls (DXVA = DirectX
Video Acceleration)
CUDA Calls: CUDA applications will trigger these calls
"

Hmm, interesting. Why didn't they include OpenGL calls in the list?
Seems like a glaring oversight.

They are looking into it, but the nvidia developer I'm talking to things this part of the whitepaper is not totally accurate, and in fact the switching is 100% profile-based.

However, if after his investigation he finds out that indeed, Optimus switches when it sees DirectX calls, then he says OpenGL calls should indeed lead to the same behavior, and they will modify it to do so in a later version. But it really hinges on whether that's the intended behavior or not.

The lack of working profiles and API seems pretty problematic. One
could always run some CUDA code at startup, but it doesn't say how
shutdown is determined, and this really reeks of a kludge.

About profiles, I guess the fact they don't persist must be a bug that
might have been fixed in a later driver version. It would be nice to at
least be able to programmatically add profiles, so users don't have to
manually create them.

I've retested doing a "clean install" of the 280.26 driver from nvidia's site, and profiles work for us now. So that's at least encouraging.

The other part of the discussion is that I suggested they add some way for an app to send a hint to the driver that this app requires the dedicated graphics. I would really prefer some way that didn't require linking to an nvidia-provided library (something as simple as the app using putenv() to push a specific env var into its active environment might work IMHO). But any way really would be better than requiring users to create a profile for your app. I think it'll probably end up being in nvapi (http://developer.nvidia.com/nvapi). Since Optimus is currently Windows-only anyways I think that's the path they'll choose.

Anyways, the discussion is still ongoing, I'll update again when I get some more info.

J-S
--
______________________________________________________
Jean-Sébastien Guay    jean-sebastien.g...@cm-labs.com
                               http://www.cm-labs.com/
                    http://whitestar02.dyndns-web.com/
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to