Texture Address mode in case normalized is not used

I’ve read the reference manual and the specification carefully and did a lot of testing for myself, but as the manual states:
If texRef.normalized is set to 0, .filterMode and .addressMode won’t have any effects.

When writing convolution kernels i’d be happy not to worry about the borders, in fact i’m not interested if it clamps or wraps or sets to 0.0 or whatever - as long as it won’t read from outside the cuda array the texRef is bound to.
Just setting normalized to 1 and dividing the access variables by dimX / dimY / dimZ slows my program 50%

Even if i would manually check if the border is hit (if statements => divergent branches) this was a little bit faster…

Can anyone tell me what tex3d returns when not being set to normalized mode and not addressing inside the boundaries?

Sorry for my english, i hope you got the point!

I have also written convolution functions for 2D and 3D. I use texRef.normalized = false, and I get free edge extraction by clamping the borders (no need to check for boundaries). Texture memory will automatically handle reading outside the boundaries (hardware support), regardless if the adressing mode is normalized or not. I guess the simplest way to know what value you get outside the boundaries is to run a single thread and fetch a value outside the boundaries…

I believe non-normalized textures in CUDA are roughly equivalent to texture rectangles in OpenGL, so the only available addressing mode is clamp-to-edge:
http://www.nvidia.com/dev_content/nvopengl…e_rectangle.txt