Glsl!

Member
Posts: 320
Joined: 2003.06
Post: #1
Finally, we got it in hardware.

Now there's no excuses people.... Show us your shiny bits!

Chopper, iSight Screensavers, DuckDuckDuck: http://majicjungle.com
Quote this message in a reply
Moderator
Posts: 1,140
Joined: 2005.07
Post: #2
So it is. I think I will continue using shader assembly, though, since it's better supported and will be backwards compatible.
Quote this message in a reply
Member
Posts: 260
Joined: 2005.05
Post: #3
Great news! Exactly when did this happen? What update?
Quote this message in a reply
Moderator
Posts: 522
Joined: 2002.04
Post: #4
Earlier today with Mac OS X 10.4.3, as far as I know.
Quote this message in a reply
Moderator
Posts: 1,140
Joined: 2005.07
Post: #5
Yes, it was just introduced today.
Quote this message in a reply
Member
Posts: 260
Joined: 2005.05
Post: #6
That's fresh news! And about time!
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #7
the assembly-language shaders may be "better supported" (though don't talk to me about ARB_vertex_program bugs), but they don't give you access to the full power of the graphics cards. GLSL will be the only way to break the restrictions of the 9xxx/Xxxx/FX series of cards... at least for ATI. NVidia has some extensions to the assembly shaders that expose the power of the 6xxx/7xxx series... haven't checked yet if they're available.
Quote this message in a reply
Member
Posts: 70
Joined: 2002.07
Post: #8
And finally can finish shader support in dim3. It is indeed a happy day.

[>] Brian
Quote this message in a reply
Sage
Posts: 1,232
Joined: 2002.10
Post: #9
10.4.3 does export the NV-specific program extensions:
NV_fragment_program_option (gf5200+)
NV_vertex_program2_option (gf5200+)
NV_fragment_program2 (gf6800+)
NV_vertex_program3 (gf6800+)

You might also notice that the programmability limits on gf6800+ cards have been raised, this directly affects existing apps like WoW, as well as enables much larger GLSL shaders to run in hardware.

I'll try to update my glinfo table sometime next week.
Quote this message in a reply
Member
Posts: 260
Joined: 2005.05
Post: #10
I never cared to learn assembly-langauge shaders. GLSL is so neat and tidy, it is almost too easy. Smile
Quote this message in a reply
Member
Posts: 446
Joined: 2002.09
Post: #11
@ arekkusu: Your GLinfo page shows that every card supports GL_ARB_fragment_shader, GL_ARB_shader_objects, and GL_ARB_vertex_shader (required extensions for GLSL) but surely this isn't the case? My GeForce3 doesn't return GL_ARB_fragment_shader for example.

BTW: For those of you with hardware that does support this, the OpenGL Extensions Viewer app has been up dated with a GLSL test: http://www.realtech-vr.com/glview/
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #12
All cards certainly did report those since about 10.3.5. Maybe that's finally been made more helpful Smile

Anyway, four extensions are required for GLSL -- ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader and ARB_shading_language_100. Without all four, you don't have GLSL support.
Quote this message in a reply
Moderator
Posts: 335
Joined: 2002.04
Post: #13
Is there a good reference on using the GLSL shaders?
Quote this message in a reply
Member
Posts: 320
Joined: 2003.06
Post: #14
http://www.lighthouse3d.com/opengl/glsl -> good tutorial
http://www.3dshaders.com/ -> good book
The latest GPU Gems has some good stuff, but is definitely not for beginners
If you have a PC look at ATI's RenderMonkey: http://www.ati.com/developer/rendermonkey/ there are plenty of examples in there
And for the official documentation: http://www.opengl.org/documentation/oglsl.html

Chopper, iSight Screensavers, DuckDuckDuck: http://majicjungle.com
Quote this message in a reply
Sage
Posts: 1,232
Joined: 2002.10
Post: #15
OneSadCookie Wrote:Anyway, four extensions are required for GLSL -- ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader and ARB_shading_language_100. Without all four, you don't have GLSL support.

This is not quite true. You need either OpenGL 2.0, or
ARB_shader_objects
ARB_shading_language_100
and
ARB_vertex_shader (if you want to use vertex shaders)
ARB_fragment_shader (if you want to use fragment shaders)

But note that you do not have to have both vertex and fragment shaders to use GLSL... you could use only vertex shaders and fixed function fragment processing.

As of 10.4.3, we export ARB_shader_objects and ARB_shading_language_100 on all renderers. We also export ARB_vertex_shader on all renderers, even on Rage128. If the hardware can not support vertex programmability, it will be emulated in software, just like ARB_vertex_program.

However, only renderers that can support ARB fragment programming will have ARB_fragment_shader exported. That means r9550+ and gf5200+. This is a change from 10.4.2 and earlier, where we exported ARB_fragment_shader on all hardware (even though you couldn't use it, because ARB_shading_language_100 was missing.)
Quote this message in a reply
Post Reply