PDA

View Full Version : texelFetch not avaliable on NVIDIA ?



somboon
06-12-2010, 09:39 AM
I have a GLSL code that compiled with out error on ATI card but failed on NVIDIA 9800gt with latest driver.



#version 150 core
precision highp float;

const int sampleCount = 4;

uniform sampler2DMS diffuseTexture; //1
in vec2 texCoordFull; //full screen texture coordinate
uniform vec4 ambient;

out vec4 outColor;

void main()
{

ivec2 texCoordFullInteger = ivec2(texCoordFull);

vec4 textureColor = vec4(0.0);
for(int i=0;i<sampleCount;i++){
textureColor += texelFetch(diffuseTexture,texCoordFullInteger,i);
}
textureColor /= sampleCount;

outColor = ambient*textureColor;
}


its just a ambient pass of MSAA-deferred shading (other GLSL code that involed texelFetch also generate same error)

when compile on NVIDIA 9800gt it generate the following error

error C1115: unable to find compatible overloaded function "texelFetch(
sampler2DMS, ivec2, int)

My Program using OpenGL 3.2 compatibility profile(but doesn't contain any deprecated code except for some isolate text rendering code)

somboon
06-12-2010, 10:59 AM
***UPDATE***

textureSize with sampler2DMS as parameter also generate error on NVIDIA card but compiled and running fine on ATI

this is the error message


unable to find compatible overloaded function "textureSize(s
ampler2DMS)

Ilian Dinev
06-12-2010, 11:15 AM
#extension GL_ARB_texture_multisample : enable

Alfonse Reinheart
06-12-2010, 02:00 PM
#extension GL_ARB_texture_multisample : enable

It's not an extension; it's core in GLSL 1.50. So if that works, it's still an NVIDIA driver bug.

somboon
06-12-2010, 08:09 PM
Thank for your answer, still have to wait for my brothers to try running the modified code.