<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>directxtex Issue Tracker Rss Feed</title><link>https://directxtex.codeplex.com/workitem/list/basic</link><description>directxtex Issue Tracker Rss Description</description><item><title>Commented Task: Volume map generation support for MIRROR vs. CLAMP, LINEAR, and CUBIC [642]</title><link>http://directxtex.codeplex.com/workitem/642</link><description>The current implementation of GenerateMipmaps3D&amp;#40;&amp;#41; only implements POINT and FANT &amp;#40;aka box for down-sizing&amp;#41; filtering. It needs new filters written for LINEAR and CUBIC which should implement clamp vs. mirror &amp;#40;wrap-modes are not meaningful settings for point&amp;#47;box filtering&amp;#41;.&lt;br /&gt;&amp;#160;&lt;br /&gt;WIC filtering can&amp;#39;t be used because no concept of volume maps which must be merged together for proper mipchains.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;See related workitem [930](https://directxtex.codeplex.com/workitem/930)&lt;/p&gt;</description><author>walbourn</author><pubDate>Mon, 20 May 2013 21:16:45 GMT</pubDate><guid isPermaLink="false">Commented Task: Volume map generation support for MIRROR vs. CLAMP, LINEAR, and CUBIC [642] 20130520091645P</guid></item><item><title>Commented Task: Support for MIRROR/WRAP vs. CLAMP filtering for mipmap generation [641]</title><link>http://directxtex.codeplex.com/workitem/641</link><description>DirectXTex uses WIC&amp;#39;s IWICBitmapScaler object to resize images and to generate mipmap chains. WIC only supports &amp;#34;Clamp&amp;#34; filtering modes, so this doesn&amp;#39;t always result in a properly tileable texture.&lt;br /&gt;&amp;#160;&lt;br /&gt;This would add TEX_FILTER_FLAGS for TEX_FILTER_MIRROR_U, TEX_FILTER_MIRROR_V, TEX_FILTER_MIRROR_W, TEX_FILTER_MIRROR to be supported by GenerateMipmaps&amp;#91;3D&amp;#93;&amp;#40;&amp;#41;.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;See related workitem [930](https://directxtex.codeplex.com/workitem/930)&lt;/p&gt;</description><author>walbourn</author><pubDate>Mon, 20 May 2013 21:16:43 GMT</pubDate><guid isPermaLink="false">Commented Task: Support for MIRROR/WRAP vs. CLAMP filtering for mipmap generation [641] 20130520091643P</guid></item><item><title>Created Unassigned: sRGB "gamma correct" filtering for mipmaps [930]</title><link>http://directxtex.codeplex.com/workitem/930</link><description>The current implementation of 2D mipmap generation relies on WIC&amp;#39;s filtering implementation. This currently supports only 2D pointer, box, and linear, and cubic filtering using &amp;#34;CLAMP&amp;#34; semantics.&lt;br /&gt;&lt;br /&gt;The 3D mipmap generation does not use WIC and currently only supports point, box filtering.&lt;br /&gt;&lt;br /&gt;There are already open work items to implement custom filtering options for &amp;#91;2D filtering&amp;#93;&amp;#40;https&amp;#58;&amp;#47;&amp;#47;directxtex.codeplex.com&amp;#47;workitem&amp;#47;641&amp;#41; to support &amp;#34;WRAP&amp;#47;MIRROR&amp;#34; semantics as well as triangle filtering, as well as &amp;#91;3D filtering&amp;#93;&amp;#40;https&amp;#58;&amp;#47;&amp;#47;directxtex.codeplex.com&amp;#47;workitem&amp;#47;642&amp;#41; to support linear, cubic, and triangle filtering.&lt;br /&gt;&lt;br /&gt;This work item is to support &amp;#34;gamma correct&amp;#34; filtering for all 2D &amp;#39;custom&amp;#39; filtering and all 3D filtering cases.&lt;br /&gt;</description><author>walbourn</author><pubDate>Mon, 20 May 2013 21:16:08 GMT</pubDate><guid isPermaLink="false">Created Unassigned: sRGB "gamma correct" filtering for mipmaps [930] 20130520091608P</guid></item><item><title>Edited Feature: Support for expanding L8, L16, A8L8 on load from .DDS [927]</title><link>http://directxtex.codeplex.com/workitem/927</link><description>DirectXTex currently assumes that .DDS files for DDSPF_L8, DDSPF_L16, and DDSPF_A8L8  will be &amp;#39;non-expanding&amp;#39; and rely on the shader to handle replication of rgb or moving alpha.  This is also what DDSTextureLoader does.&lt;br /&gt;&lt;br /&gt;DDSPF_L8 -&amp;#62; DXGI_FORMAT_R8_UNORM&lt;br /&gt;DDSPF_L16 -&amp;#62; DXGI_FORMAT_R16_UNORM&lt;br /&gt;DDSPF_A8L8 -&amp;#62; DXGI_FORMAT_R8G8_UNORM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This work item is a request to actually expand these so that no shader changes are required.&lt;br /&gt;&lt;br /&gt;DDSPF_L8 -&amp;#62; DXGI_FORMAT_R8G8B8A8_UNORM &amp;#40;r,g,b replicated&amp;#41;&lt;br /&gt;DDSPF_L16 -&amp;#62; DXGI_FORMAT_R16G16B16A16_UNORM &amp;#40;r,b,g replicated&amp;#41;&lt;br /&gt;DDSPF_A8L8 -&amp;#62; DXGI_FORMAT_R8G8B8A8_UNORM &amp;#40;r,g,b replicated&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This will be controlled by a new flag DDS_FLAGS_EXPAND_LUMINANCE&lt;br /&gt;&lt;br /&gt;&amp;#62; Note DDS_FLAGS_NO_LEGACY_EXPANSION conflicts with DDS_FLAGS_EXPAND_LUMINANCE, so specifying both with result in E_INVALIDARG.&lt;br /&gt;&lt;br /&gt;Reference&amp;#58; &amp;#91;Legacy Formats&amp;#93;&amp;#40;http&amp;#58;&amp;#47;&amp;#47;msdn.microsoft.com&amp;#47;en-us&amp;#47;library&amp;#47;windows&amp;#47;desktop&amp;#47;cc308051&amp;#40;v&amp;#61;vs.85&amp;#41;.aspx&amp;#41;&lt;br /&gt;</description><author>walbourn</author><pubDate>Wed, 15 May 2013 19:41:48 GMT</pubDate><guid isPermaLink="false">Edited Feature: Support for expanding L8, L16, A8L8 on load from .DDS [927] 20130515074148P</guid></item><item><title>Created Feature: Support for expanding L8, L16, A8L8 on load from .DDS [927]</title><link>http://directxtex.codeplex.com/workitem/927</link><description>DirectXTex currently assumes that .DDS files for DDSPF_L8, DDSPF_L16, and DDSPF_A8L8  will be &amp;#39;non-expanding&amp;#39; and rely on the shader to handle replication of rgb or moving alpha.  This is also what DDSTextureLoader does.&lt;br /&gt;&lt;br /&gt;DDSPF_L8 -&amp;#62; DXGI_FORMAT_R8_UNORM&lt;br /&gt;DDSPF_L16 -&amp;#62; DXGI_FORMAT_R16_UNORM&lt;br /&gt;DDSPF_A8L8 -&amp;#62; DXGI_FORMAT_R8G8_UNORM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This work item is a request to actually expand these so that no shader changes are required.&lt;br /&gt;&lt;br /&gt;DDSPF_L8 -&amp;#62; DXGI_FORMAT_R8G8B8A8_UNORM &amp;#40;r,g,b replicated&amp;#41;&lt;br /&gt;DDSPF_L16 -&amp;#62; DXGI_FORMAT_R16G16B16A16_UNORM &amp;#40;r,b,g replicated&amp;#41;&lt;br /&gt;DDSPF_A8L8 -&amp;#62; DXGI_FORMAT_R8G8B8A8_UNORM &amp;#40;r,g,b replicated&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This will be controlled by a new flag DDS_FLAGS_EXPAND_LUMINANCE&lt;br /&gt;&lt;br /&gt;&amp;#62; Note DDS_FLAGS_NO_LEGACY_EXPANSION conflicts with DDS_FLAGS_EXPAND_LUMINANCE, so specifying both with result in E_INVALIDARG.&lt;br /&gt;&lt;br /&gt;Reference&amp;#58; &amp;#91;Legacy Formats&amp;#93;&amp;#40;http&amp;#58;&amp;#47;&amp;#47;msdn.microsoft.com&amp;#47;en-us&amp;#47;library&amp;#47;windows&amp;#47;desktop&amp;#47;cc308051&amp;#40;v&amp;#61;vs.85&amp;#41;.aspx&amp;#41;&lt;br /&gt;</description><author>walbourn</author><pubDate>Wed, 15 May 2013 19:40:52 GMT</pubDate><guid isPermaLink="false">Created Feature: Support for expanding L8, L16, A8L8 on load from .DDS [927] 20130515074052P</guid></item><item><title>Commented Issue: BC7 Decoder Output for "Reserved Mode" 8 is not as described in the BC7 Format Mode Reference [890]</title><link>http://directxtex.codeplex.com/workitem/890</link><description>Decompressing a BC7 file where a block has LSBs of 0x00 results in an opaque black texture. However, the BC7 Format Mode Reference page &amp;#40;http&amp;#58;&amp;#47;&amp;#47;msdn.microsoft.com&amp;#47;en-gb&amp;#47;library&amp;#47;windows&amp;#47;desktop&amp;#47;hh308954&amp;#40;v&amp;#61;vs.85&amp;#41;.aspx&amp;#41; states that if such a block is decompressed &amp;#34;a block initialized to all zeroes is returned&amp;#34;, which would suggest that the output should be transparent black.&lt;br /&gt;&lt;br /&gt;For an example, see the attached files. bc67ReservedMode.dds is a BC7 compressed texture where the block data is set to all-zeroes. Decompressing this texture with&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;texconv -f R8G8B8A8_UNORM -m 1 -sx _DEC bc67ReservedMode.dds&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;gives the opaque black output texture bc67ReservedMode_DEC.DDS&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;Notes from developer on this issue:&lt;/p&gt;&lt;p&gt;_Question is, what does it mean if a block is all 0? If it is a 3 channel block, the alpha is supposed to be 1.0.  If a 4 component block, that makes alpha 0.0.  I’d say transparent black is more consistent with the blanket statement of all 0.  Another argument for this is that when for other formats that talk about reserved encodings (BC6H), they explicitly call out when alpha should be 1.0.  BC7 doesn’t do this, so transparent black seems appropriate._&lt;/p&gt;</description><author>walbourn</author><pubDate>Fri, 03 May 2013 19:42:13 GMT</pubDate><guid isPermaLink="false">Commented Issue: BC7 Decoder Output for "Reserved Mode" 8 is not as described in the BC7 Format Mode Reference [890] 20130503074213P</guid></item><item><title>Closed Issue: skipMip not correctly calulcated for cubemaps and texture arrays [920]</title><link>http://directxtex.codeplex.com/workitem/920</link><description>In FillInitData&amp;#40;&amp;#41; in DDSTextureLoader.cpp, Ln 729 the skipMip variable is arraySize times too big if arraySize is &amp;#62; 1. So for cubemaps or texture arrays it is wrong and results in an invalid &amp;#40;huge&amp;#41; desc.MipLevels value. Moving the line skipMips &amp;#61; 0&amp;#59; line into the arraySize loop is one way to fix it.&lt;br /&gt;Comments: Resolved with changeset 26924: DDSTextureLoader fix for 1D/2D texture and cubemap arrays when skipping mips</description><author>walbourn</author><pubDate>Fri, 26 Apr 2013 22:15:48 GMT</pubDate><guid isPermaLink="false">Closed Issue: skipMip not correctly calulcated for cubemaps and texture arrays [920] 20130426101548P</guid></item><item><title>Commented Issue: skipMip not correctly calulcated for cubemaps and texture arrays [920]</title><link>http://directxtex.codeplex.com/workitem/920</link><description>In FillInitData&amp;#40;&amp;#41; in DDSTextureLoader.cpp, Ln 729 the skipMip variable is arraySize times too big if arraySize is &amp;#62; 1. So for cubemaps or texture arrays it is wrong and results in an invalid &amp;#40;huge&amp;#41; desc.MipLevels value. Moving the line skipMips &amp;#61; 0&amp;#59; line into the arraySize loop is one way to fix it.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;Thanks for the report. I think the better way to solve this is to add if ( !j ) to the condition so that skipMip is only incremented for the first array item (it is the same for all items in the array)&lt;/p&gt;&lt;p&gt;```&lt;br&gt;else&lt;br&gt;    ++skipMip;&lt;br&gt;```&lt;/p&gt;&lt;p&gt;should be&lt;/p&gt;&lt;p&gt;&lt;br&gt;```&lt;br&gt;else if ( !j )&lt;br&gt;    ++skipMip;&lt;br&gt;```&lt;br&gt;&lt;/p&gt;</description><author>walbourn</author><pubDate>Thu, 25 Apr 2013 23:52:45 GMT</pubDate><guid isPermaLink="false">Commented Issue: skipMip not correctly calulcated for cubemaps and texture arrays [920] 20130425115245P</guid></item><item><title>Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641]</title><link>http://directxtex.codeplex.com/workitem/641</link><description>DirectXTex uses WIC&amp;#39;s IWICBitmapScaler object to resize images and to generate mipmap chains. WIC only supports &amp;#34;Clamp&amp;#34; filtering modes, so this doesn&amp;#39;t always result in a properly tileable texture.&lt;br /&gt;&amp;#160;&lt;br /&gt;This would add TEX_FILTER_FLAGS for TEX_FILTER_MIRROR_U, TEX_FILTER_MIRROR_V, TEX_FILTER_MIRROR_W, TEX_FILTER_MIRROR to be supported by GenerateMipmaps&amp;#91;3D&amp;#93;&amp;#40;&amp;#41;.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;After some more digging, I found that the D3DX flags are actually to use a &amp;quot;MIRROR&amp;quot; model instead of a &amp;quot;WRAP&amp;quot; model. It uses a WRAP model by default. The &amp;quot;MIRROR&amp;quot; behavior is actually more like a CLAMP because it only addresses an off-by-1 scenario.&lt;/p&gt;&lt;p&gt;For DirectXTex I think I'll stick with CLAMP by default but add TEX_FILTER_WRAP_U, TEX_FILTER_WRAP_V, TEX_FILTER_WRAP_W.&lt;/p&gt;</description><author>walbourn</author><pubDate>Thu, 25 Apr 2013 22:44:00 GMT</pubDate><guid isPermaLink="false">Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641] 20130425104400P</guid></item><item><title>Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641]</title><link>http://directxtex.codeplex.com/workitem/641</link><description>DirectXTex uses WIC&amp;#39;s IWICBitmapScaler object to resize images and to generate mipmap chains. WIC only supports &amp;#34;Clamp&amp;#34; filtering modes, so this doesn&amp;#39;t always result in a properly tileable texture.&lt;br /&gt;&amp;#160;&lt;br /&gt;This would add TEX_FILTER_FLAGS for TEX_FILTER_MIRROR_U, TEX_FILTER_MIRROR_V, TEX_FILTER_MIRROR_W, TEX_FILTER_MIRROR to be supported by GenerateMipmaps&amp;#91;3D&amp;#93;&amp;#40;&amp;#41;.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;D3DX is actually a little sloppy in the Direct3D difference of mirror vs. wrap. The D3DX MIRROR flags actually treat it as Direct3D would 'wrap' in some cases. Generally these flags are just indicating 'tile' vs. 'non-tiled' treatment in the mipmap generation anyhow.&lt;/p&gt;</description><author>walbourn</author><pubDate>Thu, 25 Apr 2013 18:42:21 GMT</pubDate><guid isPermaLink="false">Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641] 20130425064221P</guid></item><item><title>Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641]</title><link>http://directxtex.codeplex.com/workitem/641</link><description>DirectXTex uses WIC&amp;#39;s IWICBitmapScaler object to resize images and to generate mipmap chains. WIC only supports &amp;#34;Clamp&amp;#34; filtering modes, so this doesn&amp;#39;t always result in a properly tileable texture.&lt;br /&gt;&amp;#160;&lt;br /&gt;This would add TEX_FILTER_FLAGS for TEX_FILTER_MIRROR_U, TEX_FILTER_MIRROR_V, TEX_FILTER_MIRROR_W, TEX_FILTER_MIRROR to be supported by GenerateMipmaps&amp;#91;3D&amp;#93;&amp;#40;&amp;#41;.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;For the general case of Resize, I plan to stick to using the WIC only implementation and to focus instead on custom filtering for the GenerateMipmaps[3D] scenarios. General image resizing with high-quality is already done pretty well with WIC.&lt;/p&gt;</description><author>walbourn</author><pubDate>Wed, 24 Apr 2013 17:38:42 GMT</pubDate><guid isPermaLink="false">Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641] 20130424053842P</guid></item><item><title>Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641]</title><link>http://directxtex.codeplex.com/workitem/641</link><description>DirectXTex uses WIC&amp;#39;s IWICBitmapScaler object to resize images and to generate mipmap chains. WIC only supports &amp;#34;Clamp&amp;#34; filtering modes, so this doesn&amp;#39;t always result in a properly tileable texture.&lt;br /&gt;&amp;#160;&lt;br /&gt;This would add TEX_FILTER_FLAGS for TEX_FILTER_MIRROR_U, TEX_FILTER_MIRROR_V, TEX_FILTER_MIRROR_W, TEX_FILTER_MIRROR to be supported by GenerateMipmaps&amp;#91;3D&amp;#93;&amp;#40;&amp;#41;.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;D3DX only provided a MIRROR flag set (MIRROR_U, MIRROR_V, MIRROR_W) and did not have a specific WRAP mode. That's because for tileable textures, the difference should be minimal. This saves a lot of implementation complexity as well. Therefore, I'm going to work on the assumption that just having a MIRROR flag set (with clamp being the default) is sufficient.&lt;/p&gt;</description><author>walbourn</author><pubDate>Wed, 24 Apr 2013 17:37:49 GMT</pubDate><guid isPermaLink="false">Commented Task: Support for MIRROR vs. CLAMP filtering for mipmap generation [641] 20130424053749P</guid></item><item><title>Commented Task: Volume map generation support for MIRROR vs. CLAMP, LINEAR, and CUBIC [642]</title><link>http://directxtex.codeplex.com/workitem/642</link><description>The current implementation of GenerateMipmaps3D&amp;#40;&amp;#41; only implements POINT and FANT &amp;#40;aka box for down-sizing&amp;#41; filtering. It needs new filters written for LINEAR and CUBIC which should implement clamp vs. mirror &amp;#40;wrap-modes are not meaningful settings for point&amp;#47;box filtering&amp;#41;.&lt;br /&gt;&amp;#160;&lt;br /&gt;WIC filtering can&amp;#39;t be used because no concept of volume maps which must be merged together for proper mipchains.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;D3DX only provided a MIRROR flag set (MIRROR_U, MIRROR_V, MIRROR_W) and did not have a specific WRAP mode. That's because for tileable textures, the difference should be minimal. This saves a lot of implementation complexity as well. Therefore, I'm going to work on the assumption that just having a MIRROR flag set (with clamp being the default) is sufficient.&lt;/p&gt;</description><author>walbourn</author><pubDate>Wed, 24 Apr 2013 17:36:54 GMT</pubDate><guid isPermaLink="false">Commented Task: Volume map generation support for MIRROR vs. CLAMP, LINEAR, and CUBIC [642] 20130424053654P</guid></item><item><title>Created Issue: skipMip not correctly calulcated for cubemaps and texture arrays [920]</title><link>http://directxtex.codeplex.com/workitem/920</link><description>In FillInitData&amp;#40;&amp;#41; in DDSTextureLoader.cpp, Ln 729 the skipMip variable is arraySize times too big if arraySize is &amp;#62; 1. So for cubemaps or texture arrays it is wrong and results in an invalid &amp;#40;huge&amp;#41; desc.MipLevels value. Moving the line skipMips &amp;#61; 0&amp;#59; line into the arraySize loop is one way to fix it.&lt;br /&gt;</description><author>mciragan</author><pubDate>Fri, 19 Apr 2013 12:07:20 GMT</pubDate><guid isPermaLink="false">Created Issue: skipMip not correctly calulcated for cubemaps and texture arrays [920] 20130419120720P</guid></item><item><title>Closed Task: Ensure proper SRGB handling [643]</title><link>http://directxtex.codeplex.com/workitem/643</link><description>The explicit use of _SRGB dxgi formats or the filtering flags TEX_FILTER_SRGB_IN, TEX_FILTER_SRGB_OUT, TEX_FILTER_SRGB should be respected for conversions, resizing, and mipmap generation. While it is partially implemented, WIC-based conversions and resizing isn&amp;#39;t properly using those flags.&lt;br /&gt;&amp;#160;&lt;br /&gt;Furthermore, Use of IWICFormatConverter implicitly assumes all integer content is sRGB and all fixed&amp;#47;float content is scRGB so there&amp;#39;s an implicit conversion of color space which is not desired. This is particularly concerning because for many DXGI formats, this interface is used to convert content to 128bpp float for SIMD-based CPU processing by DirectXTex and then converted back. These code paths all need validation that they properly preserve or change sRGB as requested by the client.&lt;br /&gt;&amp;#160;&lt;br /&gt;Note&amp;#58; IWICColorTransform is not as useful here as hoped because it will fail when given any fixed-point or floating-point format.&lt;br /&gt;Comments: Resolved with changeset 26378: DirectXTex: Resolve SRGB handling problems with conversions&lt;br /&gt; - Convert: TEX_FILTER_FORCE_NON_WIC, TEX_FILTER_FORCE_WIC, TEX_FILTER_RGB_COPY_RED/BLUE/GREEN&lt;br /&gt; - ComputeMSE flags for sRGB colorspace and channel ignore options</description><author>walbourn</author><pubDate>Wed, 17 Apr 2013 00:51:37 GMT</pubDate><guid isPermaLink="false">Closed Task: Ensure proper SRGB handling [643] 20130417125137A</guid></item><item><title>Commented Task: Volume map generation support for MIRROR, WRAP, LINEAR, and CUBIC [642]</title><link>http://directxtex.codeplex.com/workitem/642</link><description>The current implementation of GenerateMipmaps3D&amp;#40;&amp;#41; only implements POINT and FANT &amp;#40;aka box for down-sizing&amp;#41; filtering. It needs new filters written for LINEAR and CUBIC which should implement CLAMP, MIRROR, and WRAP &amp;#40;wrap-modes are not meaningful settings for point&amp;#47;box filtering&amp;#41;.&lt;br /&gt;&amp;#160;&lt;br /&gt;WIC filtering can&amp;#39;t be used because no concept of volume maps which must be merged together for proper mipchains.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;Do the filtering in linear space as well (i.e. convert sRGB on input &amp;amp; output, possibly moving it to Load/StoreScanline)&lt;/p&gt;</description><author>walbourn</author><pubDate>Tue, 16 Apr 2013 05:39:08 GMT</pubDate><guid isPermaLink="false">Commented Task: Volume map generation support for MIRROR, WRAP, LINEAR, and CUBIC [642] 20130416053908A</guid></item><item><title>Commented Task: Support for MIRROR and WRAP filtering for resize and mipmap generation [641]</title><link>http://directxtex.codeplex.com/workitem/641</link><description>DirectXTex uses WIC&amp;#39;s IWICBitmapScaler object to resize images and to generate mipmap chains. WIC only supports &amp;#34;Clamp&amp;#34; filtering modes, so this doesn&amp;#39;t always result in a properly tileable texture.&lt;br /&gt;&amp;#160;&lt;br /&gt;This would add TEX_FILTER_FLAGS for TEX_FILTER_MIRROR_U, TEX_FILTER_MIRROR_V, TEX_FILTER_MIRROR_W, TEX_FILTER_MIRROR, TEX_FILTER_WRAP_U, TEX_FILTER_WRAP_V, TEX_FILTER_WRAP_W, TEX_FILTER_WRAP to be supported by Resize&amp;#40;&amp;#41; and GenerateMipmaps&amp;#40;&amp;#41;.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;Do the filtering in linear space as well (i.e. convert sRGB on input &amp;amp; output, possibly moving it to Load/StoreScanline)&lt;/p&gt;</description><author>walbourn</author><pubDate>Tue, 16 Apr 2013 05:38:08 GMT</pubDate><guid isPermaLink="false">Commented Task: Support for MIRROR and WRAP filtering for resize and mipmap generation [641] 20130416053808A</guid></item><item><title>Commented Task: Ensure proper SRGB handling [643]</title><link>http://directxtex.codeplex.com/workitem/643</link><description>The explicit use of _SRGB dxgi formats or the filtering flags TEX_FILTER_SRGB_IN, TEX_FILTER_SRGB_OUT, TEX_FILTER_SRGB should be respected for conversions, resizing, and mipmap generation. While it is partially implemented, WIC-based conversions and resizing isn&amp;#39;t properly using those flags.&lt;br /&gt;&amp;#160;&lt;br /&gt;Furthermore, Use of IWICFormatConverter implicitly assumes all integer content is sRGB and all fixed&amp;#47;float content is scRGB so there&amp;#39;s an implicit conversion of color space which is not desired. This is particularly concerning because for many DXGI formats, this interface is used to convert content to 128bpp float for SIMD-based CPU processing by DirectXTex and then converted back. These code paths all need validation that they properly preserve or change sRGB as requested by the client.&lt;br /&gt;&amp;#160;&lt;br /&gt;Note&amp;#58; IWICColorTransform is not as useful here as hoped because it will fail when given any fixed-point or floating-point format.&lt;br /&gt;Comments: ** Comment from web user: walbourn ** &lt;p&gt;I'll keep that in mind when doing the [custom filtering work](https://directxtex.codeplex.com/workitem/641). WIC-based resize and generate-mipmaps is basically doing to do whatever it wants.&lt;/p&gt;</description><author>walbourn</author><pubDate>Tue, 16 Apr 2013 05:37:54 GMT</pubDate><guid isPermaLink="false">Commented Task: Ensure proper SRGB handling [643] 20130416053754A</guid></item><item><title>Commented Task: Ensure proper SRGB handling [643]</title><link>http://directxtex.codeplex.com/workitem/643</link><description>The explicit use of _SRGB dxgi formats or the filtering flags TEX_FILTER_SRGB_IN, TEX_FILTER_SRGB_OUT, TEX_FILTER_SRGB should be respected for conversions, resizing, and mipmap generation. While it is partially implemented, WIC-based conversions and resizing isn&amp;#39;t properly using those flags.&lt;br /&gt;&amp;#160;&lt;br /&gt;Furthermore, Use of IWICFormatConverter implicitly assumes all integer content is sRGB and all fixed&amp;#47;float content is scRGB so there&amp;#39;s an implicit conversion of color space which is not desired. This is particularly concerning because for many DXGI formats, this interface is used to convert content to 128bpp float for SIMD-based CPU processing by DirectXTex and then converted back. These code paths all need validation that they properly preserve or change sRGB as requested by the client.&lt;br /&gt;&amp;#160;&lt;br /&gt;Note&amp;#58; IWICColorTransform is not as useful here as hoped because it will fail when given any fixed-point or floating-point format.&lt;br /&gt;Comments: ** Comment from web user: alexandre_mutel ** &lt;p&gt;^ meant &amp;quot;not something that is well known&amp;quot;&lt;/p&gt;</description><author>alexandre_mutel</author><pubDate>Tue, 16 Apr 2013 02:23:53 GMT</pubDate><guid isPermaLink="false">Commented Task: Ensure proper SRGB handling [643] 20130416022353A</guid></item><item><title>Commented Task: Ensure proper SRGB handling [643]</title><link>http://directxtex.codeplex.com/workitem/643</link><description>The explicit use of _SRGB dxgi formats or the filtering flags TEX_FILTER_SRGB_IN, TEX_FILTER_SRGB_OUT, TEX_FILTER_SRGB should be respected for conversions, resizing, and mipmap generation. While it is partially implemented, WIC-based conversions and resizing isn&amp;#39;t properly using those flags.&lt;br /&gt;&amp;#160;&lt;br /&gt;Furthermore, Use of IWICFormatConverter implicitly assumes all integer content is sRGB and all fixed&amp;#47;float content is scRGB so there&amp;#39;s an implicit conversion of color space which is not desired. This is particularly concerning because for many DXGI formats, this interface is used to convert content to 128bpp float for SIMD-based CPU processing by DirectXTex and then converted back. These code paths all need validation that they properly preserve or change sRGB as requested by the client.&lt;br /&gt;&amp;#160;&lt;br /&gt;Note&amp;#58; IWICColorTransform is not as useful here as hoped because it will fail when given any fixed-point or floating-point format.&lt;br /&gt;Comments: ** Comment from web user: alexandre_mutel ** &lt;p&gt;Actually, mipmapping for color textures should be computed in linear space and not in srgb space, for exactly the same reason shader lighting should be done in linear space (with texture fetching values in linear space). This problem is described in &amp;quot;[The Importance of being Linear](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html)&amp;quot;, look for mipmap. Also, there is &amp;quot;[Gamma and Mimap](http://filmicgames.com/archives/327)&amp;quot; that is worth the visual demonstration of calculating a mipmap in srgb instead of linear space.&lt;br&gt;It is not something that is not well known (even Photoshop is doing it wrong!), but working on a fully gamma correct pipeline/rendering is requiring to handle resize/mipmaps carefully regarding srgv/linear spaces&lt;/p&gt;</description><author>alexandre_mutel</author><pubDate>Tue, 16 Apr 2013 02:22:45 GMT</pubDate><guid isPermaLink="false">Commented Task: Ensure proper SRGB handling [643] 20130416022245A</guid></item></channel></rss>