[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] XaAES sources for FreeMiNT 1.16.3



>> IMO, it should never be possible for a user program/library to write
>> directly to video memory. In the general case that may not even be
>> physically possible.
>
> In the general case, it is physically possible. At least it includes the Hades, Milan, CTPCI, Videl, SuperVidel, Shifter, TT-Shifter, FireEngine+Radeon, and - if I'm not misinformed - the ACP.

Those are all specific cases, not the general one.  ;-)

I have already mentioned cases where direct screen access is
impossible, or just very slow (or even likely to hang the system as
for AB040/Eclipse), so they do exist.

> The original TOS has a low level video API (XBIOS). I see no good reason not to keep this approach. Maybe if there was a good alternative - but the VDI does not constitute that alternative. The lack of a good low level API effectively shuts out games and demos completely,

That the current VDI does not make a good alternative does not mean
that an upgraded one could not be.

> which is unfortunate. Accessing video memory directly is something that people want to do.

Only because they are used to it and it makes some things easier. If
they are interested in real performance (on modern hardware that is),
they are going to have to work with the graphics drivers, not against
them.
There is simply no way you can compete with accelerated graphics
hardware by writing directly to the screen. Often such direct access,
when it is at all possible, is very slow indeed (as in tens to
hundreds of times slower than what the hardware is capable of when
used the way it is intended to be).

> We can either accept that and make a good solution for it - or ignore it - and people will do it anyway, and we'll just end up with lots and lots of compatibility issues.

The VDI could easily be extended with masked/alpha blits, blit chains,
etc. Unlike if you were drawing directly to the screen, such things
could be done entirely on a graphics card, using Gigabytes/s of
bandwidth. If you absolutely must draw yourself, at least use
something like SDL and let it have the graphics driver deal with
blitting everything to the card (having a graphics card use its DMA
engine to fetch data from normal RAM is usually many times faster than
trying to write things to the card's framebuffer yourself.

/Johan