SlideShare a Scribd company logo
v3dfx-base

prabu@ti.com , Feb 2012
v3dfx-base
Introduction
 • Allows applications to integrate video streaming with SGX
   without writing platform specific code in a re-usable way
        – Support for imgstream AND eglimage through same API
deviceClass = new TISGXStreamIMGSTREAMDevice();                      deviceClass = new TISGXStreamEGLIMAGEDevice();
texClass = new TISGXStreamTexIMGSTREAM();                            texClass = new TISGXStreamTexEGLIMAGE();
deviceClass->qTexImage2DBuf(paArray);                                deviceClass->qTexImage2DBuf(paArray);
deviceClass->dqTexImage2DBuf(freeArray);                             deviceClass->dqTexImage2DBuf(freeArray);

            channel 1    channel n                channel 1   channel n                  channel n     channel n




                                                          device                                  device
                  device n
                                                           n+1                                     n+2


                                                    v3dfx-base


                                                                                              3
Is / Is Not
              • Handles rapidly changing textures (RGB, YUV)


    WHAT IT   • Supports imgstream
              • Supports eglimage
              • Supports both imgstream and eglimage with single API
              • Reusable class, delivered as “v3dfx-base.a” (ARM library)

      IS      • Needs Graphics SDK with eglimage/imgstream support
              • Targeted to support multi-threaded operation (WIP)
              • Targeted to support cropping (WIP)




    WHAT IT   • Does not initialise GL state, EGL state for application
              • Does not do drawing (glDrawArray, glDrawElement)
              • Does not do eglSwapBuffer

    IS NOT    • Does not provide fancy GLSL shaders




4
Underneath the hood – Target
                           Execution
   -Contiguous buffer (preferred), allocated by customer application as texture input
   -Customer application does drawing in its native way
   -Dynamically update texture buffers using qTexImage2DBuf(), signal_draw() and dqTexImage2DBuf() calls




                                                                                                 v3dfx-base.a
                                                        Customer application
                                                                                                 linked in app, Qt wrapper ..

                                        v3dfx-base (v3dfx-base.a) library archive

                         GL_IMG_texture_stream2
                                                                                          GL_OES_EGL_image_external
IMGSTREAM                                                                                                             EGLIMAGE
                           User Mode SGX binary
                                                                                            User Mode SGX binary

                               bufferclass_ti
                               Kernel driver



                                                                 SGX HW

    5
Underneath the hood – raw API
deviceClass = new TISGXStreamIMGSTREAMDevice();                      deviceClass = new TISGXStreamEGLIMAGEDevice();
texClass = new TISGXStreamTexIMGSTREAM();                            texClass = new TISGXStreamTexEGLIMAGE();
deviceClass->qTexImage2DBuf(paArray);                                deviceClass->qTexImage2DBuf(paArray);
deviceClass->dqTexImage2DBuf(freeArray);                             deviceClass->dqTexImage2DBuf(freeArray);

            channel 1          channel n          channel 1   channel n                  channel n       channel n




                                                          device                                 device
                  device n
                                                           n+1                                    n+2

                                                    v3dfx-base


             GL_IMG_texture_stream2                                          GL_OES_EGL_image_external


               User Mode SGX binary                                            User Mode SGX binary


                        bufferclass_ti
                        Kernel driver


                                                       SGX HW

 6
Class Description – IMGSTREAM class




7
Class Description - EGLIMAGE class




