Ian Romanick wrote:
Brian Paul wrote:

Ian Romanick wrote:

That's *bad*. It is currently *impossible* to have GL 1.5 with indirect rendering because some of the GLX protocol (for ARB_occlusion_query & ARB_vertex_buffer_objects) was never completely defined. Looking back at it, we can't even advertise 1.3 or 1.4 with indirect rendering becuase the protocol for ARB_texture_compression isn't supported (on either end).


Ian, it seems to me that xc/lib/GL/glx/single2.c's glGetString() function should catch queries for GL_VERSION (as it does for GL_EXTENSIONS) and compute the minimum of the renderer's glGetString(GL_VERSION) and what the client/server GLX modules can support.

That would solve this, right?


Making that change and changing the server-side to not advertise a core version that it can't take protocol for would fix the bug for 4.4.0. Do you think anything should be done to preserve text after the version? That is, if a server sends us "1.4.20040108 Foobar, Inc. Fancypants GL", should we return "1.2" or something more elaborate?

It would be nice to preserve the extra text, but it's not essential.



I thought about it some last night, and I think there's some longer term work to be done on the client-side. Basically, we need a mechanism for GL extensions that matches what we have for GLX extensions. There are a few extensions that are essentially client-side only. We should be able to expose those without expecting the server-side to list them. In fact, the server-side should not list them. Extensions like EXT_draw_range_elements, EXT_multi_draw_arrays, and a few others fall into this category. It should be fairly easy to generalize the code for GLX extensions so that it can be used for both.

Sounds reasonable.



As a side bonus, that would eliminate the compiler warning in glxcmds.c about the __glXGLClientExtensions string being too long. :)

Does anyone know if either the ATI or Nvidia closed-source drivers support ARB_texture_compression for indirect rendering? If one of them does, that would give us a test bed for the client-side protocol support. When that support is added, we can change the library version to 1.4 (i.e., change from libGL.so.1.2 to libGL.so.1.4, with extra .1.2 and .1.3 symlinks).


[big snip]

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce3/AGP/SSE2
OpenGL version string: 1.4.0 NVIDIA 44.96
OpenGL extensions:
GL_EXT_blend_minmax, GL_EXT_texture_object, GL_EXT_draw_range_elements,
GL_EXT_texture3D, GL_EXT_secondary_color, GL_ARB_multitexture,
GL_EXT_multi_draw_arrays, GL_ARB_point_parameters, GL_EXT_fog_coord,
GL_ARB_imaging, GL_EXT_vertex_array, GL_EXT_paletted_texture,
GL_ARB_window_pos, GL_EXT_blend_color
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess



So, it appears that GL_ARB_texture_compression is not supported, but the GL_VERSION is reported as 1.4.0 Hmmm.


Okay, that's just weird. Normally the Nvidia extension string is about 3 pages long.

I guess they just aren't bothering to support many extensions via indirect rendering.


-Brian



-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to