gpt4 book ai didi

opengl - `GLfloat` 和 `cl_float` 是否保证具有相同的大小?

转载 作者:行者123 更新时间:2023-12-01 14:00:52 24 4
gpt4 key购买 nike

在使用 OpenGL 分配 VBO 之后,我使用 clCreateFromGLBuffer 从中创建了一个 OpenCL 缓冲区.

我将 VBO 用作 GLfloat 数组,将 OpenCL 缓冲区用作 cl_float 数组。它在我的机器上完美运行。事实上,GLfloatcl_float(和 float)具有相同的大小。

我想知道这是否可以在任何地方完美运行。换句话说,sizeof(GLfloat) == sizeof(cl_float) 是否始终为真?* 如果不是,通常如何处理?

* 是否有证明这一点的文件

最佳答案

是的,如果您查看 CL 和 GL header ,您会得到:

typedef float cl_float;          // @cl_platform.h
typedef float GLfloat; // @gl.h

请注意,在某些 GL 实现中,您会得到像 khronos_float_t 这样的中间类型定义,但最终都归结为 float 类型。所以这两种类型都与您的原生浮点类型相同。此外,OpenCL kernels 中的等效数据类型和 OpenGL shaders都保证符合 IEEE754。

相关标题的链接:cl_platform.h ,并且 GL header 取决于您从哪里获得它(它们在操作系统之间以及供应商之间略有不同),看看您的。示例:gl.h (GLES 版本),gl.h (FreeBSD nVidia 版本),gl.h (一些随机版本)。

关于opengl - `GLfloat` 和 `cl_float` 是否保证具有相同的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com