Release Nov 28, 2016:

  • New Requirement: For full functionality, LunarG SDK version 1.0.26.0 or newer is required.

  • New Sample: Added new BasicDeviceGeneratedCommandsVk sample.

  • Fixes: Android Vulkan WSI has been updated to work with the latest Android N.

  • Fixes: Longstanding issue with Vector/Matrix not-equal operator has been fixed.

  • Fixes: Additional fixes and upgrades to the Vulkan implementation.

Release Aug 26, 2016:

  • New Requirement: For full functionality, LunarG SDK version 1.0.21.0 or newer is required.

  • New Sample: Added new DedicatedAllocationVk sample.

  • New Feature: Samples are once again automatically named in window and UI.

  • New Feature: Vulkan scoped debug markers are now supported in the framework and shaders.

  • Behavior Change: Vulkan framework no longer enables every available feature automatically. Apps can and must now enable them manually via new APIs in the framework, specifically the per-app configuration callback.

Release July 29, 2016:

Added new ShuffleIntrinsicsVk sample.

Release July 8, 2016:

Added support for building Android apps from Linux x64 via NVIDIA CodeWorks for Android 1r4.

Release 3.0c (July 2016):

Release 3.0c is a fix-up release, renaming Linux for Tegra (Jetson TX1) from linux-arm to the more correct linux-aarch64.

Release 3.0b (July 2016):

Release 3.0b is an update release, adding desktop (x64) Linux and Linux for Tegra (Jetson TX1) support. This includes support for OpenGL and Vulkan on both platforms.

  • Known Issue: The L4T and Linux desktop platforms do not support gamepad/joystick. Keyboard and mouse are supported.
  • Known Issue: The L4T platform directories are currently named linux-arm; for the sake of clarity, they should be named linux-aarch64. This will fixed in the next release.

Release 3.0 (June 2016):

Release 3.0 is a Major release, changing the name of the pack to reflect that Vulkan samples now live side by side in the same framework as the OpenGL Samples.

  • Tested Platforms: The samples in this pack have been tested on: NVIDIA GTX980 (Windows), NVIDIA 840M (Windows), NVIDIA SHIELD Tablet K1 (Android), NVIDIA SHIELD Android TV (Android), AMD R390 (Windows).
  • Vulkan Support: The framework has been rearchitected and now supports both OpenGL and Vulkan. Samples can be either Vulkan samples or OpenGL samples, and on NVIDIA devices, it is even possible to mix the two in a single sample (See ThreadedRenderingVk for an example). Vulkan is supported on Windows and Android.
  • New Vulkan Sample: ThreadedRenderingVk, also known as the "Fish Sample" shows how to render an enormous number of objects from multiple threads using Vulkan. On NVIDIA devices, this can also be compared to OpenGL rendering.
  • New Vulkan Sample: SkinningVk shows the basics of rendering skinned objects and safely updating uniform buffers on Vulkan.
  • New Vulkan Sample: ModelTestVk shows the basics of rendering rigid objects with multiple materials on Vulkan.
  • New Vulkan Sample: HelloVulkan shows the basics of rendering a triangle on Vulkan.
  • New OpenGL Sample: ThreadedRenderingGL shows how to use GL extenstions referred to as AZDO (Approaching Zero Driver Overhead) to render large numbers of objects efficiently.
  • New OpenGL Sample: CubemapRendering shows how to use GL extenstions on NVIDIA Maxwell hardware to render cubemaps quickly in a single pass.
  • New OpenGL Sample: Mercury shows how to use GL and compute to render point-based implicit surfaces.
  • New OpenGL Sample: DeferredShadingMSAA shows how to render with antialiasing when the rendering pipeline uses deferred shading.
  • New Feature: Windows (x86 and x64) and Android targets are all built from a single Visual Studio project now. There is no need to switch projects to switch platforms.
  • Known Limitation: This initial release of the 3.0 samples only supports Windows as a development host. Android is supported as a target, but must be built from Windows for this release. No Linux host or target support is included in this release.
  • Known Bug: The Mercury sample crashes the AMD R390 driver when rendering the first frame.
  • Known Bug: On VS2015, loading the solution for the first time can lead to "The 'VSPackage' package did not load correctly." errors. These can be ignored or the solution reloaded and the project should load correctly.
  • Known Bug: The TextureArrayTerrain sample may crash if the user attempts to exit within one second of launching. This is due to incorrect shutdown of the temporary threads used to initialize the terrain.

Old Samples Pack: NVIDIA GameWorks OpenGL Samples Release Notes

Release 2.11 (March 2015):

