glmark2 2021.12 (20211223)
==========================

* Fix crash with NVIDIA OpenGL driver.
* Fix issues when running with the Wayland backend under Sway.
* Gracefully handle missing GL features.
* Fix model loading on big-endian systems.
* Support EGL versions < 1.4.
* Fix crash with the DRM backend when we can't become DRM master.

glmark2 2021.02 (20210215)
==========================

* Meson build system support for DRM/X11/Wayland builds.
* Fix precision handling in various fragment shaders.
* Fix spurious failures when using --validate.
* Always draw to the correct, offscreen buffer when using --off-screen.
* Don't prefer framebuffer formats with more than 8 bytes per component.
* Add basic mouse and keyboard support on Wayland.

glmark2 2020.04 (20200428)
==========================

* Port Wayland flavor to xdg-shell window management.
* Support recent Android SDK/NDK versions.
* Add support for Windows via WGL and ANGLE-EGL.
* Support Raspberry Pi's dispmanx.
* Use glad for GL headers and dynamic GL library loading.
* Add --data-path command-line option to set data path at runtime.
* Add 'nframes' scene option to limit the number of rendered frames.
* Add F-Droid/fastlane metadata.

glmark2 2017.07 (20170728)
==========================

* Use monotonic clock for benchmark timings.
* Use udev to find the best node path to use in the DRM backend.
* Don't rebuild common source needlessly.
* Build in C++14 mode.

glmark2 2014.03 (20140310)
==========================

* Refactor canvas code to make it easier to support new platforms.
* Add Wayland backend.
* Add Mir backend.
* Add a new 'cel' (or 'toon') shading model (scene 'shading').
* Add a new 'clear' scene, which just clears the canvas.
* Improve support for the Wavefront .obj file format.

glmark2 2012.12 (20121218)
==========================

* Add a refraction (2 interface) and reflection benchmark (scene 'reflect').
* Add a new canvas object which allows rendering to GBM managed surfaces
  and page flipping to DRM managed framebuffer from a console.
* Enhancements to visual config mechanism to consider stencil size in the
  selection criteria and to query all config attribs.

glmark2 2012.11 (20121126)
==========================

* Add a shadow mapping benchmark (scene 'shadow').
* Consolidate EGL interactions into a separate state object.

glmark2 2012.08 (20120817)
==========================

* Display benchmark results in the Android GUI.
* Add an Android option menu offering load/save/delete benchmark list
  functionality, access to last benchmark results, settings and
  information about glmark2.
* Properly handle spaces in scene options on Android.
* Exclude from score calculation benchmarks whose set up wasn't successful.
* Display an appropriate message (instead of a 0 FPS value) if benchmark
  set up isn't successful.
* Add support for standard GNU installation directories.

glmark2 2012.07 (20120719)
==========================

* Add Android GUI for defining and running benchmarks.
* Add benchmark based on the WebGL jellyfish demo (scene 'jellyfish').
* Add benchmark based on the WebGL dynamic terrain demo (scene 'terrain').
* Extend texture scene with the option to compute texture coordinates
  in the shader (option 'texgen').
* Add support for reading texture data from JPEG files.
* Properly support options that have a finite set of acceptable values.

glmark2 2012.06 (20120621)
==========================

* Add command-line option to render in fullscreen mode (--fullscreen).
* Display the frame time in addition to the FPS for each benchmark.

glmark2 2012.05 (20120524)
==========================

* Add benchmark based on the SGI "Ideas in Motion" demo.
* Ensure that the framebuffer is drawn opaquely.
* Add command-line option to configure the visual used for rendering
  (--visual-config).
* Add support for additional models and textures in the 'texture' scene.

glmark2 2012.03 (20120322)
==========================

* X11:
  - Support rendering to an off-screen surface (--off-screen).
  - Add command-line option to select which method to use to "end"
    a frame (--frame-end).

glmark2 2012.02 (20120216)
==========================

* Consolidate X11 and Android main loops.
* Accept command-line options on Android through either a file
  ('/data/glmark2/args') or an extra intent key ('args').
* Support per-scene options for displaying an FPS count on screen
  (show-fps, fps-pos, fps-size), and remove --show-fps command-line option.
* Support per-scene options for displaying a benchmark title on screen
  (title, title-pos, title-size).
* Add command-line option to run benchmarks indefinitely (--run-forever).
* Add command-line option to annotate the benchmarks with on-screen
  information (--annotate == -b :show-fps=true:title=#info#).
* Move various utility classes to libmatrix.
* Fix build issues on Android ICS.

glmark2 2012.01 (20120119)
==========================

* X11:
  - Run each benchmark in a fresh GL context. Use --reuse-context
    to revert to the old default behavior of using the same context
    for all benchmarks.
  - Add option for showing a live FPS counter on screen (--show-fps).
  - If the list of benchmarks to run contains only option-setting
    descriptions, run the default benchmarks.
* Android:
  - Fix crash on platforms not supporting glMapBufferOES.
  - Log the glmark2 score when finishing.
  - Log an error message if we fail to find a suitable EGLContext.
  - Implement various stability improvements.

glmark2 2011.12 (20111215)
==========================

* Add benchmark for bilinear filtering implemented in the fragment
  shader (not included in the default benchmarks).
* Ensure we don't call any GL functions before binding a GL context.
* Fix bug in the ShaderSource object that could lead to shader
  compilation errors in strict OpenGL ES 2.0 implementations.
* Refactor scene update code to reduce duplication.

glmark2 2011.11 (20111116)
==========================

* Add benchmark for bump mapping using a height map.
* Add benchmark for bump mapping using a tangent space normal map
  (not included in the default benchmarks).
* Implement validation support for all default benchmarks.
* Add a colored prefix to log messages in debug mode.
* Clean up and refactor code.

glmark2 2011.10 (20111018)
==========================

* Add benchmark for buffer (VBO) updates.
* Add benchmark for drop-shadow desktop effect.
* Add support for glmark2 extra large models.
* Enable the selection of additional models in the shading benchmark.
* Gracefully handle unsupported OpenGL versions, on both X11 and Android.
* Disable screen dimming and screen rotation on Android.

glmark2 2011.09 (20110921)
==========================

* Add benchmark for blur desktop effect.
* Add support for multiple lights in the phong shading benchmark.
* Add support for loading models from OBJ geometry files.
* Add Stanford Bunny model and make it available in the build benchmark.
* Add per-scene options to set shader precision at runtime.
* Add command-line option to specify the benchmarks to run using a text file.

glmark2 2011.08 (20110818)
==========================

* Port to Android (see INSTALL.android).
* Add benchmark based on pulsar X11 GL screensaver.
* Add benchmark for 2D image processing using the GPU.
* Add command line option to set the size of the output window (-s, --size).
* Implement ShaderSource object to simplify complex shader creation.
* Implement utility functions to access resources in an abstract way.

glmark2 2011.07 (20110719)
==========================

* Replace SDL with custom window handling code.
* Add benchmark for shader conditionals.
* Add benchmark for shader function calls.
* Add benchmark for shader loops.
* Add benchmark for real phong (vs blinn-phong) lighting model.
* Add benchmark for normal mapping.
* Refactor Mesh class to increase flexibility in vertex attribute
  handling.

glmark2 2011.06 (20110624)
==========================

* Improve benchmark versatility by allowing runtime-configurable,
  per-scene options.
* Add command line option to list avalaible scenes and their
  supported options (-l,--list-scenes).
* Allow specifying the scenes to run and their options from the
  command line (-b,--benchmark).
* Add basic output validation functionality (--validate).
* Add command line option to call glFinish() instead of swapping
  the front and back buffers (--no-swap-buffers).
* Manually disable VSync for GL/GLX (work around an SDL bug).
* Replace custom math and shader infrastructure with functionality
  provided by LibMatrix (lp:libmatrix).
* Improve user documentation (--help and man page).

glmark2 11.05 (20110530)
==========================

* Don't use the SDL_OPENGL flag for GLESv2 (LP: #761848).
* Ensure our screen updates are not synchronized with the vertical
  retrace (LP: 761855).
* Use the correct GL headers depending on the flavor (desktop vs ES2).
* Query the correct GL object for shader linking status.

glmark2 11.01 (20110125)
==========================

* Fix visual corruption in glmark2-es2 due to missing depth buffer.
* Fix linking issues with gcc 4.5.
* Use correct GL functions to manipulate shaders vs programs.
* Make result reporting more parser-friendly.
* Upgrade build system to waf 1.6.2.

glmark2 10.07.1 (20100728)
==========================

* Define the precision of fragment shader variables for OpenGL ES 2.0.

glmark2 10.07 (20100715)
========================

* First release.
* Included benchmarks:
  - Rendering using vertex arrays
  - Rendering using VBOs
  - Texturing using nearest filtering
  - Texturing using linear filtering
  - Texturing using trilinear mipmapped filtering
  - Lighting per vertex using simple GLSL shaders
  - Lighting per pixel using elaborate GLSL shaders
