snapshot 20050610 [i810]

2005-06-16 Thread Christian Marquardt
I'm not sure if this is a bug in the snapshot or due to my setup...

I have a Samsung X20 with an Intel i915GM graphics chip running under
Mandrake LE2005. The latter has a 2.6.11 kernel and Xorg 6.8.2.

I have installed both the common-20050610 and i810-20050610 snapshots
over the X.org distribution as provided by Mandrake. After that, the
graphics card is recognised, and I can run X with the i810 driver.
This wasn't possible with the original Mandrake setup.

When running tuxracer, however, an (error) message saying

   Unrecognized deviceID 2592

(or similar; I'm typing this from memory) is issued. The graphics then
is extremely slow, so I assume that the hardware acceleration doesn't
work (?). I have found the same (hex) device ID at the end of
drm_pciids.h, where it is part of the definition for i915_PCI_IDS.

Where does the error message from, and what would I have to fix to get
this going?

Thank you very much, and kind regards,

   Christian.


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: snapshot 20050610 [i810]

2005-06-16 Thread Alan Hourihane
On Thu, Jun 16, 2005 at 11:21:52 +0100, Christian Marquardt wrote:
 I'm not sure if this is a bug in the snapshot or due to my setup...
 
 I have a Samsung X20 with an Intel i915GM graphics chip running under
 Mandrake LE2005. The latter has a 2.6.11 kernel and Xorg 6.8.2.
 
 I have installed both the common-20050610 and i810-20050610 snapshots

You've picked the wrong snapshot for the i915GM chip.

You need i915-20050610 instead of i810-20050610.

Alan.


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [R300-commit] r300_driver/r300 r300_reg.h,1.44,1.45 r300_state.c,1.112,1.113

2005-06-16 Thread Nicolai Haehnle
On Thursday 16 June 2005 13:41, Aapo Tahkola wrote:
 Update of /cvsroot/r300/r300_driver/r300
 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6333
 
 Modified Files:
   r300_reg.h r300_state.c 
 Log Message:
 Use depth tiling.

Will this work with software fallbacks?

cu,
Nicolai


pgpV14VXQ7uoa.pgp
Description: PGP signature


[Bug 3549] New: drm power management does not dereference sysdev correctly

2005-06-16 Thread bugzilla-daemon
Please do not reply to this email: if you want to comment on the bug, go to
   
the URL shown below and enter yourcomments there. 
   
https://bugs.freedesktop.org/show_bug.cgi?id=3549  
 
   Summary: drm power management does not dereference sysdev
correctly
   Product: DRI
   Version: DRI CVS
  Platform: Other
OS/Version: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: DRM modules
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: [EMAIL PROTECTED]


In linux-core drm_pm.c, CVS version 1.1, the drm_pm_setup function registers 
the drm device's sysdev field with the power manager, but when the drm_suspend 
or drm_resume functions are called, the functions think that they have received 
a drm_device ptr, and not a power management sys_device ptr, and perform an 
incorrect typecast. They dereference the sys_device as if it were a drm_device, 
get an invalid value for the drm driver field, and go off into the weeds. 
 
Another issue is that Linux kernel 2.6.11 (?) has changed the argument that it 
passes to power management functions from an unsigned int to a pm_message_t 
struct. 
 
The attached patch fixes this behavior using a union struct, and also makes 
drm_pm.c and drmP.h compatible with the new style pm_message_t arguments. 
Unfortunately it doesn't preserve backward compatibility with older kernels.  
 
Index: drmP.h 
=== 
RCS file: /cvs/dri/drm/linux-core/drmP.h,v 
retrieving revision 1.147 
diff -c -r1.147 drmP.h 
*** drmP.h  4 Jun 2005 06:18:10 -   1.147 
--- drmP.h  16 Jun 2005 13:09:59 - 
*** 
*** 515,520  
--- 515,534  
struct task_struct *task; 
  } drm_vbl_sig_t; 
   
+  
+ /** 
+  * union struct that can either be a PM sys_device or a drm_sys_device 
+  */ 
+ typedef struct drm_sysdev { 
+   struct sys_devicesysdev; 
+   struct drm_device*   dev; 
+ } drm_sysdev_t; 
+  
+ union drm_sysdev_data { 
+   struct sys_device sysdev; 
+   struct drm_sysdev drmdev; 
+ }; 
+  
  /** 
   * DRM driver structure. This structure represent the common code for 
   * a family of cards. There will one drm_device for each card present 
*** 
*** 723,729  
drm_local_map_t *agp_buffer_map; 
drm_head_t primary; /** primary screen head */ 
   
!   struct sys_device sysdev;   /** Power Management device structure 
*/ 
int sysdev_registered;  /** Whether the device has been 
registered */ 
  } drm_device_t; 
   
--- 737,743  
drm_local_map_t *agp_buffer_map; 
drm_head_t primary; /** primary screen head */ 
   
! union drm_sysdev_data  sysdev;  /** union PM structure */ 
int sysdev_registered;  /** Whether the device has been 
registered */ 
  } drm_device_t; 
   
Index: drm_pm.c 
=== 
RCS file: /cvs/dri/drm/linux-core/drm_pm.c,v 
retrieving revision 1.1 
diff -c -r1.1 drm_pm.c 
*** drm_pm.c28 May 2005 00:00:08 -  1.1 
--- drm_pm.c16 Jun 2005 13:09:59 - 
*** 
*** 36,56  
  #include linux/device.h 
  #include linux/sysdev.h 
   
! static int drm_suspend(struct sys_device *sysdev, u32 state) 
  { 
!   drm_device_t *dev = (drm_device_t *)sysdev; 
!
!   DRM_DEBUG(%s state=%d\n, __FUNCTION__, state); 
 
  if (dev-driver-power) 
!   return dev-driver-power(dev, state); 
else 
return 0; 
  } 
   
  static int drm_resume(struct sys_device *sysdev) 
  { 
!   drm_device_t *dev = (drm_device_t *)sysdev; 
 
DRM_DEBUG(%s\n, __FUNCTION__); 
 
--- 36,60  
  #include linux/device.h 
  #include linux/sysdev.h 
   
! static int drm_suspend(struct sys_device *sysdev, pm_message_t state) 
  { 
!  
! int event; 
!  
! drm_device_t *dev = ((drm_sysdev_t *) sysdev)-dev; 
!   event = state.event; 
 
+   DRM_DEBUG(%s state=%d\n, __FUNCTION__, event); 
+  
  if (dev-driver-power) 
!   return dev-driver-power(dev, event); 
else 
return 0; 
  } 
   
  static int drm_resume(struct sys_device *sysdev) 
  { 
!   drm_device_t *dev = ((drm_sysdev_t *) sysdev)-dev; 
 
DRM_DEBUG(%s\n, __FUNCTION__); 
 
*** 
*** 79,91  
 
DRM_DEBUG(%s\n, __FUNCTION__); 
 
!   dev-sysdev.id = dev-primary.minor; 
!   dev-sysdev.cls = drm_sysdev_class; 
   
  #if LINUX_VERSION_CODE  KERNEL_VERSION(2,6,4) 
!   error = sys_device_register(dev-sysdev); 
  #else 
!   error = sysdev_register(dev-sysdev); 
  #endif 
if(!error) 
dev-sysdev_registered = 1; 
--- 83,96  
 
DRM_DEBUG(%s\n, 

[Bug 3549] drm power management does not dereference sysdev correctly

2005-06-16 Thread bugzilla-daemon
Please do not reply to this email: if you want to comment on the bug, go to
   
the URL shown below and enter yourcomments there. 
   
https://bugs.freedesktop.org/show_bug.cgi?id=3549  
 




--- Additional Comments From [EMAIL PROTECTED]  2005-06-16 06:22 ---
Created an attachment (id=2896)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=2896action=view)
Fix incorrect argument passing in pm callback
  
 
 
--   
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email 
 
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Vladimir Dergachev



On Thu, 16 Jun 2005, Jon Smirl wrote:


On 6/16/05, Keith Whitwell [EMAIL PROTECTED] wrote:

But, if you implement your scheme, by the same logic you need another
512mb of system ram just to make things work.  If you've got all that
extra ram hanging around, you could implement the single copy scheme and
when a suspend occurs, pull the vram back to that extra system ram
(which you would have needed anyway), rather than going to disk.


The only way to preserve the VRAM contents across suspend/VT swap is
to copy it to system RAM. The fbdev drivers can do this, but they
don't know what is important in VRAM and what can be regenerated so
they just have to copy the whole 512MB (15 seconds).

The DRM drivers know what is important but they don't know when
suspend/VT swap is happening because there is only one set of kernel
hooks and the fbdev driver is attached to them. The scheme where a


Stupid question - why can't one add a call to fb to register additional 
suspend/resume hooks ? This should not be too controversial.


  best

 Vladimir Dergachev


texture copy is kept in system RAM doesn't depend on the DRM driver
having suspend/VT swap hooks since it is able to rebuild VRAM at any
point.

So, given the way things are now, we have to pick one of the first two
choices. Doing anything else (like doing a minimal copy out of VRAM)
requires the drivers to be linked. Too many people are opposed to
merging DRM/fbdev for that to happen.

--
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel




---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Vladimir Dergachev [EMAIL PROTECTED] wrote:
 
 
 On Thu, 16 Jun 2005, Jon Smirl wrote:
 
  On 6/16/05, Keith Whitwell [EMAIL PROTECTED] wrote:
  But, if you implement your scheme, by the same logic you need another
  512mb of system ram just to make things work.  If you've got all that
  extra ram hanging around, you could implement the single copy scheme and
  when a suspend occurs, pull the vram back to that extra system ram
  (which you would have needed anyway), rather than going to disk.
 
  The only way to preserve the VRAM contents across suspend/VT swap is
  to copy it to system RAM. The fbdev drivers can do this, but they
  don't know what is important in VRAM and what can be regenerated so
  they just have to copy the whole 512MB (15 seconds).
 
  The DRM drivers know what is important but they don't know when
  suspend/VT swap is happening because there is only one set of kernel
  hooks and the fbdev driver is attached to them. The scheme where a
 
 Stupid question - why can't one add a call to fb to register additional
 suspend/resume hooks ? This should not be too controversial.

Because x86 users don't want fbdev loaded. They use VGA console instead.

I had code in DRM that looked for fbdev, and then if fbdev wasn't
loaded DRM would register it resources, hook to interrupts, suspend,
etc. But the patches were rejected by the kernel people.

Another proposal is to write a third stub driver. This driver would
hook to the ints, suspend, etc. Then DRM and fbdev would register with
it. This would work but nobody wants to fix 67 fbdev drivers to use
it.

There is also kickback from the BSD people. There is a bunch of code
duplicated between fbdev and DRM. The copy in DRM can be removed and
fbdev called, but BSD doesn't have fbdev.

-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Philip Armstrong [EMAIL PROTECTED] wrote:
 On Thu, Jun 16, 2005 at 11:49:41AM -0400, Jon Smirl wrote:
  Another proposal is to write a third stub driver. This driver would
  hook to the ints, suspend, etc. Then DRM and fbdev would register with
  it. This would work but nobody wants to fix 67 fbdev drivers to use
  it.
 
 If a new architecture gets buy-in from the assorted developers, then
 the conversion can be done incrementally (ie one driver at a time)
 can't it? There shouldn't be a need for a flag day. Please enlighten
 me if there's some reason why converting the radeon fbdev / drm
 drivers might depend on whether the rest of fbdev has been converted
 or not!
 
  There is also kickback from the BSD people. There is a bunch of code
  duplicated between fbdev and DRM. The copy in DRM can be removed and
  fbdev called, but BSD doesn't have fbdev.
 
 Can that code not be moved into the BSD-specific drm directory as part
 of the above refactoring?
 
 ISTR that you'd done some of this already Jon. Is that code actually
 available anywhere?

There are no technical problems with doing any of this, it is just
that nobody wants to do the work.

We shouldn't change the fbdev architecture without at least having
someone on the hook for changing all of the drivers. You don't want to
convert ten and not the others, then we effectively have two fbdev
systems to maintain.

My opinion is to just leave fbdev alone and tap into the existing
drivers. Splitting all those drivers on all those platforms just isn't
going to happen.

-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 3552] New: i810 DRM module does not initialize

2005-06-16 Thread bugzilla-daemon
Please do not reply to this email: if you want to comment on the bug, go to
   
the URL shown below and enter yourcomments there. 
   
https://bugs.freedesktop.org/show_bug.cgi?id=3552  
 
   Summary: i810 DRM module does not initialize
   Product: DRI
   Version: DRI CVS
  Platform: PC
OS/Version: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: DRM modules
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: [EMAIL PROTECTED]


The i810 module from the 2005-05-30 DRI CVS snapshot does not initialise
properly with these error messages:

[drm] Initialized drm 1.0.0 20040925
[drm:fill_in_dev] *ERROR* Cannot initialize the agpgart module.
DRM: Fill_in_dev failed.

However, the intel-agp module was loaded previously and initialized 
successfully:

agpgart: Detected an Intel i810 DC100 Chipset.
agpgart: Maximum main memory to use for agp memory: 148M
agpgart: detected 4MB dedicated video ram.
agpgart: AGP aperture is 32M @ 0xe600

Looks like the problem is that the drm_device_is_agp() test fails, therefore DRM
does not even attempt to initialize AGP.  The builtin i810 graphics device does
not advertize the AGP capability:

:00:00.0 Host bridge: Intel Corporation 82810 DC-100 GMCH [Graphics Memory
Controller Hub] (rev 02)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast TAbort- TAbort-
MAbort+ SERR- PERR-
Latency: 0

:00:01.0 VGA compatible controller: Intel Corporation 82810 DC-100 CGC
[Chipset Graphics Controller] (rev 02) (prog-if 00 [VGA])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium TAbort-
TAbort- MAbort- SERR- PERR-
Latency: 0
Interrupt: pin A routed to IRQ 11
Region 0: Memory at e600 (32-bit, prefetchable)
Region 1: Memory at e480 (32-bit, non-prefetchable) [size=512K]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-  
 
 
--   
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email 
 
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 3552] i810 DRM module does not initialize

2005-06-16 Thread bugzilla-daemon
Please do not reply to this email: if you want to comment on the bug, go to
   
the URL shown below and enter yourcomments there. 
   
https://bugs.freedesktop.org/show_bug.cgi?id=3552  
 




--- Additional Comments From [EMAIL PROTECTED]  2005-06-16 11:23 ---
It never fails to amaze me how close-but-not-quite-there the Intel graphics
hardware is.  The i8XX / i9XX graphics chips are obviously AGP, but they don't
have the AGP attribute set in their PCI information.  The i810 (and almost
certainly the deprecated i830) DRM will need a patch similar to what's in the
i915 DRM.  Search for i915_driver_device_is_agp in the i915 DRM and add
something similar to the i810 (and i830?) driver.

Do other integrated graphics chipsets have this problem?

If nobody gets to it first, I should be able to whip up a patch in a couple 
days.
  
 
 
--   
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email 
 
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[R300] radeon 9800 lockup : guilty reg list

2005-06-16 Thread Jerome Glisse
Hi,

After launching several times flgrx and dumping the reg
and diffing against what was reg with r300 here is the list
of reg that have always on my card (RV350NJ) the same
value (for the same screen resolution). I think that one
of the unknown reg maybe a group of them are the key
one but anyway i wasn't able to write to most of this reg.
They may are read only thus i tried writing random things
in register near them but i only succeed to lockup  the card
and the reg i was interested in didn't change.

Thus if anyone got any info on any of this reg, some must
be in old radeon spec but i haven't this specs and don't
understand from their name what they do (not all :)).

Maybe dumping value that fglrx set in this reg on other
card could be usefull

For the know reg i have put their name either taken
from xorg reg list of from fb radeon one. The second
value is what fglrx set in them r300 value is different.

0x0030  0x5133a3a0  RADEON_BUS_CNTL
0x0044  0x00080007  RADEON_GEN_INT_STATUS
0x0148  0xf000  RADEON_MC_FB_LOCATION
0x014c  0xfdfffc00  RADEON_MC_AGP_LOCATION
0x0224  0x0a00  RADEON_CRTC_OFFSET
0x023c  0xf000  DISPLAY_BASE_ADDR (fb radeon)
0x0260  0x0050  RADEON_CUR_OFFSET
0x033c  0xf000  CRTC2_DISPLAY_BASE_ADDR (fb radeon)
0x03f8  0x0480  RADEON_CRTC2_GEN_CNTL
0x0700  0xf0001000  RADEON_CP_RB_BASE
0x0704  0x00080f11  RADEON_CP_RB_CNTL
0x0738  0x  RADEON_CP_IB_BASE
0x078c  0x  ?? (near SCRATCH_ADDR SCRATCH_UMSK fb radeon)
0x07d0  0x401f  ??
0x0f0c  0x0080ff04  RADEON_CACHE_LINE (PCI use setpci latency_timer)
0x1698  0x0019  ??
0x16c8  0x00f0  RADEON_DP_MIX
0x16e0  0x143c  RADEON_DEFAULT_OFFSET
0x1724  0x0003  RADEON_CACHE_CNTL
0x2080  0x00240455  ??
0x3400  0x00f0  ?? HEAD 1 ?
0x3424  0x00f00d60  ?? HEAD 1 ? (near RB2D_DSTCACHE_MODE 0x3428 
RB2D_DSTCACHE_CTLSTAT 0x342C fb radeon)
0x3448  0x0076848f  ?? HEAD 1 ?
0x3600  0x00f0  ?? HEAD 2 ?
0x3624  0x00f00d60  ?? HEAD 2 ?
0x3648  0x0076848f  ?? HEAD 2 ?

Jerome Glisse


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 3552] i810 DRM module does not initialize

2005-06-16 Thread bugzilla-daemon
Please do not reply to this email: if you want to comment on the bug, go to
   
the URL shown below and enter yourcomments there. 
   
https://bugs.freedesktop.org/show_bug.cgi?id=3552  
 

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Additional Comments From [EMAIL PROTECTED]  2005-06-16 12:58 ---
Fixed in the CVS as per the i915 patches.   
 
 
--   
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email 
 
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Dave Airlie

 Three tiers is fine with me and I've never been against it. But we've
 only been talking about this for two years now and no one has stepped
 up to fix 67 fbdev drivers - I'm sure not going to it. I don't want to
 wait another two years to build Xegl so I'm trying to come up with
 some way around the problems.

You don't need to fix the 67 drivers, I dropped Alan Cox's idea of
vga_class on its arse after I did a full investigation on it (I did a fair
bit of work on it before I dismissed it...)

I have on my PC somewhere attempt 2 (but I think I lost if in all my
bitkeeper vs git trees), that uses a video_lowlayer.c module that doesn't
bind to anything, but a lowlevel radeon driver links against it, and
registers its handlers for everything (kinda like the DRM does now), then
fbdev and DRM sit on top of it/lowlevel radeon, it looked like a good
idea, but it still needs a bit more investigation.. we haven't been
sitting on our hands on this, I just happen to have 0 time and benh is
working on things which although aren't as cool are needed just as much
(the VGA arbiter)..

I'm also trying to prove architecture with respect to Intel chipsets if I
can so at least it might have a hope of moving beyond radeon... (but a
memory manager becomes more of an issue with Intel chipsets which share
RAM via AGP...)

Dave.

-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Dave Airlie [EMAIL PROTECTED] wrote:
 
  Three tiers is fine with me and I've never been against it. But we've
  only been talking about this for two years now and no one has stepped
  up to fix 67 fbdev drivers - I'm sure not going to it. I don't want to
  wait another two years to build Xegl so I'm trying to come up with
  some way around the problems.
 
 You don't need to fix the 67 drivers, I dropped Alan Cox's idea of
 vga_class on its arse after I did a full investigation on it (I did a fair
 bit of work on it before I dismissed it...)
 
 I have on my PC somewhere attempt 2 (but I think I lost if in all my
 bitkeeper vs git trees), that uses a video_lowlayer.c module that doesn't
 bind to anything, but a lowlevel radeon driver links against it, and
 registers its handlers for everything (kinda like the DRM does now), then
 fbdev and DRM sit on top of it/lowlevel radeon, it looked like a good
 idea, but it still needs a bit more investigation.. we haven't been
 sitting on our hands on this, I just happen to have 0 time and benh is
 working on things which although aren't as cool are needed just as much
 (the VGA arbiter)..
 
 I'm also trying to prove architecture with respect to Intel chipsets if I
 can so at least it might have a hope of moving beyond radeon... (but a
 memory manager becomes more of an issue with Intel chipsets which share
 RAM via AGP...)

I just think this is a giant amount of work to save 70K of memory (by
allowing a setup which avoids loading fbdev) on desktop x86 machines.
It is much simpler to just treat fbdev as the bottom layer and have
two tiers instead of three.

Wouldn't it be easier to just debug the 12 fbdev drivers that have
corresponding DRM drivers to load on the x86? We started doing that
with radeon and found two bugs, one was fixed in 24hrs and the other
there is insufficient info about the specific laptop model to know
what is failing. It's not like the 12 fbdev drivers are chock full of
bugs, they are used routinely on other platforms.

Even if you move the suspend/resume code from fbdev down to a lower
common layer, it's still going to need debugging.

If memory is critical there are other ways to reduce it. I just
removed 10K from fbdev by moving softcursor support into fbconsole
since fbconsole was the only possible user of it. I'll bet there is at
least 10K of duplicated code in radeon/radeonfb.

Other than saving 70K of memory for x86 users who don't want fbdev,
what does a three tier scheme get us?

-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Dave Airlie

 I just think this is a giant amount of work to save 70K of memory (by
 allowing a setup which avoids loading fbdev) on desktop x86 machines.
 It is much simpler to just treat fbdev as the bottom layer and have
 two tiers instead of three.

 Wouldn't it be easier to just debug the 12 fbdev drivers that have
 corresponding DRM drivers to load on the x86? We started doing that
 with radeon and found two bugs, one was fixed in 24hrs and the other
 there is insufficient info about the specific laptop model to know
 what is failing. It's not like the 12 fbdev drivers are chock full of
 bugs, they are used routinely on other platforms.

You haven't seen intelfb then, it is a train wreck of code and I've no
idea if it works on most chipsets, it certainly will blow up with wierd
BIOS configs and funny screen, I won't load it on any platform as-is..

it mainly gives us
a) some semblance of backwards compatibility for people
who don't want their system to break when fbdev is loaded but do want a
DRM..
b) a step by step path forward as opposed to big breakage path,
1. make radeon fbdev sit on top of stub driver do nothing with
drm.  - merge to kernel test it, make sure nothing breaks..
2. start hooking radeon DRM into mix, but only small things, merge
to kernel, prove nothing breaks..
3. next step etc..

Us kernel people like to have a lots of merge to kernel points where we
add no new functionality just scaffolding but make sure we don't remove
any either... its like building anything, you can't call scaffolding a
waste of time even though you might remove it all in the end...

Dave.

-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Vladimir Dergachev

there is insufficient info about the specific laptop model to know
what is failing. It's not like the 12 fbdev drivers are chock full of
bugs, they are used routinely on other platforms.


You haven't seen intelfb then, it is a train wreck of code and I've no
idea if it works on most chipsets, it certainly will blow up with wierd
BIOS configs and funny screen, I won't load it on any platform as-is..



Out of curiosity - who are the people that *need* intelfb ? (as opposed to 
*want*).


My impression was that fbdev is necessary only for non-intel folks (like 
powerpc or sparc owners).


 best

   Vladimir Dergachev


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Dave Airlie

 Out of curiosity - who are the people that *need* intelfb ? (as opposed to
 *want*).


Xegl people will need a kernel framebuffer driver (not necessarily running
the console) but something loaded to take care of X when it starts ...

also this memory manager has to go somewhere, and part of it will be in
the kernel.. no point having a memory manager if someone else is going to
write to your memory anyways..

Dave.

-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Vladimir Dergachev [EMAIL PROTECTED] wrote:
 Out of curiosity - who are the people that *need* intelfb ? (as opposed to
 *want*).

To use Xegl it will require you to load both fbdev and DRM drivers for
your hardware. Xegl uses fbdev for things like mode setting.  In X.org
mode setting is done with user space XAA code. Since Xegl uses fbdev
to set the mode (and other things) it doesn't need to set the
registers from user space and thus doesn't need to run as root.

 
 My impression was that fbdev is necessary only for non-intel folks (like
 powerpc or sparc owners).
 
   best
 
 Vladimir Dergachev
 


-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Dave Airlie [EMAIL PROTECTED] wrote:
 You haven't seen intelfb then, it is a train wreck of code and I've no
 idea if it works on most chipsets, it certainly will blow up with wierd
 BIOS configs and funny screen, I won't load it on any platform as-is..
 
 it mainly gives us
 a) some semblance of backwards compatibility for people
 who don't want their system to break when fbdev is loaded but do want a
 DRM..
 b) a step by step path forward as opposed to big breakage path,
 1. make radeon fbdev sit on top of stub driver do nothing with
 drm.  - merge to kernel test it, make sure nothing breaks..
 2. start hooking radeon DRM into mix, but only small things, merge
 to kernel, prove nothing breaks..
 3. next step etc..

Doesn't all this do is defer the day we load the 12 fbdev drivers on
x86? Sooner or later we need to load and debug those fbdev drivers.  I
don't see that the scaffolding really buys us anything; the root
problem is that the existing fbdev drivers need to get tested on the
x86. The source of everyone's fear is loading these drivers, that's
the problem that needs to be addressed.

For people that don't want to participate in debugging the fbdev
drivers on x86 leave the current DRM drivers in the tree.

How about another approach that reverses the sequence, it doesn't
involve any new code to being with...
1) appeal on LKML for everyone to load the 12 fbdev drivers on x86 and
report bugs.
2) we fix all of those bugs.
3) next we minimally bind DRM and fbdev with a common symbol so that
they can only be loaded together and put it in the mm build. This will
shake out more bugs.
4) let the mm patch into the rc kernel series - more people, more testing
5) By now it should be safe to force loading of them both.
6) since they both safely load, now we can start adding hooks between them.

If people have problems during this process the old DRM driver is left
in the tree. They can revert back to it while the fbdev problem gets
fixed.

 
 Us kernel people like to have a lots of merge to kernel points where we
 add no new functionality just scaffolding but make sure we don't remove
 any either... its like building anything, you can't call scaffolding a
 waste of time even though you might remove it all in the end...
 
 Dave.
 
 --
 David Airlie, Software Engineer
 http://www.skynet.ie/~airlied / airlied at skynet.ie
 Linux kernel - DRI, VAX / pam_smb / ILUG
 
 


-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Dave Airlie

 Why would layering the DRM on top of the fbdev driver break DirectFB?  I
 (think I) understand the issues with actually merging the drivers, but
 the more I dig into, for example, MGA DRM, the more convenient it seems
 to have DRM on top of fbdev.

It won't if you do it properly.. Jons was doing his well Xegl doesn't need
this so we can rip it out method, which doesn't sit well with me or
Benh. he wanted to put the card into a mode at bootup and not let it
back out, and have user space consoles and Xegl all running in user space,
which is a laudable goal, but things like DirectFB and X expect to be
able to take full control, his methods were travelling down the road of
preventing this using the justification that no-one will need to run X as
Xegl will be king...

I may be mis-representing exactly what the issues were but that was what I
felt was happening... the basics are Linux fbdev model is horrid, we need
to work with it for some sort of backwards  compatiblity, we can't just
dump it all for some currently prototype project...

We'll get where Jon sees us going eventually but we are going to have to
get there by a lot more circular method than just warping space/time and
stepping through the gap...

Dave.


-- 
David Airlie, Software Engineer
http://www.skynet.ie/~airlied / airlied at skynet.ie
Linux kernel - DRI, VAX / pam_smb / ILUG



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Ian Romanick [EMAIL PROTECTED] wrote:
 Why would layering the DRM on top of the fbdev driver break DirectFB?  I
 (think I) understand the issues with actually merging the drivers, but
 the more I dig into, for example, MGA DRM, the more convenient it seems
 to have DRM on top of fbdev.

The rules of VT swap are that after swap you can reset the card and
blank it's memory. Then when you swap back the first system has to
recover.

This implies that the merged DRM/fbdev driver has to either be able to
recover from having it's hardware reset/blanked or the rules of VT
swap need to change.

Given the definition of VT swap, VT swap looks a lot like
suspend/resume to me and I would like to have common code.

Now the problems are:
1) The kernel suspend call goes into the fbdev driver. DRM does see it.
2) VT swap is a user space notification
3) previously fbdev had only a single client, the console. All
consoles use the same hardware state - mode, framebuffer setup, etc.
With Xegl fbdev now has two clients, console and Xegl. But fbdev only
has one place to store the hardware settings. This didn't cause a
problem before on VT swap since X keeps its version in user space. Now
fbdev needs a new API for managing multiple copies of these settings.
4) It is legal to wipe VRAM on swap, all of VRAM needs to be saved.

Instead of doing all that I've been attempting to change the rules of
VT swap, but that is making people mad at me. In my changed system you
need to stop Xegl, unload its drivers, then load DirectFB's drivers,
instead of being able to hot key to it.

-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Benjamin Herrenschmidt
On Thu, 2005-06-16 at 21:29 +0100, Dave Airlie wrote:
  The DRM drivers know what is important but they don't know when
  suspend/VT swap is happening because there is only one set of kernel
  hooks and the fbdev driver is attached to them. The scheme where a
  texture copy is kept in system RAM doesn't depend on the DRM driver
  having suspend/VT swap hooks since it is able to rebuild VRAM at any
  point.
 
 
 Take a look at the _pm code in current DRM CVS it uses sysdev to hook
 suspend/resume for DRM...  I'm not too happy about this going into
 upstream yet, but I'm willing to give it a try...

A sysdev is the wrong approach imho. These are very low level, run with
interrupts off, and have ordering issues, I'd rather avoid them. Also,
at the point your sysdev suspend is called, it's likely that the video
card will already be in D3 state - no access to vram.
 
  So, given the way things are now, we have to pick one of the first two
  choices. Doing anything else (like doing a minimal copy out of VRAM)
  requires the drivers to be linked. Too many people are opposed to
  merging DRM/fbdev for that to happen.
 
 And to be honest this is bollocks I don't want to quote private mails
 here, but neither myself or benh said anything of the sort from my
 reading, we just a) didn't like your Xegl is the *ONLY* way forward
 approach and b) your approach stomped on any chance that older apps (and
 DirectFB) would continue working... we both stated we see a three-tier
 approach to merged drivers being the way forward, and I'm going to start
 adding hooks to CVS, just because we aren't willing to jump in and apply
 patches straight away might speak more about how we are maintainers and
 not break everything in sighters to add a new feature..
 
 You also have a whole world is a radeon or at least ATI approach, this
 doesn't help design the architecture, I agree with your goals but saying
 the whole world is against you one more time isn't helping this any..
 also can you stop a)stating MS are going to beat us, nobody cares, Apple
 already beat us so what. b) the list of goals you have, everyone is very
 aware of them at this stage, its just most people also have other ideas
 that don't appear on your list and want to keep the options open..
 
 Dave.
 Awake way too early to read this stuff again...
 



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Benjamin Herrenschmidt
On Thu, 2005-06-16 at 22:28 +0100, Dave Airlie wrote:
 
  Out of curiosity - who are the people that *need* intelfb ? (as opposed to
  *want*).
 
 
 Xegl people will need a kernel framebuffer driver (not necessarily running
 the console) but something loaded to take care of X when it starts ...
 
 also this memory manager has to go somewhere, and part of it will be in
 the kernel.. no point having a memory manager if someone else is going to
 write to your memory anyways..

In fact, the framebuffer support/mode setting doesn't have to be in the
kernel stricto-sensus.

The only sane approach, from my perspective, is to create a separate
library/daemon/whatever that becomes the primary mode setting ( desktop
geometry) interface. Wether it lays on top of fbdev or some userland
based binary blobs is almost irrelevant (at least it is to the client
application). This also isolates us from the underlying kernel beeing
linux, some BSD, OS X, whatever...

What the kernel need to provide however is some slightly improved DRM
that provides the basic services of mapping the card resources, dealing
with interrupt, and beeing present as a PCI driver for the card
kernel-wise.

Wether that kernel part does the actual mode setting (and then the
userland library can use it) or not is almost irrelevant. An easy way to
prototype such a library however would be to build something on top of
fbdev.

There are at least 2 different issues also regarding the HW ownership
that are more/less overlapping. One is the VGA arbitration, the other
one is the basic HW ownership of a given card. fbdev  provides
absolutely no kind of arbitration/locking/whatever. All we have
currently at the linux kernel level is this notion of 'taking control'
of the VT subsystem by switching it to KD_GRAPHICS mode.

What could be done here is to have our library/daemon be responsible for
that. That is, modern clients (Xegl, others) would use the library for
resource sharing and access arbitration. The library itself would switch
the entire system to KD_GRAPHICS on the first client getting in. We need
a mecanism to relinguish ownership as well, which includes eventually
loss of HW context etc... and proper synchronisation with client
programs, to deal with VT switches and system suspend/resume.

This is all quite a bit of work, we have discussed various possibilities
a while back on IRC and I think I even posted some bits of proposed API
for the mode setting bits a long time ago, I've also have some VGA
arbitration stuff half-done that I itend to finish for KS, but I lack
time and I don't necessarily have perfect ideas on the kind of
interfaces to provide for these things.





---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Benjamin Herrenschmidt
On Thu, 2005-06-16 at 17:30 -0400, Jon Smirl wrote:
 On 6/16/05, Vladimir Dergachev [EMAIL PROTECTED] wrote:
  Out of curiosity - who are the people that *need* intelfb ? (as opposed to
  *want*).
 
 To use Xegl it will require you to load both fbdev and DRM drivers for
 your hardware. Xegl uses fbdev for things like mode setting.  

Xegl should use ... EGL. Eventually some other library we define for
mode setting on top of it. Xegl should not rely on fbdev directly.
Wether the EGL implementation uses fbdev or somethign else on a given
platform should be irrelevant to Xegl.

 In X.org
 mode setting is done with user space XAA code. Since Xegl uses fbdev
 to set the mode (and other things) it doesn't need to set the
 registers from user space and thus doesn't need to run as root.
 
  
  My impression was that fbdev is necessary only for non-intel folks (like
  powerpc or sparc owners).
  
best
  
  Vladimir Dergachev
  
 
 



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Vladimir Dergachev



On Thu, 16 Jun 2005, Jon Smirl wrote:


On 6/16/05, Benjamin Herrenschmidt [EMAIL PROTECTED] wrote:

On Thu, 2005-06-16 at 17:30 -0400, Jon Smirl wrote:

On 6/16/05, Vladimir Dergachev [EMAIL PROTECTED] wrote:

Out of curiosity - who are the people that *need* intelfb ? (as opposed to
*want*).


To use Xegl it will require you to load both fbdev and DRM drivers for
your hardware. Xegl uses fbdev for things like mode setting.


Xegl should use ... EGL. Eventually some other library we define for
mode setting on top of it. Xegl should not rely on fbdev directly.
Wether the EGL implementation uses fbdev or somethign else on a given
platform should be irrelevant to Xegl.


Xegl uses OpenGL/EGL, it's not defined to use anything else. It is the
mesa implementation of OpenGL/EGL that uses fbdev. Nvidia/ATI will
likely provide OpenGL/EGL's that don't use fbdev.


One thing that bothers me about this whole discussion is the mounting 
level of interface complexity.


It is not just bad as far as debugging is concerned but will also present 
a barrier to easy experimentation with the code. Will we have new 
developers in 5 or 10 years if the interface is so complex that it took 
several years just to create it ?


   best

 Vladimir Dergachev



There is also Xglx which is the Xgl server that runs inside X.org using GLX.
Xwgl and Xagl will be the windows and apple versions of Xgl whenever
they get written.

--
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel




---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Benjamin Herrenschmidt

  Xegl uses OpenGL/EGL, it's not defined to use anything else. It is the
  mesa implementation of OpenGL/EGL that uses fbdev. Nvidia/ATI will
  likely provide OpenGL/EGL's that don't use fbdev.
 
 One thing that bothers me about this whole discussion is the mounting 
 level of interface complexity.
 
 It is not just bad as far as debugging is concerned but will also present 
 a barrier to easy experimentation with the code. Will we have new 
 developers in 5 or 10 years if the interface is so complex that it took 
 several years just to create it ?

EGL mode setting interface is very simple.

The problem is not the complexity of the interface, more the complexity
of the implementation. The interface can be quite simple if it's done
right.

Ben.




---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Vladimir Dergachev



On Fri, 17 Jun 2005, Benjamin Herrenschmidt wrote:




Xegl uses OpenGL/EGL, it's not defined to use anything else. It is the
mesa implementation of OpenGL/EGL that uses fbdev. Nvidia/ATI will
likely provide OpenGL/EGL's that don't use fbdev.


One thing that bothers me about this whole discussion is the mounting
level of interface complexity.

It is not just bad as far as debugging is concerned but will also present
a barrier to easy experimentation with the code. Will we have new
developers in 5 or 10 years if the interface is so complex that it took
several years just to create it ?


EGL mode setting interface is very simple.

The problem is not the complexity of the interface, more the complexity
of the implementation. The interface can be quite simple if it's done
right.


I am worried not only about kernel-user interface, but also interface 
between separate parts within the kernel, for example between DRM and 
fbdev.


 best

Vladimir Dergachev



Ben.





---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Vladimir Dergachev [EMAIL PROTECTED] wrote:
  Xegl uses OpenGL/EGL, it's not defined to use anything else. It is the
  mesa implementation of OpenGL/EGL that uses fbdev. Nvidia/ATI will
  likely provide OpenGL/EGL's that don't use fbdev.
 
 One thing that bothers me about this whole discussion is the mounting
 level of interface complexity.
 
 It is not just bad as far as debugging is concerned but will also present
 a barrier to easy experimentation with the code. Will we have new
 developers in 5 or 10 years if the interface is so complex that it took
 several years just to create it ?

We started off with dumb framebuffers.
Next we added bitblt and things were still simple.
But along came the GPU and that was the end of simple.

The level of the driver API has to exceed the level of hardware
capability or the hardware is useless. What good is a hardware
convolution filter if the only driver interface is fbdev? OpenGL and
DirectX are the drivers of GPU capability.

So in order to make use of the all the hardware capability we need to
pick an API that exceeds the hardware's capability. It's better if the
API significantly exceeds the hardware capability because next gen hw
is going to automate some of the things done in software today.

We have several choices:
1) XAA, hardware integration already far exceeds it
2) DirectX, MS patent problems
3) OpenGL, open well documented
4) write our own, we do all the work

I picked #3 since I think it is the best fit for Linux since we
already had DRI/mesa. Other groups are making other choices.

Writing drivers for the #3 model isn't that bad considering what you
get for the effort. No matter which model you pick you have to write
all of the functions to expose your hardware. But we have large
pre-existing common libraries. I took the existing code in fbdev,
mesa, Xegl and had a framebuffer EGL driver going in a couple of days.

That's the general background. Now things get messy. 

Linux has VT swap. With VT swap you hit a magic key and another device
driver gets to take over the hardware. This driver is free to reset
the hardware and wipe it's VRAM. Hit another key and control is
returned to you, now you have to recover.

Linux also has three major device drivers all trying to control the
same piece of hardware: fbdev, DRM, XAA. There are another twenty
minor ones. Development between the groups writing these drivers is
often uncoordinated.

Now throw in things like suspend/resume on laptops.

Plus 512MB of VRAM that can go poof on VT swap

And don't left me forget that GPUs have hundreds of commands and run
as asynchronous processors fed by DMA queues.

All of this makes the environment for writing graphics drivers on
Linux extremely complex. A lot of this is historical complexity.

-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Adam Jackson
On Thursday 16 June 2005 20:06, Jon Smirl wrote:
 On 6/16/05, Benjamin Herrenschmidt [EMAIL PROTECTED] wrote:
  In fact, the framebuffer support/mode setting doesn't have to be in the
  kernel stricto-sensus.

 In the model I'm working with, things like mode setting always have to
 go through a kernel call gate to provide the user to root privilege
 escalation. Once you are in the driver, the driver is free to set the
 mode in the kernel or do something like call_userhelper() for a user
 space implementation. call_userhelper() runs the helper as root so it
 can get to the registers.

I would strongly suggest that we use usermode helpers as much as possible even 
on linux, since we have the code already written in X and it'll increase the 
similarity with other platforms.  Write it once.  Other platforms without an 
fbdev layer will run the server as root and just fork the modesetter.

This would be nice to do even for the classic server if possible.

- ajax


pgphj4yfirR3c.pgp
Description: PGP signature


Re: [Mesa3d-dev] suspend/resume and mesa

2005-06-16 Thread Jon Smirl
On 6/16/05, Adam Jackson [EMAIL PROTECTED] wrote:
 I would strongly suggest that we use usermode helpers as much as possible even
 on linux, since we have the code already written in X and it'll increase the
 similarity with other platforms.  Write it once.  Other platforms without an
 fbdev layer will run the server as root and just fork the modesetter.
 
 This would be nice to do even for the classic server if possible.

User mode helpers have their own set of problems. It is really hard to
build them so that the system doesn't deadlock in low memory
situations. The OOM process killer can also kill them if it gets
desperate for memory. Trying to run them can trigger swap storms, etc.
Several groups are building systems like that on Linux right now -
FUSE, iSCSI, others. Their success is varied and no one has had
complete success.

-- 
Jon Smirl
[EMAIL PROTECTED]


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: DRM IRQ handling

2005-06-16 Thread Michel Dänzer
On Wed, 2005-06-08 at 00:01 -0400, Jon Smirl wrote:
 On 6/7/05, Benjamin Herrenschmidt [EMAIL PROTECTED] wrote:
  On Tue, 2005-06-07 at 15:48 -0400, Jon Smirl wrote:
   Am I right in this interpretation? First I need to get the
   bus/device/func of the card, then I need to tell this to the driver
   (which must already know this info). I then get back the IRQ number,
   which I then pass back to the driver (which already know this) and
   tell it to turn interrupts on.
  
  While we are at it, why the hell did we split up the PCI ID in
  bus,dev,fn like that ? We really want either a single structure
  containing the PCI ID to be passed around or a C string. The current
  scheme can't be made to work properly with PCI domains.
 
 There is no need to fix the call parameters, the calls themselves
 aren't really needed. User space shouldn't need to pass the PCI slot
 id back into a driver it already has a handle for. The driver should
 know this info without being told.
 
 These call messes are a result of fbdev and DRM not being linked. This
 prevents DRM from using the kernel PCI ID mechanism for binding to
 hardware. We can't add PCI ID binding to DRM since that prevents fbdev
 from loading. The only solution is to link fbdev and DRM.

I don't think framebuffer devices were a consideration (let alone a
factor either way) at all back in the days when this code was written...


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


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77alloc_id492op=click
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel