Thursday, August 11, 2011

DirectX 11 : BC6H and BC7 Texture Compression

DirectX 11 includes these new high quality texture compression formats. The DX SDK has samples with compute shader implementations of compressors and decompressors of the new formats.

Good technical info on the formats:

BC6H
http://msdn.microsoft.com/en-us/library/windows/desktop/hh308952%28v=vs.85%29.aspx

BC7
http://msdn.microsoft.com/en-us/library/windows/desktop/hh308953%28v=vs.85%29.aspx

More details are available in the OpenGL spec:
http://www.opengl.org/registry/specs/ARB/texture_compression_bptc.txt

This presentation also includes some information on the new formats which are basically new interpolation methods:
http://www.nvidia.com/content/nvision2008/tech_presentations/Game_Developer_Track/NVISION08-Direct3D_11_Overview.pdf


BC6H - floating point data
High Dynamic Range
6:1 Compression (16 bpc RGB)


BC7 - 8-bit fixed point data
LDR with alpha
3:1 compression for RGB or 4:1 for RGBA


Comparison of the formats
http://www.g-truc.net/post-0340.html

DirectX 11 : Compute Shaders

Resources on learning about Compute Shaders

This is an important presentation on the performance characteristics of compute shaders and things to look out for. Compute shaders are not necessarily faster than PS and CS settings need to be tuned for optimal performance on different GPUs.
http://developer.amd.com/gpu_assets/DirectCompute%20Performance.zip


This page has some good links:
http://www.danielmoth.com/Blog/DirectCompute.aspx

Good info on Compute Shader thread specifics and how they relate to real hardware:
http://developer.amd.com/gpu_assets/Efficient%20Compute%20Shader%20Programming.pps

http://openvidia.sourceforge.net/index.php/DirectCompute



Compute Shader Debugging

http://cmpmedia.vo.llnwd.net/o1/vault/gdc10/slides/Aguaviva_Raul_OptimizingGraphicsApplicationsWithAMDGPUPerfStudio2.pdf

Nvidia Parallel Reductions with CUDA (Compute Shaders)
http://developer.download.nvidia.com/compute/cuda/1_1/Website/projects/reduction/doc/reduction.pdf