diff --git a/benchmark/space/__init__.py b/benchmark/space/__init__.py index 58e82c6..f3b4883 100644 --- a/benchmark/space/__init__.py +++ b/benchmark/space/__init__.py @@ -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