Benchmark: Report proper Vega device in json

This commit is contained in:
2018-08-09 17:51:31 +02:00
parent 821f50cda1
commit 9ecab3a512

View File

@@ -401,6 +401,31 @@ def system_info_get(ctx):
sys.executable = old_executable
return info
def modify_system_info(system_info):
compute_units = query_opencl_compute_units()
for device in system_info["devices"]:
device_type = device["type"]
if device_type != "OPENCL":
continue
index = find_first_device_index(compute_units, device['name'])
if index != -1:
if device["name"] == "Radeon RX Vega":
device["name"] += " " + compute_units[index][1]
del compute_units[index]
return system_info
def modify_device_info(device_info):
compute_device = bpy.context.scene.compute_device
device_type, device_name, compute_units = compute_device.split(":")
if device_info["device_type"] == "OPENCL":
compute_devices = []
for device in device_info["compute_devices"]:
if device == "Radeon RX Vega":
device += " " + compute_units
compute_devices.append(device)
device_info["compute_devices"] = compute_devices
return device_info
def benchmark_thread(ctx):
global progress_lock, global_result_platform, global_progress_status
global global_cancel
@@ -435,8 +460,8 @@ def benchmark_thread(ctx):
result = convert_result_to_json_dict(ctx, {
"timestamp": timestamp,
"blender_version": system_info.getBlenderVersion(ctx),
"system_info": blender_system_info,
"device_info": blender_device_info,
"system_info": modify_system_info(blender_system_info),
"device_info": modify_device_info(blender_device_info),
"stats": all_stats if all_stats else {}
})
@@ -703,7 +728,7 @@ class BENCHMARK_OT_run_base(bpy.types.Operator):
context.area.tag_redraw()
compute_device = context.scene.compute_device
device_type, device_name = compute_device.split(":")
device_type, device_name, compute_units = compute_device.split(":")
self.tmpdir = tempfile.TemporaryDirectory(prefix="blender_benchmark_")
@@ -872,7 +897,7 @@ def compute_device_list_get(self, context):
global global_cached_compute_devices
if global_cached_compute_devices:
return global_cached_compute_devices
compute_devices = [('CPU:', "CPU", "")]
compute_devices = [('CPU::', "CPU", "")]
if not global_cached_system_info:
ctx = benchmark_context.Context()
ctx.blender = blender_executable_get()
@@ -883,14 +908,20 @@ def compute_device_list_get(self, context):
device_type = device["type"]
if device_type == "CPU":
continue
elif device_type in ("OPENCL", "CUDA"):
elif device_type == "OPENCL":
device_name = correct_device_name(device["name"])
index = find_first_device_index(compute_units, device['name'])
device_compute_units = ""
if index != -1:
if device["name"] == "Radeon RX Vega":
device_name += " " + compute_units[index][1]
device_compute_units = str(compute_units[index][1])
del compute_units[index]
device_id = "{}:{}" . format(device_type, device["name"])
device_id = "{}:{}:{}" . format(device_type, device["name"], device_compute_units)
compute_devices.append((device_id, device_name, ""))
elif device_type == "CUDA":
device_name = correct_device_name(device["name"])
device_id = "{}:{}:" . format(device_type, device["name"])
compute_devices.append((device_id, device_name, ""))
global_cached_compute_devices = compute_devices
return compute_devices