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

本文讨论了在使用ScaleImage的硬件加速过程中遇到的问题,如ScaleFilter调用失败、.bin文件生成不一致,以及可能导致的系统不稳定情况。作者尝试了重启电脑但问题未解决,且发现与电脑死机相关。
摘要由CSDN通过智能技术生成

如何写ScaleImage()的硬件加速函数(三)

在“如何写ScaleImage()的硬件加速函数(二)”中介绍的kernel函数的写法可能会产生如下现象:

  1. ScaleFilter()不是总能被成功调用。
  2. 每次修改过ScaleFilter()后,有时在~.cache/GraphicsMagick目录中不会生成新的.bin文件。
  3. 这种情况下,调试发现在getOpenCLEnvironment(exception);处就失败返回。
MagickPrivate Image *AccelerateScaleImage(const Image *image,
  const size_t scaledColumns,const size_t scaledRows,
  ExceptionInfo *exception)
{
  Image
    *filteredImage;

  MagickCLEnv
    clEnv;

  assert(image != NULL);
  assert(exception != (ExceptionInfo *) NULL);

  if (checkAccelerateCondition(image) == MagickFalse)
    return((Image *) NULL);

  clEnv=getOpenCLEnvironment(exception);
  if (clEnv == (MagickCLEnv) NULL)
    return((Image *) NULL);

  filteredImage=ComputeScaleImage(image,clEnv,scaledColumns,scaledRows,
    exception);
  return(filteredImage);
}
  1. 重启电脑似乎不能校正这种问题,但第二天开机这个问题就没有了,难道我的ScaleFilter()函数让CPU或者GPU内部错乱了?
  2. 没添加额外调试输出前,没有找到任何异常日志。
  3. 忘说了一个关键问题,这两天电脑已经发现死机两次,包括今天早上这次,刚输入完密码回车后就死机。

commitfake run: AccelerateScaleImage(), still trying

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值