http://go.microsoft.com/fwlink/?LinkId=248926
Release available for download on GitHub
- Minor fix for
CompileShaders.cmd
to address additional 'paths with spaces' issues - Minor CMake and CMakePresets updates
- Code review
- Added
MakeLinear
DXGI_FORMAT utility function. - breaking change
CreateTextureEx
andCreateShaderResourceViewEx
functions now useCREATETEX_FLAGS
instead of abool forceSRGB
parameter. - Updates for MinGW ABI fixes for DirectX12 in the latest DirectX-Headers.
- CMake and MSBuild project updates
- Code review
DDSTextureLoader11
andDDSTextureLoader12
sync'd up with DirectX Tool Kit July 2022 changes.
- TGA reader updated to support 24-bit paletted uncompressed color-mapped images (used by a DCC application)
- Added
IsBGR
utility method - Workaround for driver issue on some systems using DirectX 11
Capture
method - Fix for problem with resizing/mipmaps generation for HDR content using box/fant filter which should avoid going through WIC code paths
- Minor updates for VS 2022 (17.2)
- CMake project updates (now supports MSVC, clang/LLVM, and MinGW)
- Updated D3DX12 internal copy with latest changes from DirectX-Headers GitHub
- Retired VS 2017 projects
- Code cleanup
- Reformat source using updated .editorconfig settings
- texconv: Improve
-nmap
handling for 16-bit sources going to BC formats
- Fixed end-point bounds issue with BC6H CPU compressor if none of the pixels are in 0-1 range
- Fixed bug in alpha-to-coverage computation
- Add support for installable WIC codecs for HEIF and WEBP (if present)
- Update build switches for SDL recommendations
- CMake project updates and UWP platform CMakePresets
- Code cleaup for tools
- Optional C++17 usage in a few places
- Updated D3DX12 internal copy with latest changes from GitHub
- Code and project review including fixing clang v13 warnings
- Added CMakePresets.json
- VS 2022 support
- Updated D3DX12 internal copy with latest change from GitHubf
- Minor code and project review
- VS 2017 projects updated to require the Windows 10 SDK (19401)
- texassemble/texconv: Updated with 12.2 for
-fl
switch - texassemble/texconv/texdiag: Fixed potential locale issue with
-flist
- Minor code and project cleanup
- Fixed weighting bug in custom linear filtering for wrap/mirroring
- Added VS 2022 Preview projects
- texconv: Made default output extension to be lower-case like most Windows applications
- texconv: updated colorspace rotation names for -rotatecolor switch
- texassemble, texconv: Order of operations fix for -swizzle using 0, 1
- Minor code review
- Minor bug fix for metadata behavior when using
DDS_FLAGS_NO_16BPP
flag for B5G6R5 content - texdiag: added
-c
and-t
switches for diff command - texconv: Fixed bug in
-m
switch handling when resizing changes the max mipmap count - texconv et al: improved
-flist
switch to support wildcards and file exclusions - texconv et al: Added 'BGR' alias to
-f
switch for the B8G8R8X8_UNORM format - WICTextureLoader / DDSTextureLoader12 updated to use typed enum bitmask flags for loadFlags parameter
- Minor code review
- DDS reader updated to accept nVidia Texture Tool v1 single-channel and dual-channel files marked as RGB instead of LUMINANCE
- Fixed TGA reader regression with files smaller than 26 bytes total
- Removed use of
CreateStreamOnHGlobal
,CreateStreamOverRandomAccessStream
, andSHCreateMemStream
for WICToMemory functions - Fix for the DirectX 12
CaptureTexture
for reserved and MSAA resources - Minor code and project cleanup
- texassemble: added
-stripmips
switch - texassemble, texconv: the
swizzle
switch now accepts0
and1
values in swizzle masks - texconv: added "709toDisplayP3" and "DisplayP3to709" to
-rotatecolor
switch - texconv: Fixed
-reconstructz
for UNORM formats - texassemble, texconv, texdiag: Updated with descriptions for HRESULT failure codes, and always uses exit code 1 on failure
- Windows Subsystem for Linux support
- Code review for improved conformance
- CMake updated to support package install
- texassemble: Merge command now supports
-swizzle
option - texconv: Updated with
-r:keep
and-swizzle
options
- Use
SHCreateMemStream
instead ofCreateStreamOnHGlobal
for Win32 on Windows 8.x or Windows 10 - Updated D3DX12 internal copy with latest change from GitHub
- Minor code and project cleanup
- Added
TGA_FLAGS
flags to TGA reader/writer to control RGB vs. BGR, handling for all zero alpha channels, and TGA 2.0 colorspace metadata- TGA reader will now return a
DXGI_FORMAT_*_SRGB
format if TGA 2.0 colorspace metadata contains 2.2 or 2.4 gamma - Added forwarders for existing non-flags TGA functions, so there are no breaking changes
- TGA reader will now return a
R16_SNORM
andR8_SNORM
pixel write code updated to round instead of truncate to better match DirectXMath behavior- Fixed bug in standalone WICTextureLoader for DX11/DX12 that resulted in
WINCODEC_ERR_INSUFFICIENTBUFFER
for some resize requests - Added
Ex
variants for DDSTextureLoader/WICTextureLoader for DX9 to support loading resources for non-DEFAULT pools - Minor code and project cleanup
- Added
DDS_FLAGS_ALLOW_LARGE_FILES
flag for DDS loader to allow textures with dimensions that are too big for Direct3D - Added
FormatDataType
function - Fixed bug with DX12
Capture
with 'small alignment' textures - Code review and project updates
- Added GDK projects
- texassemble: updated with
-fl
switch for feature level based warning - texconv: updated with
-reconstructz
switch for BC5 compressed normal map view conversion
- Minor warning fixes for VS 2019 (16.7)
- CMake updates
- texassemble: Fixed animated gif handling with transparency
- Code cleanup for some new VC++ 16.7 warnings and static code analysis
- texconv: Updated with support for Portable Pix Map (ppm) & Portable Float Map (pfm) file formats
- Converted to typed enum bitmask flags (see release notes for details on this potential breaking change)
- ComputePitch, xxxDDSxxx, xxxWICxxx, FlipRotate, Resize, Convert, GenerateMipMaps, GenerateMipMaps3D, PremultiplyAlpha, Compress, ComputeNormalMap, CopyRectangle, ComputeMSE
WIC_FLAGS_DEFAULT_SRGB
/WIC_LOADER_SRGB_DEFAULT
flag added when loading image via WIC without explicit colorspace metadata- WIC loader for
PNG
codec now checksgAMA
chunk to determine colorspace if thesRGB
chunk is not found for legacy sRGB detection. - Fixed conformance issues when using
/Zc:preprocessor
- CMake project updates
- HDR (RGBE Radiance) file format writer updated to accept half16 input
- Code cleanup
- Updated D3DX12 internal copy to Windows 10 SDK (19041) version
- texassemble, texconv, texdiag: Updated with
-l
switch for case-sensitive file systems - texconv: Added
-dx9
switch to force legacy compatible DDS files - texconv: Collapsed
-bcuniform
,-bcdither
,-bcquick
, and-bcmax
into one-bc
switch - Updates to DDSTextureLoader, ScreenGrab, and WICTextureLoader including new DX9 version
- Updated D3DX12 internal copy to latest version
- DDS loader updated for another BC7 FourCC variant
- Code review (
constexpr
/noexcept
usage) - CMake updated for PCH usage with 3.16 or later
- Fixed quality bug in BC4S/BC5S compressor
- Guard for divide-by-zero case in PremultiplyAlpha
- texconv: added
-at
switch for alpha threshold value with BC1 compression - texconv: Fixed
-nmap
when outputting compressed UNORM formats - Code and project cleaup
- Retired VS 2015 projects
- Added ARM64 platform to VS 2019 Win32 desktop Win10 project
- Updated CMake project
- Code cleaup
- Codec readers updated to return
TEX_ALPHA_MODE_OPAQUE
if reader returned an alpha channel due to conversion - Added DDS reader support for 'non-standard' BC6H/BC7 FourCC codes used by nVidia texture tools
- TGA codec updated for TGA 2.0
- Minor code review
- Updated ScreenGrab module
- texconv: Added
-fixbc4x4switch
- Updated D3DX12 internal copy to latest version
- Added texassemble, texconv, and texdiag to CMake project
- Code cleanup
- Additional validation for Direct3D 11 texture loaders
- Clang/LLVM warning cleanup
- Renamed
DirectXTex_Windows10.vcxproj
to_Windows10_2017.vcxproj
- Added VS 2019 UWP project
- Regenerated shaders using Windows 10 April 2019 Update SDK (18362)
- Added CMake project files
- Code cleanup
- Added VS 2019 desktop projects
- Code cleanup for texture loaders
- Officially dropped Windows Vista support
- Minor code cleanup
- Added ScaleMipMapsAlphaForCoverage function to the library
- WIC Writer now has two new flags:
WIC_FLAGS_FORCE_SRGB
andWIC_FLAGS_FORCE_LINEAR
- texassemble: added
array-strip
command - texconv: added
-inverty
,-keepcoverage
switches
- VS 2017 updated for Windows 10 October 2018 Update SDK (17763)
- ARM64 platform configurations added to UWP projects
- Use UTF-8 instead of ANSI for narrow strings
- Updated D3DX12 internal copy to latest version
- Minor code cleanup
- Fixed problem loading legacy DDS files containing FOURCC pixel formats with
ALPHAPIXELS
also set - Fixed
FlipRotate
bug when doing 180 degree rotation - Updated for VS 2017 15.8
- Improved support and validation for 16k textures (requires x64 native)
ComputePitch
now returns an HRESULT- Fix BC7 GPU shaders on WARP device
- BC7 CPU codec fix for 3subsets/
-bcmax
and minor optimization - BC7 GPU codec quantize fix and pbit optimization
- BC6H CPU codec bounds checking fix
- Code and project cleanup
- Fix for IsAlphaAllOpaque for 'near opaque' values
- VS 2017 updated for Windows 10 April 2018 Update SDK (17134)
- Workaround for WIC issue doing FP32->FP16 conversions
- Updated for VS 2017 15.7 update warnings
- Code and project cleanup
- Retired VS 2013 projects
- Code cleanup
- texconv: Updated with support reading "Extended BMP" files using DXTn
- texconv: Updated to handle non-power-of-2 volume textures with mipmaps
- texassemble, texconv, texdiag: support format name aliases like DXT3, RGBA, BGRA, FP16, etc. in addition to truncated
DXGI_FORMAT_
values
- HDR (RGBE Radiance) file format reader updated to support
#?RGBE
signature - texconv: Added
-rotatecolor
and-nits
switches - texassemble: Added merge and gif commands
- texdiag: added dumpdds command
- Fixed bug with GPU BC7 encoding (mode 1, fixup 6)
- Updated for a few more VS 2017 warnings
- Code cleanup
- Updated for VS 2017 15.5 update warnings
- Support building library with
_XM_NO_XMVECTOR_OVERLOADS_
- Code cleanup
- VS 2017 updated for Windows 10 Fall Creators Update SDK (16299)
- Updated for VS 2017 15.3 update
/permissive-
changes - WIC writer and ScreenGrab updated to use non-sRGB metadata for PNG
- texassemble, texconv, texdiag: added
-flist
option
- Support for reading non-standard DDS files written by nVidia Texture Tools (NVTT)
- Fix for ComputeMSE when using
CMSE_IMAGE2_X2_BIAS
- Fix for WIC writer then codec target format requires a palette
- Code cleanup
- VS 2017 project updates
- Regenerated shaders using Windows 10 Creators Update SDK (15063)
- Updated D3DX12 internal copy to latest version
- VS 2017 updated for Windows Creators Update SDK (15063)
- texassemble:
-tonemap
switch - texconv:
-wicmulti
switch
- DirectX 12 versions of IsSupported, CreateTexture (PrepareUpload), and CaptureTexture
- Update to DirectX 11 version of IsSupported
- WIC format 40bppCMYKAlpha should be converted to RGBA8 rather than RGBA16
- DDS support for L8A8 with bit-count 8 rather than 16
DXGI_FORMAT_R32G8X24_TYPELESS
andDXGI_FORMAT_R24G8_TYPELESS
should be IsDepthStencil formats- Updates to DDSTextureLoader, ScreenGrab, and WICTextureLoader
- Minor code cleanup
- Fixed over-validation in DDS header parsing
- VS 2017 RC projects added
- Minor code cleanup
- breaking change Renamed Evaluate to EvaluateImage, Transform to TransformImage
- texdiag: new command-line tool for texture debugging
- texconv:
-bcmax
,-bcquick
,-tonemap
, and-x2bias
switches - texconv: overwrite writing and
-y
switch - texconv/texassemble: optional OpenEXR support
- texassemble: command syntax with support for generating strip and cross images from cubemap
- Updates to DDSTextureLoader, WICTextureLoader, and ScreenGrab
- Minor code cleanup
- HDR (RGBE Radiance) file format reader and writer
- Evaluate and Transform functions for computing user-defined functions on images
- Fix BC6H GPU shaders on WARP device
- Fix for alignment issues on ARM devices in software compression codec
- Added
TEX_THRESHOLD_DEFAULT
(0.5f) constant default alpha threshold value for Convert & Compress - Minor CaptureTexture optimization
- texconv/texassemble: Support for .hdr file format
- texconv: added
-gpu
switch to specify adapter to use for GPU-based compression codecs - texconv: added
-badtails
switch to enable loading of legacy DXTn DDS files with incomplete mipchain tails - texconv: added
-c
switch for old-school colorkey/chromakey transparency to alpha conversion - texconv: added
-alpha
switch for reverse premultiply along withTEX_PMALPHA_REVERSE
flag - texconv: added wildcard support for input filename and optional
-r
switch for recursive search
CompileShader
script updated to build external pdbs- Regenerated shaders using Windows 10 Anniversary Update SDK (14393)
- Updated for VS 2015 Update 3 and Windows 10 SDK (14393)
- Workaround for bug in XMStoreFloat3SE (impacts conversions to
DXGI_FORMAT_R9G9B9E5_SHAREDEXP
) - DDSTextureLoader12, WICTextureLoader12, and ScreenGrab12 for Direct3D 12 support
- Minor code cleanup
- texconv command-line tool
-wicq
and-wiclossless
switches - Code cleanup
- Optional callback from WIC reader functions to query additional metadata
- Retired obsolete adapter code
- Minor code cleanup
- Fix to clean up partial or zero-length image files on failed write
- Retired VS 2012 projects
- texconv command-line tool
-fl
switch now supports 12.0 and 12.1 feature levels - Updated for VS 2015 Update 1 and Windows 10 SDK (10586)
- DDS support for legacy bumpmap formats (V8U8, Q8W8V8U8, V16U16)
- Fix for buffer overread in BC CPU compressor
- Minor code cleanup
- Added GetWICFactory and SetWICFactory
- Updates for new DXGI 1.3 types
- Xbox One platform updates
- Fixed rounding problem with 32-bit RGBA/BGRA format conversions
- texconv: use CPU parallel compression for BC1-BC5 (
-singleproc
disables) - Updated for VS 2015 and Windows 10 SDK RTM
- Retired VS 2010 and Windows 8.0 Store projects
- New
BC_FLAGS_USE_3SUBSETS
option for BC7 compressors; now defaults to skipping 3 subset blocks - Fixed bug with MakeTypeless and
A8_UNORM
- Fixed file length validation problem in LoadDDSFromFile
- Added projects for Windows apps Technical Preview
- Fixed bug with WIC-based mipmap generation for non-WIC supported formats
- Fixed bug with WIC multiframe loader when resizing required
- texconv: Added
-nmap
/-nmapamp
for generating normal maps from height maps - texconv/texassemble: Updated to load multiframe WIC files (tiff, gif)
- Minor code cleanup
- Updates for Visual Studio 2015 Technical Preview
- Minor code cleanup
- Format conversion improvements and bug fixes (depth/stencil, alpha-only, float16, RGB -> 1 channel)
- Fixed issue when BC decompressing non-standard compressed rowPitch images
- Explicit calling-convention annotation for all 'public' functions
- Code cleanup
- Xbox One platform updates
- texconv command-line tool fixes
- Fixed problem with 'wide' images with CPU Compress
- Updates to Xbox One platform support
- Windows phone 8.1 platform support
- Direct3D 11 video and Xbox One extended format support
- New APIs: IsPlanar, IsPalettized, IsDepthStencil, ConvertToSinglePlane
- Added 'alphaWeight' parameter to GPU Compress breaking change
- texconv
-aw
switch to control the alpha weighting for the BC7 GPU compressor - Fixed bug with ordered dithering in non-WIC conversion codepaths
- Fixed SaveToDDSxxx functions when using arbitrary row pitch values
- Added sRGB flags for Compress (
TEX_COMPRESS_SRGB*
) - Added 'compress' flag parameter to GPU versions of Compress breaking change
- Minor fix for potential rounding problem in GPU Compress
- Code cleanup (removed
DXGI_1_2_FORMATS
control define;ScopedObject
typedef removed) - Dropped VS 2010 support without the Windows 8.1 SDK (removed
USE_XNAMATH
control define)
- texconv updated with
-fl
and-pow2
command-line switches - Fixed bug in Resize when doing custom filtering which occurred when exactly doubling the image size
- Added move operators to ScratchImage and Blob classes
- Xbox One platform support
- Updated for Visual Studio 2013 and Windows 8.1 SDK RTM
- PremultiplyAlpha updated with new 'flags' parameter and to use sRGB correct blending
- Fixed colorspace conversion issue with DirectCompute compressor when compressing for BC7 SRGB
- DirectCompute 4.0 BC6H/BC7 compressor integration
- texconv utility uses DirectCompute compression by default for BC6H/BC7,
-nogpu
disables use of DirectCompute
- Support for BC compression/decompression of non-power-of-2 mipmapped textures
- Fixes for BC6H / BC7 codecs to better match published standard
- Fix for BC4 / BC5 codecs when compressing RGB images
- Minor fix for the BC1-3 codec
- New optional flags for ComputeMSE to compare UNORM vs. SNORM images
- New WIC loading flag added to control use of WIC metadata to return sRGB vs. non-sRGB formats
- Code cleanup and /analyze fixes
- Project file cleanup
- texconv utility uses parallel BC compression by default for BC6H/BC7,
-singleproc
disables multithreaded behavior
- VS 2013 Preview projects added
- SaveToWIC functions updated with new optional
setCustomProps
parameter
- Custom filtering implementation for Resize & GenerateMipMaps(3D) - Point, Box, Linear, Cubic, and Triangle
TEX_FILTER_TRIANGLE
finite low-pass triangle filterTEX_FILTER_WRAP
,TEX_FILTER_MIRROR
texture semantics for custom filteringTEX_FILTER_BOX
alias forTEX_FILTER_FANT WIC
- Ordered and error diffusion dithering for non-WIC conversion
- sRGB gamma correct custom filtering and conversion
DDS_FLAGS_EXPAND_LUMINANCE
- Reader conversion option for L8, L16, and A8L8 legacy DDS files- Added use of WIC metadata for sRGB pixel formats
- Added BitsPerColor utility function
- Fixed Convert threshold parameter usage
- Non-power-of-2 volume map support, fixed bug with non-square volume maps
- texconv utility update with
-xlum
,-wrap
, and-mirror
options; reworked-if
options for improved dithering - texassemble utility for creating cubemaps, volume maps, and texture arrays
- DDSTextureLoader and WICTextureLoader sync'd with DirectXTK versions
- Updated alpha-mode metadata details in .DDS files
- Added new control flags for Convert
- Added new optional flags for ComputeMSE
- Fixed conversion handling for sRGB formats
- Fixed internal routines for handling
R10G10B10_XR_BIAS_A2_UNORM
,R9G9B9E5_SHAREDEXP
, andFORMAT_R1_UNORM
- Fixed WIC I/O for
GUID_WICPixelFormat32bppRGBE
4 pixel format files (HD Photo) - Fixed non-square image handling in GenerateMipMaps3D
- Fixed some error handling in the DDS load code
- Supports reading and writing alpha-mode (straight, premultiplied, etc.) metadata in .DDS files
- Added build option to use WICCreateImagingFactory_Proxy instead of
CoCreateInstance
to obtain WIC factory
- Added PremultiplyAlpha to DirectXTex;
-pmalpha
switch for texconv command-line tool - Fixed problem with forceSRGB implementation for Ex versions of CreateTexture, CreateShaderResourceView, DDSTextureLoader and WICTextureLoader
- Ex versions of CreateTexture, CreateShaderResourceView, DDSTextureLoader and WICTextureLoader
- Fixed BC2 and BC3 decompression issue for unusual color encoding case
- Converted annotation to SAL2 for improved VS 2012 /analyze experience
- Updated DirectXTex, DDSView, and Texconv with VS 2010 + Windows 8.0 SDK project using official 'property sheets'
- Added support for WIC2 when available on Windows 8 and Windows 7 with KB 2670838
- Added optional
targetGUID
parameter to SaveWIC* APIs to influence final container pixel format choice - Fixed bug in SaveDDSxxx which was generating invalid DDS files for 1D dimension textures
- Improved robustness of CaptureTexture when resolving MSAA source textures
- Sync'd DDSTextureLoader, ScreenGrab, and WICTextureLoader standalone versions with latest DirectXTK release
- Added ScreenGrab module for creating runtime screenshots
- Renamed project files for better naming consistency
- New Typeless utilities for DirectXTex
- Some minor code cleanup for DirectXTex's WIC writer function
- Bug fixes and new
-tu
/-tf
options for texconv
- Moved to using XNA Math 2.05 instead of XNA Math 2.04 for
USE_XNAMATH
builds - Fixed BGR vs. RGB color channel swizzle problem with 24bpp legacy .DDS files in DirectXTex
- Update to DirectXTex WIC and WICTextureLoader for additional 96bpp float format handling on Windows 8
- Minor fix for DDSTextureLoader's retry fallback that can happen with 10level9 feature levels
- Switched to use
_DEBUG
instead ofDEBUG
and cleaned up debug warnings - added Windows Store style application project files for DirectXTex
- DirectTex's WIC-based writer opts-in for the Windows 8 BMP encoder option for writing 32 bpp RGBA files with the
BITMAPV5HEADER
- WICTextureLoader updated with Windows 8 WIC pixel formats
- DirectXTex updated with limited non-power-of-2 texture support and
TEX_FILTER_SEPARATE_ALPHA
option - Texconv updated with
-sepalpha
command-line option - Added
USE_XNAMATH
control define to build DirectXTex using either XNAMath or DirectXMath - Added VS 2012 project files (which use DirectXMath instead of XNAMath and define
DXGI_1_2_FORMATS
)
- Fix for resource leak in CreateShaderResourceView Direct3D 11 helper function in DirectXTex
- Fix for too much temp memory allocated by WICTextureLoader; cleaned up legacy 'min/max' macro usage in DirectXTex
- WICTextureLoader updated to handle systems and device drivers without BGRA or 16bpp format support
- Some code cleanup for DirectXTex and DDSTextureLoader
- Fixed bug in 10:10:10:2 format fixup in the LoadDDSFromMemory function
- Fixed bugs in "non-zero alpha" special-case handling in LoadTGAFromFile
- Fixed bug in
_SwizzleScanline
when copying alpha channel for BGRA<->RGBA swizzling
- Update of DDSTextureLoader to also build in Windows Store style apps; added WICTextureLoader
- Added CMYK WIC pixel formats to the DirectXTex conversion table
- Minor code-cleanup for DirectXTex to enable use of PCH through 'directxtexp.h' header
- Some code-cleanup for DirectXTex
- Added DXGI 1.2 implementation for DDSTextureLoader and DirectXTex guarded with
DXGI_1_2_FORMATS
compilation define
- Fixed x64 compilation warnings in DDSTextureLoader
- Fixed some of the constants used in IsSupportedTexture
- added ability to strip off top levels of mips in DDSTextureLoader
- changed DirectXTex to use CoCreateInstance rather than LoadLibrary to obtain the WIC factory
- a few minor
/analyze
related annotations for DirectXTex
- Original release