Ian Romanick wrote:
Log message: Add client-side GLX protocol support for GL_ARB_texture_compression. The extensions are *not* currently enabled. This is for several reaons. First, the server-side does not support texture compression, so there's no advantage to supporting it (yet) on the client-side. Second, I tried testing it with an IHV's closed-source driver (that advertises GL 1.3), but their server-side driver doesn't support the protocol. That means this code is largely untested.
I tested this on Nvidia, but their driver doesn't fully support the texture compression GLX protocol. Could someone try this with ATI's close-source driver? Apply the attached patch to the DRI tree and rebuild. Then, with ATI's drivers installed, cd to progs/tests in the Mesa tree and run with 'LD_PRELOAD=<path to DRI tree>/build/xc/exports/lib/libGL.so.1.2 LIBGL_ALWAYS_INDIRECT=y ./texcmp'.
You should get one of four results:
1. It fails because neither GL_ARB_texture_compression or GL 1.3 are supported.
2. It fails with 'X Error of failed request: BadRequest'. This will mean ATI's driver has the same problem as Nvidia's. Note that, until a few months ago, the open-source server-side GLX had the same problem.
3. It works the same as with direct-rendering.
4. It fails in some other way.
If someone can get #3, then I'll enable the extensions in our libGL.
On a side note, it might be worth enabling FXT1 in on the server-side. For those rare apps that use it (ha!), it will reduce the bandwidth required to transfer textures.
? foo
Index: glxextensions.c
===================================================================
RCS file: /cvs/dri/xc/xc/lib/GL/glx/glxextensions.c,v
retrieving revision 1.21
diff -u -d -r1.21 glxextensions.c
--- glxextensions.c 17 Jun 2004 21:23:05 -0000 1.21
+++ glxextensions.c 17 Jun 2004 21:23:48 -0000
@@ -123,7 +123,7 @@
{ GL(ARB_shadow), VER(1,4), Y, N, N, N },
{ GL(ARB_shadow_ambient), VER(0,0), Y, N, N, N },
{ GL(ARB_texture_border_clamp), VER(1,3), Y, N, N, N },
- { GL(ARB_texture_compression), VER(1,3), N, N, N, N },
+ { GL(ARB_texture_compression), VER(1,3), Y, N, N, N },
{ GL(ARB_texture_cube_map), VER(1,3), Y, N, N, N },
{ GL(ARB_texture_env_add), VER(1,3), Y, N, N, N },
{ GL(ARB_texture_env_combine), VER(1,3), Y, N, N, N },
@@ -166,7 +166,7 @@
{ GL(EXT_subtexture), VER(1,1), Y, N, N, N },
{ GL(EXT_texture), VER(1,1), Y, N, N, N },
{ GL(EXT_texture3D), VER(1,2), Y, N, N, N },
- { GL(EXT_texture_compression_s3tc), VER(0,0), N, N, N, N },
+ { GL(EXT_texture_compression_s3tc), VER(0,0), Y, N, N, N },
{ GL(EXT_texture_edge_clamp), VER(1,2), Y, N, N, N },
{ GL(EXT_texture_env_add), VER(1,3), Y, N, N, N },
{ GL(EXT_texture_env_combine), VER(1,3), Y, N, N, N },
@@ -178,7 +178,7 @@
{ GL(EXT_texture_object), VER(1,1), Y, N, N, N },
{ GL(EXT_texture_rectangle), VER(0,0), Y, N, N, N },
{ GL(EXT_vertex_array), VER(0,0), Y, N, N, N },
- { GL(3DFX_texture_compression_FXT1), VER(0,0), N, N, N, N },
+ { GL(3DFX_texture_compression_FXT1), VER(0,0), Y, N, N, N },
{ GL(APPLE_packed_pixels), VER(1,2), Y, N, N, N },
{ GL(APPLE_ycbcr_422), VER(0,0), Y, N, N, N },
{ GL(ATI_texture_env_combine3), VER(0,0), Y, N, N, N },
@@ -210,7 +210,7 @@
{ GL(NV_multisample_filter_hint), VER(0,0), Y, N, N, N },
{ GL(NV_point_sprite), VER(0,0), Y, N, N, N },
{ GL(NV_texgen_reflection), VER(0,0), Y, N, N, N },
- { GL(NV_texture_compression_vtc), VER(0,0), N, N, N, N },
+ { GL(NV_texture_compression_vtc), VER(0,0), Y, N, N, N },
{ GL(NV_texture_env_combine4), VER(0,0), Y, N, N, N },
{ GL(NV_texture_rectangle), VER(0,0), Y, N, N, N },
{ GL(SGIS_generate_mipmap), VER(1,4), Y, N, N, N },
