Re: Moving forward with the TLS work

2004-07-02 Thread Dieter Nützel
Am Samstag, 3. Juli 2004 01:12 schrieb Roland Scheidegger:
> Dieter Nützel wrote:
> > Am Freitag, 2. Juli 2004 02:03 schrieb Ian Romanick:
> >>Dieter Nützel wrote:
> >>>Am Donnerstag, 1. Juli 2004 20:07 schrieb Dieter Nützel:
> Am Donnerstag, 1. Juli 2004 18:53 schrieb Ian Romanick:
> >Dieter Nützel wrote:
> >>quake3-smp do NOT work anylonger.
> >
> >Could you try these two patches?  They *should* fix the crash you're
> >seeing.
> 
> The "first" one, YES. But...
> >>
> >>Okay.  I just committed fixes that /should/ take care of everything.  In
> >>addition to the changes in the patch, there were a couple of dumb
> >>mistakes in glapi.c.  I have verified that Quake 3 SMP works as well on
> >>MGA as it did before any of the TLS work.  I also verified glthreads
> >>with 10 threads.
> >
> > GOOD work!
>
> Hmm, and I'm sitting here and now can't get anything to work with these
> changes. I think I'll just update to SuSE 9.1, with 2.6 kernel and
> whatnot, that might just fix the problem ;-).

SuSE 9.0, but with

glibc-2.3.3-73 (SuSE 9.0.42)
kernel 2.6.4-54.5-smp (SuSE 9.0.42/9.1) but much to old
some newer packages

Based on old SuSE 9.0 XFree86.

NPTL needed?

Greetings,
Dieter

I have to stop, now. --- My wife;-)


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-02 Thread Roland Scheidegger
Dieter Nützel wrote:
Am Freitag, 2. Juli 2004 02:03 schrieb Ian Romanick:
Dieter Nützel wrote:
Am Donnerstag, 1. Juli 2004 20:07 schrieb Dieter Nützel:
Am Donnerstag, 1. Juli 2004 18:53 schrieb Ian Romanick:
Dieter Nützel wrote:
quake3-smp do NOT work anylonger.
Could you try these two patches?  They *should* fix the crash you're
seeing.
The "first" one, YES. But...
Okay.  I just committed fixes that /should/ take care of everything.  In
addition to the changes in the patch, there were a couple of dumb
mistakes in glapi.c.  I have verified that Quake 3 SMP works as well on
MGA as it did before any of the TLS work.  I also verified glthreads
with 10 threads.

GOOD work!
Hmm, and I'm sitting here and now can't get anything to work with these 
changes. I think I'll just update to SuSE 9.1, with 2.6 kernel and 
whatnot, that might just fix the problem ;-).

Roland
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-02 Thread Dieter Nützel
Am Freitag, 2. Juli 2004 02:03 schrieb Ian Romanick:
> Dieter Nützel wrote:
> > Am Donnerstag, 1. Juli 2004 20:07 schrieb Dieter Nützel:
> >>Am Donnerstag, 1. Juli 2004 18:53 schrieb Ian Romanick:
> >>>Dieter Nützel wrote:
> quake3-smp do NOT work anylonger.
> >>>
> >>>Could you try these two patches?  They *should* fix the crash you're
> >>>seeing.
> >>
> >>The "first" one, YES. But...
>
> Okay.  I just committed fixes that /should/ take care of everything.  In
> addition to the changes in the patch, there were a couple of dumb
> mistakes in glapi.c.  I have verified that Quake 3 SMP works as well on
> MGA as it did before any of the TLS work.  I also verified glthreads
> with 10 threads.

GOOD work!

