diff --git a/sched/plan_class_spec.cpp b/sched/plan_class_spec.cpp index 539faed4a2..bfeb852cdc 100644 --- a/sched/plan_class_spec.cpp +++ b/sched/plan_class_spec.cpp @@ -804,6 +804,12 @@ bool PLAN_CLASS_SPEC::check( log_messages.printf(MSG_NORMAL, "%s\n", msg.c_str()); } + if (min_metal_support) { + if (sreq.coprocs.apple_gpu.metal_support < min_metal_support) { + return false; + } + } + // custom GPU type // } else if (strlen(gpu_type)) { @@ -1195,6 +1201,8 @@ int PLAN_CLASS_SPEC::parse(XML_PARSER& xp) { if (xp.parse_int("max_opencl_driver_revision", max_opencl_driver_revision)) continue; if (xp.parse_bool("double_precision_fp", double_precision_fp)) continue; + if (xp.parse_int("min_metal_support", min_metal_support)) continue; + if (xp.parse_int("min_vbox_version", min_vbox_version)) continue; if (xp.parse_int("max_vbox_version", max_vbox_version)) continue; if (xp.parse_int("exclude_vbox_version", i)) { diff --git a/sched/plan_class_spec.h b/sched/plan_class_spec.h index ab388db715..dcf873c4a7 100644 --- a/sched/plan_class_spec.h +++ b/sched/plan_class_spec.h @@ -111,6 +111,9 @@ struct PLAN_CLASS_SPEC { int max_opencl_driver_revision; bool double_precision_fp; + // Apple GPU + int min_metal_support; + // VirtualBox apps // int min_vbox_version;