                 if (sm == -1)
                     sm = get_compute_capability(gpu_compute_pair_forces_shared_kernel<evaluator, 2, 1>);
 
+                if (sm < 35) gpu_pair_force_bind_textures(pair_args);
+
                 block_size = block_size < max_block_size ? block_size : max_block_size;
                 dim3 grid(pair_args.N / (block_size/tpp) + 1, 1, 1);
                 if (sm < 30 && grid.x > 65535)

                if (sm == -1)
                    sm = get_compute_capability(gpu_compute_pair_forces_shared_kernel<evaluator, 1, 0>);

                block_size = block_size < max_block_size ? block_size : max_block_size;
                dim3 grid(pair_args.N / (block_size/tpp) + 1, 1, 1);
                if (sm < 30 && grid.x > 65535)

    unsigned int block_size = pair_args.block_size;
    unsigned int tpp = pair_args.threads_per_particle;

    Index2D typpair_idx(pair_args.ntypes);
    unsigned int shared_bytes = (2*sizeof(Scalar) + sizeof(typename evaluator::param_type))
                                * typpair_idx.getNumElements();
