Am Montag, 16. Dezember 2002 22:59 schrieb Brian Paul:
> Andy Ross wrote:

> > Actually, I'm fuzzy on the spec here.  The DRI (and NVidia) drivers
> > appear to *not* sample the texture border color by default when
> > drawing quads with texture coordinates of exactly 1 and 0.  The ATI
> > ones seem to do so, which results in a dark stripe between tiles
> > (FlightGear doesn't bother to set the border color and leaves it as
> > black).  Problem is, my cursory reading of the spec says that ATI is
> > right and the rest of the world (!) is wrong, even though that would
> > make life hell for people who simply want to build up tiled images and
> > don't care (much) about border artifacts.  What's the truth?
>
> Texture borders are kinda complicated.  You can either define an explicit
> image border (glTexImage2D's border=1) or use the default texture border
> color.  Whether or not the texture border is sampled is determined by the
> texture filter and wrap mode.  There are lots of mode combinations, some
> of which sometimes sample the border, and others which never do.
>
> Texture borders are an area that's still kind of flakey in today's drivers.
> They've always been trouble.
>
> I've been pretty careful to get this right in Mesa's software rasterizer.
> The Mesa/test/texwrap.c demo shows a bunch of different modes.

And again. Current trunk (r200) only running with MESA_NO_SSE on Athlon/Duron.

-Dieter

Reading symbols from /usr/X11R6/lib/modules/dri/r200_dri.so...done.
Loaded symbols for /usr/X11R6/lib/modules/dri/r200_dri.so
#0  0x40610724 in _mesa_sse_transform_points2_3d_no_rot ()
   from /usr/X11R6/lib/modules/dri/r200_dri.so
(gdb) bt
#0  0x40610724 in _mesa_sse_transform_points2_3d_no_rot ()
   from /usr/X11R6/lib/modules/dri/r200_dri.so
#1  0x081f5638 in ?? ()
#2  0x40524310 in default_calloc () from 
/usr/X11R6/lib/modules/dri/r200_dri.so
#3  0xfffad7e8 in ?? ()
Cannot access memory at address 0x82474ff
(gdb) disassemble
Dump of assembler code for function _mesa_sse_transform_points2_3d_no_rot:
0x406106b8 <_mesa_sse_transform_points2_3d_no_rot>:     push   %esi
0x406106b9 <_mesa_sse_transform_points2_3d_no_rot+1>:   push   %edi
0x406106ba <_mesa_sse_transform_points2_3d_no_rot+2>:   mov    
0x14(%esp,1),%esi
0x406106be <_mesa_sse_transform_points2_3d_no_rot+6>:   mov    
0xc(%esp,1),%edi
0x406106c2 <_mesa_sse_transform_points2_3d_no_rot+10>:  mov    
0x10(%esp,1),%edx
0x406106c6 <_mesa_sse_transform_points2_3d_no_rot+14>:  mov    0x8(%esi),%ecx
0x406106c9 <_mesa_sse_transform_points2_3d_no_rot+17>:  test   %ecx,%ecx
0x406106cb <_mesa_sse_transform_points2_3d_no_rot+19>:
    je     0x4061073c <_mesa_sse_transform_points2_3d_no_rot+132>
0x406106cd <_mesa_sse_transform_points2_3d_no_rot+21>:  mov    0xc(%esi),%eax
0x406106d0 <_mesa_sse_transform_points2_3d_no_rot+24>:  orl    $0x7,0x14(%edi)
0x406106d4 <_mesa_sse_transform_points2_3d_no_rot+28>:  mov    %ecx,0x8(%edi)
0x406106d7 <_mesa_sse_transform_points2_3d_no_rot+31>:  movl   $0x3,0x10(%edi)
0x406106de <_mesa_sse_transform_points2_3d_no_rot+38>:  shl    $0x4,%ecx
0x406106e1 <_mesa_sse_transform_points2_3d_no_rot+41>:  mov    0x4(%esi),%esi
0x406106e4 <_mesa_sse_transform_points2_3d_no_rot+44>:  mov    0x4(%edi),%edi
0x406106e7 <_mesa_sse_transform_points2_3d_no_rot+47>:  add    %edi,%ecx
0x406106e9 <_mesa_sse_transform_points2_3d_no_rot+49>:  nop
0x406106ea <_mesa_sse_transform_points2_3d_no_rot+50>:  nop
0x406106eb <_mesa_sse_transform_points2_3d_no_rot+51>:  nop
0x406106ec <_mesa_sse_transform_points2_3d_no_rot+52>:  nop
0x406106ed <_mesa_sse_transform_points2_3d_no_rot+53>:  nop
0x406106ee <_mesa_sse_transform_points2_3d_no_rot+54>:  nop
0x406106ef <_mesa_sse_transform_points2_3d_no_rot+55>:  nop
0x406106f0 <_mesa_sse_transform_points2_3d_no_rot+56>:  nop
0x406106f1 <_mesa_sse_transform_points2_3d_no_rot+57>:  nop
0x406106f2 <_mesa_sse_transform_points2_3d_no_rot+58>:  nop
0x406106f3 <_mesa_sse_transform_points2_3d_no_rot+59>:  nop
0x406106f4 <_mesa_sse_transform_points2_3d_no_rot+60>:  nop
0x406106f5 <_mesa_sse_transform_points2_3d_no_rot+61>:  nop
0x406106f6 <_mesa_sse_transform_points2_3d_no_rot+62>:  nop
0x406106f7 <_mesa_sse_transform_points2_3d_no_rot+63>:  nop
0x406106f8 <_mesa_sse_transform_points2_3d_no_rot+64>:  nop
0x406106f9 <_mesa_sse_transform_points2_3d_no_rot+65>:  nop
0x406106fa <_mesa_sse_transform_points2_3d_no_rot+66>:  nop
0x406106fb <_mesa_sse_transform_points2_3d_no_rot+67>:  nop
0x406106fc <_mesa_sse_transform_points2_3d_no_rot+68>:  nop
0x406106fd <_mesa_sse_transform_points2_3d_no_rot+69>:  nop
0x406106fe <_mesa_sse_transform_points2_3d_no_rot+70>:  nop
0x406106ff <_mesa_sse_transform_points2_3d_no_rot+71>:  nop
0x40610700 <_mesa_sse_transform_points2_3d_no_rot+72>:  movss  0x0(%edx),%xmm1
0x40610705 <_mesa_sse_transform_points2_3d_no_rot+77>:  movss  
0x14(%edx),%xmm2
0x4061070a <_mesa_sse_transform_points2_3d_no_rot+82>:  unpcklps %xmm2,%xmm1
0x4061070d <_mesa_sse_transform_points2_3d_no_rot+85>:  movlps 
0x30(%edx),%xmm2
0x40610711 <_mesa_sse_transform_points2_3d_no_rot+89>:  movss  
0x38(%edx),%xmm3
0x40610716 <_mesa_sse_transform_points2_3d_no_rot+94>:  lea    0x0(%esi),%esi
0x40610719 <_mesa_sse_transform_points2_3d_no_rot+97>:  lea    
0x0(%edi,1),%edi
0x40610720 <_mesa_sse_transform_points2_3d_no_rot+104>: movlps 0x0(%esi),%xmm0
0x40610724 <_mesa_sse_transform_points2_3d_no_rot+108>: mulps  %xmm1,%xmm0
0x40610727 <_mesa_sse_transform_points2_3d_no_rot+111>: addps  %xmm2,%xmm0
0x4061072a <_mesa_sse_transform_points2_3d_no_rot+114>: movlps %xmm0,0x0(%edi)
0x4061072e <_mesa_sse_transform_points2_3d_no_rot+118>: movss  %xmm3,0x8(%edi)
0x40610733 <_mesa_sse_transform_points2_3d_no_rot+123>: add    $0x10,%edi
0x40610736 <_mesa_sse_transform_points2_3d_no_rot+126>: add    %eax,%esi
0x40610738 <_mesa_sse_transform_points2_3d_no_rot+128>: cmp    %ecx,%edi
0x4061073a <_mesa_sse_transform_points2_3d_no_rot+130>:
    jne    0x40610720 <_mesa_sse_transform_points2_3d_no_rot+104>
0x4061073c <_mesa_sse_transform_points2_3d_no_rot+132>: pop    %edi
0x4061073d <_mesa_sse_transform_points2_3d_no_rot+133>: pop    %esi
0x4061073e <_mesa_sse_transform_points2_3d_no_rot+134>: ret
0x4061073f <_mesa_sse_transform_points2_3d_no_rot+135>: nop
End of assembler dump.



-------------------------------------------------------
This sf.net email is sponsored by:
With Great Power, Comes Great Responsibility 
Learn to use your power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to