Add compatibility check for VGA connection for Intel iGPU generations Broadwell and earlier

This commit is contained in:
Hoang Hong Quan
2024-10-15 20:28:40 +07:00
parent 3fc80a9f9e
commit 150ab3daa1
2 changed files with 13 additions and 5 deletions

View File

@@ -127,7 +127,9 @@ class CompatibilityChecker:
max_version = min_version = None
if (max_version == min_version and max_version == None) or \
any(monitor_info.get("Connected GPU", gpu_name) != gpu_name for monitor_name, monitor_info in self.hardware_report.get("Monitor", {}).items() if monitor_info.get("Connector Type") == "Internal"):
any(monitor_info.get("Connected GPU", gpu_name) != gpu_name for monitor_name, monitor_info in self.hardware_report.get("Monitor", {}).items() if monitor_info.get("Connector Type") == "Internal") or \
( "Intel" in gpu_manufacturer and device_id.startswith(("01", "04", "0A", "0C", "0D")) and \
all(monitor_info.get("Connector Type") == "VGA" and monitor_info.get("Connected GPU", gpu_name) == gpu_name for monitor_name, monitor_info in self.hardware_report.get("Monitor", {}).items())):
gpu_props["Compatibility"] = (None, None)
else:
gpu_props["Compatibility"] = (max_version, min_version)
@@ -142,7 +144,13 @@ class CompatibilityChecker:
not "Intel" in gpu_manufacturer and \
not any(monitor_info.get("Connected GPU", gpu_name) == gpu_name for monitor_name, monitor_info in self.hardware_report.get("Monitor", {}).items()) else ""
))
connected_monitors = list("{} ({})".format(monitor_name, monitor_info.get("Connector Type")) for monitor_name, monitor_info in self.hardware_report.get("Monitor", {}).items() if monitor_info.get("Connected GPU") == gpu_name)
connected_monitors = []
for monitor_name, monitor_info in self.hardware_report.get("Monitor", {}).items():
if monitor_info.get("Connected GPU") == gpu_name:
connected_monitors.append("{} ({})".format(monitor_name, monitor_info.get("Connector Type")))
if "Intel" in gpu_manufacturer and device_id.startswith(("01", "04", "0A", "0C", "0D")):
if monitor_info.get("Connector Type") == "VGA":
connected_monitors[-1] = "\033[0;31m{}{}\033[0m".format(connected_monitors[-1][:-1], ", unsupported)")
if connected_monitors:
print("{}- Connected Monitor{}: {}".format(" "*6, "s" if len(connected_monitors) > 1 else "", ", ".join(connected_monitors)))

View File

@@ -80,7 +80,7 @@ class ConfigProdigy:
igpu_properties["device-id"] = "26010000"
igpu_properties["AAPL,snb-platform-id"] = "10000300"
if platform == "Desktop":
if not any(monitor_info.get("Connected GPU") == integrated_gpu[0] for monitor_name, monitor_info in monitor.items()):
if not any(monitor_info.get("Connected GPU") == integrated_gpu[0] for monitor_name, monitor_info in monitor.items() if monitor_info.get("Connector Type") != "VGA"):
igpu_properties["AAPL,snb-platform-id"] = "00000500"
igpu_properties["device-id"] = "02010000"
elif platform == "Laptop":
@@ -92,7 +92,7 @@ class ConfigProdigy:
if not device_id in native_supported_ids:
igpu_properties["device-id"] = "62010000"
if platform == "Desktop":
if not any(monitor_info.get("Connected GPU") == integrated_gpu[0] for monitor_name, monitor_info in monitor.items()):
if not any(monitor_info.get("Connected GPU") == integrated_gpu[0] for monitor_name, monitor_info in monitor.items() if monitor_info.get("Connector Type") != "VGA"):
igpu_properties["AAPL,ig-platform-id"] = "07006201"
igpu_properties["AAPL,ig-platform-id"] = "0A006601"
elif platform == "NUC":
@@ -112,7 +112,7 @@ class ConfigProdigy:
if not device_id in native_supported_ids:
igpu_properties["device-id"] = "12040000"
if platform == "Desktop":
if not any(monitor_info.get("Connected GPU") == integrated_gpu[0] for monitor_name, monitor_info in monitor.items()):
if not any(monitor_info.get("Connected GPU") == integrated_gpu[0] for monitor_name, monitor_info in monitor.items() if monitor_info.get("Connector Type") != "VGA"):
igpu_properties["AAPL,ig-platform-id"] = "04001204"
return igpu_properties
igpu_properties["AAPL,ig-platform-id"] = "0300220D"