GLCL统一变量等效于OpenCL

 LiangChao 发布于 2023-01-30 10:51
  • gpu
  • OpenCL对GLSL统一变量的等价物是什么?

    在OpenCL术语中,GPU内存中的统一变量在哪里?他们什么时候从主机传递到GPU?

    我理解答案可能取决于具体的OpenGL实现,但我想知道是否有一些规则或合理的假设.

    1 个回答
    • 在GLSL中,可以从每个着色器阶段访问制服,并以只读方式访问实例.所以它显示了相应的OpenCl全局内存的行为.考虑到这些值的常量(您无法在着色器中修改它们),它尤其等于OpenCL的__constant内存.

      更多信息可以在这里找到:http: //www.opengl.org/wiki/Uniform_(GLSL) ,在这里:http: //www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/ constant.html

      由于优化的可能性,我更喜欢__constant内存解决方案.如果内核占用空间有足够的空间,某些OpenCL驱动程序可能会将这些__constant值直接刷新到快速本地或专用内存.如果不这样做,全局内存的内存控制器(包含__constant内存)也能够在__constant部分上更快地工作,因为内核代码不能有更新请求.

      OpenGL中的制服在调用glUniformXX时直接传输.

      考虑到您还可以创建统一的缓冲区对象.在这种情况下,访问由统一的缓冲区绑定点控制.这很安静,类似于OpenGL中的纹理处理.有关UBO使用的更多信息,请访问:http: //www.lighthouse3d.com/tutorials/glsl-core-tutorial/3490-2/

      2023-01-30 10:54 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有