2D GPU Platform with Hardware-Accelerated Features

Slides:



Advertisements
Similar presentations
Computer Graphics Tz-Huan Huang National Taiwan University (Slides are based on Prof. Chen’s)
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Trackmate Nathan Beste, Justin Flair, Arzhang Badiozamani, Evan Graves ECE 189 A/B Spring 2013.
 Currently there is no software solution that combines video and animation in to one platform.  Every single change drag changes in all of the environments.
Java ME vs. Flash Lite: A comparison of mobile phone game development Alex Koller Supervisors: Greg Foster, Madeleine Wright.
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
Hardware Evaluation and Selection James D. Lehman Educational Technology Purdue University.
Preliminary Design Review Jan 31, 2006 Brianna Bethel Robert Havlik Jessica Lowry Alex Silva.
XWN740 X-Windows Configuring and Using X-Windows & Hardware (Chapter 1: Pages 11-19)‏
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
©2008. Renesas Technology America., All rights reserved. Renesas Direct Drive for Connecting to TFT-LCD Panels David Hedley – Staff Applications Engineer.
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
Ping-O-TronicColor TV GameTelstar (game console) The players controlled their paddles with dials attached directly to the machine. Additionally, as an.
Digital Graphics and Computers. Hardware and Software Working with graphic images requires suitable hardware and software to produce the best results.
Lab 2: Capturing and Displaying Digital Image
Tools for Raster Displays CVGLab Goals of the Chapter To describe pixmaps and useful operations on them. To develop tools for copying, scaling, and rotating.
ECE291 Computer Engineering II Lecture 9 Josh Potts University of Illinois at Urbana- Champaign.
Video Monitor Uses raster scanning to display images –Beam of electrons illuminates phosphorus dots on the screen called pixels. Starting at the top of.
Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Chapter 5 Working with Images Starting Out with Games & Graphics in.
The Guts. CPU CPU Socket The CPU is generally a 2 inch ceramic square with a silicon chip located inside. The chip usually about the size of a thumbnail.
Character Generation.
Digital Graphics. Formats: BMP – Bitmap image file which is used to store Bitmap digital images PNG – Portable Network Graphics GIF – Graphics Interchange.
Lecture 7: Intro to Computer Graphics. Remember…… DIGITAL - Digital means discrete. DIGITAL - Digital means discrete. Digital representation is comprised.
Computer Engineering 4OI4 Project Proposal James Gurunlian Clarence Ngai
OCS-based Customized Solutions XL Series OCS Compact All-in-one Controller –Entry-level Product Line –More functional than small PLCs Logic, I/O, HMI &
Super Pong Andrew S. Dunsmore CSC436 August 2004.
The Cortex-M3 Embedded Systems: Programming With the Kitronix K350QVG-V1-F LCD Refer to “Kitronix Ltd. PRODUCT SPECIFICATION” “SSD2119 Advance Information”
Done by: Chelsea Bryan Friday, October 10,2014.   The BIOS (aka) Basic input/output system, is a built in software that determines what's a computer.
Electronic Craps Table. Objective Design a system to incorporate electronics into the game of craps to track bets and payouts while maintaining the interactive.
From VIC (VRVS) to ViEVO (EVO) 3 years of experiences with developing of video application VIC for VRVS allowed us to develop a new video application.
Computer Graphics Lecture 1 Introduction to Computer Graphics
GPU Architecture and Its Application
VIDEO GRAPHICS ARRAY CARD (VGA CARD)
Computer Graphics: An Introduction
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Binary Notation and Intro to Computer Graphics
Depth Analysis With Stereo Cameras
Prepared by: Raghad J Foqha Supervisor: Dr. Saed Tarapiah
Tabletop Notifier Department of Electrical & Computer Engineering
Voice Manipulator Department of Electrical & Computer Engineering
DE2-115 Control Panel - Part II
ECE Computer Engineering Design Project
Flash Interface, Commands and Functions
Computer Graphics Lecture 32
Memory Main memory consists of a number of storage locations, each of which is identified by a unique address The ability of the CPU to identify each location.
Memory Main memory consists of a number of storage locations, each of which is identified by a unique address The ability of the CPU to identify each location.
Fig. 4 Block diagram of system
Accelerometer-Based Character Recognition Pen
The next generation of collaboration
Food Inventory Tracker
Fig. 3 Infrared Components
Store the primitives in a famebuffer, or refresh
1. Encode binary value using PCM
ECE Computer Engineering Design Project
Graphics Hardware: Specialty Memories, Simple Framebuffers
Low cost FPGA implimentation of tracking system from USB to VGA
Desktop Window Manager
Depth Analysis With Stereo Camera
Network Controllable MP3 Player
Interactive Schedule Builder
Electrical traditional Chinese Instrument - Xun
Voice Manipulator Department of Electrical & Computer Engineering
Accelerometer-Based Character Recognition Pen
Depth Analysis With Stereo Camera
ECE Computer Engineering Design Project
ECE Computer Engineering Design Project
Fig. 4 Block diagram of system
Graphics Processing Unit
ECE Computer Engineering Design Project
Presentation transcript:

2D GPU Platform with Hardware-Accelerated Features ECE 492 - Computer Engineering Design Project 2D GPU Platform with Hardware-Accelerated Features Stephen Just, Mason Strong, Stefan Martynkiw 2016 Use Case To produce a comprehensive and performant graphics platform capable of outputting 640x480 video with a DE2 board. This video can have 256 on-screen colours and a maximum frame rate of 60fps. By providing several operations in hardware, our platform achieves significantly faster performance than could be achieved in software alone. The platform can be combined with other components to extend its capabilities. Hardware Design Each graphics primitive is implemented as a custom CPU instruction that operates on a framebuffer. The 512KB SRAM stores a framebuffer that is continuously displayed through the VGA output stages. To eliminate tearing, each graphics primitive operates on a framebuffer in the SDRAM. When the “frame done” instruction is called, the hardware performs bursting DMA transfers from SDRAM to SRAM during the video blanking period. Layering and compositing are performed on the framebuffers in the SDRAM. Software Design Our custom hardware is exposed to the programmer through an easy-to-use C API. Benchmarks/Performance The performance of our hardware is related to the number of pixels written to a framebuffer. Displaying bitmaps is limited by SDRAM IO, and corresponding layer compositing. Each plotted primitive is as large as will fit in the screen size. Our figures illustrate the performance benefits of utilizing the hardware accelerated capabilities on this platform. #include <io.h> #include <system.h> #include <sys/alt_stdio.h> #include "sys/alt_timestamp.h" #include <string.h> #include "graphics_commands.h" #include "palettes.h" int main() { graphics_init(); graphics_clear_screen(); switch_palette(&palette_ega); graphics_draw_rectangle(graphics_get_final_buffer(), 0, 0, 640, 480, 15); ALT_CI_CI_FRAME_DONE_0; //Draw the Frame graphics_draw_circle(graphics_get_final_buffer(), 640/2, 480/2, 239, 3, 0); graphics_draw_circle(graphics_get_final_buffer(), 640/2, 480/2, 239, 4, 1); graphics_draw_line(graphics_get_final_buffer(), 0, 0, 640, 480, 5); ALT_CI_CI_FRAME_DONE_0; print2screen(graphics_get_final_buffer(), 20, 20, 6, 2, "Hello, World!"); graphics_draw_triangle(graphics_get_final_buffer(), 15, 112, 300, 112, 170, 240, 1, 9); return 0; } Primitive Time (ms) Hardware Filled Rectangle 2.21 Software Filled Rectangle 130.31 Unfilled Circle 0.29 Software-Filled Circle 14.86 Two Software Triangles 66.44 Diagonal Line 0.075 Horizontal Line 0.017 “Hello, World!” font (average) 7.73 Layer Copy 5.91 Layer Copy with Transparency Palette Switch 0.50 Processing Deadline for 60fps 13.16 Processing Deadline for 30fps 29.83 Fig. 3. API Usage Example Pong To demonstrate the features and capabilities of our graphics platform, we built a version of Pong. This version of Pong uses both controllers, the line- drawing hardware, rectangles, fonts, and bitmaps. Several “undocumented features” are available by pressing the controller buttons. Discovering all of the features is up to the player. Fig. 1. Static graphical demonstration showing hardware primitives. For colour ideas, University Visual Identity Guidelines can be found here: http://www.toolkit.ualberta.ca/VisualIdentityGuidelines.aspx Fig. 5. Performance Figures. Graphical Features Hardware-Accelerated Features: Multiple Layer Compositing (via DMA) SD Card Reading & Bitmap Drawing Game Controller Input Color Palette Shifting (256 color→16-bit RGB) Lines, Circles, Rectangles, Triangles, Rounded Rectangles [1] Partially Hardware-Accelerated Features: Filled Circles, Filled Triangles, Fonts Future Work Our platform is designed to be extended. Future work can include: creating different applications using the platform, adding support for higher resolutions, adding audio output support, or expanding the capabilities of our graphics primitives . References [1] J. Bresenham, "Pixel-processing fundamentals," in IEEE Computer Graphics and Applications, vol. 16, no. 1, pp. 74-82, Jan 1996. [2]C. Rosenberg, "Sega Six Button Controller Hardware Info", Cs.cmu.edu, 1996. [Online]. Available: https://www.cs.cmu.edu/~chuck/infopg/segasix.txt. [Accessed: 18- Jan- 2016]. Fig. 2. System Block Diagram User input consists of two Sega Genesis controllers, chosen for their interfacing simplicity. [2] A custom hardware block polls the controllers’ state frequently via the GPIO pins. Controllers can be plugged in via a custom adapter board. Fig. 4. Pong Game Demonstration Department of Electrical & Computer Engineering