Re: Suspending with i915 and DRI (possible solution?)

2005-01-07 Thread Keith Whitwell
Bernard Blackham wrote:
Greetings,
I have an Intel i855GM chipset in my laptop, running Xorg 6.8.1 with
i810 and i915_dri for DRI, and kernel 2.6.10 with the i915 kernel
module. DRI is all well and happy, and glxgears achieves about
800fps. I use Software Suspend 2 (2.1.5.11) from
softwaresuspend.berlios.de, and upon suspending and resuming, I
found that GL apps would freeze when trying to be launched (as has
been reported before).
So I did some digging and poking, and wrote the attached little C
program that calls I915_RESUME_DMA in the i915 drm driver, and
surprisingly, this lets me run GL applications once more without
restarting X.
If I simply run it after resuming and returning back to X, I can run
GL applications again. Even more interestingly though, is if I run
it after resuming but before returning back to X, existing GL
applications don't lock up and continue to run, with some small
mishaps:
 - on the first suspend invocation (from a freshly started X), Xorg
   will consume 99% CPU (though still be otherwise functional) until
   I kill glxgears *and* switch VTs to text and back to X. On
   subsequent suspend invocations, this doesn't happen. If I'm not
   running glxgears or a GL app when suspending, it doesn't happen
   either.
 - glxgears' reported fps will drop from the usual 800fps on a
   freshly started X, to about 200fps on a suspend/resumed one, but
   CPU usage is pretty close to zero indicating that it's certainly
   not software-GL. I can still play tuxracer after resume with no
   noticable differences.
 - running tuxracer whilst suspending and resuming results in a
   garbled screen (fair enough though :). You can make out enough of
   the screen to exit tuxracer and restart it again... I guess I'll
   have to stop tuxracer whilst suspending for now ;)
So this is really just a quick hack but is it worth considering
moving into something like the X dri driver? (eg, on vt switch?)
And is it just working for me out of pure luck? :)
I can imagine that to restore full DRI would take much more work
(textures and the like).
There has just been an update to xorg which includes DRI suspend/resume 
support for i915.  Hopefully this will be of some help to you.

Keith
---
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almosthttp://www.thinkgeek.com/sfshirt
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: Suspending with i915 and DRI (possible solution?)

2005-01-07 Thread Bernard Blackham
On Fri, Jan 07, 2005 at 03:12:22PM +, Keith Whitwell wrote:
 There has just been an update to xorg which includes DRI suspend/resume 
 support for i915.  Hopefully this will be of some help to you.

Thanks. It works perfectly! Needed a couple of patches to get it
happy however:
 - my `install` on Debian doesn't know about -C - from googling I
   gather it means --owner=root --group=root (no idea what's
   standard though).
 - I was getting unresolved symbol errors in i915_drv.so for
   _tnl_vertex_cull_stage until I added t_vb_cull.c to sources.

Bernard.

-- 
 Bernard Blackham bernard at blackham dot com dot au
Index: drivers/dri/Makefile.template
===
RCS file: /cvs/mesa/Mesa/src/mesa/drivers/dri/Makefile.template,v
retrieving revision 1.17
diff -u -3 -p -r1.17 Makefile.template
--- drivers/dri/Makefile.template   7 Jan 2005 10:35:23 -   1.17
+++ drivers/dri/Makefile.template   7 Jan 2005 18:23:38 -
@@ -78,7 +78,7 @@ $(LIBNAME):  $(OBJECTS) $(MESA_MODULES) 
 
 
 $(LIB_DIR)/$(LIBNAME): $(LIBNAME)
-   install -C $(LIBNAME) $(LIB_DIR) 
+   install --owner=root --group=root $(LIBNAME) $(LIB_DIR) 
 
 
 
Index: sources
===
RCS file: /cvs/mesa/Mesa/src/mesa/sources,v
retrieving revision 1.17
diff -u -3 -p -r1.17 sources
--- sources 19 Dec 2004 03:06:59 -  1.17
+++ sources 7 Jan 2005 18:23:38 -
@@ -116,6 +116,7 @@ TNL_SOURCES = \
tnl/t_save_api.c \
tnl/t_save_loopback.c \
tnl/t_save_playback.c \
+   tnl/t_vb_cull.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \


Re: Suspending with i915 and DRI (possible solution?)

2005-01-07 Thread Keith Whitwell
Bernard Blackham wrote:
On Fri, Jan 07, 2005 at 03:12:22PM +, Keith Whitwell wrote:
There has just been an update to xorg which includes DRI suspend/resume 
support for i915.  Hopefully this will be of some help to you.

Thanks. It works perfectly! Needed a couple of patches to get it
happy however:
Good to hear.
 - my `install` on Debian doesn't know about -C - from googling I
   gather it means --owner=root --group=root (no idea what's
   standard though).
My fault, seems to have bitten a few people now.
 - I was getting unresolved symbol errors in i915_drv.so for
   _tnl_vertex_cull_stage until I added t_vb_cull.c to sources.
Committed.
Keith
---
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almosthttp://www.thinkgeek.com/sfshirt
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel