<?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: A Render/SamplerState Stack and Manager for XNA</title>
	<atom:link href="http://theinstructionlimit.com/?feed=rss2&#038;p=510" rel="self" type="application/rss+xml" />
	<link>http://theinstructionlimit.com/?p=510</link>
	<description>Truevision3D 6.5, XNA, C# and HLSL tips &#38; samples by Zaknafein/Renaud Bédard.</description>
	<lastBuildDate>Thu, 02 Sep 2010 18:01:19 -0700</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Renaud Bédard</title>
		<link>http://theinstructionlimit.com/?p=510&#038;cpage=1#comment-306</link>
		<dc:creator>Renaud Bédard</dc:creator>
		<pubDate>Tue, 23 Feb 2010 16:29:44 +0000</pubDate>
		<guid isPermaLink="false">http://theinstructionlimit.com/?p=510#comment-306</guid>
		<description>I agree that a &quot;delta&quot; system is more efficient and probably simpler, but I wouldn&#039;t say a state stack is entirely irrelevant.
In a hierarchical component system, it can be a useful tool. Not even render &quot;leaf&quot; knows or needs to know the full render state, it could only push some additions, and pop them. The upper nodes dictate the general state, the leaves work with specifics.</description>
		<content:encoded><![CDATA[<p>I agree that a &#8220;delta&#8221; system is more efficient and probably simpler, but I wouldn&#8217;t say a state stack is entirely irrelevant.<br />
In a hierarchical component system, it can be a useful tool. Not even render &#8220;leaf&#8221; knows or needs to know the full render state, it could only push some additions, and pop them. The upper nodes dictate the general state, the leaves work with specifics.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mr Reply</title>
		<link>http://theinstructionlimit.com/?p=510&#038;cpage=1#comment-305</link>
		<dc:creator>Mr Reply</dc:creator>
		<pubDate>Tue, 23 Feb 2010 16:04:53 +0000</pubDate>
		<guid isPermaLink="false">http://theinstructionlimit.com/?p=510#comment-305</guid>
		<description>A stack is not relevant to render states

All that matters is:

- what are the current states
- what states do we require now

to achieve this you just need a shadow cache of the device render state and then calculate the delta

then do a write-through the shadow cache to the device</description>
		<content:encoded><![CDATA[<p>A stack is not relevant to render states</p>
<p>All that matters is:</p>
<p>- what are the current states<br />
- what states do we require now</p>
<p>to achieve this you just need a shadow cache of the device render state and then calculate the delta</p>
<p>then do a write-through the shadow cache to the device</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Week in Code (XVII) &#171; Sgt. Conker</title>
		<link>http://theinstructionlimit.com/?p=510&#038;cpage=1#comment-257</link>
		<dc:creator>The Week in Code (XVII) &#171; Sgt. Conker</dc:creator>
		<pubDate>Wed, 28 Oct 2009 14:21:50 +0000</pubDate>
		<guid isPermaLink="false">http://theinstructionlimit.com/?p=510#comment-257</guid>
		<description>[...] A Render/SamplerState Stack and Manager for XNA&#160;Renaud introduces his KISS style state stack for the XNA FX [...]</description>
		<content:encoded><![CDATA[<p>[...] A Render/SamplerState Stack and Manager for XNA&#160;Renaud introduces his KISS style state stack for the XNA FX [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Week in Code XVII &#171; Sgt. Conker</title>
		<link>http://theinstructionlimit.com/?p=510&#038;cpage=1#comment-248</link>
		<dc:creator>The Week in Code XVII &#171; Sgt. Conker</dc:creator>
		<pubDate>Sun, 25 Oct 2009 22:32:16 +0000</pubDate>
		<guid isPermaLink="false">http://theinstructionlimit.com/?p=510#comment-248</guid>
		<description>[...] A Render/SamplerState Stack and Manager for XNA&#160;Renaud introduces his KISS style state stack for the XNA FX [...]</description>
		<content:encoded><![CDATA[<p>[...] A Render/SamplerState Stack and Manager for XNA&#160;Renaud introduces his KISS style state stack for the XNA FX [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pete</title>
		<link>http://theinstructionlimit.com/?p=510&#038;cpage=1#comment-241</link>
		<dc:creator>Pete</dc:creator>
		<pubDate>Wed, 21 Oct 2009 00:11:24 +0000</pubDate>
		<guid isPermaLink="false">http://theinstructionlimit.com/?p=510#comment-241</guid>
		<description>Nice article!

I&#039;m working on a slightly different approach. Basically, every draw-call pass will have its own render state wrapper, but I won&#039;t track changes to the initial or main state. Instead, I&#039;ll compare the current state to the next one in the draw-call pass for changes, and thus only change what&#039;s necessary &quot;from current to next&quot;.

In order to avoid cheking all render-state fields, I&#039;ll pack them &quot;by category&quot; on a single value using bit-shifting. Say, all embed (almost) all booleans in one integer field. So, if two integers -the current and the next- are equal, no need for changes; but if they are different, then I check each bit to see which boolean values need to be updated.

Since I have a &quot;material&quot; system that controls each pass, and the latter specifies its render state, by not allowing changing render states within the shader itself -manual process though, I&#039;ll avoid situations that force me to mark &quot;dirty fields&quot; and reset.

Again, great article. Thanks for sharing.</description>
		<content:encoded><![CDATA[<p>Nice article!</p>
<p>I&#8217;m working on a slightly different approach. Basically, every draw-call pass will have its own render state wrapper, but I won&#8217;t track changes to the initial or main state. Instead, I&#8217;ll compare the current state to the next one in the draw-call pass for changes, and thus only change what&#8217;s necessary &#8220;from current to next&#8221;.</p>
<p>In order to avoid cheking all render-state fields, I&#8217;ll pack them &#8220;by category&#8221; on a single value using bit-shifting. Say, all embed (almost) all booleans in one integer field. So, if two integers -the current and the next- are equal, no need for changes; but if they are different, then I check each bit to see which boolean values need to be updated.</p>
<p>Since I have a &#8220;material&#8221; system that controls each pass, and the latter specifies its render state, by not allowing changing render states within the shader itself -manual process though, I&#8217;ll avoid situations that force me to mark &#8220;dirty fields&#8221; and reset.</p>
<p>Again, great article. Thanks for sharing.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
