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
相关推荐
小保CPP1 小时前
OCR C++ Tesseract生成可搜索的pdf
c++·人工智能·ocr·模式识别·光学字符识别
观远数据1 小时前
从离线开发到实时同步:DataFlow如何支撑企业级数据治理闭环
java·windows·microsoft·excel
绀目澄清2 小时前
私服网游云加速程序劫持流量排查与修复总结
windows·安全
FL16238631292 小时前
Windows手动下载安装配置uv 0.11.29配置国内源含安装包和安装教程
windows·uv
Jelena157795857922 小时前
淘宝商品详情API接口开发指南:应用市场选品比价实战
windows·microsoft
是个西兰花3 小时前
Linux:深入解析Linux线程原理与实现
linux·运维·c++·线程·互斥锁
乖巧的妹子3 小时前
刷题总结知识
linux·服务器·windows
小李云雾3 小时前
LangGraph[2] ---- 控制流与持久化:让图“活”起来
windows·程序人生·ai·langgraph
彷徨而立3 小时前
【VS2017】 一个使用 cl 和 link 命令例子
visual studio
取经蜗牛3 小时前
Windows 下强制腾讯通 RTX 仅使用有线网卡(静态路由法)
windows