views:

46

answers:

1

Hi,

I have a program that uses the GPU for performing certain computations. I can get the program to run correctly using the command line. But when i try to execute the same statement through PHP, i run into trouble.

I'm using wamp 2.0, and I've tried the exec and proc_open functions to try to get the program to run, but even though the process starts correctly, when it comes to the GPU part, the program itself raises the error, "Shader not supported by your hardware". The program also initially detects the kind of graphics card being used, but this is not happening either.

To be clear, I haven't written the GPU program. And I can run the same statement directly from the command line, but not through php. What is the difference in executing a command from php rather than directly?

I'm using an NVIDIA GT8600 graphics card. Any help at all would be great.

In the program when it checks for graphics card vendor using glGetString(GL_VENDOR) it gets Microsoft Corporation instead of NVIDIA. This is causing all the problems, though i still don't know why its doing so only when i run it from php.

I've also tried running the php script standalone from the command line, and in this case my graphics card gets detected correctly and everything works fine, only when i go through my browser does it not work.

A: 

After some digging around I found that the problem arises due to session 0 isolation in windows 7 (I humbly apologize for not mentioning windows 7 in the question)

The gist of it being, any process initiated by the wampapache service that resides in session 0 is unable to access display devices (which requires my service to be a part of session 1). So my code when calling the GPU process is unable to detect my graphics card.

One way of getting around this is spawning a service in session 1, and then letting that execute the process. There's a good thread in the NVIDIA forums along with some example code that shows how this can be done.

http://forums.nvidia.com/index.php?showtopic=93450&pid=1047458&mode=threaded&start=#entry1047458

Slartibartfast