<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Limegarden.net &#187; multithreading</title>
	<atom:link href="http://limegarden.net/tag/multithreading/feed/" rel="self" type="application/rss+xml" />
	<link>http://limegarden.net</link>
	<description>Personal site of Wouter Lindenhof</description>
	<lastBuildDate>Wed, 01 Feb 2012 23:07:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Multi Threaded Direct3D</title>
		<link>http://limegarden.net/2009/01/29/multi-threaded-direct3d/</link>
		<comments>http://limegarden.net/2009/01/29/multi-threaded-direct3d/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 02:18:24 +0000</pubDate>
		<dc:creator>Wouter Lindenhof</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[multithreading]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://limegarden.net/2009/01/29/multi-threaded-direct3d/</guid>
		<description><![CDATA[In the previous post I mentioned that I would look in to multi threaded rendering and I have done that. The minimal example attached and available for download is really simple sample, that creates a Direct3D device and cleans it. If you would further apply the trick that is described on the 26 slide of [...]]]></description>
			<content:encoded><![CDATA[<p>In the previous post I mentioned that I would look in to multi threaded rendering and I have done that. The minimal example attached and available for download is really simple sample, that creates a Direct3D device and cleans it. </p>
<p>If you would further apply the trick that is described on the 26 slide of <a href="http://www.slideshare.net/psteinb/optimizing-direct-x-on-multi-core-architectures">Optimizing Direct X On Multi Core Architectures</a> then I'm certain you can create something very flexible.</p>
<p>For example: If you need a vertex buffer, you lock the RenderingThread using [cci_cpp]RenderingThread::Lock[/cci_cpp] which will only be released once the [cci_cpp]CRITICAL_SECTION[/cci_cpp] has been released by another thread. Then you could ask the RenderingThread to create a wrapper of [cci_cpp]IDirect3DVertexBuffer9[/cci_cpp] which has added function that it will buffer everything and only update [cci_cpp]IDirect3DVertexBuffer9[/cci_cpp] inside the RenderingThread. If done correct you can easily multithread without having to worry about the following error message:</p>
<p>[ccWN_text]Direct3D9: (WARN) <img src='http://limegarden.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> evice that was created without D3DCREATE_MULTITHREADED is being used by a thread other than the creation thread.[/ccWN_text]</p>
<p>You can download the source code here: <a href='http://limegarden.net/wp-content/uploads/2009/01/DirectXMultiThreaded.zip'>DirectXMultiThreaded.zip (source only)</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://limegarden.net/2009/01/29/multi-threaded-direct3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

