A Cost-effective OpenGL SC Solution for the Consumer Electronics Market: An Emulation Library Approach

blareweyrSoftware and s/w Development

Dec 13, 2013 (3 years and 9 months ago)

97 views


Abstract-- We present our design and implementation of the
OpenGL SC (safety-critical) 3D graphics standard, as a software
emulation library over the widely used OpenGL ES 1.1 hardware.
It accomplished a remarkable cost-down of the OpenGL SC
products, to finally provide highly reliable full 3D graphics
features to the safety-critical consumer electronics devices.
I. I
NTRODUCTION

In this paper, we present our cost-effective implementation
of OpenGL SC [1], the Safety-Critical profile of the famous
OpenGL 3D graphics standard. Due to its highly reliable
features, it is recommended to be used for safety-critical
software and user-interfaces even in consumer electronics
devices. In contrast, these highly reliable products are failed to
successfully enter the consumer electronics market, since all
the OpenGL SC products are made in a small-quantity, with
exclusive features in the military and avionics markets.
We focused on the OpenGL ES (embedded systems)
standard [2], which was established in the same era of the
OpenGL SC publication, but dedicated to the mobile phones
and embedded systems. This sister standard was along with
the rapid growth of the smart phone products and is now
widely used on almost all smart phones. Due to its mass
production and mass consumption behavior, OpenGL ES
features are available at inexpensive costs, even for its
exclusive semiconductor implementations.
This paper shows that all the features of OpenGL SC are
accomplished as a software emulation library on the OpenGL
ES 1.1 API (application program interface) functions. Our
implementation passed the OpenGL SC conformance tests to
prove its correctness. It also accomplished sufficient execution
speed through fully utilizing the OpenGL ES semiconductor
chips.
Our result will invoke the following effects in the consumer
electronics market:
￿ Our result makes it possible to introduce the OpenGL
SC-based safety-critical software to the consumer
electronics market. It fundamentally contributes the
overall reliability of the consumer electronics devices.
￿ Most software engineering tools in the safety-critical

This research was supported by Basic Science Research Program
through the National Research Foundation of Korea (NRF) funded by
the Ministry of Education, Science and Technology (Grant 2011-
0014886).

This research was also supported by the MKE (The Ministry of
Knowledge Economy), Korea, under the “Strengthening the
competitive power of new mobile convergence industries” support
program (Grant Number 10037950).

domain generate the OpenGL SC-specific source codes
as their final results. Thus, our result enables the direct
use of these highly reliable software engineering tools in
the consumer electronics market.
We have only few cases of OpenGL SC implementations.
Some of them provide fully-dedicated OpenGL SC
semiconductor chips [3,4]. In the case of software emulation,
we previously implemented OpenGL SC on the desktop
OpenGL 1.1[5]. We also proposed a prototype design of
OpenGL SC emulation over the programmable graphics
pipelines, which now play the major roles for the desktop PC
graphics[6]. However, at least to our knowledge, we failed to
find any previous literature communication dealing with the
implementation of OpenGL SC over the OpenGL ES graphics
pipeline.
II. D
ESIGN

The OpenGL SC standard specification provides totally 101
API functions. Most of OpenGL SC core API functions are
specified on the basis of OpenGL 1.3 standards. And so, in
our previous results, we presented that we can emulate the full
OpenGL SC features based on the desktop OpenGL 1.3 or
even OpenGL 1.1 with ARB_multitexture extension.
In contrast, OpenGL ES targets a few special areas such as
games on the mobile devices, even though it was also based
on the OpenGL 1.5. Thus, it has only about 2/3 API functions
commonly shared to OpenGL SC, while 1/3 of the OpenGL
SC API functions are completely excluded from OpenGL ES
standard. From this technical aspect, we should write the
software emulation library between two distinct graphics
API’s, with similar pipeline skeletons but explicit differences
in their details. It finally required the following technical
challenges in our implementation:
￿ supporting the traditional begin-end paradigm:
One of the major OpenGL SC output primitives is the
begin-end paradigm, where the geometric data are
specified in a step-by-step manner between glBegin(…)
and glEnd(..) functions, as shown in Figure 1.(a). In
contrast, OpenGL ES 1.1 prefers batch-style output
primitives such as glDrawArrays(…) and
glDrawElements(…), and does not provide the begin-end
paradigm. Our OpenGL SC implementation thus translates
the traditional begin-end style codes to the corresponding
glDrawArrays(…) function call, to finally get the exactly
same graphics output, as shown in Figure 1.(b).
￿ supporting display list features:
For all the OpenGL SC API function calls between
glNewList(…) and glEndList(…) pairs, the display list

A Cost-effective OpenGL SC Solution for the Consumer
Electronics Market: An Emulation Library Approach

Nakhoon Baek
1,2
, Member, IEEE and Hwanyong Lee
3
, Member, IEEE
1
Kyungpook National University, Korea,
2
Mobile Graphics Inc., Korea,
3
Huone Inc., Korea
2012 IEEE International Conference on Consumer Electronics (ICCE) 1569495131
978-1-4577-0231-0/12/$26.00©2012 IEEE 522