Notes on fillrate and drawing large textures: Difference between revisions

From dreamcast.wiki
Jump to navigation Jump to search
(Created page with "Those notes are from working on Reaperi Cycle and Summoning Signals, two projects that use primairly large textures for it's visual. Those projects are build using GLdc an...")
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:
I'm using ARGB1555 .dtex files for my test.
I'm using ARGB1555 .dtex files for my test.
At the moment of writing, all those textures are drawn in the TRANSLUCENT POLYGON LIST.
At the moment of writing, all those textures are drawn in the TRANSLUCENT POLYGON LIST.
I'm having trouble using the PUNCH-THRU LIST on GLdc


== Fillrate ==
== Fillrate ==
Line 13: Line 11:


I mention this because although scaling the texture doesn't affect the memory bandwith, it does affect the rendering speed.
I mention this because although scaling the texture doesn't affect the memory bandwith, it does affect the rendering speed.
There seems to be a direct relation between polygone size and rendering speed (read Tile-Accel. and Raster)
''In theory, this mean that drawing more smaller polygons is faster than drawing fewer larger polys, so using TRISTRIP can be quite useful here.''
* '''TRANSLUCENT LIST''' : 5-600K pixel before dipping under 60fps.
* '''PUNCHTHRU LIST''' : 2.2M pixel before dipping under 60fps.




Right now, anytime the fille rate reach +/- 550K, the framerate drops.
== More Reading ==
[https://dcemulation.org/phpBB/viewtopic.php?f=29&t=104287&p=1053299&hilit=Tile+Accelerator#p1053235 Tile-Accelerator and Rasterisation]

Latest revision as of 13:33, 8 May 2020

Those notes are from working on Reaperi Cycle and Summoning Signals, two projects that use primairly large textures for it's visual. Those projects are build using GLdc and a very light layer to interface with LUA.

Textures

I'm using ARGB1555 .dtex files for my test. At the moment of writing, all those textures are drawn in the TRANSLUCENT POLYGON LIST.

Fillrate

My calculation for fillrate is:

 (texture.width * texture.scale) * (texture.height * texture.scale)

I mention this because although scaling the texture doesn't affect the memory bandwith, it does affect the rendering speed. There seems to be a direct relation between polygone size and rendering speed (read Tile-Accel. and Raster)

In theory, this mean that drawing more smaller polygons is faster than drawing fewer larger polys, so using TRISTRIP can be quite useful here.

  • TRANSLUCENT LIST : 5-600K pixel before dipping under 60fps.
  • PUNCHTHRU LIST : 2.2M pixel before dipping under 60fps.


More Reading

Tile-Accelerator and Rasterisation