Обнаружение поддержки аппаратной графики - PullRequest
1 голос
/ 17 февраля 2020

Я ищу способ программно дифференцировать работу на машине с аппаратной поддержкой графики, например

enter image description here

, а не без аппаратные драйверы, в этом случае я вернусь к программному рендерингу

enter image description here

Я пытался использовать модуль wmi однако в первом случае, когда было доступно графическое оборудование, в контроллерах видео я не могу найти ничего, что указывало бы на то, что они были правильно обнаружены

import wmi
pc = wmi.WMI()
for graphics in pc.Win32_VideoController():
    print(graphics.properties)

Вывод

{'AcceleratorCapabilities': None, 'AdapterCompatibility': None, 'AdapterDACType': None, 'AdapterRAM': None, 'Availability': None, 'CapabilityDescriptions': None, 'Caption': None, 'ColorTableEntries': None, 'ConfigManagerErrorCode': None, 'ConfigManagerUserConfig': None, 'CreationClassName': None, 'CurrentBitsPerPixel': None, 'CurrentHorizontalResolution': None, 'CurrentNumberOfColors': None, 'CurrentNumberOfColumns': None, 'CurrentNumberOfRows': None, 'CurrentRefreshRate': None, 'CurrentScanMode': None, 'CurrentVerticalResolution': None, 'Description': None, 'DeviceID': None, 'DeviceSpecificPens': None, 'DitherType': None, 'DriverDate': None, 'DriverVersion': None, 'ErrorCleared': None, 'ErrorDescription': None, 'ICMIntent': None, 'ICMMethod': None, 'InfFilename': None, 'InfSection': None, 'InstallDate': None, 'InstalledDisplayDrivers': None, 'LastErrorCode': None, 'MaxMemorySupported': None, 'MaxNumberControlled': None, 'MaxRefreshRate': None, 'MinRefreshRate': None, 'Monochrome': None, 'Name': None, 'NumberOfColorPlanes': None, 'NumberOfVideoPages': None, 'PNPDeviceID': None, 'PowerManagementCapabilities': None, 'PowerManagementSupported': None, 'ProtocolSupported': None, 'ReservedSystemPaletteEntries': None, 'SpecificationVersion': None, 'Status': None, 'StatusInfo': None, 'SystemCreationClassName': None, 'SystemName': None, 'SystemPaletteEntries': None, 'TimeOfLastReset': None, 'VideoArchitecture': None, 'VideoMemoryType': None, 'VideoMode': None, 'VideoModeDescription': None, 'VideoProcessor': None}
{'AcceleratorCapabilities': None, 'AdapterCompatibility': None, 'AdapterDACType': None, 'AdapterRAM': None, 'Availability': None, 'CapabilityDescriptions': None, 'Caption': None, 'ColorTableEntries': None, 'ConfigManagerErrorCode': None, 'ConfigManagerUserConfig': None, 'CreationClassName': None, 'CurrentBitsPerPixel': None, 'CurrentHorizontalResolution': None, 'CurrentNumberOfColors': None, 'CurrentNumberOfColumns': None, 'CurrentNumberOfRows': None, 'CurrentRefreshRate': None, 'CurrentScanMode': None, 'CurrentVerticalResolution': None, 'Description': None, 'DeviceID': None, 'DeviceSpecificPens': None, 'DitherType': None, 'DriverDate': None, 'DriverVersion': None, 'ErrorCleared': None, 'ErrorDescription': None, 'ICMIntent': None, 'ICMMethod': None, 'InfFilename': None, 'InfSection': None, 'InstallDate': None, 'InstalledDisplayDrivers': None, 'LastErrorCode': None, 'MaxMemorySupported': None, 'MaxNumberControlled': None, 'MaxRefreshRate': None, 'MinRefreshRate': None, 'Monochrome': None, 'Name': None, 'NumberOfColorPlanes': None, 'NumberOfVideoPages': None, 'PNPDeviceID': None, 'PowerManagementCapabilities': None, 'PowerManagementSupported': None, 'ProtocolSupported': None, 'ReservedSystemPaletteEntries': None, 'SpecificationVersion': None, 'Status': None, 'StatusInfo': None, 'SystemCreationClassName': None, 'SystemName': None, 'SystemPaletteEntries': None, 'TimeOfLastReset': None, 'VideoArchitecture': None, 'VideoMemoryType': None, 'VideoMode': None, 'VideoModeDescription': None, 'VideoProcessor': None}

Если это имеет значение, я будет нацелен на систему Windows, в случае, если для этого есть решение, специфичное для ОС c.

1 Ответ

0 голосов
/ 17 февраля 2020

Одним из способов достижения sh является использование infi.devicemanager для обнаружения, если в описаниях устройств указан 'Microsoft Basic Display Driver', что указывает на отсутствие аппаратной поддержки графики.

from infi.devicemanager import DeviceManager

def has_hardware_graphics():
    dm = DeviceManager()
    return all(dev.description != 'Microsoft Basic Display Driver' for dev in dm.all_devices)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...