Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualRPTD

Posted 01 February 2013 - 06:22 AM

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?


#2RPTD

Posted 01 February 2013 - 06:19 AM

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 thisglTexParameteri( 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 thisglTexParameteri( 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?

#1RPTD

Posted 01 February 2013 - 06:16 AM

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

 

(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?


PARTNERS