I don’t think this means that the texture and surface functions go away. There is another place inside the CUDA manual about texture and surface memory:
which explicitly mentions the texture object and surface object APIs. I interpret the performance note there so, that older applications which used texture or surface memory instead of linear device memory allocations for some performance improvement wouldn’t benefit as much today.
When using the texture engines to do anything else than direct load instructions, like bilinear or trilinear filtering, cube mapping, etc., the texture engines should still provide a huge benefit.
Note that block compressed textures (BC1 - BC7) are natively supported in CUDA texture objects as well now. (I don’t remember which CUDA version added it, like 12.0 or so.)
If you need the older CUDA manuals, there is a link to all archived versions at the top of the CUDA manual site.
For more example code on how to fill in any texture target with or without layers or mipmaps, please have a look into the OptiX Advanced Samples source code. A similar texture lookup function to the one from the OptiX SDK model viewer application you cited, can be found inside the GLTF_renderer there. Links and explanations in this thread starting at the fourth post:
https://forums.developer.nvidia.com/t/optix-advanced-samples-on-github/48410/4