GLSL error with new 8800GTX extensions

I get this error

Syntax error in #extension

GL_EXT_gpu_shader4 needs to be enabled…

when using GLSL with some of the new extensions for the 8800GTX…

What am I missing to get this to work? My guess is GL_EXT_gpu_shader4 isn’t available yet? If not when?
Namely the texture_array extension, is what I am trying to work with.

Thanks

The GLSL enhancements are still in beta with this driver. You need to use NVemulate to enable the support. You can get the tool and release notes pdf here:

http://developer.nvidia.com/object/nvemulate.html

-Evan

So I download nvemulate and run that in the background while I use these extensions?

Here is what I am trying to do in GLSL
#define GL_EXT_texture_array 1
#extension GL_EXT_gpu_shader4 : enable
#extension GL_EXT_texture_array : enable

and I get an error with the
#extension GL_EXT_texture_array : enable

saying not supported… This is on an 8800GTX

Thanks

Did you change GLSL Compiler support?

Sorry, I should have been more clear. NVemulate allows you to change driver settings. You do not need to leave it running. You need to run it, and change the compile target (second drop down) to the 8800. Once this is applied, you should be good to go. If you reinstall drivers, you will need to do it again.

I have done what you said with NVEmulate and clicked apply and nothing still. Rendermonkey complains of no support, and my own app doesn’t render either…

Is this the correct way to do extensions in GLSL?

#define GL_EXT_texture_array 1
#extension GL_EXT_texture_array : enable

is that extension name correct?

Thanks

I guess I am still a little confused about what the issue is. I’ll try to reproduce it later today. What I believe you should be doing is:

#extension GL_EXT_gpu_shader4 : enable

possibly with #version 120 in front of it.

You should not #define GL_EXT_texture_array, because the GLSL compiler should do that. All the GLSL entrypoints needed to support texture arrays are in the gpu_shader4 extension.

-Evan

Ok just using the #extension GL_EXT_gpu_shader4 : enable and nothing else seems to have fixed it. Thanks

Originally posted by Mars_9999:
Ok just using the #extension GL_EXT_gpu_shader4 : enable and nothing else seems to have fixed it. Thanks
The #extension directive for “EXT_texture_array” is one of the known bugs in the beta driver.

As you’ve discovered, enabling “EXT_gpu_shader4” should enable array texture functions.

The “EXT_texture_array” extension directive would really only be needed if the underlying implementation didn’t support EXT_gpu_shader4.

Hi. I’m also having trouble getting GL_EXT_geometry_shader4 to show up (using the newest version of GLEW and NVemulate**).

glGetString(GL_VERSION) returns 2.0.3, so I’m not even as far as to get to compiler errors.

I’m using a gf6200, but the NVemulate page seems to indicate an FX card or higher would work. Perhaps I’m misunderstanding it. Following the “NVemulate troubleshooting,” I don’t have driver version 97.02 or later, since I’m unable to install version 97.02 with my gf6200.

Is my understanding of the NVemulate page incorrect ( http://developer.nvidia.com/object/nvemulate.html ), and therefore software emulation of geometry shaders is unavailable for non-g80 cards?

** I have tried every permutation of G80/maximum/software for both feature set and compiler under NVemulate with no success.

Reported to work :
http://www.opengl.org/discussion_boards/ubb/ultimatebb.php?ubb=get_topic;f=2;t=020919#000000