8
Target use-cases
                                              Qt

                                                   QGLWidget wrapper
                                                      (completed)
      v3dfx templates
    (Barn-door, Mosaic          gstreamer      QGraphicsItemw
                                                   rapper

                         v3dfx-base library




9
QGLWidget Wrapper Class for v3dfx-
                  base




10
Source Code organisation
     – Base API implementation
         • v3dfx-base/api
             – Provides both imgstream and eglimage implementation as raw C++ classes
     – Reusable Qt classes
         • v3dfx-base/platforms/Qt
             – (GraphicsItem based) – in progress
         • v3dfx-base/platforms/qtQGL
             – (QGLWidget based) – completed
     – Test applications
         • v3dfx-base/test/imgstream
             – Raw (full screen, no window manager) test for imgstream based streaming
         • v3dfx-base/test/eglimage
             – Raw (full screen, no window manager) test for eglimage based streaming
         • platforms/qtQGL
             – Qt – QGLWidget based class, test for both imgstream and eglimage
         • platforms/qt
             – Qt – QGraphicsItem based class, test for both imgstream and eglimage (WIP)


11
References
• https://github.com/prabindh/v3dfx-base




12

More Related Content

PPTX
Ultrasound Image Viewer - Qt + SGX
PDF
NIR on the Mesa i965 backend (FOSDEM 2016)
PDF
A Close Look at ARM Code Size
PDF
How to make a high-quality Node.js app, Nikita Galkin
PDF
Clang: More than just a C/C++ Compiler
PDF
QThreads: Are You Using Them Wrong?
 
PDF
Gcd(i os & os x 멀티스레딩 기법)
PDF
Qt on Real Time Operating Systems
Ultrasound Image Viewer - Qt + SGX
NIR on the Mesa i965 backend (FOSDEM 2016)
A Close Look at ARM Code Size
How to make a high-quality Node.js app, Nikita Galkin
Clang: More than just a C/C++ Compiler
QThreads: Are You Using Them Wrong?
 
Gcd(i os & os x 멀티스레딩 기법)
Qt on Real Time Operating Systems

What's hot (20)

PDF
A Brief Introduction to the Qt Application Framework
PDF
Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
PDF
The Future of Qt Widgets
PDF
Qt Widget In-Depth
PDF
Qt multi threads
PDF
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26
PDF
Introduction to IoT.JS
PDF
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
PDF
Scripting Your Qt Application
PDF
Building a Big Data Machine Learning Platform
DOCX
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
PDF
Thesis - LLVM toolchain support as a plug-in for Eclipse CDT
PDF
Advanced Visualization with OpenGL in Oil & Gas
PDF
ceph::errorator<> throw/catch-free, compile time-checked exceptions for seast...
PDF
Unconventional webapps with gwt:elemental & html5
PDF
Building a QT based solution on a i.MX7 processor running Linux and FreeRTOS
PDF
WebRTC ... GWT & in-browser computation
PPT
Intro2 Cuda Moayad
PDF
Introduction to IoT.JS
PDF
NUS-ISS Learning Day 2017 - Bots-Managed CloudOps
A Brief Introduction to the Qt Application Framework
Maximize The Performance of HTML5 Video in RPI2 (Embedded Linux Conference 2016)
The Future of Qt Widgets
Qt Widget In-Depth
Qt multi threads
Cinder Update, OpenInfra Meetup Q3 China, 2020-09-26
Introduction to IoT.JS
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
Scripting Your Qt Application
Building a Big Data Machine Learning Platform
Bsdtw17: mariusz zaborski: case studies of sandboxing base system with capsicum
Thesis - LLVM toolchain support as a plug-in for Eclipse CDT
Advanced Visualization with OpenGL in Oil & Gas
ceph::errorator<> throw/catch-free, compile time-checked exceptions for seast...
Unconventional webapps with gwt:elemental & html5
Building a QT based solution on a i.MX7 processor running Linux and FreeRTOS
WebRTC ... GWT & in-browser computation
Intro2 Cuda Moayad
Introduction to IoT.JS
NUS-ISS Learning Day 2017 - Bots-Managed CloudOps
Ad

Viewers also liked (18)

PPT
OpenGL ES based UI Development on TI Platforms
PPTX
Moksha - HTML5/CSS with Qt5+Snowshoe on AM335x
XLS
Flash10 playback performance 3730
PPTX
Gfx2013 lab manual
PPT
Measuring SGX Texturing Performance
PPTX
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ES
PPTX
John Carmack talk at SMU, April 2014 - Virtual Reality
PPTX
Qt5.0.0 eglfs abort issue
PPTX
GFX Part 4 - Introduction to Texturing in OpenGL ES
PPTX
GFX Part 5 - Introduction to Object Transformations in OpenGL ES
PPTX
GFX Part 7 - Introduction to Rendering Targets in OpenGL ES
PPTX
GFX part 8 - Three.js introduction and usage
PPTX
GFX Part 2 - Introduction to GPU Programming
PPT
Qt Programming on TI Processors
PPTX
Gfx2014 Graphics Workshop - Lab manual
PPT
Cache profiling on ARM Linux
PDF
Pourquoi les jeux-concours deviennent incontournables pour le Community Manag...
PPTX
Marketing opérationnel
OpenGL ES based UI Development on TI Platforms
Moksha - HTML5/CSS with Qt5+Snowshoe on AM335x
Flash10 playback performance 3730
Gfx2013 lab manual
Measuring SGX Texturing Performance
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ES
John Carmack talk at SMU, April 2014 - Virtual Reality
Qt5.0.0 eglfs abort issue
GFX Part 4 - Introduction to Texturing in OpenGL ES
GFX Part 5 - Introduction to Object Transformations in OpenGL ES
GFX Part 7 - Introduction to Rendering Targets in OpenGL ES
GFX part 8 - Three.js introduction and usage
GFX Part 2 - Introduction to GPU Programming
Qt Programming on TI Processors
Gfx2014 Graphics Workshop - Lab manual
Cache profiling on ARM Linux
Pourquoi les jeux-concours deviennent incontournables pour le Community Manag...
Marketing opérationnel
Ad

Similar to Introduction to video streaming on SGX through v3dfx-base (20)

PDF
Low Level Graphics & OpenGL
PPT
CS 354 GPU Architecture
PDF
Minko - Targeting Flash/Stage3D with C++ and GLSL
PPTX
Computer Graphics
PDF
GeForce 8800 OpenGL Extensions
PPT
SIGGRAPH 2012: NVIDIA OpenGL for 2012
PPTX
2D graphics
PDF
Realizing OpenGL
PDF
Modern Graphics Pipeline Overview
PPT
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
PDF
GPU Virtualization on VMware's Hosted I/O Architecture
PPT
Introduction to 2D/3D Graphics
PDF
Useful Tools for Making Video Games - Irrlicht (2008)
PPTX
Shape12 6
PPT
Abc of DirectX
PDF
3 d to _hpc
PDF
GLSL Shading with OpenSceneGraph
PPT
NVIDIA's OpenGL Functionality
PDF
2D Games to HPC
PDF
3 d to_hpc
Low Level Graphics & OpenGL
CS 354 GPU Architecture
Minko - Targeting Flash/Stage3D with C++ and GLSL
Computer Graphics
GeForce 8800 OpenGL Extensions
SIGGRAPH 2012: NVIDIA OpenGL for 2012
2D graphics
Realizing OpenGL
Modern Graphics Pipeline Overview
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
GPU Virtualization on VMware's Hosted I/O Architecture
Introduction to 2D/3D Graphics
Useful Tools for Making Video Games - Irrlicht (2008)
Shape12 6
Abc of DirectX
3 d to _hpc
GLSL Shading with OpenSceneGraph
NVIDIA's OpenGL Functionality
2D Games to HPC
3 d to_hpc

More from Prabindh Sundareson (18)

PDF
Synthetic Data and Graphics Techniques in Robotics
PDF
Work and Life
PPTX
GPU Algorithms and trends 2018
PPTX
Machine learning in the Indian Context - IEEE talk at SRM Institute
PDF
Students Hackathon - 2017
PPTX
ICCE Asia 2017 - Program Outline
PDF
Call for Papers - ICCE Asia 2017
PDF
Technology, Innovation - A Perspective
PDF
Open Shading Language (OSL)
PDF
IEEE - Consumer Electronics Trends Opportunities (2015)
PPTX
GFX Part 3 - Vertices and interactions in OpenGL
PPTX
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
PPTX
GFX2014 OpenGL ES Quiz
PPTX
Render to Texture with Three.js
PPTX
ANGLE on Windows for OpenGLES2.0
PPTX
Yocto usage for Graphics SDK on AM335x
PPT
ARM Linux Embedded memory protection techniques
PPTX
Qt5 (minimal) on beaglebone, with Yocto
Synthetic Data and Graphics Techniques in Robotics
Work and Life
GPU Algorithms and trends 2018
Machine learning in the Indian Context - IEEE talk at SRM Institute
Students Hackathon - 2017
ICCE Asia 2017 - Program Outline
Call for Papers - ICCE Asia 2017
Technology, Innovation - A Perspective
Open Shading Language (OSL)
IEEE - Consumer Electronics Trends Opportunities (2015)
GFX Part 3 - Vertices and interactions in OpenGL
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX2014 OpenGL ES Quiz
Render to Texture with Three.js
ANGLE on Windows for OpenGLES2.0
Yocto usage for Graphics SDK on AM335x
ARM Linux Embedded memory protection techniques
Qt5 (minimal) on beaglebone, with Yocto

Recently uploaded (20)

PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
A Presentation on Artificial Intelligence
PDF
August Patch Tuesday
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
Approach and Philosophy of On baking technology
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Mushroom cultivation and it's methods.pdf
PDF
Hybrid model detection and classification of lung cancer
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Getting Started with Data Integration: FME Form 101
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
Encapsulation_ Review paper, used for researhc scholars
A Presentation on Artificial Intelligence
August Patch Tuesday
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Approach and Philosophy of On baking technology
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Mushroom cultivation and it's methods.pdf
Hybrid model detection and classification of lung cancer
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Web App vs Mobile App What Should You Build First.pdf
DP Operators-handbook-extract for the Mautical Institute
Getting Started with Data Integration: FME Form 101
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Zenith AI: Advanced Artificial Intelligence
Chapter 5: Probability Theory and Statistics
Group 1 Presentation -Planning and Decision Making .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
A comparative analysis of optical character recognition models for extracting...

Introduction to video streaming on SGX through v3dfx-base

  • 3. Introduction • Allows applications to integrate video streaming with SGX without writing platform specific code in a re-usable way – Support for imgstream AND eglimage through same API deviceClass = new TISGXStreamIMGSTREAMDevice(); deviceClass = new TISGXStreamEGLIMAGEDevice(); texClass = new TISGXStreamTexIMGSTREAM(); texClass = new TISGXStreamTexEGLIMAGE(); deviceClass->qTexImage2DBuf(paArray); deviceClass->qTexImage2DBuf(paArray); deviceClass->dqTexImage2DBuf(freeArray); deviceClass->dqTexImage2DBuf(freeArray); channel 1 channel n channel 1 channel n channel n channel n device device device n n+1 n+2 v3dfx-base 3
  • 4. Is / Is Not • Handles rapidly changing textures (RGB, YUV) WHAT IT • Supports imgstream • Supports eglimage • Supports both imgstream and eglimage with single API • Reusable class, delivered as “v3dfx-base.a” (ARM library) IS • Needs Graphics SDK with eglimage/imgstream support • Targeted to support multi-threaded operation (WIP) • Targeted to support cropping (WIP) WHAT IT • Does not initialise GL state, EGL state for application • Does not do drawing (glDrawArray, glDrawElement) • Does not do eglSwapBuffer IS NOT • Does not provide fancy GLSL shaders 4
  • 5. Underneath the hood – Target Execution -Contiguous buffer (preferred), allocated by customer application as texture input -Customer application does drawing in its native way -Dynamically update texture buffers using qTexImage2DBuf(), signal_draw() and dqTexImage2DBuf() calls v3dfx-base.a Customer application linked in app, Qt wrapper .. v3dfx-base (v3dfx-base.a) library archive GL_IMG_texture_stream2 GL_OES_EGL_image_external IMGSTREAM EGLIMAGE User Mode SGX binary User Mode SGX binary bufferclass_ti Kernel driver SGX HW 5
  • 6. Underneath the hood – raw API deviceClass = new TISGXStreamIMGSTREAMDevice(); deviceClass = new TISGXStreamEGLIMAGEDevice(); texClass = new TISGXStreamTexIMGSTREAM(); texClass = new TISGXStreamTexEGLIMAGE(); deviceClass->qTexImage2DBuf(paArray); deviceClass->qTexImage2DBuf(paArray); deviceClass->dqTexImage2DBuf(freeArray); deviceClass->dqTexImage2DBuf(freeArray); channel 1 channel n channel 1 channel n channel n channel n device device device n n+1 n+2 v3dfx-base GL_IMG_texture_stream2 GL_OES_EGL_image_external User Mode SGX binary User Mode SGX binary bufferclass_ti Kernel driver SGX HW 6
  • 7. Class Description – IMGSTREAM class 7
  • 8. Class Description - EGLIMAGE class 8
  • 9. Target use-cases Qt QGLWidget wrapper (completed) v3dfx templates (Barn-door, Mosaic gstreamer QGraphicsItemw rapper v3dfx-base library 9
  • 10. QGLWidget Wrapper Class for v3dfx- base 10
  • 11. Source Code organisation – Base API implementation • v3dfx-base/api – Provides both imgstream and eglimage implementation as raw C++ classes – Reusable Qt classes • v3dfx-base/platforms/Qt – (GraphicsItem based) – in progress • v3dfx-base/platforms/qtQGL – (QGLWidget based) – completed – Test applications • v3dfx-base/test/imgstream – Raw (full screen, no window manager) test for imgstream based streaming • v3dfx-base/test/eglimage – Raw (full screen, no window manager) test for eglimage based streaming • platforms/qtQGL – Qt – QGLWidget based class, test for both imgstream and eglimage • platforms/qt – Qt – QGraphicsItem based class, test for both imgstream and eglimage (WIP) 11