-Dieter


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-01 Thread Ian Romanick
Dieter Nützel wrote:
Am Donnerstag, 1. Juli 2004 20:07 schrieb Dieter Nützel:
Am Donnerstag, 1. Juli 2004 18:53 schrieb Ian Romanick:
Dieter Nützel wrote:
quake3-smp do NOT work anylonger.
Could you try these two patches?  They *should* fix the crash you're
seeing.
The "first" one, YES. But...
Okay.  I just committed fixes that /should/ take care of everything.  In 
addition to the changes in the patch, there were a couple of dumb 
mistakes in glapi.c.  I have verified that Quake 3 SMP works as well on 
MGA as it did before any of the TLS work.  I also verified glthreads 
with 10 threads.


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-01 Thread Dieter Nützel
Am Donnerstag, 1. Juli 2004 20:07 schrieb Dieter Nützel:
> Am Donnerstag, 1. Juli 2004 18:53 schrieb Ian Romanick:
> > Dieter Nützel wrote:
> > > quake3-smp do NOT work anylonger.
> >
> > Could you try these two patches?  They *should* fix the crash you're
> > seeing.
>
> The "first" one, YES. But...
>
> ...loading 'scripts/skin.shader'
> ...loading 'scripts/sky.shader'
> ...loading 'scripts/test.shader'
> - finished R_Init -
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 1233759152 (LWP 9827)]
> 0x44c3bfb9 in _mesa_Viewport () from /usr/X11R6/lib/modules/dri/r200_dri.so
> (gdb) c
> Continuing.
> Received signal 11, exiting...
>
> Program exited normally.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1233849264 (LWP 32396)]
_mesa_Viewport (x=0, y=0, width=640, height=480) at matrix.c:551
551ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
(gdb) list
546  */
547 void GLAPIENTRY
548 _mesa_Viewport( GLint x, GLint y, GLsizei width, GLsizei height )
549 {
550GET_CURRENT_CONTEXT(ctx);
551ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
552_mesa_set_viewport(ctx, x, y, width, height);
553 }
554
555 /**
(gdb) info registers
eax0x0  0
ecx0x896b758144095064
edx0xf7f3967
ebx0x0  0
esp0x498b0984   0x498b0984
ebp0x0  0x0
esi0x1e0480
edi0x280640
eip0x44c438d9   0x44c438d9
eflags 0x10212  66066
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0  0
gs 0x33 51

Is this more helpful?

-Dieter


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-01 Thread Dieter Nützel
Am Donnerstag, 1. Juli 2004 18:53 schrieb Ian Romanick:
> Dieter Nützel wrote:
> > quake3-smp do NOT work anylonger.
>
> Could you try these two patches?  They *should* fix the crash you're
> seeing.

The "first" one, YES. But...

...loading 'scripts/skin.shader'
...loading 'scripts/sky.shader'
...loading 'scripts/test.shader'
- finished R_Init -

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1233759152 (LWP 9827)]
0x44c3bfb9 in _mesa_Viewport () from /usr/X11R6/lib/modules/dri/r200_dri.so
(gdb) c
Continuing.
Received signal 11, exiting...

Program exited normally.

-Dieter


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-01 Thread Felix Kühling
On Thu, 01 Jul 2004 08:56:31 -0700
Ian Romanick <[EMAIL PROTECTED]> wrote:

> Dieter Nützel wrote:
> 
> > quake3-smp do NOT work anylonger.
> 
> Allow me to express, for the record, how much I *HATE* the XFree86 build 
> process.  The problem is that assembly files don't get built with the 
> threading related defines (i.e., -DXTHREADS).  The result is that 
> glapi_x86.S gets built without threading support.  I'm trying to figure 
> out which magic incantation is required to get the right flags on the 
> right command line.  Man, imake just *sucks*.

I remember having a similar problem once. Check the mailing list
archives for a mail with this subject:

   Problem with t_vtx_x86_gcc.S in DRI build system

Hope this helps,
  Felix

| Felix Kühling <[EMAIL PROTECTED]> http://fxk.de.vu |
| PGP Fingerprint: 6A3C 9566 5B30 DDED 73C3  B152 151C 5CC1 D888 E595 |


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-01 Thread Ian Romanick
Dieter Nützel wrote:
quake3-smp do NOT work anylonger.
Could you try these two patches?  They *should* fix the crash you're seeing.
? src/mesa/glapi/gl_XML.pyc
? src/mesa/glapi/license.pyc
Index: src/mesa/glapi/gl_x86_asm.py
===
RCS file: /cvs/mesa/Mesa/src/mesa/glapi/gl_x86_asm.py,v
retrieving revision 1.2
diff -u -d -r1.2 gl_x86_asm.py
--- src/mesa/glapi/gl_x86_asm.py29 Jun 2004 19:08:20 -  1.2
+++ src/mesa/glapi/gl_x86_asm.py1 Jul 2004 16:50:46 -
@@ -77,6 +77,10 @@
print '#define GLOBL_FN(x) GLOBL x'
print '#endif'
print ''
+   print '#if defined(PTHREADS) || defined(XTHREADS) || 
defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || defined(BEOS_THREADS)'
+   print '#  define THREADS'
+   print '#endif'
+   print ''
print '#if defined(PTHREADS)'
print '#  define GL_STUB(fn,off,fn_alt)\t\t\t\\'
print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
Index: src/mesa/x86/glapi_x86.S
===
RCS file: /cvs/mesa/Mesa/src/mesa/x86/glapi_x86.S,v
retrieving revision 1.37
diff -u -d -r1.37 glapi_x86.S
--- src/mesa/x86/glapi_x86.S29 Jun 2004 19:08:20 -  1.37
+++ src/mesa/x86/glapi_x86.S1 Jul 2004 16:50:47 -
@@ -47,6 +47,10 @@
 #define GLOBL_FN(x) GLOBL x
 #endif
 
+#if defined(PTHREADS) || defined(XTHREADS) || defined(SOLARIS_THREADS) || 
defined(WIN32_THREADS) || defined(BEOS_THREADS)
+#  define THREADS
+#endif
+
 #if defined(PTHREADS)
 #  define GL_STUB(fn,off,fn_alt)   \
 ALIGNTEXT16;   \
Index: lib/GL/glx/Imakefile
===
RCS file: /cvs/dri/xc/xc/lib/GL/glx/Imakefile,v
retrieving revision 1.25
diff -u -d -r1.25 Imakefile
--- lib/GL/glx/Imakefile17 Jun 2004 21:23:05 -  1.25
+++ lib/GL/glx/Imakefile1 Jul 2004 16:50:33 -
@@ -135,7 +135,7 @@
 
  SRCS = $(GLX_SRCS) $(ASM_SRCS) $(DRI_SRCS)
  OBJS = $(GLX_OBJS) $(ASM_OBJS) $(DRI_OBJS)
-  DEFINES = $(GLX_DEFS) $(ASM_DEFS) $(XMESA_DEFINES)
+  DEFINES = $(GLX_DEFS) $(ASM_DEFS) $(XMESA_DEFINES) $(THREADS_DEFINES)
 
  INCLUDES = -I$(XINCLUDESRC) \
-I$(MESASRCDIR)/include \


Re: Moving forward with the TLS work

2004-07-01 Thread Dieter Nützel
Am Donnerstag, 1. Juli 2004 17:56 schrieb Ian Romanick:
> Dieter Nützel wrote:
> > quake3-smp do NOT work anylonger.
>
> Allow me to express, for the record, how much I *HATE* the XFree86 build
> process.  The problem is that assembly files don't get built with the
> threading related defines (i.e., -DXTHREADS).  The result is that
> glapi_x86.S gets built without threading support.  I'm trying to figure
> out which magic incantation is required to get the right flags on the
> right command line.  Man, imake just *sucks*.

Don't worry, be happy...;-)

Ian, you are so fast.
I can resign my DEBUG compilation run.

Thanks!

-- 
Dieter Nützel
@home: 


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-01 Thread Ian Romanick
Dieter Nützel wrote:
quake3-smp do NOT work anylonger.
Allow me to express, for the record, how much I *HATE* the XFree86 build 
process.  The problem is that assembly files don't get built with the 
threading related defines (i.e., -DXTHREADS).  The result is that 
glapi_x86.S gets built without threading support.  I'm trying to figure 
out which magic incantation is required to get the right flags on the 
right command line.  Man, imake just *sucks*.


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-07-01 Thread Dieter Nützel
Am Freitag, 25. Juni 2004 11:06 schrieb Dieter Nützel:
> Am Freitag, 25. Juni 2004 00:10 schrieb Ian Romanick:
> > Dieter Nützel wrote:
> > > Am Mittwoch, 23. Juni 2004 02:22 schrieb Ian Romanick:
> > >>This patch also still requires you to manually generate glapi_x86.S by
> > >>doing:
> > >>
> > >>cd src/mesa/glapi
> > >>python2 ./gl_x86_asm.py > ../x86/glapi_x86.S
> > >
> > > With and without I get this in _normal_ DRI CVS:
> >
> > You probably need to rebuild everything.
>
> That's my _daily_ work...

OK, this _one_ is SOLVED.

But TLS is VERY expensive.

quake3-smp do NOT work anylonger.
fps are down to 134 (from 173).

/opt/Mesa> quake3-smp &
[1] 9040
/opt/Mesa>
[1]Fertigquake3-smp

Nothing remarkable in my log.
/opt/games/quake3/log is attached.

But with gdb I get something:

Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 1076387968 (LWP 9226)]
0x44cf6b78 in _mesa_test_os_sse_exception_support ()
   from /usr/X11R6/lib/modules/dri/r200_dri.so
(gdb) c
Continuing.
Mesa: software DXTn compression/decompression available
GL_RENDERER: Mesa DRI R200 20030328 AGP 4x x86/MMX+/3DNow!+/SSE TCL
Initializing OpenGL extensions
...using GL_S3_s3tc
...using GL_EXT_texture_env_add
...using GL_ARB_multitexture
...using GL_EXT_compiled_vertex_array
XF86 Gamma extension initialized
Trying SMP acceleration...
Render thread starting
[New Thread 1233742768 (LWP 9270)]
...succeeded.

GL_VENDOR: Tungsten Graphics, Inc.
GL_RENDERER: Mesa DRI R200 20030328 AGP 4x x86/MMX+/3DNow!+/SSE TCL
GL_VERSION: 1.3 Mesa 6.1
GL_EXTENSIONS: GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture 
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_dot3 GL_ARB_texture_mirrored_repeat 
GL_ARB_transpose_matrix GL_ARB_vertex_buffer_object GL_ARB_window_pos 
GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate 
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_convolution 
GL_EXT_copy_texture GL_EXT_draw_range_elements GL_EXT_histogram 
GL_EXT_packed_pixels GL_EXT_polygon_offset GL_EXT_rescale_normal 
GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_stencil_wrap 
GL_EXT_subtexture GL_EXT_texture GL_EXT_texture3D 
GL_EXT_texture_compression_s3tc 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_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle 
GL_EXT_vertex_array GL_APPLE_packed_pixels GL_ATI_blend_equation_separate 
GL_ATI_texture_env_combine3 GL_ATI_texture_mirror_once GL_IBM_rasterpos_clip 
GL_IBM_texture_mirrored_repeat GL_INGR_blend_func_separate 
GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_MESA_window_pos 
GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texture_rectangle 
GL_NV_texgen_reflection GL_SGI_color_matrix GL_SGI_color_table 
GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp 
GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_S3_s3tc
GL_MAX_TEXTURE_SIZE: 2048
GL_MAX_ACTIVE_TEXTURES_ARB: 4

PIXELFORMAT: color(24-bits) Z(24-bit) stencil(8-bits)
MODE: 3, 640 x 480 windowed hz:N/A
GAMMA: hardware w/ 0 overbright bits
CPU:
rendering primitives: single glDrawElements
texturemode: GL_LINEAR_MIPMAP_LINEAR
picmip: 1
texture bits: 32
multitexture: enabled
compiled vertex arrays: enabled
texenv add: enabled
compressed textures: enabled
Using dual processor acceleration

Program received signal SIGSEGV, Segmentation fault.
0x44b66305 in glClearDepth () from /usr/X11R6/lib/libGL.so.1
(gdb) c
Continuing.
Received signal 11, exiting...

Program exited normally.
(gdb)

Will recompile with DEBUG.

-Dieter


log.bz2
Description: BZip2 compressed data


Re: Moving forward with the TLS work

2004-06-25 Thread Dieter Nützel
Am Freitag, 25. Juni 2004 00:10 schrieb Ian Romanick:
> Dieter Nützel wrote:
> > Am Mittwoch, 23. Juni 2004 02:22 schrieb Ian Romanick:
> >>This patch also still requires you to manually generate glapi_x86.S by
> >>doing:
> >>
> >>cd src/mesa/glapi
> >>python2 ./gl_x86_asm.py > ../x86/glapi_x86.S
> >
> > With and without I get this in _normal_ DRI CVS:
>
> You probably need to rebuild everything.

That's my _daily_ work...

time nice +19 make -j20 realclean
find -name '*.o' | xargs rm
find -name '*.a' | xargs rm
find -name '*.so' | xargs rm
/opt/Mesa> du -s
46188   .
time nice +19 make -j20 linux-x86

1:30 later I got normally a working Mesa CVS.
Then I went to DRI CVS...

> glapi_x86.S used to get linked 
> with the drivers in the Mesa tree, adn this caused problems with some of
> the changes in the most recent patch.  I changed the 'sources' file in
> the Mesa tree, and that probably impacts the Makefiles in the DRI tree.
>   If that doesn't fix things, I'm not really sure what the problem could
> be.

SuSE 9.0 with glibc-2.3.3 ;-)

/opt/Mesa> python -V
Python 2.3+

/opt/Mesa> gcc --version
gcc (GCC) 3.3.1 (SuSE Linux)

/opt/Mesa> cd src/mesa/glapi
mesa/glapi> l gl_x86_asm.py
-rw-r--r--1 nuetzel  users3908 2004-05-18 20:33 gl_x86_asm.py
mesa/glapi> python ./gl_x86_asm.py > ../x86/glapi_x86.S
/opt/Mesa/src/mesa/glapi/gl_XML.py:89: FutureWarning: int('0...', 0): sign 
will change in Python 2.4
  self.value = int(attrs.get('value', "0x"), 0)
mesa/glapi> l ../x86/glapi_x86.S
-rw-r--r--1 nuetzel  users   41615 2004-06-25 11:01 ../x86/glapi_x86.S

I've attached glapi_x86.S.bz2.

Thanks,
Dieter


glapi_x86.S.bz2
Description: BZip2 compressed data


Re: Moving forward with the TLS work

2004-06-24 Thread Alex Romosan
Dieter Nützel <[EMAIL PROTECTED]> writes:

> With and without I get this in _normal_ DRI CVS:

did you reconfigure Mesa (i.e. make linux-x86 or whatever your
platform is)? that solved it for me.

--alex--

-- 
| I believe the moment is at hand when, by a paranoiac and active |
|  advance of the mind, it will be possible (simultaneously with  |
|  automatism and other passive states) to systematize confusion  |
|  and thus to help to discredit completely the world of reality. |


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-06-24 Thread Ian Romanick
Dieter Nützel wrote:
Am Mittwoch, 23. Juni 2004 02:22 schrieb Ian Romanick:
This patch also still requires you to manually generate glapi_x86.S by
doing:
cd src/mesa/glapi
python2 ./gl_x86_asm.py > ../x86/glapi_x86.S
With and without I get this in _normal_ DRI CVS:
You probably need to rebuild everything.  glapi_x86.S used to get linked 
with the drivers in the Mesa tree, adn this caused problems with some of 
the changes in the most recent patch.  I changed the 'sources' file in 
the Mesa tree, and that probably impacts the Makefiles in the DRI tree. 
 If that doesn't fix things, I'm not really sure what the problem could be.


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-06-24 Thread Dieter Nützel
Am Mittwoch, 23. Juni 2004 02:22 schrieb Ian Romanick:
> Ian Romanick wrote:

> This patch also still requires you to manually generate glapi_x86.S by
> doing:
>
> cd src/mesa/glapi
> python2 ./gl_x86_asm.py > ../x86/glapi_x86.S

With and without I get this in _normal_ DRI CVS:

make[3]: Entering directory `/opt/Mesa/progs/demos'
gcc -I../../include -Wall -O -march=athlon -ansi -pedantic -fPIC 
-D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE 
-DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM 
-DPTHREADS -I/usr/X11R6/include arbfplight.c -L../../lib -lglut -lGLU -lGL 
-lm -o arbfplight
arbfplight.c: In function `Init':
arbfplight.c:236: Warnung: string length `900' is greater than the length 
`509' ISO C89 compilers are required to support
arbfplight.c:262: Warnung: string length `729' is greater than the length 
`509' ISO C89 compilers are required to support
/tmp/ccKXsnUw.o(.text+0x1c): In function `Redisplay':
: undefined reference to `glClear'
/tmp/ccKXsnUw.o(.text+0x50): In function `Redisplay':
: undefined reference to `glEnable'
/tmp/ccKXsnUw.o(.text+0x5c): In function `Redisplay':
: undefined reference to `glEnable'
/tmp/ccKXsnUw.o(.text+0x68): In function `Redisplay':
: undefined reference to `glDisable'
/tmp/ccKXsnUw.o(.text+0x88): In function `Redisplay':
: undefined reference to `glLightfv'
/tmp/ccKXsnUw.o(.text+0x94): In function `Redisplay':
: undefined reference to `glDisable'
/tmp/ccKXsnUw.o(.text+0xa0): In function `Redisplay':
: undefined reference to `glDisable'
/tmp/ccKXsnUw.o(.text+0xac): In function `Redisplay':
: undefined reference to `glEnable'
/tmp/ccKXsnUw.o(.text+0xb1): In function `Redisplay':
: undefined reference to `glPushMatrix'
/tmp/ccKXsnUw.o(.text+0xd7): In function `Redisplay':
: undefined reference to `glRotatef'
/tmp/ccKXsnUw.o(.text+0xf1): In function `Redisplay':
: undefined reference to `glRotatef'
/tmp/ccKXsnUw.o(.text+0x114): In function `Redisplay':
: undefined reference to `glPopMatrix'
/tmp/ccKXsnUw.o(.text+0x230): In function `Reshape':
: undefined reference to `glViewport'
/tmp/ccKXsnUw.o(.text+0x23c): In function `Reshape':
: undefined reference to `glMatrixMode'
/tmp/ccKXsnUw.o(.text+0x241): In function `Reshape':
: undefined reference to `glLoadIdentity'
/tmp/ccKXsnUw.o(.text+0x277): In function `Reshape':
: undefined reference to `glFrustum'
/tmp/ccKXsnUw.o(.text+0x283): In function `Reshape':
: undefined reference to `glMatrixMode'
/tmp/ccKXsnUw.o(.text+0x288): In function `Reshape':
: undefined reference to `glLoadIdentity'
/tmp/ccKXsnUw.o(.text+0x2a4): In function `Reshape':
: undefined reference to `glTranslatef'
/tmp/ccKXsnUw.o(.text+0x3b1): In function `Key':
: undefined reference to `glPolygonMode'
/tmp/ccKXsnUw.o(.text+0x7bf): In function `Init':
: undefined reference to `glGetIntegerv'
/tmp/ccKXsnUw.o(.text+0x7c4): In function `Init':
: undefined reference to `glGetError'
/tmp/ccKXsnUw.o(.text+0x7f1): In function `Init':
: undefined reference to `glGetString'
/tmp/ccKXsnUw.o(.text+0xa2c): In function `Init':
: undefined reference to `glGetIntegerv'
/tmp/ccKXsnUw.o(.text+0xa31): In function `Init':
: undefined reference to `glGetError'
/tmp/ccKXsnUw.o(.text+0xa61): In function `Init':
: undefined reference to `glGetString'
/tmp/ccKXsnUw.o(.text+0xae7): In function `Init':
: undefined reference to `glClearColor'
/tmp/ccKXsnUw.o(.text+0xaf3): In function `Init':
: undefined reference to `glEnable'
/tmp/ccKXsnUw.o(.text+0xaff): In function `Init':
: undefined reference to `glEnable'
/tmp/ccKXsnUw.o(.text+0xb0b): In function `Init':
: undefined reference to `glEnable'
/tmp/ccKXsnUw.o(.text+0xb29): In function `Init':
: undefined reference to `glMaterialfv'
/tmp/ccKXsnUw.o(.text+0xb47): In function `Init':
: undefined reference to `glMaterialfv'
/tmp/ccKXsnUw.o(.text+0xb65): In function `Init':
: undefined reference to `glMaterialf'
/tmp/ccKXsnUw.o(.text+0xb71): In function `Init':
: undefined reference to `glGetString'
../../lib/libGL.so: undefined reference to `glTexSubImage3D'
../../lib/libGL.so: undefined reference to `glDrawElements'
../../lib/libGL.so: undefined reference to `glSetFenceNV'
../../lib/libGL.so: undefined reference to `glCompressedTexImage3D'
../../lib/libGL.so: undefined reference to `glTexCoordPointer'
../../lib/libGL.so: undefined reference to `glTexGeniv'
../../lib/libGL.so: undefined reference to `glColorTableParameteriv'
../../lib/libGL.so: undefined reference to `glColor3ub'
../../lib/libGL.so: undefined reference to `glIsTexture'
../../lib/libGL.so: undefined reference to `glUnlockArraysEXT'
../../lib/libGL.so: undefined reference to `glMultTransposeMatrixf'
../../lib/libGL.so: undefined reference to `glGetConvolutionFilterEXT'
../../lib/libGL.so: undefined reference to `glCompressedTexImage1D'
../../lib/libGL.so: undefined reference to `glTestFenceNV'
../../lib/libGL.so: undefined reference to `glVertexAttrib4sARB'
../../lib/libGL.so: undefined reference to `glRasterPos2s'
../../lib

Re: Moving forward with the TLS work

2004-06-23 Thread Ian Romanick
Brian Paul wrote:
Ian, I haven't had time to follow this too closely.  A few questions:
1. Is thread safety in the GL API layer going to require TLS now? What 
about people who want thread safety but aren't using a version of Linux 
that supports TLS?
It won't require it.  We'll be able to build a libGL with or without 
support for TLS.  libGL binaries built with TLS support will require the 
system to support TLS (I think), but they won't require TLS enabled drivers.

I intend to add an env. variable to disable the use of TLS client-side 
drivers.

2. Which common Linux distros support TLS?  I believe RH9 and later do, 
but that's all I'm aware of.
There's two different issues.  The first is, "Which distros support TLS 
at all?"  I think any distro based on a 2.6.x kernel will support TLS. 
The other issue is, "Which distros ship a TLS enabled libGL that won't 
work with our nightly builds?"  Redhat does, and so does one other.  I 
don't remember which, but based on Alan's post, it's probably Mandrake.

In addition, based on driver options they support, I think ATI's 
closed-source drivers have some sort of TLS support.


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-06-23 Thread Alan Hourihane
On Wed, Jun 23, 2004 at 10:18:32AM -0600, Brian Paul wrote:
> Ian Romanick wrote:
> >Ian Romanick wrote:
> >
> >>I'm getting back to the TSL work, and I'd like to wrap it up as much 
> >>as possible by the end of the week.  I sent a patch out of the current 
> >>state of things a little bit ago.  Performance testing has shown that 
> >>the new dispatch functions and the old, non-thread safe dispatch 
> >>functions perform equally.  The difference between the two is within 
> >>the error margin of the test.  That's the good news.
> >>
> >>The bad news is that the combination of a multithreaded app, with an 
> >>"old" driver, and a "new" libGL will result in a segfault.  The code 
> >>sets _glapi_Dispatch to NULL in the multithreaded case as a signal to 
> >>call _glapi_get_dispatch.  When the code is fully converted to TLS, 
> >>the call to _glapi_get_dispatch will be replaced with a 'movl 
> >>%gs:_gl_DispatchTSD, %eax' or something similar.
> >>
> >>I want to maintain compatibility across the whole matrix of old / new 
> >>libGL with old / new drivers.  I may be willing to sacrifice new 
> >>driver + old libGL, but that's the only combination I'd be willing to 
> >>give on.  I think we need to do 3 things to get there:
> >>
> >>1. Keep the old meaning of _glapi_Dispatch.  This means that all the 
> >>_ts_* functions and their support mechanism will have to be kept. :( 
> >>However, it will only be needed for the DRI libGL.  The software 
> >>rendering Mesa version won't need it.
> >
> >
> >This turned out to not be as bad as I thought.  There is still the extra 
> >dispatch table, but all of the function pointers in it point to the 
> >regular dispatch functions.  In the multithreaded case, if an old driver 
> >does _glapi_Dispatch->Vertex3fv, it will end up calling glVertex3fv, 
> >which will see _glapi_DispatchTSD is NULL, which will call 
> >_glapi_get_dispatch to get the real dispatch and call the real function.
> >
> >The _ts_* functions are still gone.  Everyone is happy. :)
> >
> >The one catch is that glapitemp.h (and the Python generator scripts) 
> >were modified.  If NAME is not defined, glapitemp.h will not generate 
> >the dispatch functions.  If DISPATCH_TABLE_NAME is defined, it will 
> >still generate the dispatch table.
> >
> >>2. For non-TLS "new" code, implement a new variable called 
> >>_glapi_DispatchTSD that implements the new behavior.  There will be a 
> >>"weak" version of that variable, that is always NULL in dri_util.c. 
> >>This should allow non-TLS "new" code to work with old libGL binaries.
> >
> >
> >This is done and works perfectly.  The only problem *I* have with it is 
> >the use of a GCC specific feature.  Of course, the whole TLS thing is 
> >pretty GCC specific, so I guess this is somewhat moot.
> >
> >>3. TLS "new" code can do whatever it wants.  I imagine this will be a 
> >>__thread variable called _glapi_tls_Dispatch or something similar.
> >
> >
> >This part isn't done yet, but should be easy enough.
> >
> >This patch also still requires you to manually generate glapi_x86.S by 
> >doing:
> >
> >cd src/mesa/glapi
> >python2 ./gl_x86_asm.py > ../x86/glapi_x86.S
> >
> >The other new thing in this patch is the state variable ThreadSafe is 
> >gone.  Instead, the code universally uses "_glapi_DispatchTSD == NULL" 
> >to determine if it is in multi-threaded mode.  Some other code in 
> >glapi.c changes as a direct result.
> >
> >If nobody raises any concerns, my intention is to commit these changes 
> >*tomorrow* afternoon (23-June-2004).
> >
> >The next two steps will be to start adding in some of the 
> >'visibility("hidden")' stuff and (of course) the TLS support.  I plan to 
> >mostly follow Jakub's lead with two exceptions.  Instead of using 
> >'hidden' as the macro for '__attribute__ ((visibility("hidden"))', I'm 
> >going to take a cue from the PowerPC glibc code and use 
> >attribute_hidden.  I'm also going to pick a different name than 
> >GLX_USE_TLS to enable compilation of the TLS code.  I haven't decide 
> >what to use, though.
> 
> Ian, I haven't had time to follow this too closely.  A few questions:
> 
> 1. Is thread safety in the GL API layer going to require TLS now? 
> What about people who want thread safety but aren't using a version of 
> Linux that supports TLS?
> 
> 2. Which common Linux distros support TLS?  I believe RH9 and later 
> do, but that's all I'm aware of.

I think Mandrake 10 also supports it.

Alan.


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-06-23 Thread Brian Paul
Ian Romanick wrote:
Ian Romanick wrote:
I'm getting back to the TSL work, and I'd like to wrap it up as much 
as possible by the end of the week.  I sent a patch out of the current 
state of things a little bit ago.  Performance testing has shown that 
the new dispatch functions and the old, non-thread safe dispatch 
functions perform equally.  The difference between the two is within 
the error margin of the test.  That's the good news.

The bad news is that the combination of a multithreaded app, with an 
"old" driver, and a "new" libGL will result in a segfault.  The code 
sets _glapi_Dispatch to NULL in the multithreaded case as a signal to 
call _glapi_get_dispatch.  When the code is fully converted to TLS, 
the call to _glapi_get_dispatch will be replaced with a 'movl 
%gs:_gl_DispatchTSD, %eax' or something similar.

I want to maintain compatibility across the whole matrix of old / new 
libGL with old / new drivers.  I may be willing to sacrifice new 
driver + old libGL, but that's the only combination I'd be willing to 
give on.  I think we need to do 3 things to get there:

1. Keep the old meaning of _glapi_Dispatch.  This means that all the 
_ts_* functions and their support mechanism will have to be kept. :( 
However, it will only be needed for the DRI libGL.  The software 
rendering Mesa version won't need it.

This turned out to not be as bad as I thought.  There is still the extra 
dispatch table, but all of the function pointers in it point to the 
regular dispatch functions.  In the multithreaded case, if an old driver 
does _glapi_Dispatch->Vertex3fv, it will end up calling glVertex3fv, 
which will see _glapi_DispatchTSD is NULL, which will call 
_glapi_get_dispatch to get the real dispatch and call the real function.

The _ts_* functions are still gone.  Everyone is happy. :)
The one catch is that glapitemp.h (and the Python generator scripts) 
were modified.  If NAME is not defined, glapitemp.h will not generate 
the dispatch functions.  If DISPATCH_TABLE_NAME is defined, it will 
still generate the dispatch table.

2. For non-TLS "new" code, implement a new variable called 
_glapi_DispatchTSD that implements the new behavior.  There will be a 
"weak" version of that variable, that is always NULL in dri_util.c. 
This should allow non-TLS "new" code to work with old libGL binaries.

This is done and works perfectly.  The only problem *I* have with it is 
the use of a GCC specific feature.  Of course, the whole TLS thing is 
pretty GCC specific, so I guess this is somewhat moot.

3. TLS "new" code can do whatever it wants.  I imagine this will be a 
__thread variable called _glapi_tls_Dispatch or something similar.

This part isn't done yet, but should be easy enough.
This patch also still requires you to manually generate glapi_x86.S by 
doing:

cd src/mesa/glapi
python2 ./gl_x86_asm.py > ../x86/glapi_x86.S
The other new thing in this patch is the state variable ThreadSafe is 
gone.  Instead, the code universally uses "_glapi_DispatchTSD == NULL" 
to determine if it is in multi-threaded mode.  Some other code in 
glapi.c changes as a direct result.

If nobody raises any concerns, my intention is to commit these changes 
*tomorrow* afternoon (23-June-2004).

The next two steps will be to start adding in some of the 
'visibility("hidden")' stuff and (of course) the TLS support.  I plan to 
mostly follow Jakub's lead with two exceptions.  Instead of using 
'hidden' as the macro for '__attribute__ ((visibility("hidden"))', I'm 
going to take a cue from the PowerPC glibc code and use 
attribute_hidden.  I'm also going to pick a different name than 
GLX_USE_TLS to enable compilation of the TLS code.  I haven't decide 
what to use, though.
Ian, I haven't had time to follow this too closely.  A few questions:
1. Is thread safety in the GL API layer going to require TLS now? 
What about people who want thread safety but aren't using a version of 
Linux that supports TLS?

2. Which common Linux distros support TLS?  I believe RH9 and later 
do, but that's all I'm aware of.

-Brian
---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Moving forward with the TLS work

2004-06-22 Thread Ian Romanick
Ian Romanick wrote:
I'm getting back to the TSL work, and I'd like to wrap it up as much as 
possible by the end of the week.  I sent a patch out of the current 
state of things a little bit ago.  Performance testing has shown that 
the new dispatch functions and the old, non-thread safe dispatch 
functions perform equally.  The difference between the two is within the 
error margin of the test.  That's the good news.

The bad news is that the combination of a multithreaded app, with an 
"old" driver, and a "new" libGL will result in a segfault.  The code 
sets _glapi_Dispatch to NULL in the multithreaded case as a signal to 
call _glapi_get_dispatch.  When the code is fully converted to TLS, the 
call to _glapi_get_dispatch will be replaced with a 'movl 
%gs:_gl_DispatchTSD, %eax' or something similar.

I want to maintain compatibility across the whole matrix of old / new 
libGL with old / new drivers.  I may be willing to sacrifice new driver 
+ old libGL, but that's the only combination I'd be willing to give on. 
 I think we need to do 3 things to get there:

1. Keep the old meaning of _glapi_Dispatch.  This means that all the 
_ts_* functions and their support mechanism will have to be kept. :( 
However, it will only be needed for the DRI libGL.  The software 
rendering Mesa version won't need it.
This turned out to not be as bad as I thought.  There is still the extra 
dispatch table, but all of the function pointers in it point to the 
regular dispatch functions.  In the multithreaded case, if an old driver 
does _glapi_Dispatch->Vertex3fv, it will end up calling glVertex3fv, 
which will see _glapi_DispatchTSD is NULL, which will call 
_glapi_get_dispatch to get the real dispatch and call the real function.

The _ts_* functions are still gone.  Everyone is happy. :)
The one catch is that glapitemp.h (and the Python generator scripts) 
were modified.  If NAME is not defined, glapitemp.h will not generate 
the dispatch functions.  If DISPATCH_TABLE_NAME is defined, it will 
still generate the dispatch table.

2. For non-TLS "new" code, implement a new variable called 
_glapi_DispatchTSD that implements the new behavior.  There will be a 
"weak" version of that variable, that is always NULL in dri_util.c. This 
should allow non-TLS "new" code to work with old libGL binaries.
This is done and works perfectly.  The only problem *I* have with it is 
the use of a GCC specific feature.  Of course, the whole TLS thing is 
pretty GCC specific, so I guess this is somewhat moot.

3. TLS "new" code can do whatever it wants.  I imagine this will be a 
__thread variable called _glapi_tls_Dispatch or something similar.
This part isn't done yet, but should be easy enough.
This patch also still requires you to manually generate glapi_x86.S by 
doing:

cd src/mesa/glapi
python2 ./gl_x86_asm.py > ../x86/glapi_x86.S
The other new thing in this patch is the state variable ThreadSafe is 
gone.  Instead, the code universally uses "_glapi_DispatchTSD == NULL" 
to determine if it is in multi-threaded mode.  Some other code in 
glapi.c changes as a direct result.

If nobody raises any concerns, my intention is to commit these changes 
*tomorrow* afternoon (23-June-2004).

The next two steps will be to start adding in some of the 
'visibility("hidden")' stuff and (of course) the TLS support.  I plan to 
mostly follow Jakub's lead with two exceptions.  Instead of using 
'hidden' as the macro for '__attribute__ ((visibility("hidden"))', I'm 
going to take a cue from the PowerPC glibc code and use 
attribute_hidden.  I'm also going to pick a different name than 
GLX_USE_TLS to enable compilation of the TLS code.  I haven't decide 
what to use, though.


Index: src/mesa/drivers/dri/common/dri_util.c
===
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/common/dri_util.c,v
retrieving revision 1.11
diff -u -d -r1.11 dri_util.c
--- src/mesa/drivers/dri/common/dri_util.c  7 Jun 2004 21:23:12 -   1.11
+++ src/mesa/drivers/dri/common/dri_util.c  22 Jun 2004 23:32:48 -
@@ -55,6 +55,10 @@
 #endif
 
 /**
+ */
+struct _glapi_table *_glapi_DispatchTSD __attribute__((weak)) = NULL;
+
+/**
  * This is used in a couple of places that call \c driCreateNewDrawable.
  */
 static const int empty_attribute_list[1] = { None };
