SlideShare a Scribd company logo
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
/* Draw and record */
glBeginTransformFeedback(GL_POINTS);
glDrawArrays(GL_POINTS, 0, 1);
for (i = 0; i < STREAMS; i++) {
glEndQueryIndexed(GL_PRIMITIVES_GENERATED,
i);
glEndQueryIndexed(GL_TRANSFORM_FEEDBACK_
PRIMITIVES_WRITTEN,
i);
}
glEndTransformFeedback();
glDeleteVertexArrays(1, &vao);
if (!piglit_check_gl_error(GL_NO_ERROR))
piglit_report_result(PIGLIT_FAIL);
pass = probe_buffers(xfb, queries,
primitive_n);
PIGLIT_FAIL);
Samuel Iglesias Gonsálvez
siglesias@igalia.com
How to test OpenGL
drivers with Free
Software
Introduction
OpenGL
● OpenGL is an API for rendering 2D and 3D graphics.
● Silicon Graphics Inc. (SGI) started developing
OpenGL in 1991 and released it in January 1992
● Now managed by the non-profit technology
consortium Khronos Group.
OpenGL
● It is widely use in different form factor devices (PC,
tablets, mobile phones, embedded devices...) for
running applications that require 2D/3D graphics
rendering (games, scientific applications, etc)
OpenGL
● However, OpenGL is only an API
specification...
● Implementors are free to provide their
own libraries and drivers.
● Possible incompatibilities between
implementations and OpenGL.
● Solution: OpenGL conformance test suites
OpenGL conformance test suites
OpenGL conformance test suites
● There is an official OpenGL conformance
test suite from Khronos group:
https://www.khronos.org/opengl/adopters/
● It is for free (as in beer) for software
developers but it is not Free Software (as
in speech).
https://www.khronos.org/files/adopters_agreement.pdf
OpenGL conformance test suites
● There are unofficial Free Software OpenGL
conformance test suites:
● Glean
● DrawElements Quality Program (dEQP)
● Piglit
Glean
Glean
● Created in 1999 by Allen Akin.
● MIT license.
● Tested on GNU/Linux and Microsoft Windows.
● There hasn't been much activity in Glean for a
few years now.
● Nowadays, it's part of Piglit
http://glean.sourceforge.net/
dEQP
dEQP
● Draw Elements Quality Program (dEQP)
● Developed by Finnish company called
drawElements.
– Bought by Google in 2014
● Google open-sourced dEQP in the
Android Lollipop release.
● Apache License 2.0
dEQP
● Supports OpenGL ES 2.0 and better,
OpenCL 1.X, and EGL 1.4.
● Supported OSes include Android,
GNU/Linux, Windows, iOS.
● Recently, piglit added support for running
dEQP GLES3 tests.
dEQP
● Clone repository:
$ git clone https://android.googlesource.com/platform/external/deqp/
● [Optional] Add to CMakeLists.txt:
set(PNG_INCLUDE_PATH "/usr/include/libpng")
set(PNG_LIBRARY "/usr/lib/x86_64-linux-gnu/libpng.so")
set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_C_FLAGS "-O0 -ggdb")
set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_C_FLAGS_RELEASE "-O0 -ggdb")
set(CMAKE_CXX_FLAGS "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "-O0 -ggdb")
dEQP
● Build:
$ cmake .
$ make
● Note: it doesn't provide an "install" target.
dEQP
● Run the tests with execserver
● Create list of tests to run
$ cd modules/gles3
$ ./deqp-gles3 --deqp-runmode=xml-caselist
● Launch server
$ execserver/execserver
● Launch executor (in other terminal)
$ ./executor/executor -b deqp-gles3 -wd modules/gles3/
-cd modules/gles3/ -t dEQP-GLES3.functional.* -o ./gles3-
functional.xml --cmdline="--deqp-log-images=disable"
dEQP
dEQP
● Run the tests without execserver:
$ cd ./modules/gles3
$ ./deqp-gles3 -n dEQP-GLES3.functional.*
● Results are saved in TestResults.qpa file
dEQP
dEQP
● How to convert Base64 string to PNG
images:
● http://www.base64-image.net/
Result Reference Error mask
dEQP
● It can convert XML files to CSV
$ executor/testlog-to-csv
● No HTML output
Piglit
Piglit
● Created by Nicolai Hähnle in 2007
● Widely used in Mesa for testing and
development
● MIT license
● Include tests for OpenGL, OpenGL ES,
OpenCL.
http://piglit.freedesktop.org
Piglit
● Dependencies
● Python 2.7.x
● Python mako module
● numpy
● cmake
● GL, glu and glut libraries and development
packages (i.e. headers)
● X11 libraries and development packages (i.e.
headers)
● Waffle: http://www.waffle-gl.org
Piglit
● Build:
$ git clone git://anongit.freedesktop.org/git/piglit
$ cmake .
$ make
● Check installation:
$ ./piglit run tests/sanity.tests results/sanity.results
● Your first complete piglit run:
$ ./piglit run tests/all results/all-run
Piglit
● Process results file:
● HTML output
$ ./piglit summary html summary/summary-all
results/all-run
● CLI output
$ ./piglit summary console results/all-run
● CSV output
$ ./piglit summary csv results/all-run
Piglit
● CLI output
[...]
spec/glsl-1.50/compiler/interface-block-name-uses-gl-
prefix.vert: pass
spec/EXT_framebuffer_object/fbo-clear-formats/GL_ALPHA16 (fbo
incomplete): skip
spec/ARB_copy_image/arb_copy_image-targets
GL_TEXTURE_CUBE_MAP_ARRAY 32 32 18 GL_TEXTURE_2D_ARRAY 32 16 15 11
12 5 5 1 2 14 15 9: pass
spec/glsl-1.30/execution/built-in-functions/fs-op-bitxor-uvec3-
uint: pass
spec/ARB_depth_texture/depthstencil-render-miplevels 146 d=z16:
pass
spec/glsl-1.10/execution/variable-indexing/fs-varying-mat2-col-
row-rd: pass
Piglit
summary:
        pass: 25085
       fail: 262
        crash: 5
       skip: 9746
     timeout: 0
       warn: 13
dmesg-warn: 0
dmesg-fail: 0
       total: 35111
Piglit
Piglit
Piglit
● How to run standalone tests
$ bin/texsubimage pbo -auto -fbo
Using test set: Core formats
texsubimage failed
target: GL_TEXTURE_2D
internal format: GL_COMPRESSED_RGB_S3TC_DXT1_EXT
region: 8, 8 48 x 28
[...]
PIGLIT: {"result": "fail" }
Piglit
● Tailor your piglit run
● Add Dmesg information: --dmesg
● Verbose: -l verbose
● Run all concurrent: --all-concurrent
● Disable concurrent test runs: --no-
concurrency
Piglit
● Tailor your piglit run
● Execute by name (*texture*)
$ ./piglit run tests/all -t texture results/all-texture
● Remove tests by name (*color*)
$ ./piglit run tests/all -t texture -x color results/all-
texture
● More information:
$ ./piglit run -h
Piglit
● Test profile
– List of tests to be executed by piglit
in a given run.
– Usually imports other test profile and
edits the list of test (add/remove).
– Written in python.
Piglit
Piglit
● DEQP GLES 3 support
$ export
PIGLIT_DEQP_GLES3_EXE=~/deqp/modules/gles3/deqp-
gles3
$ ./piglit run tests/deqp_gles3.py -t dEQP-
GLES3.functional.* results/gles3-functional
Conclusions
Conclusions
● OpenGL is an API
● Implementations can be incompatible
● Need OpenGL conformance test suites
● Khronos provides an official one but it is
not Free Software (as in speech).
● There are unofficial Free Software
alternatives:
– Glean, dEQP, piglit
Questions?
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

More Related Content

PDF
SIMBLでCocoaアプリをパワーアップ
PDF
Grafika komputer 2
PPTX
Chromium Embedded Framework + Go at Brooklyn JS
ODP
ReactJS Component Lifecycle hooks with examples
PDF
Open GL Tutorial10
PPTX
Open gl polygon code review
PDF
Protobuf & Code Generation + Go-Kit
PDF
openconfigd
SIMBLでCocoaアプリをパワーアップ
Grafika komputer 2
Chromium Embedded Framework + Go at Brooklyn JS
ReactJS Component Lifecycle hooks with examples
Open GL Tutorial10
Open gl polygon code review
Protobuf & Code Generation + Go-Kit
openconfigd

Viewers also liked (20)

PDF
Optimizing with persistent data structures (LLVM Cauldron 2016)
PDF
Spelunking through JPEG with Racket (Sixth RacketCon)
PDF
Herbst 2010
PDF
TGS AME Namibia N2R93RE15 2D
 
PDF
La Digestión Anaerobia como parte medular de la sustentabilidad ambiental
PDF
Rk village plaza 180th
PPS
Reino animal
PPT
Presentación detallada HallTech
DOCX
Manejo de equipo de activo fijo
PPT
mFLOR. Presentación técnica
PPTX
Planeta oroneta presentació crevillent 2015
PPTX
"Discover windows phone" 02. page navigation
PDF
Api 581 sec.3 nivel 2 areas de consecuencias
PPTX
Congreso Actualización - Carrera en AUPSA
DOC
Annexes 050 meteo
PPT
Sabidura perenne
PDF
Ntc 1692 peligrosos
PDF
Sistema de transporte de datos sobre redes inalambricas WLAN
PPTX
Tutorial unad sobre el plagio (Flor Posada Parada)
PDF
Juego de la vida y como jugarlo
Optimizing with persistent data structures (LLVM Cauldron 2016)
Spelunking through JPEG with Racket (Sixth RacketCon)
Herbst 2010
TGS AME Namibia N2R93RE15 2D
 
La Digestión Anaerobia como parte medular de la sustentabilidad ambiental
Rk village plaza 180th
Reino animal
Presentación detallada HallTech
Manejo de equipo de activo fijo
mFLOR. Presentación técnica
Planeta oroneta presentació crevillent 2015
"Discover windows phone" 02. page navigation
Api 581 sec.3 nivel 2 areas de consecuencias
Congreso Actualización - Carrera en AUPSA
Annexes 050 meteo
Sabidura perenne
Ntc 1692 peligrosos
Sistema de transporte de datos sobre redes inalambricas WLAN
Tutorial unad sobre el plagio (Flor Posada Parada)
Juego de la vida y como jugarlo
Ad

Similar to How to test OpenGL drivers using Free Software (FOSDEM 2015) (20)

PPTX
UNIT 1 OPENGL_UPDATED .pptx
PPT
01.Opengl_intro-2.ppt
PDF
201707 SER332 Lecture 03
DOCX
Computer Graphics and Multimedia lab report
PDF
C c++-meetup-1nov2017-autofdo
PPT
opengl.ppt
PPT
Intro to Computer Graphics.ppt
PPT
3.Computer graphics _ Opengl _ intro.ppt
PDF
The Ring programming language version 1.6 book - Part 60 of 189
PPT
Open gl
PDF
The Ring programming language version 1.6 book - Part 10 of 189
PDF
GLX, DRI, and i965
PDF
The Ring programming language version 1.7 book - Part 11 of 196
DOCX
OpenGL-SolarSystem-master.gitattributes# Auto detect text fil.docx
PPTX
OpenGL_summer2012.ccccccccccccccccccpptx
DOCX
computer graphics at openGL
PPTX
Computer Graphics with OpenGL presentation Slides.pptx
PDF
Cli jbug
PDF
AS7 and CLI
PDF
Google App Engine: Basic
UNIT 1 OPENGL_UPDATED .pptx
01.Opengl_intro-2.ppt
201707 SER332 Lecture 03
Computer Graphics and Multimedia lab report
C c++-meetup-1nov2017-autofdo
opengl.ppt
Intro to Computer Graphics.ppt
3.Computer graphics _ Opengl _ intro.ppt
The Ring programming language version 1.6 book - Part 60 of 189
Open gl
The Ring programming language version 1.6 book - Part 10 of 189
GLX, DRI, and i965
The Ring programming language version 1.7 book - Part 11 of 196
OpenGL-SolarSystem-master.gitattributes# Auto detect text fil.docx
OpenGL_summer2012.ccccccccccccccccccpptx
computer graphics at openGL
Computer Graphics with OpenGL presentation Slides.pptx
Cli jbug
AS7 and CLI
Google App Engine: Basic
Ad

More from Igalia (20)

PDF
Life of a Kernel Bug Fix
PDF
Unlocking the Full Potential of WPE to Build a Successful Embedded Product
PDF
Advancing WebDriver BiDi support in WebKit
PDF
Jumping Over the Garden Wall - WPE WebKit on Android
PDF
Collective Funding, Governance and Prioritiation of Browser Engine Projects
PDF
Don't let your motivation go, save time with kworkflow
PDF
Solving the world’s (localization) problems
PDF
The Whippet Embeddable Garbage Collection Library
PDF
Nobody asks "How is JavaScript?"
PDF
Getting more juice out from your Raspberry Pi GPU
PDF
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
PDF
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
PDF
CSS :has() Unlimited Power
PDF
Device-Generated Commands in Vulkan
PDF
Current state of Lavapipe: Mesa's software renderer for Vulkan
PDF
Vulkan Video is Open: Application showcase
PDF
Scheme on WebAssembly: It is happening!
PDF
EBC - A new backend compiler for etnaviv
PDF
RISC-V LLVM State of the Union
PDF
Device-Generated Commands in Vulkan
Life of a Kernel Bug Fix
Unlocking the Full Potential of WPE to Build a Successful Embedded Product
Advancing WebDriver BiDi support in WebKit
Jumping Over the Garden Wall - WPE WebKit on Android
Collective Funding, Governance and Prioritiation of Browser Engine Projects
Don't let your motivation go, save time with kworkflow
Solving the world’s (localization) problems
The Whippet Embeddable Garbage Collection Library
Nobody asks "How is JavaScript?"
Getting more juice out from your Raspberry Pi GPU
WebRTC support in WebKitGTK and WPEWebKit with GStreamer: Status update
Demystifying Temporal: A Deep Dive into JavaScript New Temporal API
CSS :has() Unlimited Power
Device-Generated Commands in Vulkan
Current state of Lavapipe: Mesa's software renderer for Vulkan
Vulkan Video is Open: Application showcase
Scheme on WebAssembly: It is happening!
EBC - A new backend compiler for etnaviv
RISC-V LLVM State of the Union
Device-Generated Commands in Vulkan

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
MYSQL Presentation for SQL database connectivity
PDF
cuic standard and advanced reporting.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Spectroscopy.pptx food analysis technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
MYSQL Presentation for SQL database connectivity
cuic standard and advanced reporting.pdf
Encapsulation_ Review paper, used for researhc scholars
Spectroscopy.pptx food analysis technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Big Data Technologies - Introduction.pptx
20250228 LYD VKU AI Blended-Learning.pptx
The AUB Centre for AI in Media Proposal.docx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx

How to test OpenGL drivers using Free Software (FOSDEM 2015)

  • 1. glGenVertexArrays(1, &vao); glBindVertexArray(vao); /* Draw and record */ glBeginTransformFeedback(GL_POINTS); glDrawArrays(GL_POINTS, 0, 1); for (i = 0; i < STREAMS; i++) { glEndQueryIndexed(GL_PRIMITIVES_GENERATED, i); glEndQueryIndexed(GL_TRANSFORM_FEEDBACK_ PRIMITIVES_WRITTEN, i); } glEndTransformFeedback(); glDeleteVertexArrays(1, &vao); if (!piglit_check_gl_error(GL_NO_ERROR)) piglit_report_result(PIGLIT_FAIL); pass = probe_buffers(xfb, queries, primitive_n); PIGLIT_FAIL); Samuel Iglesias Gonsálvez siglesias@igalia.com How to test OpenGL drivers with Free Software
  • 3. OpenGL ● OpenGL is an API for rendering 2D and 3D graphics. ● Silicon Graphics Inc. (SGI) started developing OpenGL in 1991 and released it in January 1992 ● Now managed by the non-profit technology consortium Khronos Group.
  • 4. OpenGL ● It is widely use in different form factor devices (PC, tablets, mobile phones, embedded devices...) for running applications that require 2D/3D graphics rendering (games, scientific applications, etc)
  • 5. OpenGL ● However, OpenGL is only an API specification... ● Implementors are free to provide their own libraries and drivers. ● Possible incompatibilities between implementations and OpenGL. ● Solution: OpenGL conformance test suites
  • 7. OpenGL conformance test suites ● There is an official OpenGL conformance test suite from Khronos group: https://www.khronos.org/opengl/adopters/ ● It is for free (as in beer) for software developers but it is not Free Software (as in speech). https://www.khronos.org/files/adopters_agreement.pdf
  • 8. OpenGL conformance test suites ● There are unofficial Free Software OpenGL conformance test suites: ● Glean ● DrawElements Quality Program (dEQP) ● Piglit
  • 10. Glean ● Created in 1999 by Allen Akin. ● MIT license. ● Tested on GNU/Linux and Microsoft Windows. ● There hasn't been much activity in Glean for a few years now. ● Nowadays, it's part of Piglit http://glean.sourceforge.net/
  • 11. dEQP
  • 12. dEQP ● Draw Elements Quality Program (dEQP) ● Developed by Finnish company called drawElements. – Bought by Google in 2014 ● Google open-sourced dEQP in the Android Lollipop release. ● Apache License 2.0
  • 13. dEQP ● Supports OpenGL ES 2.0 and better, OpenCL 1.X, and EGL 1.4. ● Supported OSes include Android, GNU/Linux, Windows, iOS. ● Recently, piglit added support for running dEQP GLES3 tests.
  • 14. dEQP ● Clone repository: $ git clone https://android.googlesource.com/platform/external/deqp/ ● [Optional] Add to CMakeLists.txt: set(PNG_INCLUDE_PATH "/usr/include/libpng") set(PNG_LIBRARY "/usr/lib/x86_64-linux-gnu/libpng.so") set(CMAKE_BUILD_TYPE DEBUG) set(CMAKE_C_FLAGS "-O0 -ggdb") set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") set(CMAKE_C_FLAGS_RELEASE "-O0 -ggdb") set(CMAKE_CXX_FLAGS "-O0 -ggdb") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") set(CMAKE_CXX_FLAGS_RELEASE "-O0 -ggdb")
  • 15. dEQP ● Build: $ cmake . $ make ● Note: it doesn't provide an "install" target.
  • 16. dEQP ● Run the tests with execserver ● Create list of tests to run $ cd modules/gles3 $ ./deqp-gles3 --deqp-runmode=xml-caselist ● Launch server $ execserver/execserver ● Launch executor (in other terminal) $ ./executor/executor -b deqp-gles3 -wd modules/gles3/ -cd modules/gles3/ -t dEQP-GLES3.functional.* -o ./gles3- functional.xml --cmdline="--deqp-log-images=disable"
  • 17. dEQP
  • 18. dEQP ● Run the tests without execserver: $ cd ./modules/gles3 $ ./deqp-gles3 -n dEQP-GLES3.functional.* ● Results are saved in TestResults.qpa file
  • 19. dEQP
  • 20. dEQP ● How to convert Base64 string to PNG images: ● http://www.base64-image.net/ Result Reference Error mask
  • 21. dEQP ● It can convert XML files to CSV $ executor/testlog-to-csv ● No HTML output
  • 23. Piglit ● Created by Nicolai Hähnle in 2007 ● Widely used in Mesa for testing and development ● MIT license ● Include tests for OpenGL, OpenGL ES, OpenCL. http://piglit.freedesktop.org
  • 24. Piglit ● Dependencies ● Python 2.7.x ● Python mako module ● numpy ● cmake ● GL, glu and glut libraries and development packages (i.e. headers) ● X11 libraries and development packages (i.e. headers) ● Waffle: http://www.waffle-gl.org
  • 25. Piglit ● Build: $ git clone git://anongit.freedesktop.org/git/piglit $ cmake . $ make ● Check installation: $ ./piglit run tests/sanity.tests results/sanity.results ● Your first complete piglit run: $ ./piglit run tests/all results/all-run
  • 26. Piglit ● Process results file: ● HTML output $ ./piglit summary html summary/summary-all results/all-run ● CLI output $ ./piglit summary console results/all-run ● CSV output $ ./piglit summary csv results/all-run
  • 27. Piglit ● CLI output [...] spec/glsl-1.50/compiler/interface-block-name-uses-gl- prefix.vert: pass spec/EXT_framebuffer_object/fbo-clear-formats/GL_ALPHA16 (fbo incomplete): skip spec/ARB_copy_image/arb_copy_image-targets GL_TEXTURE_CUBE_MAP_ARRAY 32 32 18 GL_TEXTURE_2D_ARRAY 32 16 15 11 12 5 5 1 2 14 15 9: pass spec/glsl-1.30/execution/built-in-functions/fs-op-bitxor-uvec3- uint: pass spec/ARB_depth_texture/depthstencil-render-miplevels 146 d=z16: pass spec/glsl-1.10/execution/variable-indexing/fs-varying-mat2-col- row-rd: pass
  • 28. Piglit summary:         pass: 25085        fail: 262         crash: 5        skip: 9746      timeout: 0        warn: 13 dmesg-warn: 0 dmesg-fail: 0        total: 35111
  • 31. Piglit ● How to run standalone tests $ bin/texsubimage pbo -auto -fbo Using test set: Core formats texsubimage failed target: GL_TEXTURE_2D internal format: GL_COMPRESSED_RGB_S3TC_DXT1_EXT region: 8, 8 48 x 28 [...] PIGLIT: {"result": "fail" }
  • 32. Piglit ● Tailor your piglit run ● Add Dmesg information: --dmesg ● Verbose: -l verbose ● Run all concurrent: --all-concurrent ● Disable concurrent test runs: --no- concurrency
  • 33. Piglit ● Tailor your piglit run ● Execute by name (*texture*) $ ./piglit run tests/all -t texture results/all-texture ● Remove tests by name (*color*) $ ./piglit run tests/all -t texture -x color results/all- texture ● More information: $ ./piglit run -h
  • 34. Piglit ● Test profile – List of tests to be executed by piglit in a given run. – Usually imports other test profile and edits the list of test (add/remove). – Written in python.
  • 36. Piglit ● DEQP GLES 3 support $ export PIGLIT_DEQP_GLES3_EXE=~/deqp/modules/gles3/deqp- gles3 $ ./piglit run tests/deqp_gles3.py -t dEQP- GLES3.functional.* results/gles3-functional
  • 38. Conclusions ● OpenGL is an API ● Implementations can be incompatible ● Need OpenGL conformance test suites ● Khronos provides an official one but it is not Free Software (as in speech). ● There are unofficial Free Software alternatives: – Glean, dEQP, piglit
  • 40. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.