Bug 1114

Summary: [PATCH] convert afb and cfb{,16,24,32} to be dlloader-friendly
Product: xorg Reporter: Adam Jackson <ajax>
Component: Server/DDX/Xorg/dlloaderAssignee: Adam Jackson <ajax>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: lowest CC: roland.mainz, xorg-team
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 400    
Attachments:
Description Flags
proposed patch
none
proper fix
none
Updated patch for 2005-01-14-trunk (same as attachment #667) incl. Changelog comment none

Description Adam Jackson 2004-08-17 21:33:57 UTC
This patch makes afb and the various cfb modules load successfully under
dlloader.  It should not change any runtime behaviour, but I haven't tested it
yet.  With two exceptions, these changes parallel changes in other modules, so
it should be pretty much right.

afb implicitly relied on mfb without ever loading it, and neither the fbdev nor
vesa drivers (the only two users of afb) loaded mfb for it.  I don't see how
this could have ever worked under even the old module loader.  afb now loads mfb
as a submodule.

cfb now has an interesting hack that fixes up some of the GCOps structs
automagically at CreateGC time.  anholt said something suitably scary about not
doing so lazily (ie, when the function to be fixed up was called) due to the
wrapping rules for GCOps, hopefully this is correct.

Please consider this for merging before the release, it would make subffb and
sunleo work at least partially under dlloader.
Comment 1 Adam Jackson 2004-08-17 21:35:07 UTC
Created attachment 664 [details] [review]
proposed patch
Comment 2 Adam Jackson 2004-08-17 23:12:12 UTC
i tested this under s3virge's cfb mode.  cfb, cfb16, and cfb32 appear to work
fine.  i could not discern the correct combination of options to make it use
24-bit packed pixel mode (cfb24), and my attempts to force it in the driver met
with segfaults, but since none of this patch is depth-dependent i expect it works.

24-bit sparse pixel mode is handled by xf24_32bpp instead, which i haven't fixed
yet.
Comment 3 Adam Jackson 2004-08-18 09:21:56 UTC
Created attachment 667 [details] [review]
proper fix

the last patch omitted the necessary additions to mfb, oops.
Comment 4 Adam Jackson 2004-08-21 15:56:47 UTC
dropping the priority, cfb's gonna die anyway.
Comment 5 Adam Jackson 2004-08-31 13:39:32 UTC
this one's dead.  afb will be fixed to not use mfb.  cfb and mfb will vanish in
favor of fb (see bug #1245).

the patch remains if anyone wants to try cfb with dlloader under 6.8, but i'll
never merge this.
Comment 6 Roland Mainz 2004-10-30 21:18:30 UTC
ajax@nwnk.net wrote:
> cfb's gonna die anyway.

That's difficult unless someone fixes the HP PCL DDX, too...
Comment 7 Roland Mainz 2004-10-31 23:09:38 UTC
ajax:
Are there any objections with committing this to Xorg CVS trunk ? It seems this
may be needed for the unified Xserver...
Comment 8 Adam Jackson 2004-11-01 06:38:22 UTC
when i say "cfb is gonna die anyway" i'm referring to in-tree users.

i haven't tested this patch in a while, as i no longer have any hardware that
uses cfb.  my sparclinux friends tell me it works, though.  i have no objections
to merging it, but i also take no responsibility for any exploding puppies etc. ;)
Comment 9 Roland Mainz 2004-11-01 07:02:49 UTC
ajax@nwnk.net wrote:
> when i say "cfb is gonna die anyway" i'm referring to in-tree users.

Uhm... what do you mean with in-tree users ?

> i haven't tested this patch in a while, as i no longer have any hardware that
> uses cfb.  my sparclinux friends tell me it works, though.  i have no 
> objections to merging it, but i also take no responsibility for any exploding 
> puppies etc. ;)        

heh... =:-)
Comment 10 Adam Jackson 2004-11-01 08:45:42 UTC
(In reply to comment #9)
> ajax@nwnk.net wrote:
> > when i say "cfb is gonna die anyway" i'm referring to in-tree users.
> 
> Uhm... what do you mean with in-tree users ?

oop.  xf86 ddx users.
Comment 11 Roland Mainz 2005-01-14 00:33:10 UTC
Created attachment 1676 [details] [review]
Updated patch for 2005-01-14-trunk (same as attachment #667 [details] [review]) incl. Changelog comment
Comment 12 Roland Mainz 2005-01-14 00:39:57 UTC
Patch checked-in...

/cvs/xorg/xc/ChangeLog,v  <--  ChangeLog
new revision: 1.680; previous revision: 1.679
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
/cvs/xorg/xc/programs/Xserver/afb/afbbres.c,v  <--  afbbres.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbbresd.c,v  <--  afbbresd.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbclip.c,v  <--  afbclip.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbhrzvert.c,v  <--  afbhrzvert.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbline.c,v  <--  afbline.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbmodule.c,v  <--  afbmodule.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbpixmap.c,v  <--  afbpixmap.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbpolypnt.c,v  <--  afbpolypnt.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbpushpxl.c,v  <--  afbpushpxl.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/afb/afbtegblt.c,v  <--  afbtegblt.c
new revision: 1.3; previous revision: 1.2
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
/cvs/xorg/xc/programs/Xserver/cfb/Imakefile.inc,v  <--  Imakefile.inc
new revision: 1.4; previous revision: 1.3
/cvs/xorg/xc/programs/Xserver/cfb/cfballpriv.c,v  <--  cfballpriv.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbbitblt.c,v  <--  cfbbitblt.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbcppl.c,v  <--  cfbcppl.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbgc.c,v  <--  cfbgc.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbglblt8.c,v  <--  cfbglblt8.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbmap.h,v  <--  cfbmap.h
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbpixmap.c,v  <--  cfbpixmap.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbscrinit.c,v  <--  cfbscrinit.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbtab.h,v  <--  cfbtab.h
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbteblt8.c,v  <--  cfbteblt8.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/cfb/cfbunmap.h,v  <--  cfbunmap.h
new revision: 1.2; previous revision: 1.1
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
/cvs/xorg/xc/programs/Xserver/mfb/maskbits.c,v  <--  maskbits.c
new revision: 1.4; previous revision: 1.3
/cvs/xorg/xc/programs/Xserver/mfb/maskbits.h,v  <--  maskbits.h
new revision: 1.4; previous revision: 1.3
/cvs/xorg/xc/programs/Xserver/mfb/mergerop.h,v  <--  mergerop.h
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/mfb/mfb.h,v  <--  mfb.h
new revision: 1.4; previous revision: 1.3
/cvs/xorg/xc/programs/Xserver/mfb/mfbclip.c,v  <--  mfbclip.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/mfb/mfbfont.c,v  <--  mfbfont.c
new revision: 1.2; previous revision: 1.1
/cvs/xorg/xc/programs/Xserver/mfb/mfbgc.c,v  <--  mfbgc.c
new revision: 1.3; previous revision: 1.2
/cvs/xorg/xc/programs/Xserver/mfb/mfbmisc.c,v  <--  mfbmisc.c
new revision: 1.2; previous revision: 1.1
/cvs/xorg/xc/programs/Xserver/mfb/mfbpushpxl.c,v  <--  mfbpushpxl.c
new revision: 1.3; previous revision: 1.2
cvs commit: Using deprecated info format strings.  Convert your scripts to use
the new argument format and remove '1's from your info file format strings.
Mailing the commit message to xorg-commit@lists.freedesktop.org...

... marking bug as FIXED.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.