code: def test_multiple_2d_textures(self):
      mod = SourceModule(
          """
          texture<float, 2, cudaReadModeElementType> mtx_tex;
          texture<float, 2, cudaReadModeElementType> mtx2_tex;
  
          __global__ void copy_texture(float *dest)
          {
            int row = threadIdx.x;
            int col = threadIdx.y;
            int w = blockDim.y;
            dest[row*w+col] =
                tex2D(mtx_tex, row, col)
                +
                tex2D(mtx2_tex, row, col);
          }
          """
      )
  
      copy_texture = mod.get_function("copy_texture")
      mtx_tex = mod.get_texref("mtx_tex")
      mtx2_tex = mod.get_texref("mtx2_tex")
  
      shape = (3, 4)
      a = np.random.randn(*shape).astype(np.float32)
      b = np.random.randn(*shape).astype(np.float32)
      drv.matrix_to_texref(a, mtx_tex, order="F")
      drv.matrix_to_texref(b, mtx2_tex, order="F")
  
      dest = np.zeros(shape, dtype=np.float32)
      copy_texture(
          drv.Out(dest), block=shape + (1,), texrefs=[mtx_tex, mtx2_tex]
      )
      assert la.norm(dest - a - b) < 1e-6
  
imports: import numpy
  import numpy.linalg
  from pycuda.tools import mark_cuda_test, dtype_to_ctype
  import pytest
  import pycuda.gpuarray
  import pycuda.driver
  from pycuda.compiler import SourceModule
label_desc: Use image node_id 10 for calling the TestDriver obj's underlying member method code with example usage: obj.test_multiple_2d_textures() without return types