GraphicsDev_RadeonSDK_1140x100

Welcome to AMD’s Radeon™ Software Developer’s Kit (SDK) page. These samples are intended to provide developers with the inside scoop on getting the most out of AMD’s latest products using Microsoft® DirectX® or OpenGL for 3D graphics.

What’s New

  • Direct3D 11 Samples, using the new features of the AMD Radeon series graphics cards
  • TressFX11 v2.0 (November 2013)
  • TiledLighting11 v1.1 (November 2013)
  • Conveniently download individual samples and documentation from our Web site

Direct3D 11 Samples

 TressFX11 v2.0 (November 2013)

The TressFX11 sample shows how to use AMD’s TressFX hair rendering technology for rendering and simulating hair. TressFX uses volumetric self shadowing, transparency, and antialiasing to render individual strands of realistic looking hair. It also uses the GPU to accelerate the physics simulation of each hair.
Version 2 changes: rendering is now deferred, much improved performance, numerous bug fixes, better self-shadowing, scalability options, modular code, porting guide document included.

 TiledLighting11 v1.1 (November 2013)

This sample provides an example implementation of two tile-based light culling methods: Forward+ and Tiled Deferred. Both methods support high numbers of dynamic lights while maintaining performance. They use DirectCompute to divide the screen into tiles and quickly cull lights against those tiles. In addition to standard point and spot lights, this sample supports shadow-casting lights. It also extends tiled light culling to work with alpha-blended geometry. Finally, virtual point lights (VPLs) can be spawned to approximate one-bounce global illumination, as seen in AMD’s Leo Demo. Version 1.1 changes: documentation updated. Catalyst drivers 13.9 or later include a profile for this SDK sample to ensure MSAA performance is optimal.

 DepthBoundsTest11 v1.0 (May 2013)

The DepthBoundsTest11 sample shows how to use the AMD Depth Bounds Test extension, a feature of the AMD GCN architecture, to limit rendering within a specified depth bounds. By limiting what pixels are rendered, some graphics techniques can run faster because fewer pixels need to be rendered, and therefore fewer instructions executed by pixel shaders.

 SuperSample Anti-Aliasing11 v1.0 (January 2013)

This sample demonstrates some of the ways in which to reduce aliasing without using a post process technique. Methods include antialiasing (MSAA), supersample antialiasing (SSAA) and enhanced quality antialiasing (EQAA).

 ForwardPlus11 v1.0 (January 2013)

The ForwardPlus11 v1.0 sample provides an example implementation of the Forward+ algorithm, which extends traditional forward rendering to support high numbers of dynamic lights while maintaining performance. It utilizes a Direct3D 11 compute shader (DirectCompute 5.0) to divide the screen into tiles and quickly cull lights against those tiles, resulting in per-tile light lists for the forward pixel shader.

 Morphological Anti-Aliasing11 v2.0 (September 2012)

This sample demonstrates a post-process pixel shader technique that applies Fullscreen Anti-Aliasing to an image. Morphological Antialiasing (MLAA) was originally developed by Intel Lab but was designed for a CPU based post-process. This sample demonstrates a modified MLAA implementation adapted to run on the GPU. This update includes a further optimization which uses the stencil buffer to mask edges, and therefore reduce the workload for second stage of the effect.

 SeparableFilter11 v1.3 (July 2012)

This sample, presents a technique for achieving highly optimized user defined separable filters. It utilizes Direct3D 11 APIs and hardware to make use of DirectCompute11 to greatly accelerate this common post processing technique. Included in the sample are implementations for the classic Gaussian filter, and also a fairly simple bilateral filter, but the shader and source code have been setup to allow the user to add their own different filters, with the minimum of fuss.The application implements both a Compute Shader and Pixel Shader path, so that the performance gains achieved through using DirectCompute11can be measured.

 Detail Tessellation 11 (February 2010)

This sample demonstrates the use of detail tessellation for improving the quality of material surfaces in real-time rendering applications. Detail Tessellation is typically a faster-performance and higher-quality alternative to per-pixel height map-tracing techniques such as Parallax Occlusion Mapping.

 PN-Triangles 11 (February 2010)

This sample presents a technique for achieving smooth surfaces from the position and normal data of a low density mesh. It utilizes Direct3D 11 APIs and hardware to make use of the new tessellation stages of the pipeline.

 Contact Hardening Shadows 11 (February 2010)

This sample presents a Direct3D 11/ Shader Model 5.0 accelerated technique that uses non-stationary/dynamic weight matrices for unique per-sample filter weights (these don’t necessarily represent a separable filter) for a contact hardening shadow effect. The effect is comparable to PCSS (Percentage-Closer Soft Shadows [Fer05]) but does not suffer from banding or noise artifacts.

Direct3D 10 Samples

 Transparency Anti-Aliasing 10.1 (February 2010)

This sample presents a technique for achieving MSAA quality rendering for primitives that require transparency. It utilizes Direct3D 10.1 APIs and hardware to make use of the new fixed MSAA sample patterns, and the export of the coverage mask from the pixel shader.

 High Definition Ambient Occlusion 10.1 (February 2010)

This sample presents an innovative technique for achieving High Definition Ambient Occlusion (HDAO). It utilizes Direct3D 10.1 APIs and hardware, making use of the new shader model 4.1 gather4 instruction, to greatly accelerate the performance of this technique.

 Depth of Field 10.1 (February 2010)

