Я пытаюсь использовать два изображения opengl, один из которых разрежен, а другой используется как своего рода таблица страниц, в котором я отслеживаю фактически загруженную страницу.imageAtomicExchange не будет компилировать
У меня есть простой маленький шейдер, который выглядит следующим образом (основной комплект не входит):
#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)»
Я уверен, что я никогда не видел, что _bindless часть где-нибудь в спецификации и я не совсем точно знаю, как компилятор выясняет, что это безусловная текстура во время компиляции (или, может быть, все они без привязанности к последним драйверам).
У меня GTX660TI, и я использую драйверы 352.86. Мне интересно, был ли у кого-то такой вопрос раньше и мог рассказать мне, что может быть проблемой.
Заранее спасибо.
Из любопытства, что именно является первым аргументом? – bvj
Это был r8ui uimage3D, теперь я вижу, что забыл добавить это, но на вопрос был дан ответ, поэтому я рад, что на этот раз я не заплатил за эту ошибку. – Babaluno