I've got here a long standing problem which so far I temporarily solved by disallowing filtering on cube-maps. That's though not a possible final solution. In short whenever I try to use filtered cube maps on nVidia hardware like this
glActiveTexture( GL_TEXTURE0 ); glBindTexture( GL_TEXTURE_CUBE_MAP, texture ); glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glEnable( GL_TEXTURE_CUBE_MAP_SEAMLESS ); // crashes with or without this glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE );
the rendering crashes inside the nVidia driver blob
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff6811e50 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) bt #0 0x00007ffff6811e50 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff23eb027 in ?? () from /usr/lib/nvidia-current-updates/libnvidia-glcore.so.304.51 #2 0x00007ffff23ec18a in ?? () from /usr/lib/nvidia-current-updates/libnvidia-glcore.so.304.51 #3 0x00007ffff23ec7a8 in ?? () from /usr/lib/nvidia-current-updates/libnvidia-glcore.so.304.51 #4 0x00007ffff2531e1b in ?? () from /usr/lib/nvidia-current-updates/libnvidia-glcore.so.304.51 #5 0x00007ffff2204d69 in ?? () from /usr/lib/nvidia-current-updates/libnvidia-glcore.so.304.51 (...)
When I use no filtering instead like this
glActiveTexture( GL_TEXTURE0 ); glBindTexture( GL_TEXTURE_CUBE_MAP, texture ); glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_NEAREST ); // <== ! glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); // <== ! glEnable( GL_TEXTURE_CUBE_MAP_SEAMLESS ); // crashes with or without this glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE ); glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE ); glTexParameteri( GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE );
then no crashing happens (but obviously also no filtering). On ATI/AMD no such crash happens and all renders fine.
Has anybody an idea what nVidia fucks up here in the driver? Any work-around? Any special tokens to set?
Edited by RPTD, 01 February 2013 - 06:22 AM.