Index: src/mesa/glapi/gl_apitemp.py
===
RCS file: /cvs/mesa/Mesa/src/mesa/glapi/gl_apitemp.py,v
retrieving revision 1.2
diff -u -d -r1.2 gl_apitemp.py
--- src/mesa/glapi/gl_apitemp.py19 May 2004 23:33:08 -  1.2
+++ src/mesa/glapi/gl_apitemp.py22 Jun 2004 23:32:48 -
@@ -112,6 +112,7 @@
  */
 
 
+#if defined( NAME )
 #ifndef KEYWORD1
 #define KEYWORD1
 #endif
@@ -120,10 +121,6 @@
 #define KEYWORD2
 #endif
 
-#ifndef NAME
-#error NAME must be defined
-#endif
-
 #ifndef DISPATCH
 #error DISPATCH must be defined
 #endif
@@ -140,6 +137,7 @@
 
def printInitD

Moving forward with the TLS work

2004-06-21 Thread Ian Romanick
I'm getting back to the TSL work, and I'd like to wrap it up as much as 
possible by the end of the week.  I sent a patch out of the current 
state of things a little bit ago.  Performance testing has shown that 
the new dispatch functions and the old, non-thread safe dispatch 
functions perform equally.  The difference between the two is within the 
error margin of the test.  That's the good news.

