[Dri-devel] Re: Rainbow colors and AGP texturing (was radeon 320m and 3d problems)

2004-03-13 Thread John H.

sorry, I'm still waiting for someone to tell me exactly how I do what is described 
here, to stop getting the rainbow stuff.



Do i disable this in XF86Config or something?









 --- On Wed 03/10, Michel =?ISO-8859-1?Q?D=E4nzer?=  [EMAIL PROTECTED]  wrote:

From: Michel =?ISO-8859-1?Q?D=E4nzer?= [mailto: [EMAIL PROTECTED]

To: [EMAIL PROTECTED]

 Cc: [EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]

Date: Wed, 10 Mar 2004 13:18:20 +0100

Subject: Re: Rainbow colors and AGP texturing (was radeon 320m and 3d problems)



On Wed, 2004-03-10 at 12:24, Felix Kühling wrote:br On Mon,  8 Mar 2004 15:19:32 
-0500 (EST)br John H. [EMAIL PROTECTED] wrote:br br  well, your 
suggestion at least makes the speed ok with 800x600(which isn't that great)br  
br  however, the rainbow color thing is making it unplayable(I can't distinguish 
between players).  is there any way around that?br br I just remembered that I 
saw a similar problem on my Radeon 7500 thatbr seemed to be related to AGP 
texturing. With a normal radeon thebr workaround is to disable AGP textures using 
an environment variable.brbrNamely RADEON_GARTTEXTURING_FORCE_DISABLE.brbr 
However, with an IGP chip you don't have that choice.brbrYes, you do. Framebuffer 
and GART are still separate, even if both liebrin system RAM.brbrbr-- 
brEarthling Michel Dänzer  | Debian (powerpc), X and DRI developerbrLibre 
software enthusiast|   http://svcs.affero.net/rm.php?r=daenzerbrbr

___
No banners. No pop-ups. No kidding.
Introducing My Way - http://www.myway.com


---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] DRI-/Mesa-CVS is totally broken after Mesa update

2004-03-13 Thread Michel Dänzer
On Fri, 2004-03-12 at 20:34, Ian Romanick wrote:
 Jon Smirl wrote:
 
  Sorry I broke the DRI build, now I see what the problem is. When the Mesa is
  included in the DRI tree is it is using the DRM driver in the DRI tree. I didn't
  know that the DRI build would alter the Mesa include paths. 
 
 Ugh.  In the future, if people are going to do something that will alter 
 build processes, the ramifications need to be discussed and agreed upon 
 by other developers.  Silence != approval.  Stuff like this makes good 
 topics for the weekly IRC meetings. :)

Indeed.


  I have pile of changes ready that require simultaneous changes in 
  mesa and the drm driver. For me it would be much simpler to have the
  DRM driver and mesa in the same tree. I'm targeting this work to go
  into xserver, not xfree.

I don't see how that matters; same DRM. (BTW, the DRM in the DRI tree
isn't 'a copy', it's The Original(TM) :)

  But other people want to keep the DRM in the DRI tree. Doing this means I have
  to be careful about doing parallel check-ins to both trees. 

Which is a good thing, because it should help keep the interface clean.

  It also forces me to work in the DRI tree, a tree that I'm not using.
 
 I don't think anyone *really* wants to keep it in the DRI tree.  I think 
 most folks want it in its own tree.  

Yes. Once the userspace drivers have moved to the Mesa and X trees,
there won't be much more left anyway. :)

 Perhaps now would be a good time to forge ahead on that front as well.
 Dunno.

The sooner the better IMHO. Any takers?


-- 
Earthling Michel Dnzer  | Debian (powerpc), X and DRI developer
Libre software enthusiast|   http://svcs.affero.net/rm.php?r=daenzer



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] Re: Three proposed new generic DRM IOCTLs

2004-03-13 Thread Michel Dänzer
On Sat, 2004-03-13 at 04:54, Jon Smirl wrote:
 
 The code for the proposed IOCTLs is written and tested. They would be added one
 at a time. 

Do you have a patch for us to look at?


 3) BLANK - simple call to allow Vesa power management to blank the display.
 
 A fourth call will be a driver specific call for setting the video mode. I am
 implementing this by completely computing the register values needed to set the
 mode in user space. I then pass these as a struct to the IOCTL and the driver
 sets the mode. Doing it this way moves about 100K of code (in the radeon case vs
 framebuffer) out of the kernel and into user space.

Is the verification of the input data really that much smaller?

I still don't quite see the point of duplicating framebuffer device
functionality in the DRM...


-- 
Earthling Michel Dnzer  | Debian (powerpc), X and DRI developer
Libre software enthusiast|   http://svcs.affero.net/rm.php?r=daenzer



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: PCI MGA support (was Re: [Dri-devel] mga cvs changes)

2004-03-13 Thread Ville Syrjälä
On Fri, Mar 12, 2004 at 01:40:30PM -0800, Ian Romanick wrote:
 
 I want to initially support this by just disabling AGP texturing.  I 
 looked in the DRI driver, and it looks like this can be done with some 
 trivial changes in mga_xmesa.c.  Basically, the code just needs to 
 handle the case where serverInfo-agpTextureSize is 0.  The DDX driver 
 needs to be modified to detect PCI cards and do something smart there. 

I think the chip detection for the DRI driver should be in the DRM. I have 
this in my local Mesa 5 tree. I just added a new getparam ioctl that 
returns the PCI id. But since G450 PCI doesn't have a unique PCI id we'd
need something slightly different.

 I don't want to exclude the 
 possability of sourcing vertex data from on-card memory in the future.

The cards can't do this.

 MGADRIPciInit wouldn't be a complete duplication of MGADRIAgpInit 
 because I don't intend to (initially) support PCIGART.  Even when 
 PCIGART is supported, not all chips in the MGA family support it.  Is 
 the PCI G450 the only one?

I think so. G200 was the last chip to have a real PCI variant but none
of the chips can do scatter gather. I've never heard of PCI G400 or G550. 
Of course even AGP chips can use PCI transfers but that might only make  
sense for something like video capture.

Currently the DMA buffers are 64 kB but if we would reduce them to 
PAGE_SIZE we could perhaps support all PCI cards. The only problem is the 
primary buffer since it's 1 MB currently. And switching to PAGE_SIZE 
buffers might require even more space in the primary buffer. I haven't 
actually measured how full the buffers are typically...

-- 
Ville Syrjälä
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/


---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70alloc_id638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: PCI MGA support (was Re: [Dri-devel] mga cvs changes)

