GraphicsMagick 的 OpenCL 开发记录(二十四)

文章目录

<2022-04-18 周一>

关于clGetPlatformIDs()windows下的怪现象

我在调查R6025的问题,调试发现LoadOpenCLDevices()函数中:

cpp 复制代码
number_platforms=0;
if (openCL_library->clGetPlatformIDs(0,NULL,&number_platforms) != CL_SUCCESS)
  return;

number_platforms的返回值在ImageMagick中为1,而在GraphicsMagick中却为2,同样的代码在同一台电脑上为什么返回的值不同呢?排除了编译选项的问题,查看了clGetPlatformIDs()的函数说明都没有找到问题,最后发现是ImageMagickvs2017编译环境,而GraphicsMagickvs2022编译环境,将它们都改用vs2017环境后调试状态下number_platforms的值都为1了。

但是如果number_platforms1的话,在本机电脑上实际上硬件加速是失败的,可是直接运行的话确实是走的硬件加速流程,难道代码中clGetPlatformIDs()在调试状态和非调试状态下的值不一样?添加日志输出后发现确实是这样,那么总结一下clGetPlatformIDs()的怪现象:

  1. vs2017,调试,number_platforms值为1
  2. vs2022,调试,number_platforms值为2
  3. vs2017,运行,number_platforms值为2
相关推荐
Tomorrow'sThinker1 分钟前
Python零基础学习第三天:函数与数据结构
开发语言·windows·python
zhengtianzuo8 分钟前
006-获取硬件序列号
c++
fqsword1 小时前
C++ 算法竞赛STL以及常见模板
c++·算法
蜡笔小新..1 小时前
Windows下配置Flutter移动开发环境以及AndroidStudio安装和模拟机配置
windows·flutter
曦月逸霜1 小时前
第五次CCF-CSP认证(含C++源码)
数据结构·c++·算法·ccf-csp
程序漫游人2 小时前
关闭Windows安全中心,解析与实操指南
windows·安全
是刃小木啦~2 小时前
3D空间曲线批量散点化软件V1.0正式发布,将空间线条导出坐标点,SolidWorks/UG/Catia等三维软件通用
c++·人工智能·pyqt
喉咙痛的恐龙2 小时前
C++之“string”类的模拟实现
开发语言·c++
阿巴~阿巴~2 小时前
C/C++蓝桥杯算法真题打卡(Day3)
c语言·c++·算法·蓝桥杯
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧4 小时前
C语言_数据结构总结6:链式栈
c语言·开发语言·数据结构·算法·链表·visualstudio·visual studio