curious@sundaes.Eng.Sun.COM (Silly Boy) (06/19/91)
Hi, recently I heard mention of the RAWBLIT format on this newsgroup. I'm curious about how it works and what it does. Does it make blitting go faster? Can it eliminate flicker? Does it require a Chubby agnus? I'd really appreciate it if the person who mentioned it, or anyone who knows about it could enlighten me. Thanks.
sschaem@starnet.uucp (Stephan Schaem) (06/20/91)
The idea in raw blit is 'interleaved' planes, so you have one blit for all plane. Its faster because you init the bliter once. Its 'eliminate' flicker because it simple to sync to the VBeam, and even without sync the 'size change' efect is defenectly better..... Actually there are only advantage doing this, but not for all tasks. For example you will need a FULL mask of the object, or use nultiple pass.(Memory angry) Also 'hardware' Vertical flip cant be done in raw blit. etc... So to use RAWBLIT, interleave you bitplane, and your object data...
mykes@amiga0.SF-Bay.ORG (Mike Schwartz) (06/24/91)
In article <1991Jun20.011733.22036@starnet.uucp> sschaem@starnet.uucp (Stephan Schaem) writes: > >The idea in raw blit is 'interleaved' planes, so you have one blit for >all plane. >Its faster because you init the bliter once. >Its 'eliminate' flicker because it simple to sync to the VBeam, and even >without sync the 'size change' efect is defenectly better..... >Actually there are only advantage doing this, but not for all tasks. >For example you will need a FULL mask of the object, or use nultiple >pass.(Memory angry) >Also 'hardware' Vertical flip cant be done in raw blit. >etc... > >So to use RAWBLIT, interleave you bitplane, and your object data... In other words: Screen (destination) Format: Plane0 scanline 0 Plane1 scanline 0 Plane2 scanline 0 Plane3 scanline 0 Plane0 scanline 1 Plane1 scanline 1 Plane2 scanline 1 Plane3 scanline 1 This is done using the BPLMOD feature of the hardware. All the screen bitplanes must be allocated as one contiguous chunk (32000 bytes for 4 plane lo-res). Source bitmap format: Plane0 scanline 0 Plane1 scanline 0 Plane2 scanline 0 Plane3 scanline 0 Plane0 scanline 1 Plane1 scanline 1 Plane2 scanline 1 Plane3 scanline 1 As you can see, the blitter will blit to all planes from the source to the destination with one blit operation. A side effect of this format is that the blitter will be blitting a scan-line 4 planes at a time, which reduces the effects of beam collision (i.e. when the beam collides with the screen where the blitter has only partially completed a blit. Now for the cost. Using standard bitplane orientation, you need to calculate a mask plane to be used with 3-input (cookie cut) blits. The same mask plane is used for each of the plane blit operations. Using the rowblit technology, software must compute the mask slightly differently: Source bitmap format: mask scanline 0 mask scanline 0 mask scanline 0 mask scanline 0 mask scanline 1 mask scanline 1 mask scanline 1 mask scanline 1 In other words, you mask data is 4x larger. RowBlitting is a major benefit to graphic intensive software, especially games. The time that it takes to set up the blitter for single plane blits is significant, especially when using EHB mode. EHB mode takes 50% of the CPU cycles due to screen DMA. During VBL, the blitter has 100% access to the CHIP bus, so you really want to keep the blitter (not CPU) busy as much of VBL as possible. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * ****************************************************