Re: [Dri-devel] Max texture size

2002-03-28 Thread Keith Whitwell

Ian Romanick wrote:
 
 On Wed, Mar 27, 2002 at 10:53:48PM +, Keith Whitwell wrote:
 
  Actually I think the test is correct, and that I was thinking of 16 bit
  textures plus a full set of mipmaps at the time.  Thus the numbers should be
  doubled in the 32 bit case, rather than halved for 16 as Leif was suggesting.
  (This is based on the idea that a full set of mipmaps packs perfectly to take
  up two times the size of the base texture).  That's also not true for all
  architectures...
 
 Ok, that explains a bit.  However, in some circumstances we may loose a
 level.  The mipmaps don't double the size, the only increase it by 1/3.
 Then there are architectures like MGA the can't use all 11 mipmaps.

The g400 can according to the docs, I just couldn't get it working...

Keith

___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



Re: [Dri-devel] Restoring DRM Library Device Independence

2002-03-28 Thread Mike Westall

To be a bit more specific the 2.4.x sound system now loads something
like (on my system)

  soundcore.o   ~ drm_core.o
  cs46xx.o  ~ drm_radeon.o
  (plus  codec modules)

Mike

Michael wrote:
 
 On Thu, Mar 28, 2002 at 10:13:04AM +, Keith Whitwell wrote:
  Linus is pretty clear that he'd only accept a single module per driver - ie a
  radeon.o, but not a drm_core.o + drm_radeon.o combo.
 
 He hasn't seen alsa or usb then...:)
 
 --
 Michael.
 
 ___
 Dri-devel mailing list
 [EMAIL PROTECTED]
 https://lists.sourceforge.net/lists/listinfo/dri-devel

___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



[Dri-devel] Re: Mach64 texture fix

2002-03-28 Thread Sergey V. Udaltsov

 I found that calls to TexParameter were not setting the texture wrapping 
 and texture filter in some cases (where the driver private texture object 
 struct had not already been allocated).  This is now fixed and solves the 
 following bugs:
Well done! It seems armagetron is really fixed.

Sergey

PS Just played my first Counter-Strike lunch-time match without
rebooting to WinME! No problems noticed at all (800x600). BTW, under
WinME/Win2000 people play in Software mode so it's only me who uses 3D
acceleration:). 
There were some problems with sounds - but it's wrong mailing list...:)


___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



Re: [Dri-devel] Restoring DRM Library Device Independence

2002-03-28 Thread David Dawes

On Thu, Mar 28, 2002 at 09:31:40AM +, Alan Hourihane wrote:
On Wed, Mar 27, 2002 at 07:22:40 -0700, Jens Owen wrote:

Also, we should be able to hide the type in the Linux os support and
not need to pass this ?

I've just taken a closer look at the xf86drmRadeon.c code, and in
drmRadeonCPStop we're issuing 3 ioctl's to flush, and idle the CP. 

Going down this road though, we'll be pushing that back into the 2d/3d code
which I don't think is the right way to go.

I'm thinking more of Jeff's solution now, and what we could do.

