Xilinx / SDKOpenGLES

Open Source Software development Kit for Graphics GPU for Xilinx Zu+ Platform.
BSD 3-Clause "New" or "Revised" License
12 stars 10 forks source link

How to set-up, compile and run

  1. Clone the repository

    git clone https://github.com/Xilinx/SDKOpenGLES/tree/master


  2. Edit the run_export.sh and change appropriate path for cross-compiler & libs.

  3. Keep this flag enabled CXXFLAGS=-DENABLE_FBDEV , If you are compiling for FBDEV & for x11 disable this flag.

  4. Source the modified file run_export.sh

source ./run_export.sh


  1. Build examples
make all


  1. Run. Respective binaries should be compiled for each sample & then you can run them. E.g:
cd MultiCubeSample && ./MultiCubeSample


SDKOpenGLES

Open Source Software development Kit for Graphics which can run on GPU for Kria and Zu+ Platforms of AMD-Xilinx.

Cube Sample

Multi Cube rendering Sample GPU This sample contains simple cube rendering technique on GPU using OpenGL ES 2.0 API’s. Colors are Interpolated across the vertices and showcase rotation matrix application for creating animation effects. This is available in both versions X11 and FBDEV.

alt text

Depth Buffer Sample GPU

This sample is designed to use depth buffer and create an effect on GPU . It draws cube and vertical plane with overlapping depth.Animation is created using matrices which allows the objects to rotate. This is available in both versions X11 and FBDEV.

alt text

EGL Image Texture Swapping

This sample is designed to showcase the usage of EGL Image extension. It defines a new EGL resource type that is suitable for sharing 2D arrays of image data between client APIs, the EGLImage. Although the intended purpose is sharing 2D image data, the underlying interface makes no assumptions about the format or purpose of the resource being shared, leaving those decisions to the application and associated client APIs. This is available for FBDEV

alt text

alt text

EGL Image Live Video streaming texture update - GPU

This sample is designed to showcase the usage of EGL Image extension in real time which will take live feed from camera mounted on ZCU+ board and streaming the data on /dev/video0 node. The application reads that streaming and use it as a texture in OpenGL ES application and render and update the texture frame-per-frame using EGL Image instead of classic glteximage2D approach and is quite fast compared to classic approach. This is available for FBDEV.

alt text

alt text

Frame Buffer Object (Render to Texture) Sample GPU

This sample contains Render to texture rendering technique sample on GPU using OpenGL ES 2.0 API’s. FBO is used to create the color cube which is rendered to a texture and is being used in subsequent rendering pass as input texture to be applied across all six faces of bigger cube .Rotating matrix are used here to create animation effects on both cubes separately.This is available in both versions X11 and FBDEV alt text

MIPMAP Levels & Compressed Texture Sample

This sample is designed to show the capability of GPU to decompress the compressed texture on the fly with multiple levels of MIPMAPS being used for textures. The rendering shows Texture MipMaps at multiple levels which were stored as ETC compressed. This is available in both versions X11 and FBDEV. alt text

Multi Particle rendering Sample GPU

This sample is designed to create particle system effect on GPU . It draws multiple particles on screen which are created using a small texture , each particle has a lifetime and color which can be controlled by the application. Animation is created using matrices which allows the particles to diverge in multiple locations and sustain based on there lifetime token.This is available in both versions X11 and FBDEV alt text

Simple Triangle rendering Sample GPU This sample contains simple triangle rendering technique on GPU using OpenGL ES 2.0 API’s.Colors are Interpolated across the vertices and showcase rotation matrix application for creating animation effects.This is available in both versions X11 and FBDEV. alt text

Waveform Pattern Generation using GLSL Fragment Shader on GPU

This sample is designed to show the capability of GPU to Waveform rendering using GLSL Shader code only Without using lot of vertices. The rendering show multiple waveforms on the screen which are implemented using math functions in Pixel Shader.This is available in both versions X11 and FBDEV alt text

YUV TO RGB CONVERSION ON GPU Shader core - GLSL

This sample is designed to show the capability of GPU to do fast Color conversion from YUV to RGB in GLSL Shader code on the Fly. And render the converted Image on the framebuffer continuously frame by frame. This is available in both versions X11 and FBDEV alt text

Test File size was large so download this out.yuv file form link below & place it under "/YUV2RGBonGPUSample/Supportingfiles/" Folder

https://drive.google.com/open?id=1x-iDJurB3rB9TrF_Wa-4uARr8YtTxfzc