我正在尝试使用两个opengl图像,其中一个是稀疏的,另一个用作一种页面表,我在其中跟踪实际提交的页面。
我有一个简单的小着色器,看起来像这样(不包括main):
#version 450 core
#extension GL_ARB_shader_image_load_store : require
uniform float gridSize;
uniform float pageTableSize;
bool isPageInMemoryOrRequest (in ivec3 pos)
{
bool returnValue = false;
if ( 255u == imageAtomicExchange(pageTable, pos, 128u) )
{
returnValue = true;
}
return returnValue;
}
我的问题是,这无法编译。我一直收到这样的消息:
错误C1115:无法找到兼容的重载函数“imageAtomicExchange(struct uimage3D1x8_bindless,ivec3,uint)”
我很确定,我从未在规范中的任何地方看到过这种无绑定的部分,我也不清楚编译器是如何在编译时发现这是一种无绑定的纹理(或者在最新的驱动程序中它们都是无绑定的)。
我有一台GTX660TI,我使用的是352.86驱动程序。
我想知道是否有人以前遇到过这种问题,可以告诉我可能是什么问题。
提前感谢。