If we take a minimalist xf86drm.c which makes the libdrm.a loadable
module. Then within xf86drm.c we identify which sub-drm module to
load (i.e. the driver's libradeon_drm.a - or something like that) and
load it. For the *BSD's this code is a symlink from the Linux directory.

I'm losing track of what the goal was with the changes.  If it was
to remove hw-specifics from the libdrm.a module, then I think Jeff's
idea of pushing them into a separate HW-specific module is worth looking at.
By doing this, it might even be feasible to make libdrm.a part of the
(built-in) OS-support layer.

Stepping back a bit, the current model puts different types of
dependencies in different places.  The XFree86 video driver module
contains HW dependencies, but should have no OS dependencies.  The libdrm.a
module contains both HW and OS dependencies.  I guess the aim is to
separate that into the HW-dependent and HW-independent pieces?

One problem I had with simply changing the libdrm.a interfaces is
that it doesn't succeed in making that separation.  Something in
libdrm.a still needs to know how to translate a HW-specific command
into whatever is appropriate for the OS.  I.e, there's nothing
conceptually different between drmRadeonCPStop(args) and
drmCOMMAND(RADEON_CP_STOP, args), unless the token RADEON_CP_STOP
can be passed transparently to the HW+OS specific component that
will actually do the requested operation.

With Jeff's suggestion there would be several components:

  video driver module(HW specific, OS independent)
  core libdrm module (HW independent, OS specific, so part of core server?)
  HW libdrm module   (HW specific, OS specific)

The question this raises is what do we gain from this?  What would
actually be in the core libdrm module -- is there enough there to
justify separating out the HW-specific parts?

If the HW libdrm module could be made HW specific and OS independent,
then that would be a big win, and it could even be moved into the
video driver module in that case.  This would simplify things to
the point where the OS-specific parts are built-in to the X server
and the HW specific parts are all in the video driver module.

David
-- 
David Dawes
Senior X Architect  Tungsten Graphics, Inc
www.XFree86.org/~dawes  www.tungstengraphics.com

___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



Re: [Dri-devel] Restoring DRM Library Device Independence

2002-03-28 Thread Alan Hourihane

On Thu, Mar 28, 2002 at 10:35:16AM -0700, Jens Owen wrote:
 Alan Hourihane wrote:
  
  On Fri, Mar 22, 2002 at 08:03:29 -0700, Jens Owen wrote:
   Alan Hourihane wrote:
   
On Fri, Mar 15, 2002 at 08:38:20AM -0700, Jens Owen wrote:
 I would like to move the device dependent functionality currently
 included in the drm library back into the device driver layer.

 My objective is to make sure new driver suites can be independently
 released without stepping on any components needed by other driver
 suites.  Currently, libdrm contains a mixture of device independent code
 and multiple device dependent routines.

 I'm looking for a clean way to split this functionality and restore
 libdrm device independent, while still providing a mechanism for device
 specific IOCTL style support directly in device drivers.

 Could we simply add a drmIOCTL entry point to the DRM library?  Then,
 the packing and unpacking could be done in the drivers.  The Linux and
 BSD implementations would simply wrap the standard IOCTL and future OS
 ports of the DRI would have a layer, if needed, for emulating an IOCTL.

Jens,
   
This is definately a problem that needs sorting out. We certainly
need to put the driver specific calls into the 2D ddx portion, and
abstract some form of drmIOCTL for the os-support routines.
   
Please go ahead, and I'll certainly help out with this.
  
   Alan,
  
   Thanks for the feedback.  I plan to proceed on this next week.  Maybe
   you can verify it's portability on the BSD branch after I'm done.
  
  Actually, just a heads up. The bsd-3-0-0-branch is dead. forget this one.
  
  I'm doing whatever changes the BSD stuff needs on the trunk. They're
  going to be only minor changes now we've got the kernel modules in
  sync.
 
 Alan,
 
 As I get closer to having a prototype going, we will probably want some
 place other than the trunk to try this out; and possibly make sure the
 prototype works for BSD, I you want to do that.  I'd like to get the
 prototype working and verified portable before doing all the work of
 converting the huge number of device specific DRM extensions.
 
 I've been working from the tcl-0-0-branch code base, but we could make a
 new branch from the trunk if you'd prefer that.  Let me know if you plan
 on building and verifying the prototype under BSD.  If not, I'll
 probably just continue my work in the tcl-0-0-branch.
 
In the limited time I have at the moment, Yes. I'll help.

It'd be worth dragging Eric Anholt into this as he's been doing a
lot with this too.

Eric - are you reading this ?

Alan.

___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



Re: [Dri-devel] Restoring DRM Library Device Independence

2002-03-28 Thread Jens Owen

Alan Hourihane wrote:
 
 On Wed, Mar 27, 2002 at 07:22:40 -0700, Jens Owen wrote:

 I'll use the Linux DRM semantics which are:
 
  ( (direction)  30 | (size)  16 | (type)  8 | (request)  0 )
 
  where
 
direction is: 0 for none, 1 for write, 2 for read and 3 for both
size is: size of record to be transfered
type is: 'd' for DRM drivers
request is: our OS independent offset
 

Alan,

I've gotten away from this encode on the driver side.  We'll have four
drmCommand* entry points to identify direction.  Size is an explicit
parameter.  Type is embedded in the DRM os specific layer and is always
'd'.

 Doesn't the request identify it's direction ?

request is now an OS independent offset that goes from 0 to 0x3f, and
just identifies the DRM command.
 
 Also, we should be able to hide the type in the Linux os support and
 not need to pass this ?

Yes.
 
 I've just taken a closer look at the xf86drmRadeon.c code, and in
 drmRadeonCPStop we're issuing 3 ioctl's to flush, and idle the CP.
 
 Going down this road though, we'll be pushing that back into the 2d/3d code
 which I don't think is the right way to go.

Yes, there is a little more than packing and unpacking.  For large
routines, complicated routines, we could even share code between 2D and
3D drivers.  I'd rather see a few additional binary modules in the
existing 2D and 3D drivers than N*M new standalone modules, where N is
the number of drivers and M is the number of supported OS's.

 I'm thinking more of Jeff's solution now, and what we could do.
 
 If we take a minimalist xf86drm.c which makes the libdrm.a loadable
 module. Then within xf86drm.c we identify which sub-drm module to
 load (i.e. the driver's libradeon_drm.a - or something like that) and
 load it. For the *BSD's this code is a symlink from the Linux directory.
 
 We can already load a kernel module based on name via drmOpenByName,
 we could just implement another drmSubOpenByName command to load the sub
 module based on it's name.

If the submodule is OS dependent we get in to the N*M combinations,
problem.  If the submodule is OS independent, it might as well go into
the driver.
 
 We've also got easy backwards compatibility this way too.

-- /\
 Jens Owen/  \/\ _
  [EMAIL PROTECTED]  /\ \ \   Steamboat Springs, Colorado

___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



Re: [Dri-devel] Restoring DRM Library Device Independence

2002-03-28 Thread David Dawes

On Thu, Mar 28, 2002 at 02:28:26PM -0700, Jens Owen wrote:
David, Alan, Jeff and Kevin,

I understand you would prefer a class of modules that are both HW
specific and OS specific.  Currently, the number of OS's supporting the
DRM is 2; and the number of OS's the IHV's care about is 1 (linux x86 to
be specific).  So, there is no short term problem with persuing your
model of having an extra module for each HW and OS combination.

No, I'd prefer that the HW and OS specifics be separated as cleanly
and completely as possible.  I've just had some uncertainties about
how the solutions proposed so far achieve that.

It is the long term I'm concerned about.  If XFree86 aspires to have
good 3D support for more than just one or two OS's, then an extra module
for each HW and OS combination becomes a problem.

Agreed.

The drmCommand approach allows OS specifics and HW specifics to be
seperated and follows the excellent principle set by the 2D DDX driver. 
I have completely removed the Linux specifics from the drmCommand
interface.  Attached is my latest patch against the tcl-0-0-branch. 
Please let me know if you see any OS portability limitations in this
current interface.  If you see any portability limitations that can't be
fixed, I'll fall back and implement the 300+ combined HW and OS specific
sub module approach.

This assumes that using OS-independent tokens (like those below),
and any associated data structures, can be accepted by a HW-independent
layer (drmCOMMAND) and executed correctly.

I guess that if the HW-independent component is just a mechanism
for passing them transparently through to the kernel component (or
equivalent), then that is workable providing all different OS
implementations of the kernel component (for given HW) can accept
the same set of tokens and data structures.  What hadn't been clear
to me is whether that's possible/feasible.

I guess the HW dependencies in the current DRM library would be pushed
up into the video driver (and possibly down into the kernel module).

+/* Driver specific DRM command indices
+ * NOTE: these are not OS specific, but they are driver specific
+ */
+#define DRM_RADEON_CP_INIT0x00
+#define DRM_RADEON_CP_START   0x01
+#define DRM_RADEON_CP_STOP0x02
+#define DRM_RADEON_CP_RESET   0x03
+#define DRM_RADEON_CP_IDLE0x04
+#define DRM_RADEON_RESET  0x05
+#define DRM_RADEON_FULLSCREEN 0x06
+#define DRM_RADEON_SWAP   0x07
+#define DRM_RADEON_CLEAR  0x08
+#define DRM_RADEON_VERTEX 0x09
+#define DRM_RADEON_INDICES0x0a
+#define DRM_RADEON_STIPPLE0x0c
+#define DRM_RADEON_INDIRECT   0x0d
+#define DRM_RADEON_TEXTURE0x0e
+#define DRM_RADEON_VERTEX20x0f

David
--
David Dawes
Senior X Architect  Tungsten Graphics, Inc
www.XFree86.org/~dawes  www.tungstengraphics.com

___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



Re: [Dri-devel] Maya Testing on New Radeon Driver

2002-03-28 Thread Ian Romanick

On Thu, Mar 28, 2002 at 12:53:06PM -0800, Ian Romanick wrote:

 #0  0x4309fb0a in CreateContext (dpy=0x8075708, vis=0x0, shareList=0x0,
 allowDirect=1, contextID=0) at glxcmds.c:165
 #1  0x4309fc5d in glXCreateContext (dpy=0x8075708, vis=0x0, shareList=0x0,
 allowDirect=1) at glxcmds.c:206
 
 It dies because it dereferences vis, which is NULL.  The man page for
 glXCreateContext doesn't say anything about the expected behavior if vis is
 NULL.  Should it return NULL or ... ?

