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
相关推荐
还下着雨ZG2 分钟前
【Window技能 01】每天自动关机:使用CMD脚本+任务计划程序实现每天定时关闭计算机
windows
fpcc4 分钟前
跟我学C++中级篇—std::conjunction手动实现
c++
项目題供诗7 分钟前
C语言基础(三)
c语言·c++
洛水如云22 分钟前
重塑数据管理逻辑!文件夹同步的实用指南(含工具选型 + 实操步骤)
windows·microsoft·电脑
1***438024 分钟前
C++跨平台开发的核心挑战线程管理等基础功能
开发语言·c++
石像鬼₧魂石42 分钟前
windows系统139/tcp与445/tcp端口渗透完整流程闭环(复习总结)
windows·网络协议·tcp/ip
txinyu的博客1 小时前
C++ 智能指针 (shared_ptr/weak_ptr) 全解析
开发语言·c++
超级任性1 小时前
Visual Studio 2026 下载地址 V18.x.x各种版本官方下载网址
ide·visual studio
小徐不徐说1 小时前
避坑指南:Qt 中 Lambda 表达式崩溃原因与高效使用实践
数据库·c++·qt·面试
寻星探路1 小时前
【算法进阶】滑动窗口与前缀和:从“和为 K”到“最小覆盖子串”的极限挑战
java·开发语言·c++·人工智能·python·算法·ai