2004-03-13 Thread Ville Syrjälä
On Fri, Mar 12, 2004 at 03:39:50PM -0800, Alex Deucher wrote:
   As I recall the G450-PCI cards were just AGP chips with an agp to
  pci
   bridge.  Perhaps you need to hack up an agpgart driver for the
  bridge? 
   Also, for the pci g450, matrox only supported 3D on motherboards
  with
   intel chipsets for whatever reason.  
  
  If possible, I'd like to leave that until later.  Esp. since I don't 
  have any docs for that. :(
  
 
 You do now!  looks like PLX owns HiNT now and they have the databooks
 on their website.  according to this thread:
 http://marc.theaimsgroup.com/?l=dri-develm=102373024625910w=2
 the pci g540 uses the Hint HB1-SE33 bridge.  PLX bought HiNT and
 changes a few names:
 http://www.plxtech.com/products/hint/naming.htm
 but makes the specs available here:
 http://www.plxtech.com/products/hint/6152.asp

I just had a look at the docs and didn't see any mention of an address 
translation table :( Is the bridge only used because they needed to 
connect a 66Mhz AGP device to a 33MHz PCI bus?

-- 
Ville Syrjälä
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/


---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70alloc_id638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Re: Three proposed new generic DRM IOCTLs

2004-03-13 Thread Jon Smirl
--- Michel Dänzer [EMAIL PROTECTED] wrote:
 On Sat, 2004-03-13 at 04:54, Jon Smirl wrote:
  
  The code for the proposed IOCTLs is written and tested. They would be added
 one
  at a time. 
 
 Do you have a patch for us to look at?

I'll start sending the patches out if everyone is ok with the general concept.

 
 
  3) BLANK - simple call to allow Vesa power management to blank the display.
  
  A fourth call will be a driver specific call for setting the video mode. I
 am
  implementing this by completely computing the register values needed to set
 the
  mode in user space. I then pass these as a struct to the IOCTL and the
 driver
  sets the mode. Doing it this way moves about 100K of code (in the radeon
 case vs
  framebuffer) out of the kernel and into user space.
 
 Is the verification of the input data really that much smaller?

Yes. Big chunks of Benh's driver and the mode parts of fb can easily be moved to
user space. It only took a couple of days. Mode setting code is seldom used as
compared to an interrupt handler, this gives the space back for more important
things and eliminates the need to security audit the code. It's also much easier
to debug.

current radeonfb + fb + radeon is about 300Kb code

 I still don't quite see the point of duplicating framebuffer device
 functionality in the DRM...

I'm not really duplicating framebuffer. I took the framebuffer code and the DRM
code and merged them into a single driver. Then I'm moving everything I can out
of the kernel and into user space.

The goal is to provide an OpenGL stack which is capable of being the only
interface to the hardware. Doing this builds the graphics API at a very high
level. A high level API will let the hardware change transparent to the
software. For example SGI hardware does not have access to the framebuffer; PC
hardware with a similar architecture is coming soon. It also makes it easy for
ATI/Nvidia to provide monolithic driver stacks.

It's a path to providing more controlled access to the graphics hardware. Right
now we have a free for all when every app and device driver can just do what it
wants to the hardware. What if I am running X/DRI in one VT and another app that
does direct 3D drawing via the hardware on another VT. Does framebuffer preserve
the complete state of the hardware at VT switch?

Although I haven't written the code yet, I intend to add a output-only console
driver entry point to DRM. Since mode setting is now tracked through the DRM
driver it will be possible to display a kernel oops that occurs while running
xserver. This is something framebuffer can't currently do.

The state of graphics on Linux needs to move forward. Microsoft Longhorn is
going to ensure that every PC built in the future has capable graphic
coprocessor support. Don't think of this as 3D vs 2D, think of it as a switch
from dumb to intelligent hardware. There is a lot of complicated code to be
designed and written and we've got a year to do it if we're going to beat
Microsoft. Let's all work together to achieve this transition in Linux.

=
Jon Smirl
[EMAIL PROTECTED]

__
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com


---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Re: [Dri-users] Binary incompatibility breaks snapshots

2004-03-13 Thread Fritsch
Ian Romanick wrote:
[...]
Here an extract from my logfile:

(==) RADEON(0): Write-combining range (0xe000,0x200)
(II) RADEON(0): Wrote: rd=6, fd=58, pd=2
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenByBusid: Searching for BusID pci::01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 6, (OK)
drmOpenByBusid: drmOpenMinor returns 6
drmOpenByBusid: drmGetBusid reports pci::01:00.0
(II) RADEON(0): [drm] DRM interface version 1.2
(II) RADEON(0): [drm] created radeon driver at busid pci::01:00.0
(II) RADEON(0): [drm] added 8192 byte SAREA at 0xf296a000
(II) RADEON(0): [drm] mapped SAREA 0xf296a000 to 0x4227a000
(II) RADEON(0): [drm] framebuffer handle = 0xe000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(II) RADEON(0): [agp] Mode 0x1f000217 [AGP 0x8086/0x3340; Card 
0x1002/0x4c57]
(II) RADEON(0): [agp] 8192 kB allocated with handle 0x0001
(II) RADEON(0): [agp] ring handle = 0xd000
(II) RADEON(0): [agp] Ring mapped at 0x4227c000
(II) RADEON(0): [agp] ring read ptr handle = 0xd0101000
(II) RADEON(0): [agp] Ring read ptr mapped at 0x4237d000
(II) RADEON(0): [agp] vertex/indirect buffers handle = 0xd0102000
(II) RADEON(0): [agp] Vertex/indirect buffers mapped at 0x4237e000
(II) RADEON(0): [agp] GART texture map handle = 0xd0302000
(II) RADEON(0): [agp] GART Texture map mapped at 0x4257e000
(II) RADEON(0): [drm] register handle = 0xc010
(II) RADEON(0): [dri] Visual configs initialized
(II) RADEON(0): CP in BM mode
(II) RADEON(0): Using 8 MB GART aperture
(II) RADEON(0): Using 1 MB for the ring buffer
(II) RADEON(0): Using 2 MB for vertex/indirect buffers
(II) RADEON(0): Using 5 MB for GART textures
(II) RADEON(0): Memory manager initialized to (0,0) (1024,8191)
(II) RADEON(0): Reserved area from (0,768) to (1024,770)
(II) RADEON(0): Largest offscreen area available: 1024 x 7421
(II) RADEON(0): Will use back buffer at offset 0x60
(II) RADEON(0): Will use depth buffer at offset 0x78
(II) RADEON(0): Will use 23552 kb for textures at offset 0x90
(II) RADEON(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
   Solid filled rectangles
   8x8 mono pattern filled rectangles
   Indirect CPU to Screen color expansion
   Solid Lines
   Scanline Image Writes
   Offscreen Pixmaps
   Setting up tile and stipple cache:
   32 128x128 slots
   32 256x256 slots
   16 512x512 slots
(II) RADEON(0): Acceleration enabled
(==) RADEON(0): Backing store disabled
(==) RADEON(0): Silken mouse enabled
(II) RADEON(0): Using hardware cursor (scanline 770)
(II) RADEON(0): Largest offscreen area available: 1024 x 7413
(**) Option dpms
(**) RADEON(0): DPMS enabled
(II) RADEON(0): X context handle = 0x0001
(II) RADEON(0): [drm] installed DRM signal handler
(II) RADEON(0): [DRI] installation complete
(II) RADEON(0): [drm] Added 32 65536 byte vertex/indirect buffers
(II) RADEON(0): [drm] Mapped 32 vertex/indirect buffers
(II) RADEON(0): [drm] dma control initialized, using IRQ 11
(II) RADEON(0): [drm] Initialized kernel GART heap manager, 5111808
(II) RADEON(0): Direct rendering enabled

I can`t find somethin like:
(II) RADEON(0): [drm] Could not create dummy context
here is the output from glxinfo:libGL warning: 3D driver claims to not 
support visual 0x23
libGL warning: 3D driver claims to not support visual 0x24
libGL warning: 3D driver claims to not support visual 0x25
libGL warning: 3D driver claims to not support visual 0x26
libGL warning: 3D driver claims to not support visual 0x27
libGL warning: 3D driver claims to not support visual 0x28
libGL warning: 3D driver claims to not support visual 0x29
libGL warning: 3D driver claims to not support visual 0x2a
libGL warning: 3D driver claims to not support visual 0x2b
libGL warning: 3D driver claims to not support visual 0x2c
libGL warning: 3D driver claims to not support visual 0x2d
libGL warning: 3D driver claims to not support visual 0x2e
libGL warning: 3D driver claims to not support visual 0x2f
libGL warning: 3D driver claims to not support visual 0x30
libGL warning: 3D driver claims to not support visual 0x31
libGL warning: 3D driver claims to not support visual 0x32
X Error of failed request:  BadValue (integer parameter out of range for 
operation)
 Major opcode of failed request:  128 (XFree86-DRI)
 Minor opcode of failed request:  5 ()
 Value in failed request:  0x1e2
 Serial number of failed request:  28
 Current serial number in output stream:  28
[EMAIL PROTECTED]:~$ glxinfo
name of display: :0.0
libGL warning: 3D driver claims to not support visual 0x23
libGL warning: 3D driver claims to not support visual 0x24
libGL warning: 3D driver claims to not support visual 0x25
libGL warning: 3D driver claims to not support visual 0x26
libGL warning: 3D driver claims to not support 

Re: [Dri-devel] Re: Three proposed new generic DRM IOCTLs

2004-03-13 Thread Alan Cox
On Sad, 2004-03-13 at 16:35, Jon Smirl wrote:
 Yes. Big chunks of Benh's driver and the mode parts of fb can easily be moved to
 user space. It only took a couple of days. Mode setting code is seldom used as
 compared to an interrupt handler, this gives the space back for more important
 things and eliminates the need to security audit the code. It's also much easier
 to debug.

It does not remove the need to security audit the code. It makes the
mess slightly smaller if you get it wrong. You probably also want a
minimal set of mode setup code in the kernel so you can get back to a
known text mode configuration when a GUI server goes kaboom, or when the
user hits SAK (and SAK is mandatory for many secure configurations).

 software. For example SGI hardware does not have access to the framebuffer; PC
 hardware with a similar architecture is coming soon. It also makes it easy for
 ATI/Nvidia to provide monolithic driver stacks.

In graphics modes PC hardware with this property for SVGA modes goes
back as far as the IBM PS/2 - the 8514 was like this for example. 

 wants to the hardware. What if I am running X/DRI in one VT and another app that
 does direct 3D drawing via the hardware on another VT. Does framebuffer preserve
 the complete state of the hardware at VT switch?

It needs to yes. Although it doesn't neccessarily need to do it all in 
kernel mode.

 Although I haven't written the code yet, I intend to add a output-only console
 driver entry point to DRM. Since mode setting is now tracked through the DRM
 driver it will be possible to display a kernel oops that occurs while running
 xserver. This is something framebuffer can't currently do.

That makes sense, although because of the way the console layer works if
you have output you also have input - good news for kernel debugging
tools too.

 The state of graphics on Linux needs to move forward. Microsoft Longhorn is
 going to ensure that every PC built in the future has capable graphic
 coprocessor support. Don't think of this as 3D vs 2D, think of it as a switch
 from dumb to intelligent hardware. There is a lot of complicated code to be

Think of it as a repeat of the dumb 2D - smart 2D - oversmart 2D -
fairly dumb 2D/dump 3D ... continuing life cycle. The dumb-intelligent
thing is a cycle. The day the CPU is fast enough or parallel enough to
do fast 3D it'll eat the low end 3D video card market.

 designed and written and we've got a year to do it if we're going to beat
 Microsoft. Let's all work together to achieve this transition in Linux.

For high end hardware maybe. For the low end I actually expect we'll see
something different, probably from Intel first (since Intel is
continually trying to leverage die size for new features) which is on
CPU operations to do texture walk and basic effects. In other words
using the CPU to do the grunt work in the tight inner loops of the 3d
library. This makes a lot of sense in a low price environment where you
already have the framebuffer in CPU memory not over a PCI bus.

Also don't lose sight of the fact large numbers of Linux systems, and
probably a growing percentage over time will be phones, dvd players,
pda's, post PC systems and the like. I don't think anything in your
design is problematic here at all. It works fine for single mode, dumb
2D devices.


Alan



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] Re: Three proposed new generic DRM IOCTLs

2004-03-13 Thread Michel Dänzer
On Sat, 2004-03-13 at 17:35, Jon Smirl wrote:
 --- Michel Dnzer [EMAIL PROTECTED] wrote:
  On Sat, 2004-03-13 at 04:54, Jon Smirl wrote:
   
   A fourth call will be a driver specific call for setting the video mode. I
  am
   implementing this by completely computing the register values needed to set
  the
   mode in user space. I then pass these as a struct to the IOCTL and the
  driver
   sets the mode. Doing it this way moves about 100K of code (in the radeon
  case vs
   framebuffer) out of the kernel and into user space.
  
  Is the verification of the input data really that much smaller?
 
 Yes. Big chunks of Benh's driver and the mode parts of fb can easily be moved to
 user space. It only took a couple of days. Mode setting code is seldom used as
 compared to an interrupt handler, this gives the space back for more important
 things and eliminates the need to security audit the code. 

The security audit still needs to happen somewhere. Does the DRM code
validate the user data?

 It's also much easier to debug.

That I can imagine.


 It's a path to providing more controlled access to the graphics hardware. Right
 now we have a free for all when every app and device driver can just do what it
 wants to the hardware. 

I don't see what prevents that in your scheme.


 Although I haven't written the code yet, I intend to add a output-only console
 driver entry point to DRM. Since mode setting is now tracked through the DRM
 driver it will be possible to display a kernel oops that occurs while running
 xserver. This is something framebuffer can't currently do.

Actually it can, or at least it did at some point, been a while since
I've experienced a panic. :)


-- 
Earthling Michel Dnzer  | Debian (powerpc), X and DRI developer
Libre software enthusiast|   http://svcs.affero.net/rm.php?r=daenzer



---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Dri-devel] Three concepts for changing the way video works in Linux

2004-03-13 Thread Jon Smirl
Here's three more ideas I'm thinking about but I haven't written any code for...

First some terminology. We really have two consoles. There is the kernel console
that gets the printk output. Second is a user console that you can log into. 
Right now the fbconsole system maps these to the same place but they don't have
to be. The kernel console can go out a serial port, network, etc.

1) Use SysReq to get to kernel console. In this model the kernel console is
always active, it's just hidden. Hit SysReq and it appears. Hit an oops or panic
and it will appear too. The video driver has enough state information to make
this console appear no matter what mode the video hardware is in. Hit SysReq
again and it will disappear and your display will be back where you left it.
Extra points if you can get something like kdbg running on it.

2) Move the code implementing user console to user space. User console would
work via ptmx/pts like X terminals. There would be a process listening to the
pts device which would implement the terminal emulator, VT, etc and draw on the
video device. The process would always be running and be started from init. The
main purpose to this is that it becomes very easy to plug in multiple graphics
cards and build a multi-user box.

3) Turn multi-headed cards into two DRI devices that can be used independently.
Using item #2 a separate user could be logged into each head. If you own both
the primary and secondary device you could set a special mode on the primary
that would trigger merged fb and disable the secondary device.

These are just concepts right now. If you've got ideas on how to improve on
these let me know.

A fourth concept which has already been heavily discussed is making OpenGL the
primary graphics API. OpenGL can be quite small, OpenGL-ES is already shipping
on some phones. Just to recap OpenGL/xserver is a response to Windows Longhorn.
It is also a high level API that allows graphics hardware to grow more
intelligent without disrupting the top level API.

--- Alan Cox [EMAIL PROTECTED] wrote:
 It does not remove the need to security audit the code. It makes the
 mess slightly smaller if you get it wrong. You probably also want a
 minimal set of mode setup code in the kernel so you can get back to a
 known text mode configuration when a GUI server goes kaboom, or when the
 user hits SAK (and SAK is mandatory for many secure configurations).

Are these needs addressed by the concepts above?

  wants to the hardware. What if I am running X/DRI in one VT and another app
  that does direct 3D drawing via the hardware on another VT. Does framebuffer
  preserve the complete state of the hardware at VT switch?
 
 It needs to yes. Although it doesn't necessarily need to do it all in 
 kernel mode.

There is another solution. By using DRM/OpenGL as the core API and single driver
there is no need to save the hardware state at VT switch. The only reason ww
have the state saving problem on VT switch is because we are trying to multitask
two device drivers and some user apps all trying to directly use the hardware.
Moving to a single device driver and blocking user space access to the hardware
will allow the hardware state to be managed. The other choice is like VMware
where we create a virtual Radeon device.

 For high end hardware maybe. For the low end I actually expect we'll see
 something different, probably from Intel first (since Intel is
 continually trying to leverage die size for new features) which is on
 CPU operations to do texture walk and basic effects. In other words
 using the CPU to do the grunt work in the tight inner loops of the 3d
 library. This makes a lot of sense in a low price environment where you
 already have the framebuffer in CPU memory not over a PCI bus.
 
 Also don't lose sight of the fact large numbers of Linux systems, and
 probably a growing percentage over time will be phones, dvd players,
 pda's, post PC systems and the like. I don't think anything in your
 design is problematic here at all. It works fine for single mode, dumb
 2D devices.

This is true. Software Mesa can completely emulate everything and just use a
dumb framebuffer for output. The DRM driver for a dumb framebuffer is pretty
simple to write. For the smallest possible system restrict yourself to
OpenGL-ES, statically link to the software Mesa version of it and use a dumb
frame buffer driver. You'll end up with an app the same size as if you used
SVGAlib.



=
Jon Smirl
[EMAIL PROTECTED]

__
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com


---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___

[Dri-devel] drm:i830_wait_ring

2004-03-13 Thread Patrick Dohman
I have been able to reproduce several x server crashes by killing a
process from tty 1,2 or 3 that is running on tty5 this crash occurs
after killing a variety of process such as evolution and mozilla and
then attempting to switch to tty5 from tty 1,2 or 3. I am running 
XFree86 Version 4.3.0 (DRI mach64-0-0-6-branch) on Linux version
2.4.24(gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7))

The errors printed to the terminal are below.
 

[drm:i830_wait_ring] *ERROR* space: 131048 wanted 131064 
[drm:i830_wait_ring] *ERROR* lockup 

Thank you
Patrick





---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
--
___
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Dri-devel] Three concepts for changing the way video works in Linux

2004-03-13 Thread Keith Packard

Around 18 o'clock on Mar 13, Jon Smirl wrote:

 This is true. Software Mesa can completely emulate everything and just use a
 dumb framebuffer for output. The DRM driver for a dumb framebuffer is pretty
 simple to write. For the smallest possible system restrict yourself to
 OpenGL-ES, statically link to the software Mesa version of it and use a dumb
 frame buffer driver. You'll end up with an app the same size as if you used
 SVGAlib.

Everything above sounded like a really cool plan, but I'm not sure about 
this part.  For devices which don't really want to support GL (think 
Tivo), I suggest that we don't want to layer graphics atop this 
inappropriate API.

While real computers move to 3D-only graphics hardware, I imagine the 
low end will continue to be populated by nasty little 2D accelerators, and 
I'm sure some of those will end up running X (or other existing 2D 
environments).

I suspect we'll need a primitive 2D API that can be used by your user-mode 
console program and a primitive X server, and then permit graphics driver 
writers to extend that in whatever weird way they want to get their video 
overlays or cell-phone UI running.

-keith




pgp0.pgp
Description: PGP signature


Re: [Dri-devel] Re: Three proposed new generic DRM IOCTLs

2004-03-13 Thread Jon Smirl
This is a first pass at the three new IOCTL patch.

It is against the DRM copy in the Mesa tree. Building DRM from mesa works fine.
It includes the radeon mode setting IOCTL.

1) It is 2.6 only since it has sysfs and hotplug support. I will need to add
ifdef's to remove these on 2.4.
2) It uses the kernel to bind the DRM driver to the video device. This will make
it conflict with framebuffer. You will have to uninstall framebuffer before it
can be loaded. The kernel does not allow two device drivers to bind to the same
device. (DRM currently functions by accessing the device without telling the
kernel it is going to do so).

Next pass I will add ifdef's on the kernel device binding. If you turn off
kernel device binding you will also lose sysfs support and hotplug reset
support. Since there is no sysfs support you won't get EDID in sysfs and mode
setting won't work.

To test hotplug reset add a link in /etc/hotplug.d/dri called
video-reset.hotplug to the video-reset program in the mesa tree. It is smart
enough to only reset an adapter if it needs to be reset. I've only checked this
with radeons but it should work with other secondary cards. The video-reset
program will use the GET_VBIOS and VGA_ENABLE ioctls.

You need the eeprom module modprobed in to see the edid data. I have user space
routines that read the data from sysfs and compute the right register values to
send to the ioctl but it's not checked in yet.

=
Jon Smirl
[EMAIL PROTECTED]

__
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com

patch.bz2
Description: patch.bz2