Three-dimensional cluster simulation on GPU-less systems
A method that simulates effects of displaying assets using a graphical processing unit (GPU) is provided. The method includes extracting preprocessed assets, the assets having been preprocessed offline to provide simulated GPU graphical effects, isolating dynamic assets from static assets from the preprocessed assets, calculating a bounding-box for each of the dynamic assets, alpha-blending the static assets, alpha-blending the dynamic assets, and rendering the static assets and the dynamic assets to separate display layers at different frequencies.
1 . A system comprising:
a first subsystem comprising:
a GPU; and
a first central processing unit (CPU) configurable to execute a high-level operating system (HLOS);
a second subsystem comprising a second CPU configurable to execute a real-time operating system (RTOS); and
a switch coupled to the first subsystem and to the second subsystem, and the switch configurable to be coupled to a display, wherein the switch is configurable to selectively forward first data from the first subsystem or second data from the second subsystem to the display.
2 . The system of claim 1 , wherein the switch is configurable to forward the second data from the second subsystem to the display when the first subsystem is busy.
3 . The system of claim 1 , wherein the switch is configurable to forward the second data from the second subsystem to the display when it is determined that the first subsystem has crashed.
4 . The system of claim 3 , wherein the second data comprises frames, and wherein it is determined that the first subsystem has crashed when the first subsystem drops a plurality of frames.
5 . The system of claim 4 , wherein it is determined that the first subsystem has crashed when the first subsystem drops 2 frames.
6 . The system of claim 1 , further comprising a first communication interface, wherein the first subsystem comprises a second communication interface coupled to the first communication interface, and wherein the second subsystem comprises a third communication interface coupled to the first communication interface.
7 . The system of claim 6 , wherein the first, second, and third communication interfaces are controller area network (CAN) communication interfaces.
8 . The system of claim 1 , wherein, the switch is configurable to forward the first data from the first subsystem when the first subsystem is available.
9 . The system of claim 1 , further comprising:
a memory; and
wherein the second CPU is configurable to extract preprocessed assets from the memory, the preprocessed assets including a dynamic asset and a static asset, wherein the second data comprises a first display layer comprising the static asset at a first frame rate, and a second display layer comprising the dynamic asset at a second frame rate different from the first frame rate.
10 . The system of claim 9 , wherein the second frame rate is faster than the first frame rate.
11 . The system of claim 9 , wherein the second CPU is further configurable to alpha-blend the static asset and the dynamic asset.
12 . The system of claim 9 , wherein the second CPU is further configurable to calculate a bounding-box for the dynamic asset, wherein a size of the dynamic asset is based on a size of the bounding-box.
13 . The system of claim 12 , wherein the size of the bounding-box changes based on each transformation of the dynamic asset.
14 . The system of claim 9 , wherein the dynamic asset comprises a needle.
15 . The system of claim 1 , wherein the first subsystem and the second subsystem are configurable to be simultaneously executed.
16 . The system of claim 1 , wherein a rendering of the first data in the display is substantially visually identical to a rendering of the second data in the display.
17 . The system of claim 1 , wherein the switch is configurable to forward the first data or the second data to the display to be rendered at 60 frames per second.
18 . The system of claim 1 , wherein the second subsystem is a microcontroller-based cluster subsystem.
19 . The system of claim 1 , wherein the second subsystem is a digital instrument cluster subsystem for rendering a digital instrument panel in the display for a vehicle.
20 . The system of claim 1 , further comprising a liquid crystal display (LCD) coupled to the switch.
21 . The system of claim 1 , wherein the second data comprises data associated with rendering of a speed of a vehicle and of revolutions per minute (RPM) of the vehicle.
22 . A system comprising:
a switch;
a graphics processing unit (GPU)-based cluster subsystem comprising a GPU and a first central processing unit (CPU) configurable to execute a high-level operating system (HLOS), and a first display controller configured to provide first data to the switch; and
a GPU-less cluster subsystem comprising a second display controller configured to provide second data to the switch, the GPU-less cluster subsystem further comprising a second CPU configurable to execute a real time operating system (RTOS), wherein the switch is configured to selectively forward the first data from the first display controller or the second data from the second display controller, wherein the switch comprises a quality of service (QoS) switch controlled by monitor software, wherein the first data comprises frames, and wherein the QoS switch is configured to forward the second data in response to a determination by the QoS switch that the GPU-based cluster subsystem has dropped two or more frames.
23 . A system comprising:
a memory;
a processor configurable to:
extract preprocessed assets from the memory, the preprocessed assets including a dynamic asset and a static asset, the dynamic asset corresponding to a three dimensional model of a first object and the static asset corresponding to a three dimensional model of a second object, wherein the preprocessed assets have been preprocessed offline to provide simulated GPU graphical effects based at least in part on altered alpha and color channels and alpha-blending to simulate Porter-Duff blending;
isolate the dynamic asset from the static asset based at least in part on calculation of inter-frame per-pixel differences between successive frames on a region-of-interest to identify each transformation of the dynamic asset; and
calculate a bounding-box for the dynamic asset, wherein a size of the dynamic asset is based on a size of the bounding-box, wherein the size of the bounding-box changes based on each transformation of the dynamic asset, and wherein a reduced asset size enables direct memory access (DMA) operations for rendering assets with sparse content; and
a display controller configurable to render the static asset at a first frame rate, and the dynamic asset at a second frame rate that is faster than the first frame rate, wherein the display controller is configurable to alpha-blend the static asset and the dynamic asset, wherein the static asset is copied to a first layer updated at the first frame rate, and the dynamic asset is copied to a second layer that is double-buffered and updated each frame, and wherein the first layer and the second layer are displayed via different display subsystem (DSS) pipelines.
24 . The system of claim 23 , wherein the processor is a central processing unit (CPU) configurable to run a real time operating system (RTOS), wherein the CPU comprises an auxiliary core processor configured to run at a reduced clock rate, and wherein the system is configurable to be simultaneously executed with a GPU-based cluster subsystem comprising a GPU and a main CPU configurable to execute a high-level operating system (HLOS).