Release 2.11 is a Major release, focusing on Android TV support and Path Rendering samples.

  • Android TV Support: The samples now support Android TV, including the use of controller to activate and navigate the tweak bar. The "A" button will open the tweak bar and the "B" button will close it. DPAD navigates and A/B select and step back.
  • New Sample: Cursive ES demonstrates the use of GPU path rendering to draw a freeform stroke font, animating as if it is being written on screen.
  • New Sample: Shaped Text ES render uses GPU path rendering to draw more advanced fonts.
  • New Sample: Text Wheel ES shows how to use freeform rotations of fonts rendered with GPU paths.
  • New Sample: Tiger 3D ES renders both path elements and 3D elements in the same scene, including depth buffering .
  • New Sample: Tiger Warp ES shows how objects drawn using path rendering can have general projective transformations applied to them.
  • Known Bug: Compute Particles and Weighted Blended OIT have incorrect controller step sizes on their sliders. Thus, controller UI for these sliders is not working.
  • Known Bug: Compute Water Surface "steals" the A button, and the app does not deploy the tweak bar. Thus, controller UI for the tweak bar is not working.
  • Known Bug: Tiger 3D ES and Tiger Warp ES do not have full controls available via the controller.

Release 2.0 (Sept 2014):

Release 2.0 is a Major release, focusing on GeForce Maxwell-level GPU features.

  • Layout Change: The samples are now grouped by common feature set. Currently, this means that the samples are grouped by GPU level and API.
  • New Sample: Blended AA shows how to use Target-independent Rendering (TIR) to lower the memory requirements for antialising.
  • New Sample: Cascaded Shadow Mapping shows how to use Viewport Multicasting and Fast Geometry Shaders to optimize the performance of Cascaded Shadow Mapping.
  • New Sample: Conservative Rasterization Sample demonstrates the basics of hardware-based Conservative Rasterization, a method of ensuring that every pixel touched by geometry is shaded, independent of sample coverage.
  • New Sample: Normal Blended Decal Sample demonstrates the use of Pixel Shader Interlock (PSI) to implement fast, safe custom blending.
  • New Sample: Weighted Blended OIT Sample demonstrates fast Order-Independent Transparency (OIT) via the methods based on a modified blending equation.
  • New API: The app framework now supports three redraw modes: Unbounded (the previous method), VSYNC (apps are given draw calls on each VSYNC or compositor redraw; optional) and on-demand (only when the app requests).
  • New API: Wrappers are now provided to make it easier for apps to compile against OpenGL ES 3.1 AEP.
  • New API: Applications can now request MSAA support in their configuration callback.
  • Bug Fix: OpenGL extension-string checking is now more robust.

Release 1.2 (June 2014):

Release 1.2 is a feature release with no known "breaking" changes.

  • New Platform: Linux for Tegra (a full Ubuntu desktop on Tegra platforms) support has been added for all samples. The samples now run on NVIDIA Jetson TK1.
  • New Sample: Compute Particles shows how to use Compute Shaders and buffer interop to use the GPU to animate and render particles without CPU involvement.
  • New Sample: Compute Water Surface shows how to use Compute Shaders to generate a dynamic water surface with ripples and reflections.
  • New Sample: FXAA demonstrates a simple, high-performance and easy-to-integrate antialiasing method as a 2D post-process.
  • New Sample: HDR demonstrates tonemapping, cinematic flares and refraction.
  • New Sample: Multi Draw Indirect demonstrates OpenGL performance features known as Approaching Zero Driver Overhead ("AZDO").
  • New Sample: Optimization App demonstrates CPU and GPU timers for app-level profiling as well as switchable, basic optimization techniques.
  • New Sample: Soft Shadows demonstrates multiple projected texture methods, including multi-sampled penumbrae.
  • New API: The app framework now includes a function to query whether a GL context is bound, NvPlatformContext::isContextBound().

Release 1.01 (May 2014):

Release 1.01 is (as its version implies) a bugfix release with no known "breaking" changes.
  • OpenGL ES3.1 contexts are now supported. There is also a default ES3.1 context version object: NvGfxAPIVersionES3_1.
  • Some bugs in the EGL setup code and the image-loading code that caused ES3.1 contexts not to work are now fixed. All samples that can support ES2 or ES3 now work if the app requests ES3.1 as well.
  • The min-API and missing extension error dialogs now include more descriptive strings to explain to the user what was found and what is needed.
  • The image loader now auto-expands DXT textures to RGBA on systems without DXT support.
  • The UI system now handles window resize correctly on platforms with windowed mode.
  • Android's NDK r9d is now the default NDK version when building Android apps from Linux host.
  • NvGLSLProgram::bindTexture2D was not setting the texture on the correct (passed in) texture unit. This has been fixed.
  • Log-based framerate printing has been disabled by default, since it is printed to the screen.
  • A typo in the default window size on Win32 has been fixed (window size is now 1280 pixels wide instead of 1270).
  • The period (.) key is now mapped on Linux and Win32 platforms.

Release 1.0 (March 2014):

Release 1.0 is the first version of the new samples pack.