nanogui: Thread: Truecolour, Pseudocolour


[<<] [<] Page 1 of 1 [>] [>>]
Subject: Truecolour, Pseudocolour
From: Alex Holden ####@####.####
Date: 21 May 1999 11:21:26 -0000
Message-Id: <Pine.LNX.4.04.9905211152470.706-100000@hyperspace>

I just came to add the readpixel() to the bogl-tcfb and bogl-pcfb drivers,
and wondering whether I should make it a common function for both drivers
in bogl-cfb.c or not, decided to compare the two files to see what the
difference is in the way the two modes are handled. It turns out that 
apart from the naming differences, about 99% of the code is exactly the
same. Is it planned to diverge the two further in future for optimisation
reasons, or would it be a better idea to combine them into one driver?

--------------- Linux- the choice of a GNU generation. --------------
: Alex Holden (M1CJD)- Caver, Programmer, Land Rover nut, Radio Ham :
-------------------- http://www.linuxhacker.org/ --------------------


Subject: Re: Truecolour, Pseudocolour
From: Ben Pfaff ####@####.####
Date: 21 May 1999 14:12:20 -0000
Message-Id: <87lnei5wu1.fsf@pfaffben.user.msu.edu>

Alex Holden ####@####.#### writes:

   I just came to add the readpixel() to the bogl-tcfb and bogl-pcfb drivers,
   and wondering whether I should make it a common function for both drivers
   in bogl-cfb.c or not, decided to compare the two files to see what the
   difference is in the way the two modes are handled. It turns out that 
   apart from the naming differences, about 99% of the code is exactly the
   same. Is it planned to diverge the two further in future for optimisation
   reasons, or would it be a better idea to combine them into one driver?

I'm not sure what ####@####.#### had in mind.  I'll try to take a look
today or tomorrow.  I'm sure that it would be fine to combine them if
it wouldn't mean a big performance hit.
-- 
"It takes a certain amount of shamelessness
 to be a monomaniac billionaire dwarf."
--Jon Katz <URL:http://slashdot.org/articles/99/03/17/1634238.shtml>
Subject: Re: Truecolour, Pseudocolour
From: Alex Holden ####@####.####
Date: 21 May 1999 15:02:09 -0000
Message-Id: <Pine.LNX.4.04.9905211550440.1825-100000@hyperspace>

On 21 May 1999, Ben Pfaff wrote:
> I'm not sure what ####@####.#### had in mind.  I'll try to take a look
> today or tomorrow.  I'm sure that it would be fine to combine them if
> it wouldn't mean a big performance hit.

The only real difference is a couple of extra lines in the setup routine
of one of them, all the rest of it is the same.

--------------- Linux- the choice of a GNU generation. --------------
: Alex Holden (M1CJD)- Caver, Programmer, Land Rover nut, Radio Ham :
-------------------- http://www.linuxhacker.org/ --------------------

Subject: Re: Truecolour, Pseudocolour
From: Ben Pfaff ####@####.####
Date: 21 May 1999 15:12:34 -0000
Message-Id: <87zp2y4fh2.fsf@pfaffben.user.msu.edu>

Alex Holden ####@####.#### writes:

   On 21 May 1999, Ben Pfaff wrote:
   > I'm not sure what ####@####.#### had in mind.  I'll try to take a look
   > today or tomorrow.  I'm sure that it would be fine to combine them if
   > it wouldn't mean a big performance hit.

   The only real difference is a couple of extra lines in the setup routine
   of one of them, all the rest of it is the same.

Then I would say, go ahead.
-- 
"...In the UNIX world, people tend to interpret `non-technical user'
 as meaning someone who's only ever written one device driver."
--Daniel Pead
Subject: RE: Truecolour, Pseudocolour
From: Greg Haerr ####@####.####
Date: 21 May 1999 17:56:08 -0000
Message-Id: <01BEA380.B36BCB40.greg@censoft.com>

On Friday, May 21, 1999 5:11 AM, Alex Holden ####@####.#### wrote:
> I just came to add the readpixel() to the bogl-tcfb and bogl-pcfb drivers,
> and wondering whether I should make it a common function for both drivers
> in bogl-cfb.c or not, decided to compare the two files to see what the
> difference is in the way the two modes are handled. It turns out that 
> apart from the naming differences, about 99% of the code is exactly the
> same. Is it planned to diverge the two further in future for optimisation
> reasons, or would it be a better idea to combine them into one driver?
> 

Alex, I'm so glad you are doing this, because now you can understand
what I've been suggesting:  we should think about keeping some *common*
source to these routines, and share them between all framebuffer drivers.  Yes,
they may be a little bigger, but it sure beats re-implementing the same damn
thing over and over again, right?

My plan all along is to continue to abstract common code to more levels.  I'm not
so worried about nano-X getting too big just yet, as much as getting the project 
moving forward quickly, on multiple platforms and multiple screen devices.  It's these
things that MUST be done first, in order to assure portability in the future without
alot of rehacking...

I've got a common planes driver now for dos, elks, and linux.  I'd very much like
to see a common packed pixel driver as well.  These drivers are above the
framebuffer level.  They are common code and only use the framebuffer code to
get the mmap() screen pointer.  Then we can use them on any OS that happens
to be running an EGA/VGA card...

What do you think?

Greg
Subject: RE: Truecolour, Pseudocolour
From: Greg Haerr ####@####.####
Date: 21 May 1999 17:58:56 -0000
Message-Id: <01BEA381.16B2D540.greg@censoft.com>