This sample presents a technique for combining multi-sample anti-aliasing (MSAA) with a depth-of-field effect. It utilizes Direct3D 10.1 APIs and hardware to retrieve depth values from a multi-sampled depth buffer.

 PostTonemapResolve (September 2007)

This sample implements two methods of resolving a multisampled HDR render target; a traditional approach with resolve followed by tone-mapping, and the post-tonemap resolve where resolve follows the tonemap.

 Global Illumination (June 2007)

This sample implements a real-time GI solution by sampling the scene lighting into cubemaps at probe locations in a grid across the scene and converting the resulting lighting function into SH coefficients for indirect lighting. The geometry shader is used to accelerate the process by rendering to 30 cubemap faces in a single pass.

 GS-NPatch-Tessellation (June 2007)

The GS-NPatch-Tessellation sample shows how to smoothen a low-polygon mesh by n-patch tessellating the input triangles in the geometry shader.

 Skin Animation (June 2007)

This sample implements a technique for computing skinning animation on the GPU and rendering a massive number of animated models with instancing.

 

Utility

 CrossFire Detect (September 2007)

This sample shows how to use atimgpud.dll library to detect the number of installed GPUs.*new 64 bit and static library support for CrossFire detection library.
This library has been superseded by the ATI GPU Services library which should be used instead to detect the number of the GPUs in a system.

OpenGL Samples

 AlphaToCoverage (October 2005)

This sample showcases a technique for antialiasing those alpha-tested edges!

 FramebufferObject (October 2005)

This sample application illustrates the use of the GL_EXT_framebuffer_object extension.

 ParallaxMapping (June 2005)

This sample shows how to create a more bumpy looking surface than regular normal mapping by using various Parallax mapping techniques.

Direct3D 9 Samples

R2VB-Animation (March 2006)

 A fast way to do tens of thousands of animations using a render to vertex buffer technique.

R2VB-OceanWater (March 2006)

 This sample demonstrates using render to vertex buffer with GPU generated ocean waves.

R2VB-ParticleSystem (March 2006)

 This is a sample particle system running entirely on the GPU using render to vertex buffer.

AlphaToCoverage (October 2005)

 This sample showcases a technique for antialiasing those alpha-tested edges!

AFR-Friendly (October 2005)

 This sample demonstrates how to get the most out of CrossFire(tm) by making an application AFR friendly.

ShadowMapFetch4 (October 2005)

 This sample demonstrates hardware shadow mapping on ATI hardware with support for Fetch4 depth texture sampling. Note that percentage-closer-filtering (PCF) is implemented in the shader with fewer taps.

ParallaxMapping (June 2005)

 This sample shows how to create a more bumpy looking surface than regular normal mapping by using various Parallax mapping techniques.

Documentation

 GCN Performance Tweets (May 2013)

This document lists all GCN (“Graphics Core Next”) performance tweets that were released on Twitter during the first few months of 2013. Each performance tweet in this document is accompanied by additional details to complete the information provided on Twitter.

 EQAA Modes for AMD 6900 Series Graphics Cards – whitepaper (September 2011)

Enhanced Quality Anti-Aliasing (EQAA) is a new anti-aliasing technology available from the AMD HD 6900 series of graphics cards onwards. This new Anti-Aliasing (AA) technology offers advanced smoothing of aliased edges without requiring additional video memory, and with a minimal performance cost. This document explains how to implement EQAA support in graphic applications.

 Advanced DX9 Capabilities for ATI Radeon Cards – whitepaper (July 2009)

This white paper gives implementation details on some of the advanced capabilities exposed by Radeon graphic drivers under the DirectX 9 API. Those capabilities target a feature level not directly exposed by DirectX 9, and therefore require an additional programming interface to take advantage of them.

 ATI Radeon HD 2000 Programming Guide (June 2007)

This paper discusses general optimization hints and best practices for programming the latest ATI Radeon HD 2000 series hardware. It covers topics such as shaders, texturing, z optimizations, D3D10 optimizations etc.

 Depth In-depth (June 2007)

This paper goes through the Z optimizations in current and earlier hardware. It explains the technical details behind techniques such as Hierarchical-Z and Early-Z and discusses the how to best utilizing these hardware optimizations.

 R2VB Programming (March 2006)

This technology paper describes how to use the Render to Vertex Buffer technique to accelerate animation.

 Radeon X1x00 Programming Guide (March 2006)

Radeon X1x00 Programming Guide

 ATI OpenGL Programming and Optimization Guide (October 2005)

This guide focuses on how to get the most out of ATI graphics hardware under OpenGL.

 Order Matters in Resource Creation (October 2005)

Trying to manage all those buffers and surfaces can be daunting. This paper aims to provide a bit of insight and help you order your resource allocations for maximum efficiency.

Harnessing the Performance of CrossFireX™ (August 2008)

This white paper describes the most common causes of poor CrossFireX™ performance scaling, and presents the recommended solutions. Engineers should take-away a clear understanding of how to develop and test on CrossFireX™ systems.

 Framebuffer Objects (October 2005)

PBuffers served as the render-to-texture method for many years, but carried with them certain limitations. Framebuffer objects provide a more flexible, faster way to render to offscreen surfaces and don’t carry with them all the baggage of pbuffers. This paper shows exactly how to make effective use of FBOs in great detail!

 Resolve your Resolves (August 2008)

This white paper discusses the performance and quality implications of using MSAA Resolves in the rendering pipeline. Many MSAA Resolves are either redundant or harmful to image quality, and this paper highlights the common pitfalls and presents the recommend course of action to get it right.