﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ASource%2FRender%2FCycles%2FThreads</id>
	<title>Dev:Source/Render/Cycles/Threads - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ASource%2FRender%2FCycles%2FThreads"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/Threads&amp;action=history"/>
	<updated>2026-04-19T17:10:17Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/Threads&amp;diff=104703&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/Threads&amp;diff=104703&amp;oldid=prev"/>
		<updated>2018-06-28T19:43:20Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 19:43時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/Threads&amp;diff=104702&amp;oldid=prev</id>
		<title>wiki&gt;Brecht: moved Dev:2.6/Source/Render/Cycles/Threads to Dev:Source/Render/Cycles/Threads: remove namespace version</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Render/Cycles/Threads&amp;diff=104702&amp;oldid=prev"/>
		<updated>2015-12-27T19:00:43Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/Dev:2.6/Source/Render/Cycles/Threads&quot; class=&quot;mw-redirect&quot; title=&quot;Dev:2.6/Source/Render/Cycles/Threads&quot;&gt;Dev:2.6/Source/Render/Cycles/Threads&lt;/a&gt; to &lt;a href=&quot;/Dev:Source/Render/Cycles/Threads&quot; title=&quot;Dev:Source/Render/Cycles/Threads&quot;&gt;Dev:Source/Render/Cycles/Threads&lt;/a&gt;: remove namespace version&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Threads ==&lt;br /&gt;
&lt;br /&gt;
=== Types ===&lt;br /&gt;
&lt;br /&gt;
We can distinguish between 3 threads:&lt;br /&gt;
&lt;br /&gt;
* The '''Blender Thread''' is the one we are in when receiving render engine callbacks. From this thread it is safe to access the Blender scene. However, Blender is blocked while these callbacks are executed, so we must try to do at little work as possible here.&lt;br /&gt;
* The '''Session Thread''' sits between the threads that actually render the scene and the thread that updates data from Blender, doing scene updates and distributing tasks.&lt;br /&gt;
* '''Device Threads''' do the actually rendering on a scene representation optimized for rendering. For a CPU device we may have multiple such threads, for a GPU device&lt;br /&gt;
&lt;br /&gt;
[[File:Cycles_threads.png|center]]&lt;br /&gt;
&lt;br /&gt;
=== What needs to improve ===&lt;br /&gt;
&lt;br /&gt;
We currently have 3 scene representations, which is not great in terms of memory usage. The question is how to get rid of this, while still making it possible to synchronize efficiently.&lt;br /&gt;
&lt;br /&gt;
Some ways to reduce the problem are to free data as soon as we no longer need it. Especially for non-interactive rendering this is feasible. Doing our own subdivision would also reduce the problem.&lt;br /&gt;
&lt;br /&gt;
Blocking Blender while copying data out is also problematic for bigger scenes. This could be tackled Blender side, running render engine callbacks not from the main thread, though this requires mutex locks on Blender scene data. We could also try to split up the synchronization code on our side, so that we can synchronize partially and then give back control to Blender, to continue synchronizing after Blender events are handled.&lt;/div&gt;</summary>
		<author><name>wiki&gt;Brecht</name></author>
		
	</entry>
</feed>