<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Direct3D GPU Hacks</title>
	<atom:link href="http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/feed/" rel="self" type="application/rss+xml" />
	<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/</link>
	<description>Random thoughts of a triangle pusher</description>
	<lastBuildDate>Sat, 17 Jul 2010 12:39:05 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-30167</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Mon, 12 Apr 2010 14:03:14 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-30167</guid>
		<description>@JSeb: it was not reported on Radeon HD 2600 and 3850 that I tried. Maybe I tried too old drivers; don&#039;t remember right now.</description>
		<content:encoded><![CDATA[<p>@JSeb: it was not reported on Radeon HD 2600 and 3850 that I tried. Maybe I tried too old drivers; don&#8217;t remember right now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JSeb</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-30162</link>
		<dc:creator>JSeb</dc:creator>
		<pubDate>Mon, 12 Apr 2010 12:42:13 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-30162</guid>
		<description>From Amd&#039;s paper, &quot;RESZ&quot; is supported by &quot;HD 2xxx+&quot; (not only &quot;HD 4xxx+&quot;)
Plus, &quot;The RESZ interface is a good alternative to use for cards that don’t support INTZ.&quot;
ie you get a INTZ buffer update with an additionnal copy &amp; storage.</description>
		<content:encoded><![CDATA[<p>From Amd&#8217;s paper, &#8220;RESZ&#8221; is supported by &#8220;HD 2xxx+&#8221; (not only &#8220;HD 4xxx+&#8221;)<br />
Plus, &#8220;The RESZ interface is a good alternative to use for cards that don’t support INTZ.&#8221;<br />
ie you get a INTZ buffer update with an additionnal copy &amp; storage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dragon</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-27540</link>
		<dc:creator>Dragon</dc:creator>
		<pubDate>Thu, 18 Feb 2010 23:13:06 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-27540</guid>
		<description>Most recent games (GTA4, Dark Void) use new NVidia hack NVCS
CreateTexture(Width = 24, Height = 1, Levels = 1, Usage = D3DUSAGE_RENDERTARGET, Format = &#039;NVCS&#039;, Pool = D3DPOOL_DEFAULT, *ppTexture = 00000000, pSharedHandle = 00000000)

But I do not know why.</description>
		<content:encoded><![CDATA[<p>Most recent games (GTA4, Dark Void) use new NVidia hack NVCS<br />
CreateTexture(Width = 24, Height = 1, Levels = 1, Usage = D3DUSAGE_RENDERTARGET, Format = &#8216;NVCS&#8217;, Pool = D3DPOOL_DEFAULT, *ppTexture = 00000000, pSharedHandle = 00000000)</p>
<p>But I do not know why.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fulg</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-27067</link>
		<dc:creator>Fulg</dc:creator>
		<pubDate>Thu, 11 Feb 2010 20:35:40 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-27067</guid>
		<description>Thanks, this is useful! I&#039;ve been developing on consoles for so long, I didn&#039;t keep track of what works and what doesn&#039;t... you get used pretty quickly to fixed hardware specs :)

Cheers!</description>
		<content:encoded><![CDATA[<p>Thanks, this is useful! I&#8217;ve been developing on consoles for so long, I didn&#8217;t keep track of what works and what doesn&#8217;t&#8230; you get used pretty quickly to fixed hardware specs :)</p>
<p>Cheers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rride</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-25773</link>
		<dc:creator>rride</dc:creator>
		<pubDate>Mon, 25 Jan 2010 10:46:17 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-25773</guid>
		<description>Oh, sorry, I haven&#039;t noticed that one in your list</description>
		<content:encoded><![CDATA[<p>Oh, sorry, I haven&#8217;t noticed that one in your list</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rride</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-25772</link>
		<dc:creator>rride</dc:creator>
		<pubDate>Mon, 25 Jan 2010 10:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-25772</guid>
		<description>Hi, I&#039;ve just found one more hack - RESZ, at least for the ATIs cards to resolve a multisample depth buffer into single-sample one

see here http://developer.amd.com/gpu_assets/Advanced%20DX9%20Capabilities%20for%20ATI%20Radeon%20Cards.pdf</description>
		<content:encoded><![CDATA[<p>Hi, I&#8217;ve just found one more hack &#8211; RESZ, at least for the ATIs cards to resolve a multisample depth buffer into single-sample one</p>
<p>see here <a href="http://developer.amd.com/gpu_assets/Advanced%20DX9%20Capabilities%20for%20ATI%20Radeon%20Cards.pdf" rel="nofollow">http://developer.amd.com/gpu_assets/Advanced%20DX9%20Capabilities%20for%20ATI%20Radeon%20Cards.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-23189</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Thu, 26 Nov 2009 04:56:54 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-23189</guid>
		<description>Yeah, the awesome joys of developing on a PC... not!</description>
		<content:encoded><![CDATA[<p>Yeah, the awesome joys of developing on a PC&#8230; not!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: keith</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-23121</link>
		<dc:creator>keith</dc:creator>
		<pubDate>Tue, 24 Nov 2009 19:32:20 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-23121</guid>
		<description>It seems that that R2VB isn&#039;t supported on nVidia DX10 hardware (8800+), but vertex texture fetching is the preferred path on that hardware anyway. And there are texture format restrictions for using USAGE_DMAP formats on previous generation nVidia cards (only some 16 and 32bit formats are supported). But then the ATI X1xxx cards don&#039;t support VTF. You just can&#039;t win!</description>
		<content:encoded><![CDATA[<p>It seems that that R2VB isn&#8217;t supported on nVidia DX10 hardware (8800+), but vertex texture fetching is the preferred path on that hardware anyway. And there are texture format restrictions for using USAGE_DMAP formats on previous generation nVidia cards (only some 16 and 32bit formats are supported). But then the ATI X1xxx cards don&#8217;t support VTF. You just can&#8217;t win!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-23095</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Tue, 24 Nov 2009 04:48:56 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-23095</guid>
		<description>@keith: I just ran custom FOURCC detection code, and it looks like on GeForce 6 &amp; 7 series the driver says &quot;yes!&quot; to R2VB hack. No idea if it works in practice though.</description>
		<content:encoded><![CDATA[<p>@keith: I just ran custom FOURCC detection code, and it looks like on GeForce 6 &#038; 7 series the driver says &#8220;yes!&#8221; to R2VB hack. No idea if it works in practice though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: keith</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-23079</link>
		<dc:creator>keith</dc:creator>
		<pubDate>Mon, 23 Nov 2009 21:58:08 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-23079</guid>
		<description>Thanks, very handy to have. Can you give any more details on &#039;Render to Vertex Buffer&#039; on nVidia cards? Where did you hear some GPUs/drivers support it?</description>
		<content:encoded><![CDATA[<p>Thanks, very handy to have. Can you give any more details on &#8216;Render to Vertex Buffer&#8217; on nVidia cards? Where did you hear some GPUs/drivers support it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-22994</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Sat, 21 Nov 2009 09:06:55 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-22994</guid>
		<description>@modeless: thanks! article updated.</description>
		<content:encoded><![CDATA[<p>@modeless: thanks! article updated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: modeless</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-22988</link>
		<dc:creator>modeless</dc:creator>
		<pubDate>Sat, 21 Nov 2009 08:17:35 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-22988</guid>
		<description>The fourcc &quot;INST&quot; is used to enable geometry instancing on SM2.0 ATI cards.

if(d3d-&gt;CheckDeviceFormat(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8, 0, D3DRTYPE_SURFACE,
(D3DFORMAT) MAKEFOURCC(&#039;I&#039;,&#039;N&#039;,&#039;S&#039;,&#039;T&#039;)) == D3D_OK))
device-&gt;SetRenderState(D3DRS_POINTSIZE, MAKEFOURCC(&#039;I&#039;,&#039;N&#039;,&#039;S&#039;,&#039;T&#039;));</description>
		<content:encoded><![CDATA[<p>The fourcc &#8220;INST&#8221; is used to enable geometry instancing on SM2.0 ATI cards.</p>
<p>if(d3d-&gt;CheckDeviceFormat(D3DADAPTER_DEFAULT,<br />
D3DDEVTYPE_HAL, D3DFMT_X8R8G8B8, 0, D3DRTYPE_SURFACE,<br />
(D3DFORMAT) MAKEFOURCC(&#8216;I&#8217;,'N&#8217;,'S&#8217;,'T&#8217;)) == D3D_OK))<br />
device-&gt;SetRenderState(D3DRS_POINTSIZE, MAKEFOURCC(&#8216;I&#8217;,'N&#8217;,'S&#8217;,'T&#8217;));</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-22953</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Fri, 20 Nov 2009 19:14:54 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-22953</guid>
		<description>@steve, @martins, @VGP: thanks for the suggestions. Updated article with CSAA &amp; Fetch4.</description>
		<content:encoded><![CDATA[<p>@steve, @martins, @VGP: thanks for the suggestions. Updated article with CSAA &#038; Fetch4.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: VGP</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-22941</link>
		<dc:creator>VGP</dc:creator>
		<pubDate>Fri, 20 Nov 2009 15:05:28 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-22941</guid>
		<description>Don&#039;t forget ATI&#039;s Fetch4 functionality :

#define FOURCC_GET4  MAKEFOURCC(&#039;G&#039;,&#039;E&#039;,&#039;T&#039;,&#039;4&#039;)
#define FOURCC_GET1  MAKEFOURCC(&#039;G&#039;,&#039;E&#039;,&#039;T&#039;,&#039;1&#039;)

setSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, FOURCC_GET4);
setSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, FOURCC_GET1);

http://developer.amd.com/gpu_assets/Advanced%20DX9%20Capabilities%20for%20ATI%20Radeon%20Cards_v2.pdf</description>
		<content:encoded><![CDATA[<p>Don&#8217;t forget ATI&#8217;s Fetch4 functionality :</p>
<p>#define FOURCC_GET4  MAKEFOURCC(&#8216;G&#8217;,'E&#8217;,'T&#8217;,&#8217;4&#8242;)<br />
#define FOURCC_GET1  MAKEFOURCC(&#8216;G&#8217;,'E&#8217;,'T&#8217;,&#8217;1&#8242;)</p>
<p>setSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, FOURCC_GET4);<br />
setSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, FOURCC_GET1);</p>
<p><a href="http://developer.amd.com/gpu_assets/Advanced%20DX9%20Capabilities%20for%20ATI%20Radeon%20Cards_v2.pdf" rel="nofollow">http://developer.amd.com/gpu_assets/Advanced%20DX9%20Capabilities%20for%20ATI%20Radeon%20Cards_v2.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: martins</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-22940</link>
		<dc:creator>martins</dc:creator>
		<pubDate>Fri, 20 Nov 2009 14:49:40 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-22940</guid>
		<description>It is mentioned here: http://developer.nvidia.com/object/coverage-sampled-aa.html</description>
		<content:encoded><![CDATA[<p>It is mentioned here: <a href="http://developer.nvidia.com/object/coverage-sampled-aa.html" rel="nofollow">http://developer.nvidia.com/object/coverage-sampled-aa.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aras Pranckevičius</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-22939</link>
		<dc:creator>Aras Pranckevičius</dc:creator>
		<pubDate>Fri, 20 Nov 2009 13:09:50 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-22939</guid>
		<description>@steve: I think I&#039;ve got various forms of transparency anti-aliasing under... &quot;Transparency anti-aliasing&quot;  :) How do you turn on CSAA on NVIDIA?</description>
		<content:encoded><![CDATA[<p>@steve: I think I&#8217;ve got various forms of transparency anti-aliasing under&#8230; &#8220;Transparency anti-aliasing&#8221;  :) How do you turn on CSAA on NVIDIA?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: steve</title>
		<link>http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/comment-page-1/#comment-22938</link>
		<dc:creator>steve</dc:creator>
		<pubDate>Fri, 20 Nov 2009 12:42:57 +0000</pubDate>
		<guid isPermaLink="false">http://aras-p.info/blog/?p=462#comment-22938</guid>
		<description>Nice, I haven&#039;t seen this gathered together in one place before. I had no idea ATI had implemented the old Dx9 shadowmap lookup hack in the HD2xxx+. 

Hacks not in this list that I can think of that we&#039;ve used:
- Alpha to coverage: (D3DRS_ADAPTIVETESS_Y hack on nv, D3DRS_POINTSIZE on ATI, not sure about any others
- Coverage Sampled AA (nvidia only?)</description>
		<content:encoded><![CDATA[<p>Nice, I haven&#8217;t seen this gathered together in one place before. I had no idea ATI had implemented the old Dx9 shadowmap lookup hack in the HD2xxx+. </p>
<p>Hacks not in this list that I can think of that we&#8217;ve used:<br />
- Alpha to coverage: (D3DRS_ADAPTIVETESS_Y hack on nv, D3DRS_POINTSIZE on ATI, not sure about any others<br />
- Coverage Sampled AA (nvidia only?)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
