Intel IGCL规格指南和示例代码

Intel IGCL规格指南和示例代码

IGCL 旨在成为用于硬件(主要是图形)所有控制方面的高级 API 的集合。它取代了传统的英特尔 CUISDK,后者过去仅发布给 OEM 和选定的客户。 IGCL 允许对显示、媒体和 3D 功能进行全局控制和调整。
相关官网地址为: IGCL Specification1.1-Introduction
Intel IGCL Introduction
IGCL指南

相关控制API在线文档地址为:Control API Specification - Version 1
Control API Specification - Version 1

源代码示例地址Intel官方已经托管到了Github仓库上, 具体地址为:https://github.com/intel/drivers.gpu.control-library
drivers.gpu.control-library
代码下载之后的目录结构如下图所示:
drivers.gpu.control-library
1.0版本的代码地址为:https://github.com/intel/drivers.gpu.control-library/releases/tag/Code_Ver1.0
1.0版本代码地址

示例源代码运行方式

由于drivers.gpu.control-library示例是基于CMake组织的,里面的Samples目录有很多示例程序,如下图所示:
Samples示例代码目录结构
参考drivers.gpu.control-library中的说明,以Power_Feature_Samples示例程序为例,我们可以执行cmake.exe -B <output_folder> -S <cmake_source_folder> -G "Visual Studio 17 2022" -A x64这种命令去生成对应的VS2022的.sln工程文件,然后运行即可。
首先在E:\SoftDevelop\Github_Projects\drivers.gpu.control-library\Samples\Power_Feature_Samples目录下创建一个build目录,然后运行cmake.exe -B build -S . -G "Visual Studio 17 2022" -A x64,当然前提是你自己安装了Visual Studio 2022CMake等工具

在这里插入图片描述
接着使用VS2022打开E:\SoftDevelop\Github_Projects\drivers.gpu.control-library\Samples\Power_Feature_Samples\build目录下的Power_Feature_Samples.sln文件,如下图所示:
Power_Feature_Samples.sln工程文件
VS2022项目
运行ALL_BUILD,在drivers.gpu.control-library\Samples\Power_Feature_Samples\build\Debug目录会生成一个Power_Feature_Samples.exePower_Feature_Samples.lib文件,但是运行时会报错,如下图所示:
运行报错
调试跟踪示例程序,发现是ctlInit接口调用失败,加载ControlLib.dll动态库失败了,暂时在英特尔提供的官方文档没有找到对应的ControlLib.dll动态库。
关于错误码0x40000026可以在drivers.gpu.control-library\includes中的igcl_api.h头文件找到具体定义:

 CTL_RESULT_ERROR_LOAD = 0x40000026,             ///< Library load failure
