home *** CD-ROM | disk | FTP | other *** search
- Path: informatik.tu-muenchen.de!fischerj
- From: fischerj@Informatik.TU-Muenchen.DE (Juergen "Rally" Fischer)
- Newsgroups: comp.sys.amiga.programmer
- Subject: Re: WritePixelArray vs. ClipBlit vs. ...
- Date: 26 Jan 1996 02:17:34 GMT
- Organization: Technische Universitaet Muenchen, Germany
- Distribution: world
- Message-ID: <4e9dju$ron@sunsystem5.informatik.tu-muenchen.de>
- References: <oj6ka2yity1.fsf@hpsrk.fc.hp.com> <sqoWx*NA0@mkmk.in-chemnitz.de>
- NNTP-Posting-Host: hphalle5.informatik.tu-muenchen.de
- X-Newsreader: TIN [version 1.2 PL2]
-
- Andre Weissflog (floh@mkmk.in-chemnitz.de) wrote:
- : In article <oj6ka2yity1.fsf@hpsrk.fc.hp.com>, Steve Koren writes:
-
- : >
- : > A little experimentation revealed that on my (Z-II 040/25) graphics
- : > card, WritePixelArray8 is about twice as fast as ClipBlit when both are
- : > talking to a 256 color screen. No surprise there. ClipBlit is much
-
- why. clipblit should copy from window to window. If this is slower, then
- either overhead or copy vram->vram is slower than fast->vram.
-
- the function according to writepixelarray8 should rather be
- blitbitmaprastport (maybe not much difference if your sourcerastport is
- not layered (not a window or screen)).
-
- well, rastports of screens/windows on gfx-cards should be chunky anyway ?
-
- So I'm not sure why writepixelarray8 is faster, it is a surprise imho.
-
- : > faster for the Amiga native gfx modes (again no surprise). And then we
- this indeed no surprise ;)
-
- : > have a CyberGfx call for dealing with truecolor modes that is better
- : > than either of the above two if you have a truecolor screen, but doesn't
- : > work on 8 bit screens at all.
- : >
- : > So now, I am writing a program, and I have the following choices:
- : >
- : [...]
- : >
- : > D) Do maximum work, optimize for each case:
- : > -> Use ClipBlit on native screenmodes
- : > -> Use WritePixelArray8 on CyberGfx 8 bit screenmodes
- : > -> Use the CyberGfx call on truecolor 16/24 bit screenmodes
- : >
- : > This is annoying. Is there any way to do case D) easier than what I am
- : > thinking?
-
- I do not quite get what you want to do. Looks like your engine renders
- planar on AGA and chunky on gfx-card. This should give 10 times more work
- than adapting the copy routines. I'm really wondering...
-
- Also why 24bit mode. you want to play the 8bit chunky game also when
- 24bit is present I guess. Or do you even have a 24bit version of your
- rendering engine.
-
- anyway it's no wonder that updating a 256 color window on a 24bitscreen
- needs some time (colortable lookup...)
-
- maybe I'm off topic now, I got no idea what you are doing :)
-
- : >
- : I'm afraid not, except waiting for true RTG. As far as I understood
- : it, RTG would provide automatic format conversion when blitting
- : between any bitmap formats.
-
- huh ? Current functions do this, too. writeparr8, blitbitmap...
- if they don't, imho the gfxcard driver is not ok.
-
- : So you could have your working area in 8 bit chunky with a local
- : color map, and blit it onto a 24 bit screen, or work in 24 bit,
- : and blit it to an 8 bit screen without need to worry about
- : color remapping.
- blit 24bit scene to 8bit without any worry ? naaah ;)
-
- : > Also, if I have allocated a bitmap as a "friend bitmap" of a 8 bit
- : > cybergfx mode, I would almost have expected ClipBlit to be as fast as
- : > WritePixelArray8. But it isn't even close. Why not? In fact, I
- good question.
- : > haven't seen the friend bitmap to make any difference at all. I can use
- : > it or not use it, and in both cases ClipBlit is slower than
- : > WritePixelArray8.
-
- writeparr8 is maybe most optimized. good, because it's the main
- routine for chunky games on gfx-cards. longword-alignment comes into
- my mind, but I don't know if it's a reason.
- if the card has a blitter which is used, cliblit should be lots faster...
- hmmm....
-
- : >
- : The mysteries of gfx emulators ;-)
-
- indeed!
-
- : I wouldn't necessarly expect that CyberGfx makes use of the
- : friend bitmap arg at all. I guess, you get a ordinary planar bitmap,
-
- well, native bitmaps are in chipmem. then I wonder why it's only 2 times
- slower than writeparr8....
-
- : which is converted to CyberGfx private chunky format during
- : bit blit. If CyberGfx would support friend bitmaps, one might
- well, only if the bitmap is one of the chunky window/screen....
-
- : expect to get a bitmap in an unknown format, somewhere in the
- : hidden area of the gfx cards memory (so the card's blitter
- : can directly access it).
-
- : BTW, it could be worse. On my Merlin (latest emulator version
- : though), WriteChunkyPixels() (didn't try WritePixelArray8())
- : to a 256 color screen (which is clearly in chunky8 format)
- : is so slow it takes about a second(!) to redraw a 320x200
- : screen. I guess they convert my chunky8 array into planar
- : format first, before reconverting that planar bitmap to
- : the screens chunky8 bitmap :-/
- yes, I guess so ! the first one is as slow as on AGA (I gues it
- needs also 1 sec there ?), the latter conversion should be
- very qick (compared to 1sec) if a p2c hardware is present.
-
- : Bye,
- : -Floh.
-
- : ====//=== Andre Weissflog <floh@mkmk.in-chemnitz.de> =======
- : ...// Sep'95: Return Of The Living Death...................
- : \\// 90% of everything is crap (Sturgeon's Law)...........
- : =\\===============================================Amiga!=
-
- ------------------------------------------------------------------------
- fischerj@Informatik.TU-Muenchen.DE (Juergen "Rally" Fischer) =:)
-