PDA

View Full Version : OpenGL 2 support on Catalyst hotfix.



^Fishman
11-20-2003, 02:10 AM
Someone at Rage3D discovered that this drivers (http://www2.ati.com/drivers/wxp-w2k-cod-7-96-012324e.exe) which come as a fix for Call of Duty supports OpenGL 2(which is sad in a way because the drivers for registered developers are OLD). So I tested them with the tools in http://www.3dlabs.com/support/developer/ogl2/downloads/index.htm and it works on my Radeon 9700 Pro. Here is some info about the drivers.

Driver version: 6.14.10.4054
Vendor ATI: Technologies Inc.
Renderer: RADEON 9700 PRO x86/MMX/3DNow!/SSE
OpenGL version: 1.4.4054 Win2000 Release

Extensions:
GL_ARB_depth_texture
GL_ARB_fragment_program
GL_ARB_fragment_shader
GL_ARB_multisample
GL_ARB_multitexture
GL_ARB_occlusion_query
GL_ARB_point_parameters
GL_ARB_point_sprite
GL_ARB_shader_objects
GL_ARB_shading_language_100
GL_ARB_shadow
GL_ARB_shadow_ambient
GL_ARB_texture_border_clamp
GL_ARB_texture_compression
GL_ARB_texture_cube_map
GL_ARB_texture_env_add
GL_ARB_texture_env_combine
GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3
GL_ARB_texture_mirrored_repeat
GL_ARB_transpose_matrix
GL_ARB_vertex_blend
GL_ARB_vertex_buffer_object
GL_ARB_vertex_program
GL_ARB_vertex_shader
GL_ARB_window_pos
GL_ATIX_texture_env_combine3
GL_ATIX_texture_env_route
GL_ATIX_vertex_shader_output_point_size
GL_ATI_draw_buffers
GL_ATI_element_array
GL_ATI_envmap_bumpmap
GL_ATI_fragment_shader
GL_ATI_map_object_buffer
GL_ATI_separate_stencil
GL_ATI_texture_env_combine3
GL_ATI_texture_float
GL_ATI_texture_mirror_once
GL_ATI_vertex_array_object
GL_ATI_vertex_attrib_array_object
GL_ATI_vertex_streams
GL_EXT_abgr
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_func_separate
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_clip_volume_hint
GL_EXT_compiled_vertex_array
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_multi_draw_arrays
GL_EXT_packed_pixels
GL_EXT_point_parameters
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_stencil_wrap
GL_EXT_texgen_reflection
GL_EXT_texture3D
GL_EXT_texture_compression_s3tc
GL_EXT_texture_cube_map
GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_lod_bias
GL_EXT_texture_object
GL_EXT_texture_rectangle
GL_EXT_vertex_array
GL_EXT_vertex_shader
GL_HP_occlusion_test
GL_NV_blend_square
GL_NV_occlusion_query
GL_NV_point_sprite
GL_NV_texgen_reflection
GL_S3_s3tc
GL_SGIS_generate_mipmap
GL_SGIS_multitexture
GL_SGIS_texture_border_clamp
GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod
GL_SGI_color_matrix
GL_SUN_multi_draw_arrays
GL_WIN_swap_hint
WGL_EXT_extensions_string
WGL_EXT_swap_control

WGL extensions:
WGL_ARB_extensions_string
WGL_ARB_make_current_read
WGL_ARB_multisample
WGL_ARB_pbuffer
WGL_ARB_pixel_format
WGL_ARB_render_texture
WGL_ATI_pixel_format_float
WGL_EXT_extensions_string
WGL_EXT_swap_control

Now people, start writing OpenGL 2 applications :P

nystep
11-20-2003, 02:37 AM
I've waited this day for so long! yeahhhh http://www.opengl.org/discussion_boards/ubb/smile.gif

PanzerSchreck
11-20-2003, 03:39 AM
Noticed that too earlier this morning and already wrote my first glSlang-Demo in Delphi...so now on to some selfmade shaders http://www.opengl.org/discussion_boards/ubb/wink.gif

azazello
11-20-2003, 04:13 AM
is it stable enought?
I just know, that in September/2003 it was near 80% functionality of GLSlang.

Ostsol
11-20-2003, 04:38 AM
Woot! Thanks for the info!

soconne
11-20-2003, 05:27 AM
Oh dear god, i've died and gone to heaven. OpenGL Shading Language !!!!!!!!

3k0j
11-20-2003, 07:03 AM
Great! Now, let's make up our minds how should we call it <edit> http://www.opengl.org/discussion_boards/ubb/wink.gif </edit>

GLslang, glSlang, OGLSL, GLSL, OpenGL 2, OpenGL 1.5 or DireActAxe9-killer ?



[This message has been edited by 3k0j (edited 11-20-2003).]

Zengar
11-20-2003, 08:02 AM
glSlang... I like the way it sounds...
nvidia... you can't do it to me! what a shame...

Korval
11-20-2003, 10:16 AM
Interesting. However, considering that this isn't an official driver release, I wouldn't suggest relying on glslang support. It might be a bit flakey.

In addition, the fact that they put it into a hotfix probably means that it is almost done, and will be avaliable in the Cat3.10's. May as well wait for the bugs to be worked out.

soconne
11-20-2003, 10:58 AM
I've downloaded 3dlabs compiler and run the demos for glslang and they run just fine without crashing. I'm gonna mess around with it this weekend, but so far no problems.

Humus
11-20-2003, 12:27 PM
Originally posted by 3k0j:
Great! Now, let's make up our minds how should we call it.

GLslang, glSlang, OGLSL, GLSL, OpenGL 2, OpenGL 1.5 or DireActAxe9-killer ?



I vote GLSL.

Jan
11-20-2003, 12:40 PM
I will call it "DireActAxe9-killer" and there is nothing you can do about that!

Well, maybe sometimes i will say "glSlang" because itīs nice and simple.

Jan.

Ostsol
11-20-2003, 12:42 PM
Just curious, but is there any extension loading library that includes support for GLslang, yet? In a way I kinda hope not. . . since I just spent a couple hours altering GLEE to support it. http://www.opengl.org/discussion_boards/ubb/smile.gif

nystep
11-20-2003, 01:56 PM
i also spent the same amout of time writing the headers according to the extension specifications... http://www.opengl.org/discussion_boards/ubb/wink.gif

Sark7
11-20-2003, 02:32 PM
Wow! It's a greatest day for me http://www.opengl.org/discussion_boards/ubb/smile.gif I'm waiting it so long...

bunny
11-20-2003, 05:53 PM
Originally posted by Ostsol:
Just curious, but is there any extension loading library that includes support for GLslang, yet? In a way I kinda hope not. . . since I just spent a couple hours altering GLEE to support it. http://www.opengl.org/discussion_boards/ubb/smile.gif
The reason GLee 2.01 doesn't support the extension is because the library is automatically generated based on SGi's glext.h, and that hasn't been updated for a while. At some point I'm going to modify the code generator (GLeeGen) to get its data from the extension specifications instead.

In the meantime, any help is appeciated, so if you want to contribute some code, drop me an email (ben at elf hyphen stone dot com). All I really need is the function pointer typedefs and constants that I can paste into glext.h, and GLeeGen should handle the rest.

Ostsol
11-20-2003, 06:40 PM
Heh. . . Ya know I was just thinking about how cool it'd be if there was a program that would parse through the spec or glext.h and produce an extension loader. . . Glad to hear that someone else thought of it first! http://www.opengl.org/discussion_boards/ubb/smile.gif

Anyway, I've added the shader objects to my glext.h as well. There's a couple issues, though. . . First is that I've omitted duplicate definitions of tokens. Second is that I've commented out duplicate definitions of entry points. As it turns out, ARB_vertex_shader shares alot of functions with ARB_vertex_program, and they all share a bunch of tokens. Another issue is that I am not sure as to what GLhandleARB is. The spec says it's just an integer, but I am unsure if I am to take this as unsigned or not.

I'll send the new glext.h over to you to look through. . .

sqrt[-1]
11-20-2003, 07:36 PM
glUX at http://w3imagis.imag.fr/Membres/Sylvain.Lefebvre/glux/

Generates it's extension loading code from the specs. (A perl script apparently, -see the source for details)

So it does support 200+ extensions, however it does not look like it has been run over the GLSL specs yet.

Korval
11-20-2003, 08:56 PM
As far as GLHandleARB is concerned, the 3DLabs SDK must have GLHandleARB in it, so you can copy their definition.

Humus
11-21-2003, 05:07 AM
I got working code in my framework that takes duplicated entry points between different extensions into account.
http://esprit.campus.luth.se/~humus/

bunny
11-21-2003, 06:21 AM
Thanks for the help, Octsol. GLee 2.1 now supports the OGLSL extensions. I haven't had time to test it fully yet, but it compiles okay, and the extensions are detected.

If anyone is interested, you can get it here:
http://elf-stone.com/downloads.php

[This message has been edited by bunny (edited 11-21-2003).]

Ostsol
11-21-2003, 07:52 AM
You might want to change the typedef for defining GLhandleARB. I just looked at the glext.h in 3dLabs' example and they define it as a signed integer (int).

bunny
11-21-2003, 08:05 AM
Done

soconne
11-21-2003, 06:13 PM
I found a problem with these drivers. Milkshape 1.7 keeps crashing upon startup. I reinstalled ATI's 3.9 drivers that are on their website and Milkshape stopped crashing, which sucks cause these don't support GLSLANG.

jwatte
11-21-2003, 08:50 PM
I'm not sure that the GLSL support is ready for release just because it's in the HOTFIX.

My belief is that hotfixes are made available by ATI engineering for specific bugs, and don't go through the same QA cycle as a "real" release. It could be the case that engineering builds of the drivers have the GLSL support enabled, but release builds have it disabled. I can see how hotfix drivers would then be built in non-release fashion, and thus include stuff that won't be in the next real, qualified release.

Also, this probably makes it a better idea to run release drivers, unless you experience the specific problem that the hotfix applies to. QA is a good thing.

davepermen
11-22-2003, 05:06 AM
yeah, thats my guess, too.. but who cares? even while buggy, it is rather mature after those months of development. mature enough for US to work with.

Tom78
11-22-2003, 05:29 AM
Originally posted by jwatte:
I'm not sure that the GLSL support is ready for release just because it's in the HOTFIX.

My belief is that hotfixes are made available by ATI engineering for specific bugs, and don't go through the same QA cycle as a "real" release. It could be the case that engineering builds of the drivers have the GLSL support enabled, but release builds have it disabled. I can see how hotfix drivers would then be built in non-release fashion, and thus include stuff that won't be in the next real, qualified release.

Also, this probably makes it a better idea to run release drivers, unless you experience the specific problem that the hotfix applies to. QA is a good thing.

Who cares whether hotfix or not ? We are waiting for GLSL for a very long time and we want something to play around and it does not need to be the final release.
Are you somehow releated to NV ?


cu
Tom

bunny
11-22-2003, 05:31 AM
The only problem I'm having is that two of the example shaders don't work on my radeon 9700 pro. The mandelbrot shader gives this error: "Internal compiler error:loop constructs not yet implemented.". The texture shader gives various warnings, and refuses to be run due to a lack of available constants.

So presumably if the loop construct hasn't been added yet, that would imply that the compiler isn't quite complete. Does anyone know if the loop construct will be supported later on my chipset, or if it's not there because of a hardware limitation?

DopeFish
11-22-2003, 06:07 AM
Look at it this way, the support for the extensions was in previous driver builds but had to be enabled. Its in this build but doesnt have to be enabled, its just there.

Humus
11-22-2003, 06:32 AM
Originally posted by bunny:
Does anyone know if the loop construct will be supported later on my chipset, or if it's not there because of a hardware limitation?

Can't say for certain, but I think it's safe to assume that at some point in the future constant loops will be supported in hardware by unrolling it, while dynamic loops will be run in software.

jwatte
11-22-2003, 10:27 AM
> Are you somehow releated to NV ?

Nope. I work on an independent third-party application, where I have the pleasure and honor to work closely with all of the major hardware vendors (read: we find bugs at times :-)

We also release a product to our customers, after the product goes through QA. I shudder at the thought of the support nightmare we'd have if arbitrary engineering builds were used un-checked by users. Thus, I can easily imagine all kinds of badness for the ATI folks if this gets out of hand.

For example: we have a compatibility checker that checks your system for basic capabilities (HT&L OpenGL graphics, 256 MB RAM, 800 MHz CPU, proper AGP drivers installed, that kind of thing). However, there is a way past it, and the customers know it. The first thing our customer support people have to ask on every support call is "did you bypass the compatiblity check?" If they forget, they can easily spend lots of time on the phone trouble-shooting a problem that shouldn't even have happened.