The bad news is that the combination of a multithreaded app, with an 
"old" driver, and a "new" libGL will result in a segfault.  The code 
sets _glapi_Dispatch to NULL in the multithreaded case as a signal to 
call _glapi_get_dispatch.  When the code is fully converted to TLS, the 
call to _glapi_get_dispatch will be replaced with a 'movl 
%gs:_gl_DispatchTSD, %eax' or something similar.

I want to maintain compatibility across the whole matrix of old / new 
libGL with old / new drivers.  I may be willing to sacrifice new driver 
+ old libGL, but that's the only combination I'd be willing to give on. 
 I think we need to do 3 things to get there:

1. Keep the old meaning of _glapi_Dispatch.  This means that all the 
_ts_* functions and their support mechanism will have to be kept. :( 
However, it will only be needed for the DRI libGL.  The software 
rendering Mesa version won't need it.

2. For non-TLS "new" code, implement a new variable called 
_glapi_DispatchTSD that implements the new behavior.  There will be a 
"weak" version of that variable, that is always NULL in dri_util.c. 
This should allow non-TLS "new" code to work with old libGL binaries.

3. TLS "new" code can do whatever it wants.  I imagine this will be a 
__thread variable called _glapi_tls_Dispatch or something similar.

That /should/ allow support of all 4 non-TLS combinations and allow the 
TLS libGL to work with non-TLS drivers.  However, this will defeat some 
of the size and linkage (prelink, etc.) benefits of the non-compatible 
version.  I'll see if I can work something up and send out a new patch 
tomorrow.


---
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel