[Bf-blender-cvs] [d4f27b960bf] cycles_cryptomatte: Cycles: Switched CPU cryptomatte to use unordered_map instead of map.

Stefan Werner noreply at git.blender.org
Wed Jul 11 12:20:47 CEST 2018


Commit: d4f27b960bf8ae75eff330f8f19e42de815ef337
Author: Stefan Werner
Date:   Wed Jul 11 12:20:44 2018 +0200
Branches: cycles_cryptomatte
https://developer.blender.org/rBd4f27b960bf8ae75eff330f8f19e42de815ef337

Cycles: Switched CPU cryptomatte to use unordered_map instead of map.

===================================================================

M	intern/cycles/device/device_cpu.cpp
M	intern/cycles/kernel/kernel_globals.h

===================================================================

diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index e70c3e0d78c..2f70a49d823 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -674,7 +674,7 @@ public:
 		return true;
 	}
 
-	void path_trace(DeviceTask &task, RenderTile &tile, KernelGlobals *kg, vector<map<float, float> >& coverage_object, vector<map<float, float> >& coverage_material, vector<map<float, float > >& coverage_asset)
+	void path_trace(DeviceTask &task, RenderTile &tile, KernelGlobals *kg, vector<unordered_map<float, float> >& coverage_object, vector<unordered_map<float, float> >& coverage_material, vector<unordered_map<float, float > >& coverage_asset)
 	{
 		scoped_timer timer(&tile.buffers->render_time);
 		kg->coverage_object = kg->coverage_material = NULL;
@@ -776,9 +776,9 @@ public:
 		while(task.acquire_tile(this, tile)) {
 			if(tile.task == RenderTile::PATH_TRACE) {
 				/* cryptomatte data. This needs a better place than here. */
-				vector<map<float, float> >coverage_object;
-				vector<map<float, float> >coverage_material;
-				vector<map<float, float> >coverage_asset;
+				vector<unordered_map<float, float> >coverage_object;
+				vector<unordered_map<float, float> >coverage_material;
+				vector<unordered_map<float, float> >coverage_asset;
 
 				if(use_split_kernel) {
 					device_only_memory<uchar> void_buffer(this, "void_buffer");
diff --git a/intern/cycles/kernel/kernel_globals.h b/intern/cycles/kernel/kernel_globals.h
index 5276ea4b08b..b2dedbba37d 100644
--- a/intern/cycles/kernel/kernel_globals.h
+++ b/intern/cycles/kernel/kernel_globals.h
@@ -71,9 +71,9 @@ typedef struct KernelGlobals {
 	int decoupled_volume_steps_index;
 
 	/* A buffer for storing per-pixel coverage for Cryptomatte. */
-	map<float, float> *coverage_object;
-	map<float, float> *coverage_material;
-	map<float, float> *coverage_asset;
+	unordered_map<float, float> *coverage_object;
+	unordered_map<float, float> *coverage_material;
+	unordered_map<float, float> *coverage_asset;
 
 	/* split kernel */
 	SplitData split_data;



More information about the Bf-blender-cvs mailing list