Etienne Belanger(deleted)
|
Re: Estimating image-bus bandwidth usage in CWM
|
Etienne Belanger(deleted)
06/08/2009 9:51 AM
post31078
|
Re: Estimating image-bus bandwidth usage in CWM
For component #2, it is very difficult to estimate the total bandwidth usage for rendering a 100 x 100 window. Things to
consider:
* Are all pixels touched ? If the surface is single-buffered, you could skip the clear and just redraw parts of the
buffer. If the surface is double-bufferd (the default), all pixels have to be redrawn. EGL_SWAP_BEHAVIOR_PRESERVED may
let the application think that it doesn't have to redraw all the pixels, but under the hood it's just a blit.
* What is the architecture of the graphics core ? Graphics core that do deferred rendering like PowerVR will only write
each pixel once. If the rendering is not deferred, then clearing the surface before drawing a line will take a little
more bandwidth because of the pixel overdaws.
* Are there any per-pixel image-based operations ? If a pixel requires memory lookups (texture sampling, blits,
transparency masks), then the bandwidth usage will be higher. Other per-pixel operations like blending will have an
impact as well.
* Are other buffers involved in the rendering process like stencil buffers, depth buffers ? What rendering API is used ?
Using OpenVG, or OpenGL ES, or doing everything in software will probably affect bandwidth.
* Is anti-aliasing enabled ? Each anti-aliasing technique (full-scene, multi-sampling, coverage) and the sampling
resolve will affect memory bandwidth.
For component #3, the scene layout is an important factor. The composition manager clips all the windows into rectangles
so that there are no overdraws. However, overlaps when blending is enabled cannot be eliminated.
|
|
|