Dbug information 1307 glöps
- general:
- level: user
- personal:
- first name: Mickael
- last name: Pointier
- cdcs:
- cdc #1: VIP 2 by Popsy Team [web]
- cdc #2: Cuddly Demos by The Carebears [web]
- cdc #3: The Union Demo by The Union
- cdc #4: Lifeforce by Andromeda Software Development [web]
- invitation Windows Outline 2010 Invtro by NEXT EMPIRE & .nUn. [web]
- I actually like the music :)
- rulezadded on the 2010-04-18 19:10:13
- demo Atari STe necrosys by Hemoroids [web]
- Great code, but really the visuals and the music is just painful.
- isokadded on the 2010-04-14 19:13:30
- demo TI-8x (68k) High School Love by adinpsz [web]
- Nice :)
- rulezadded on the 2010-04-13 23:25:08
- demo Dreamcast Wobble by CRTC
- What I call 3V mode is when you double buffer the DMA queues, and when the PVR side is also double buffering the TA data. By doing that you almost never have to stall the render for graphic primitives to arrive, and you don't have to wait either for the DMA to be done before you send data for the next frame.
Concerning the optimization, I found out that in my case I was slowed down by the DMA transfert, not by the CPU or by the PVR itself.
One of the big improvement I got was when I stopped using the hardware culling and instead do the visibility testing myself. By doing that I managed to write/send about 1/3rd less primitives to the DMA. I also had to do the near clipping of my stripes (in a game you can't really control what the user's doing), so I needed all the CPU I could, so yeah saving cycles when transforming was kind of important :)
(For the landscape I even did 2d "cone of vision" clipping to limit even more the amount of stuff to send to the dma)
About GCC I don't know, never used it. It's not that trivial to optimize for the SH4, things like immediate values being stored as pc relative data chunks you have to jump over is not that a common architecture :D - isokadded on the 2010-04-11 14:55:19
- demo Atari ST European Demos by Overlanders [web]
- Most of the screens are really, really average, but some are great :)
- rulezadded on the 2010-04-11 11:00:47
- demo Atari ST Ultimate GFA Demo by Overlanders [web]
- Good old Ultimate Gfa Demo. And yes they had to release the source code of one of the effects, because most people did not believe it was pure GFA. Admittedly there was a lot of bmove and precomputed patterns, but that was pure GFA indeed :)
(and yes NeXT had also an Overlamers period ;) ) - rulezadded on the 2010-04-11 10:57:44
- demo Dreamcast Wobble by CRTC
- You can do cool things with the VQ textures. Since the dictionary part is separated from the actual texture, you can use that to do fake palletized modes, or some funky effects by patching the dictionary instead of the texture itself :)
Transparent polygons are costly, yes, so things like big alpha-blended stuff tend to be inefficient. Some of the transparent stuff can be heavily optimized. Typical examples are overlay pictures, or non squared logos, or things with a "faded border". Instead of just using a big alpha texture on one single polygon, just use two passes, the first using the punch-trough mode, the second with the full alpha texture.
When filling the DMA buffers, something worth mentioning is that if you know in advance the size of what you are sending, you can often optimize by writing backward (pre-decrement is faster that post increment), and preloading stuff using the prefetch instruction.
Should also check that your compiler aggressively uses all the registers. I know the hitachi compiler (SHC) sucked at that, but on the other hand it was stupid and just using "register float bla" would make "bla" correctly associated to a free float register, same for integer/pointers, resulting in much faster code - because the compiler can fill the delay slots :)
A last trick is to use non standard order to matrices. If instead of storing things so you get X, Y, Z as a result, you can't start the projection immediately. If you shuffle everything so you get Z out first, you can immediately compute the inverted Z, and by the time the divide is done you get the next computed value our of the matrix computation ready to be multiplied, effectively eating out the cost of the projection.
For the frame-buffer, did you use the 16 or 24 bit mode? Internally all the tile blending is done in maximum definition, and the result is then converted/dithered to 16 bit if you enabled 16 bit frame buffer, and frankly the difference in visual quality is not worth wasting texture memory for a 24 bit frame-buffer. (plus it's slightly faster).
Oh, last question, in KOS do you have support for 2V and 3V latency modes? In a demo the 3V mode would be optimal, because you can use VSync and still amortize the cost of frames that are longer than others without dropping the VBL. (In a game it's a bit annoying because it adds latency in the controls, but in a demo, go for it!) - isokadded on the 2010-04-11 10:49:46
- demo Dreamcast Wobble by CRTC
- You could also use the VMU as a part of the demo, to display stuff on them while the demo is running :)
If you use VQ texture you can have a lot more textures in memory at the same time.
trixter: the article your pasted is globally correct, but there are still some things to consider: You need to do the near clip on the strips, and when you generate strips you don't want the longest possible strips (in my experience 6 to 15 triangles is the optimal size) because the final rendering performance is dependent on the number of tiles covered by the bounding rectangle occupied by the projected stripe.
So if you try to get very long stripes by using fancy libraries, you get the risk of having the bounding box of the stripe to cover the whole screen, which will force the PVR to check every single damn tiles. It's also increasing the memory requirements.
One of the most important things, is to not forget swizzling the textures, it has a huge impact on the performance (Mip-mapping as well, don't use non mip-mapped textures if you can). And don't use anisotropic filtering if you don't need it, it's a performance killer.
- isokadded on the 2010-04-10 20:16:17
- demo Flash $21 by Orion [web]
- What Zone said.
- rulezadded on the 2010-04-10 17:05:07
- demo Flash 99er by Evoflash [web]
- Me like it :)
Too bad you can't watch it on an iDevice. - rulezadded on the 2010-04-10 17:00:37
account created on the 2000-10-28 23:46:50