On Friday, May 21, 1999 8:52 AM, Alex Holden ####@####.#### wrote:
> On 21 May 1999, Ben Pfaff wrote:
> > I'm not sure what ####@####.#### had in mind.  I'll try to take a look
> > today or tomorrow.  I'm sure that it would be fine to combine them if
> > it wouldn't mean a big performance hit.
> 
> The only real difference is a couple of extra lines in the setup routine
> of one of them, all the rest of it is the same.
>

IMHO, all the shared code should be moved to another separate file.

gh
Subject: RE: Truecolour, Pseudocolour
From: Alex Holden ####@####.####
Date: 21 May 1999 20:33:16 -0000
Message-Id: <Pine.LNX.4.04.9905212112340.1204-100000@hyperspace>

On Fri, 21 May 1999, Greg Haerr wrote:
> Alex, I'm so glad you are doing this, because now you can understand
> what I've been suggesting:  we should think about keeping some *common*
> source to these routines, and share them between all framebuffer
> drivers.  Yes, they may be a little bigger, but it sure beats
> re-implementing the same damn thing over and over again, right?

Only if it doesn't affect the performance much. Apart from the obvious
pcfb/tcfb being pretty much the same file mistake, and the fact that cfb8
is now obsolete, I don't think there's a lot that can be done to combine
things more. In some areas, it might well be a good idea to split it up a
bit to improve performance (ie. base nearly all of the drawing routines on
a common putpixel() routine, which instead of using a switch(bpp) like it
does now, has seperate routines for different bit depths, which are
selected at initialisation).

> My plan all along is to continue to abstract common code to more
> levels.  I'm not so worried about nano-X getting too big just yet, as

This is only a good idea if it doesn't affect performance significantly.

> I've got a common planes driver now for dos, elks, and linux.  I'd very
> much like to see a common packed pixel driver as well.  These drivers
> are above the framebuffer level.  They are common code and only use the
> framebuffer code to get the mmap() screen pointer.  Then we can use them
> on any OS that happens to be running an EGA/VGA card...

I can see how that would work for simple setups, but what about running on
top of GGI, or accelerated drivers which use the hardware to do tasks like
drawing lines? We can't abstract away the whole lower layers as that
wouldn't cater to wierd situations like using GGI, or add in too many
layers as that would affect code size and performance. What are you
actually proposing to change from the current setup?

--------------- Linux- the choice of a GNU generation. --------------
: Alex Holden (M1CJD)- Caver, Programmer, Land Rover nut, Radio Ham :
-------------------- http://www.linuxhacker.org/ --------------------


Subject: RE: Truecolour, Pseudocolour
From: Greg Haerr ####@####.####
Date: 21 May 1999 20:45:51 -0000
Message-Id: <01BEA398.697A1EC0.greg@censoft.com>

On Friday, May 21, 1999 2:23 PM, Alex Holden ####@####.#### wrote:
: On Fri, 21 May 1999, Greg Haerr wrote:
: Only if it doesn't affect the performance much. Apart from the obvious
: pcfb/tcfb being pretty much the same file mistake, and the fact that cfb8
: is now obsolete, I don't think there's a lot that can be done to combine
: things more. In some areas, it might well be a good idea to split it up a
: bit to improve performance (ie. base nearly all of the drawing routines on
: a common putpixel() routine, which instead of using a switch(bpp) like it
: does now, has seperate routines for different bit depths, which are
: selected at initialisation).
: 

	I agree.

: > My plan all along is to continue to abstract common code to more
: > levels.  I'm not so worried about nano-X getting too big just yet, as
: 
: This is only a good idea if it doesn't affect performance significantly.]

	There are all sorts of performance issues, if we really want
to get into performance now.  See my comments in the code commented
out in srvdraw.c.  Basically, performance in graphics is a code size
tradeoff.  Presently, until we get this thing fully working, *and* someone
starts complaining about speed, the architectures I'm suggesting
will definitely handle it.  As an example, clipping vs not on a per-pixel
or line basis is infintely slower than some of the stuff we're talking about.

: 
: > I've got a common planes driver now for dos, elks, and linux.  I'd very
: > much like to see a common packed pixel driver as well.  These drivers
: > are above the framebuffer level.  They are common code and only use the
: > framebuffer code to get the mmap() screen pointer.  Then we can use them
: > on any OS that happens to be running an EGA/VGA card...
: 
: I can see how that would work for simple setups, but what about running on
: top of GGI, or accelerated drivers which use the hardware to do tasks like
: drawing lines? We can't abstract away the whole lower layers as that
: wouldn't cater to wierd situations like using GGI, 

	Totally agree.

or add in too many
: layers as that would affect code size and performance. What are you
: actually proposing to change from the current setup?

	The only thing I'm proposing is grouping together routines for the
same hardware, which at this point are the VGA drivers.  For GGI based
stuff like you're talking about, we are going to need totally different drivers,
just like you're talking about.  So I'm just trying to get the "VGA" drivers
put together in *one* place so that we don't have 5 versions of them.  What
we want is *one* VGA driver with variations, then a GGI driver, and BIOS driver, a 
XXX driver, etc.
	
	Back to the hardware line draw, etc, that's covered by filling in the
proc ptr's in the SCREENDEVICE struct.  BTW, the GGI issue is a good one
for dealing with the BITMAP structure's etc we've been talking about this week.
For example, it's *very* unlikely that GGI has a hardware address that you can draw
stuff on, like a virtual screen.  Instead, it's undoubtably yet another abstracted api
that our SCREENDEVICE api will have to talk to.  (and this works, at least
according to Vidar, although his port brings up more issues, which he wanted some
work done with...)

Greg
[<<] [<] Page 1 of 1 [>] [>>]


Powered by ezmlm-browse 0.20.