Browse Prior Art Database

Efficiently Path-Clipping Layered UI Content for Mobile Devices Disclosure Number: IPCOM000238082D
Publication Date: 2014-Jul-31
Document File: 8 page(s) / 193K

Publishing Venue

The Prior Art Database


Techniques for reducing overdraw for blended opaque, partially transparent, and transparent user interface (UI) components are disclosed. First, opaque portions of a blended UI component are drawn into both (i) a color buffer; .e.g., a display, display buffer, video memory, video buffer; and (ii) a depth buffer; e.g., a Z-buffer, a depth buffer, a stencil buffer, a combined stencil/depth buffer. Then, the partially and/or wholly transparent portions of the blended UI component can be drawn to the color buffer only. Subsequently remaining, indivisible or trivially sized partially or completely transparent portions of the blended UI component can be drawn into the color buffer only. When the components are divided in this manner, a significantly higher portion of the drawing area is covered by purely opaque drawing operations and is fit for inclusion into the depth buffer. This allows more content to be rejected for drawing by the depth buffer, thereby avoiding overdraw.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 28% of the total text.

Page 01 of 8

Efficiently Path-Clipping Layered UI Content for Mobile Devices

    Many mobile devices have graphical user interfaces (UIs). UI performance is important to a mobile device, as the UIs can be used to control the mobile device. However, graphical processing units (GPUs) used with mobile devices often have memory, bandwidth, and fillrate limitations. The fillrate of a GPU indicates how many pixels, or addressable picture elements, of video memory can be rendered and displayed in a fixed amount of time; e.g., 1 megapixel/second. Fillrate limitations are worsened by "overdraw", which involves drawing the same pixel multiple times. An overdrawn pixel has later or "on top" contents covering "below" contents that have already been rendered and displayed. Overdraw by the on-top contents wastes energy due to unnecessary GPU processing and can cause reduced UI performance.

    UIs have certain properties that can lead to overdraw. One such property is that UIs are often described in hierarchical terms that do not necessarily map to minimizing draw area for reducing overdraw. For example, a background of a UI can be drawn first as shown in Figure 1A. Subsequently, an application is launched and draws application content, as shown in Figure 1B. Drawing the application content causes significant overdraw of the background as shown in Figure 1B. In this case, the UI does not have feasible means of avoiding overdraw.

Page 1

Page 02 of 8

Mobile Device

Mobile Device





Application Content



    Another property is that large rendering components are frequently combinations of shapes (such as a rectangle with rounded corners) and/or irregularly shaped. In these cases, per-pixel rejection or rectangular rejection of pixels to avoid overdraw may not work. For example, some UI implementations allow definition of a "scissor rectangle" where only pixels within the scissor rectangle can be modified. Suppose a bounding rectangle is drawn about an irregularly shaped object ISO to be used as a scissor rectangle. Then, suppose the UI is instructed to increase ISO in size so that at least part of ISO is outside of the scissor rectangle. The portions of ISO outside the scissor rectangle will not be visible since pixels outside the scissor rectangle cannot be modified and so ISO cannot be shown as expanding outside the scissor rectangle.

    One technique to avoid overdraw is depth (Z) buffering. For depth buffering, each rendered pixel is associated with a depth value. Then, when a new pixel is to be drawn, the depth value of the new pixel is compared to the depth value of the pixel

Page 2

Page 03 of 8

already displayed. If the new pixel depth value is less than the depth value of the already-displayed pixel, then the new pixel can be considered to be in front of the already-displayed pixel and so, the new pixel is drawn as being visible. When the new pixel depth value is greater than the depth value of the already-displayed pixel, the...