U.S. patent application number 13/149887 was filed with the patent office on 2011-12-01 for frame buffer sizing to optimize the performance of on screen graphics in a digital electronic device.
This patent application is currently assigned to Kno, Inc.. Invention is credited to Paul Chambers, Christophe J. Gillette, Brian Tarricone.
Application Number | 20110292060 13/149887 |
Document ID | / |
Family ID | 45021681 |
Filed Date | 2011-12-01 |
United States Patent
Application |
20110292060 |
Kind Code |
A1 |
Chambers; Paul ; et
al. |
December 1, 2011 |
Frame buffer sizing to optimize the performance of on screen
graphics in a digital electronic device
Abstract
In the instant invention an improved method and device is
described for utilizing the frame buffer of and electronic device
with a display. The frame buffer is enlarged well beyond the
dimensions of the display and the user is unable to change which
region of the frame buffer is visible on the display. An
application of the electronic device is allocated a region for its
exclusive use that is within the portion of the frame buffer which
is not visible to the user, and draws into it. The application may
also take full advantage of accelerated drawing operations offered
by the GPU. Compositing may be done by the application or by a
window manager between regions of the enlarged frame buffer,
visible on-screen, the portion off-screen, or any combination.
Inventors: |
Chambers; Paul; (San Jose,
CA) ; Gillette; Christophe J.; (Mountain View,
CA) ; Tarricone; Brian; (Santa Clara, CA) |
Assignee: |
Kno, Inc.
Santa Clara
CA
|
Family ID: |
45021681 |
Appl. No.: |
13/149887 |
Filed: |
May 31, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61396789 |
Jun 1, 2010 |
|
|
|
Current U.S.
Class: |
345/545 |
Current CPC
Class: |
G06F 3/0482 20130101;
G06F 3/04842 20130101; G06F 1/1643 20130101; G06F 1/1616 20130101;
G06F 3/0488 20130101; G06F 1/1647 20130101; G06F 3/04883 20130101;
G06F 3/0483 20130101 |
Class at
Publication: |
345/545 |
International
Class: |
G09G 5/36 20060101
G09G005/36 |
Claims
1. A method for use on a display device comprising: generating a
frame buffer larger than the visible area of the display device;
redirecting the contents of an on screen window to an area of the
frame buffer outside of the visible area; compositing contents of
the frame buffer, including at least some portion of the frame
buffer outside the visible area; and updating the contents of the
visible portion of the frame buffer based on the compositing.
2. A computer readable medium capable of storing a program
facilitating the following steps: generating a frame buffer larger
than the visible area of the display device; redirecting the
contents of an on screen window to an area of the frame buffer
outside of the visible area; compositing contents of the frame
buffer, including at least some portion of the frame buffer outside
the visible area; and updating the contents of the visible portion
of the frame buffer based on the compositing.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Patent
Application 61/396,789 filed Jun. 1, 2010, entitled "Electronic
Device for Education", the contents of which are incorporated
herein by reference.
FIELD OF THE INVENTION
[0002] The invention relates to generally to electronic devices.
More particularly, the invention relates to methods and devices for
manipulating the frame buffer.
BACKGROUND OF THE INVENTION
[0003] Devices with a graphical user interface increasingly use a
Graphical Processing Unit (GPU) in addition to a CPU. The GPU is
responsible for maintaining the image shown to the user, i.e.
refreshing the display, and improving the performance of updating
that image, i.e. accelerating drawing operations. It is common for
the GPU to have dedicated memory set aside for its use. Since it
accesses memory intensely, were this not done, competition for
access to memory would decrease the performance of both the CPU and
GPU.
[0004] This separation between CPU and GPU memory brings other
challenges, however. It is commonplace to have constraints on how
one unit can access the other's memory. For example, the CPU
typically does not have direct access to the GPU memory, and
vice-versa. Even if direct access is possible, performance is poor
due to the contention issue described above. Thus, the approach
used by an application to render images, through the compositing of
the output of multiple applications onto one (or more) displays, is
one that is critical to user experience, yet difficult to do
efficiently and with high performance.
SUMMARY OF THE INVENTION
[0005] In one embodiment of the invention, the frame buffer is
enlarged well beyond the dimensions of the display and the user is
unable to change which region of the frame buffer is visible on the
display. An application is allocated a region for its exclusive use
that is within the portion of the frame buffer which is not visible
to the user, and draws into it. The application may also take full
advantage of accelerated drawing operations offered by the GPU.
Compositing may be done by the application or by a window manager
between regions of the enlarged frame buffer, visible on-screen,
the portion off-screen, or any combination.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 shows a frame buffer in accordance with the instant
invention.
DETAILED DESCRIPTION OF THE INVENTION
[0007] This invention helps overcome the described difficulties by
utilizing an on screen window outside of the display area.
[0008] A frame buffer is a region of memory specially formatted for
the GPU to scan in order to send the image to a display device.
This is typically done repeatedly, many times a second, as the
majority of display technologies in common use today must be
constantly refreshed in order to display the image. It is common to
have an application render its visual representation into an
off-screen buffer in the CPU memory, which will be copied into GPU
memory later. It is also common to combine multiple off-screen
images through drawing operations that overlap and merge them (e.g.
through the use of transparency). This processing is termed
compositing.
[0009] It is also customary to hold graphical components in GPU
memory (e.g. textures, geometry), that will be later combined to
display a visual image (e.g. a 3D scene). These graphical elements
are not in a form that can be visualized directly--they are
components from which a visual image can be built through
additional processing. It is also typical to have more than one
frame buffer, so one can be updated while the other is being
scanned, so that the display does not show a partially-updated
image (typically known as double or triple buffering).
[0010] It is not customary to have a frame buffer whose dimensions
do not match that of the display. When that is the case, the
portion that is visible to the user may be translated within the
larger display, so while the entire frame buffer may not all be
visible to the user simultaneously, the user can direct the device
to show any portion under his or her control.
[0011] In the instant invention, the frame buffer is enlarged well
beyond the dimensions of the display and the user is unable to
change which region of the frame buffer is visible on the display.
As shown in FIG. 1, the frame buffer (1) is larger than the region
visible to the user (2). An application is allocated a region for
its exclusive use (3) or (4) that is within the portion of the
frame buffer which is not visible to the user, and draws into it
(akin to an `off-screen buffer`, but in the GPU memory). The
application may also take full advantage of accelerated drawing
operations offered by the GPU. Compositing may be done by the
application or by a window manager (or similar software component)
between regions of the enlarged frame buffer, visible on-screen,
the portion off-screen, or any combination.
[0012] In the preferred embodiment, a device may have a display
with a resolution of 800 pixels by 600 pixels. Normal practice is
for the frame buffer to have the same dimensions. In this
embodiment of the invention, the frame buffer is enlarged to
2400.times.600. The region from 0,0 to 799,599 may be assigned to
be visible, and be used directly by the GPU to refresh the display.
One application might be allocated 800,0 to 999,149, and draw its
representation in that 200.times.150 pixel region. Another might be
allocated 800,150 to 1200,599, and draw its representation within
that 400.times.450 pixel region. A compositing window manager can
combine those images by copying them into the visible region at 0,0
to 799,599, perhaps overlapping them, and using transparency during
the copy so that one may be seen partially through the other, where
they overlap.
[0013] Arbitrary regions of the invisible portions may be allocated
to applications, either statically or dynamically, and possibly
altered or re-allocated as the application's needs change. This
technique may also apply to systems with multiple frame buffers,
which may be the same or different sizes. Frame buffers that
currently have no portion visible to the user may be considered
entirely invisible, and their entire dimensions used in the fashion
described above. Or the area that would be visible if the frame
buffer were made primary could be reserved and not allocated for
off-screen use.
[0014] Optionally, a potentially more efficient path can be used.
For example, instead of copying directly from the onscreen window,
the pixel data can be copied from the window's back buffer. The
pixel data is then blitted to the screen from the off-screen buffer
in whatever manner is defined by the rendering pipeline.
* * * * *