Index: [thread] [date] [subject] [author]
  From: Marcus Sundberg <mackan@stacken.kth.se>
  To  : ggi-develop@eskimo.com
  Date: Wed, 02 Jun 1999 21:39:42 +0000

Re: GGIMesa updates/questions

Andreas Beck wrote:
> ??? The _driver_ should know about the APIs. That is, the _driver_ should
> export a set of string describing which APIs the card exports. I always
> wondered, why the heck that code was disabled in the KGI directories:
> 
> /* We don't need the suggest stuff for kgicon */
> #undef NEED_SUGGEST_FEAT
> 
> You are right, that LibGGI should not need to know. Thus for fbdev,KGI and
> friend TRTTD is IMHO to reactivate the kgi call for getAPI and have the
> driver export a list of APIs.

Yes, I can agree with that, but then it needs to be fixed a bit.

> It's simply that the driver exports something like :
> 
> (generic-stubs)    - implicit map from LibGGI not exported as it's no real API.

Yes, this is clearly not an exported API.

> generic-linear-8   - _driver_ exports a LFB for linear-8

Not an exported API either. An exported _API_ would consist of basicly
all the information in the DirectBuffer structure, and for paletted
modes
the entrire initial palette. Encoding all that into a string and have
LibGGI
parse it would be really weird IMHO.

> generic-kgicommand - driver can take KGI-commands. That is, the interfacing
>  code (the display-* lib) should have filled in the kgicommand pointer and
>  the generic-kgi lib should be loaded which will send commands through that
>  interface. Note, that the suidkgi target will use a direct call in the
>  kgicommand pointer, while the fbdev target will use ioctl().
> vendor-s3          - this is an S3 board. Load an eventual common accel dirver.
> vendor-s3-savage3d - it's a savage-3D

Yep, this is ok except that the the latter two would begin with
vendor-creative- for Jon's drivers.

> > I propose we make the API list a property of the visual (not the target
> > as now, but the list is still initialized by the target at setmode time)
> > and add a new internal function:
> > _ggiAddAPI(ggi_visual_t vis, const char *api):
> 
> Why should one add an API later ? Because the extension might be needed to
> detect it ? IMHO for the "good" systems, there should be an exported APIlist
> by the driver.

Because I don't think you can convince the fbdev people to start
using suggest-strings for normal fbdev drivers. ;-)
Also, we really need that flexibility for the case where a driver
just exports the registers and a newer, but backward compatible card
is released. If for example the new card just has a new 3D engine added
it would be stupid to have to distribute new KGI drivers (perhapps
binary)
when all that's needed is a new sublib for LibGGI3D.

> > So the complete API list after the fbdev target is loaded on a kgicon
> > driver would look like:
> > display-fbdev
> > generic-stubs
> > generic-color
> > generic-linear-*
> > tgt-fbdev
> > tgt-fbdev-kgicon-generic
> 
> IMHO the fbdev target should query the driver. That's how it was designed,
> and that's foolprof IMHO.

Agreed for the drivers we have control over, but we still need the
functionality for other drivers and flexibility.

//Marcus
-- 
-------------------------------+------------------------------------
        Marcus Sundberg        | http://www.stacken.kth.se/~mackan/
 Royal Institute of Technology |       Phone: +46 707 295404
       Stockholm, Sweden       |   E-Mail: mackan@stacken.kth.se

Index: [thread] [date] [subject] [author]