///
/// @brief Defines Return/Error codes.
///        All generic error (bit30) codes are between 0x40000000-0x4000FFFF.
///        All 3D (bit 29) specific error codes are between 0x60000000-0x6000FFFF.
///        All media (bit 28) specific error codes are between 0x50000000-0x5000FFFF.
///        All display (bit 27) specific error codes are between 0x48000000-0x4800FFFF
///        All core (bit 26) specific error codes are between 0x44000000-0x4400FFFF
///        Success result code with additional info are between 0x00000001-0x0000FFFF.
typedef enum _ctl_result_t
{CTL_RESULT_SUCCESS = 0x00000000,                ///< successCTL_RESULT_SUCCESS_STILL_OPEN_BY_ANOTHER_CALLER = 0x00000001,   ///< success but still open by another callerCTL_RESULT_ERROR_SUCCESS_END = 0x0000FFFF,      ///< "Success group error code end value, not to be used///< "CTL_RESULT_ERROR_GENERIC_START = 0x40000000,    ///< Generic error code starting value, not to be usedCTL_RESULT_ERROR_NOT_INITIALIZED = 0x40000001,  ///< Result not initializedCTL_RESULT_ERROR_ALREADY_INITIALIZED = 0x40000002,  ///< Already initializedCTL_RESULT_ERROR_DEVICE_LOST = 0x40000003,      ///< Device hung, reset, was removed, or driver update occurredCTL_RESULT_ERROR_OUT_OF_HOST_MEMORY = 0x40000004,   ///< Insufficient host memory to satisfy callCTL_RESULT_ERROR_OUT_OF_DEVICE_MEMORY = 0x40000005, ///< Insufficient device memory to satisfy callCTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS = 0x40000006, ///< Access denied due to permission levelCTL_RESULT_ERROR_NOT_AVAILABLE = 0x40000007,    ///< Resource was removedCTL_RESULT_ERROR_UNINITIALIZED = 0x40000008,    ///< Library not initializedCTL_RESULT_ERROR_UNSUPPORTED_VERSION = 0x40000009,  ///< Generic error code for unsupported versionsCTL_RESULT_ERROR_UNSUPPORTED_FEATURE = 0x4000000a,  ///< Generic error code for unsupported featuresCTL_RESULT_ERROR_INVALID_ARGUMENT = 0x4000000b, ///< Generic error code for invalid argumentsCTL_RESULT_ERROR_INVALID_API_HANDLE = 0x4000000c,   ///< API handle in invalidCTL_RESULT_ERROR_INVALID_NULL_HANDLE = 0x4000000d,  ///< Handle argument is not validCTL_RESULT_ERROR_INVALID_NULL_POINTER = 0x4000000e, ///< Pointer argument may not be nullptrCTL_RESULT_ERROR_INVALID_SIZE = 0x4000000f,     ///< Size argument is invalid (e.g., must not be zero)CTL_RESULT_ERROR_UNSUPPORTED_SIZE = 0x40000010, ///< Size argument is not supported by the device (e.g., too large)CTL_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT = 0x40000011, ///< Image format is not supported by the deviceCTL_RESULT_ERROR_DATA_READ = 0x40000012,        ///< Data read errorCTL_RESULT_ERROR_DATA_WRITE = 0x40000013,       ///< Data write errorCTL_RESULT_ERROR_DATA_NOT_FOUND = 0x40000014,   ///< Data not found errorCTL_RESULT_ERROR_NOT_IMPLEMENTED = 0x40000015,  ///< Function not implementedCTL_RESULT_ERROR_OS_CALL = 0x40000016,          ///< Operating system call failureCTL_RESULT_ERROR_KMD_CALL = 0x40000017,         ///< Kernel mode driver call failureCTL_RESULT_ERROR_UNLOAD = 0x40000018,           ///< Library unload failureCTL_RESULT_ERROR_ZE_LOADER = 0x40000019,        ///< Level0 loader not foundCTL_RESULT_ERROR_INVALID_OPERATION_TYPE = 0x4000001a,   ///< Invalid operation typeCTL_RESULT_ERROR_NULL_OS_INTERFACE = 0x4000001b,///< Null OS interfaceCTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE = 0x4000001c,  ///< Null OS adapter handleCTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE = 0x4000001d,///< Null display output handleCTL_RESULT_ERROR_WAIT_TIMEOUT = 0x4000001e,     ///< Timeout in Wait functionCTL_RESULT_ERROR_PERSISTANCE_NOT_SUPPORTED = 0x4000001f,///< Persistance not supportedCTL_RESULT_ERROR_PLATFORM_NOT_SUPPORTED = 0x40000020,   ///< Platform not supportedCTL_RESULT_ERROR_UNKNOWN_APPLICATION_UID = 0x40000021,  ///< Unknown Appplicaion UID in Initialization call CTL_RESULT_ERROR_INVALID_ENUMERATION = 0x40000022,  ///< The enum is not validCTL_RESULT_ERROR_FILE_DELETE = 0x40000023,      ///< Error in file delete operationCTL_RESULT_ERROR_RESET_DEVICE_REQUIRED = 0x40000024,///< The device requires a reset.CTL_RESULT_ERROR_FULL_REBOOT_REQUIRED = 0x40000025, ///< The device requires a full reboot.CTL_RESULT_ERROR_LOAD = 0x40000026,             ///< Library load failureCTL_RESULT_ERROR_UNKNOWN = 0x4000FFFF,          ///< Unknown or internal errorCTL_RESULT_ERROR_RETRY_OPERATION = 0x40010000,  ///< Operation failed, retry previous operation againCTL_RESULT_ERROR_GENERIC_END = 0x4000FFFF,      ///< "Generic error code end value, not to be used///< "CTL_RESULT_ERROR_CORE_START = 0x44000000,       ///< Core error code starting value, not to be usedCTL_RESULT_ERROR_CORE_OVERCLOCK_NOT_SUPPORTED = 0x44000001, ///< The Overclock is not supported.CTL_RESULT_ERROR_CORE_OVERCLOCK_VOLTAGE_OUTSIDE_RANGE = 0x44000002, ///< The Voltage exceeds the acceptable min/max.CTL_RESULT_ERROR_CORE_OVERCLOCK_FREQUENCY_OUTSIDE_RANGE = 0x44000003,   ///< The Frequency exceeds the acceptable min/max.CTL_RESULT_ERROR_CORE_OVERCLOCK_POWER_OUTSIDE_RANGE = 0x44000004,   ///< The Power exceeds the acceptable min/max.CTL_RESULT_ERROR_CORE_OVERCLOCK_TEMPERATURE_OUTSIDE_RANGE = 0x44000005, ///< The Power exceeds the acceptable min/max.CTL_RESULT_ERROR_CORE_OVERCLOCK_IN_VOLTAGE_LOCKED_MODE = 0x44000006,///< The Overclock is in voltage locked mode.CTL_RESULT_ERROR_CORE_OVERCLOCK_RESET_REQUIRED = 0x44000007,///< It indicates that the requested change will not be applied until the///< device is reset.CTL_RESULT_ERROR_CORE_OVERCLOCK_WAIVER_NOT_SET = 0x44000008,///< The $OverclockWaiverSet function has not been called.CTL_RESULT_ERROR_CORE_END = 0x0440FFFF,         ///< "Core error code end value, not to be used///< "CTL_RESULT_ERROR_3D_START = 0x60000000,         ///< 3D error code starting value, not to be usedCTL_RESULT_ERROR_3D_END = 0x6000FFFF,           ///< "3D error code end value, not to be used///< "CTL_RESULT_ERROR_MEDIA_START = 0x50000000,      ///< Media error code starting value, not to be usedCTL_RESULT_ERROR_MEDIA_END = 0x5000FFFF,        ///< "Media error code end value, not to be used///< "CTL_RESULT_ERROR_DISPLAY_START = 0x48000000,    ///< Display error code starting value, not to be usedCTL_RESULT_ERROR_INVALID_AUX_ACCESS_FLAG = 0x48000001,  ///< Invalid flag for Aux accessCTL_RESULT_ERROR_INVALID_SHARPNESS_FILTER_FLAG = 0x48000002,///< Invalid flag for SharpnessCTL_RESULT_ERROR_DISPLAY_NOT_ATTACHED = 0x48000003, ///< Error for Display not attachedCTL_RESULT_ERROR_DISPLAY_NOT_ACTIVE = 0x48000004,   ///< Error for display attached but not activeCTL_RESULT_ERROR_INVALID_POWERFEATURE_OPTIMIZATION_FLAG = 0x48000005,   ///< Error for invalid power optimization flagCTL_RESULT_ERROR_INVALID_POWERSOURCE_TYPE_FOR_DPST = 0x48000006,///< DPST is supported only in DC ModeCTL_RESULT_ERROR_INVALID_PIXTX_GET_CONFIG_QUERY_TYPE = 0x48000007,  ///< Invalid query type for pixel transformation get configurationCTL_RESULT_ERROR_INVALID_PIXTX_SET_CONFIG_OPERATION_TYPE = 0x48000008,  ///< Invalid operation type for pixel transformation set configurationCTL_RESULT_ERROR_INVALID_SET_CONFIG_NUMBER_OF_SAMPLES = 0x48000009, ///< Invalid number of samples for pixel transformation set configurationCTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_ID = 0x4800000a,   ///< Invalid block id for pixel transformationCTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_TYPE = 0x4800000b, ///< Invalid block type for pixel transformationCTL_RESULT_ERROR_INVALID_PIXTX_BLOCK_NUMBER = 0x4800000c,   ///< Invalid block number for pixel transformationCTL_RESULT_ERROR_INSUFFICIENT_PIXTX_BLOCK_CONFIG_MEMORY = 0x4800000d,   ///< Insufficient memery allocated for BlockConfigsCTL_RESULT_ERROR_3DLUT_INVALID_PIPE = 0x4800000e,   ///< Invalid pipe for 3dlutCTL_RESULT_ERROR_3DLUT_INVALID_DATA = 0x4800000f,   ///< Invalid 3dlut dataCTL_RESULT_ERROR_3DLUT_NOT_SUPPORTED_IN_HDR = 0x48000010,   ///< 3dlut not supported in HDRCTL_RESULT_ERROR_3DLUT_INVALID_OPERATION = 0x48000011,  ///< Invalid 3dlut operationCTL_RESULT_ERROR_3DLUT_UNSUCCESSFUL = 0x48000012,   ///< 3dlut call unsuccessfulCTL_RESULT_ERROR_AUX_DEFER = 0x48000013,        ///< AUX defer failureCTL_RESULT_ERROR_AUX_TIMEOUT = 0x48000014,      ///< AUX timeout failureCTL_RESULT_ERROR_AUX_INCOMPLETE_WRITE = 0x48000015, ///< AUX incomplete write failureCTL_RESULT_ERROR_I2C_AUX_STATUS_UNKNOWN = 0x48000016,   ///< I2C/AUX unkonown failureCTL_RESULT_ERROR_I2C_AUX_UNSUCCESSFUL = 0x48000017, ///< I2C/AUX unsuccessfulCTL_RESULT_ERROR_LACE_INVALID_DATA_ARGUMENT_PASSED = 0x48000018,///< Lace Incorrrect AggressivePercent data or LuxVsAggressive Map data///< passed by userCTL_RESULT_ERROR_EXTERNAL_DISPLAY_ATTACHED = 0x48000019,///< External Display is Attached hence fail the Display SwitchCTL_RESULT_ERROR_CUSTOM_MODE_STANDARD_CUSTOM_MODE_EXISTS = 0x4800001a,  ///< Standard custom mode existsCTL_RESULT_ERROR_CUSTOM_MODE_NON_CUSTOM_MATCHING_MODE_EXISTS = 0x4800001b,  ///< Non custom matching mode existsCTL_RESULT_ERROR_CUSTOM_MODE_INSUFFICIENT_MEMORY = 0x4800001c,  ///< Custom mode insufficent memoryCTL_RESULT_ERROR_ADAPTER_ALREADY_LINKED = 0x4800001d,   ///< Adapter is already linkedCTL_RESULT_ERROR_ADAPTER_NOT_IDENTICAL = 0x4800001e,///< Adapter is not identical for linkingCTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY = 0x4800001f,   ///< Adapter is LDA Secondary, so not supporting requested operationCTL_RESULT_ERROR_SET_FBC_FEATURE_NOT_SUPPORTED = 0x48000020,///< Set FBC Feature not supportedCTL_RESULT_ERROR_DISPLAY_END = 0x4800FFFF,      ///< "Display error code end value, not to be used///< "CTL_RESULT_MAX} ctl_result_t;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/323345.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试金融项目经验总结,面试题都问什么?

1、APP端/客户端接口加解密介绍 加密方式&#xff08;两种&#xff09;&#xff1a; 在TCP/IP四层模型中的应用层进行加密。类似密码本&#xff0c;当前项目使用的是这种&#xff0c;可以看到所有响应内容&#xff0c;只是看不懂。 在TCP/IP四层模型中的运输层和应用层之间进行…

理解String 及 String.intern() 在实际中的应用

1. 首先String不属于8种基本数据类型&#xff0c;String是一个对象。     因为对象的默认值是null&#xff0c;所以String的默认值也是null&#xff1b;但它又是一种特殊的对象&#xff0c;有其它对象没有的一些特性。   2. new String()和new String(“”)都是申明一个…

【linux】日志管理和分析

一、概述 在Linux系统的管理和运维中&#xff0c;日志文件起到至关重要的作用。它们记录了系统运行过程中的各种事件&#xff0c;包括系统故障、性能数据和安全事件。 二、 日志的作用和分类 日志的作用 日志文件记载了系统的生命线&#xff0c;利用它们可以&#xff1a; 1…

CentOS 7 安装 PPTP

环境&#xff1a; 阿里云试用机&#xff1a; 外网IP&#xff1a;114.55.80.150 内网IP&#xff1a;172.28.11.92 一、服务器安装 PPTP 1、安装 yum install epel-release -y 2、安装pptp yum install pptpd iptables-services -y 3、修改配置 vim /etc/pptpd.conf# 最…

LTPI协议的理解——4、LTPI链路初始化以及运行

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LTPI协议的理解——4、LTPI链路初始化以及运行 前言状态图Link TrainingLink DetectLink SpeedLink Training Example Link ConfigurationAdvertiseConfigure & AcceptLi…

互联网分布式应用之RabbitMQ

RabbitMQ Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. RabbitMQ介绍安装 2. Rabbi…

前端值得收藏的正则表达式知识点扫盲

很多前端新手在遇到正则表达式时都望而却步&#xff0c;我自己初学时&#xff0c;也基本上是直接跳过了正则表达式这一章&#xff0c;除了copy网上的一些常用的正则表达式做表单校验&#xff0c;其余时候几乎没有去了解过如何写一个正则表达式。 但是&#xff0c;当自己真正要…

02 Deep learning algorithm

Neural Networks target&#xff1a; inference&#xff08;prediction&#xff09;training my own modelpractical advice for building machine learning systemdecision Tress application: speech&#xff08;语音识别&#xff09; ----> images(计算机视觉)—> t…

Java反射篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、除了使用new创建对象之外,还可以用什么方法创建对象?二、Java反射创建对象效率高还是通过new创建对象的效率高?三、java反射的作用四、哪里会用到反射机制?五、反射的实现方式:前言 前些天发现了一个巨牛的人工智能学习网站,…

python解决android版数美滑块验证码,30分钟快速解决

话不多说点我【qq】 先看滑块 右滑拼图 我们用opencv就可以了&#xff0c;要想提高识别率&#xff0c;就取对接图片打码平台 opencv代码&#xff0c;注释借鉴于网络 import cv2 import numpy as np from io import BytesIOdef get_distance3(fg_resp, bg_resp):""&…

若依管理系统部署

本文章仅供参考&#xff0c;由于个软件版本不同可能会有偏差。 登录系统打开cmd 编辑文件 这些文件分别打开&#xff0c;打开后在浏览器会出现若依管理系统后台&#xff0c;输入账号 admin 密码 123456即可进入后台。 本文章仅供参考&#xff0c;由于个软件版本不同可能会有…

Python split()方法详解:分割字符串

Python 中&#xff0c;除了可以使用一些内建函数获取字符串的相关信息外&#xff08;例如 len() 函数获取字符串长度&#xff09;&#xff0c;字符串类型本身也拥有一些方法供我们使用。 注意&#xff0c;这里所说的方法&#xff0c;指的是字符串类型 str 本身所提供的&#x…