I worked around this problem by making CreateContext retun NULL if vis =
NULL.  This allows Maya to load.

The bad news is that it dies shortly thereafter with an assertion failure in
Mesa.  The only seems to happen when I re-size the window.  Maya seems to
expect 1280x1024, but I'm running @ 1152x864.  If I hit the maximize
button to shrink it to my screen, wham!

maya.bin: t_imm_api.c:328: _tnl_end: Assertion ctx-Driver.NeedFlush  0x1' failed

Program received signal SIGABRT, Aborted.
0x432b2d51 in __kill () from /lib/libc.so.6
(gdb) bt
#0  0x432b2d51 in __kill () from /lib/libc.so.6
#1  0x432b2acd in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2  0x432b4138 in abort () at ../sysdeps/generic/abort.c:88
#3  0x432ac179 in __assert_fail (
assertion=0x47040ff8 ctx-Driver.NeedFlush  0x1,
file=0x47040fa4 t_imm_api.c, line=328, function=0x47040fef _tnl_end)
at assert.c:74
#4  0x46fb3f37 in _tnl_end (ctx=0x890e1d0) at t_imm_api.c:328
#5  0x46fb4031 in _tnl_End () at t_imm_api.c:387

-- 
Tell that to the Marines!

___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel



[Dri-devel] Mach64: Artefacts on the right and bottom edge of the screen

