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
相关推荐
HugoStudio_SWAN1 分钟前
【按键反馈】C++ 实现键盘烟花秀
开发语言·c++·学习·程序人生
间歇性努力持续性发呆的野生快乐选手3 分钟前
二分模板(整型,浮点型)
数据结构·c++·算法
艾莉丝努力练剑12 分钟前
【AI大模型接入SDK】DeepSeek API 基础概述
c++·人工智能·学习·ai·面试·deepseek
ZiLing22 分钟前
2026 ROS 2 Lyrical C++ 入门(一):rclcpp、QoS、colcon 与 CMake 踩坑指南
c++
云南-留个脚印28 分钟前
windows版本oracle19c安装教程-新手教程
windows
健康平安的活着37 分钟前
java中批量查询+stream返回map提高查询效率
java·windows·python
OPEN-F43 分钟前
C++进阶教程:类与对象深入
java·开发语言·c++
彷徨而立1 小时前
【C++11】内存模型的逻辑时序关系 happens‑before
c++
zmzb01031 小时前
C++课后习题训练记录Day201
c++·算法·图论
Escalating_xu1 小时前
【C++入门基础(上)】从发展历程、学习路线到命名空间与输入输出
开发语言·c++