2002-03-28 Thread Felix Kühling

Hi,

when I move a gl window to the right and/or bottom edge of the screen,
a one pixel wide line/row is not redrawn correctly. Sometimes parts of
previous frames remain visible and even hide new stuff. It looks to me
as if the z-buffer is not cleared in that line/row.

I can reproduce the problem with the xscreensaver circuit demo, quake2
without fullscreen and quake1. Probably more non-fullscreen apps which
draw till the edge of the window.

My color depth is 16 bits. I tried the resolutions 1152x864 and
1024x768. While I was experimenting with different color depths I saw
some more problems. With 24 bits I see everything like through a mesh,
but slightly different meshes in different parts of the screen. It is 
black in the beginning but it can be overwritten by very close objects 
like my own gun (sometimes) or the polygons drawn to flash the screen. 
So it may be z-buffer related as well. With 15 bits colors look 
strange. I guess the driver generates 16 bit colors and puts them on a 
15 bit screen. And in quake3 fullscreen the resolution is not changed. 
I just get a small quake3 window in the bottom left corner of a black 
screen. But that might be a problem in the Xvidmode extension, not the 
DRI.

With 15 bits I have the same artefacts on the right/bottom edge. With 
24 bits ... I can't tell ;-)

Regards,
 Felix

__\|/_____ ___ ___
__Tschüß___\_6 6_/___/__ \___/__ \___/___\___You can do anything,___
_Felix___\Ä/\ \_\ \_\ \__U___just not everything
  [EMAIL PROTECTED]o__/   \___/   \___/at the same time!




___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel