示例#1
0
static void
nvc0_set_sampler_views(struct pipe_context *pipe, unsigned shader,
                       unsigned start, unsigned nr,
                       struct pipe_sampler_view **views)
{
   assert(start == 0);
   switch (shader) {
   case PIPE_SHADER_VERTEX:
      nvc0_stage_set_sampler_views(nvc0_context(pipe), 0, nr, views);
      break;
   case PIPE_SHADER_TESS_CTRL:
      nvc0_stage_set_sampler_views(nvc0_context(pipe), 1, nr, views);
      break;
   case PIPE_SHADER_TESS_EVAL:
      nvc0_stage_set_sampler_views(nvc0_context(pipe), 2, nr, views);
      break;
   case PIPE_SHADER_GEOMETRY:
      nvc0_stage_set_sampler_views(nvc0_context(pipe), 3, nr, views);
      break;
   case PIPE_SHADER_FRAGMENT:
      nvc0_stage_set_sampler_views(nvc0_context(pipe), 4, nr, views);
      break;
   case PIPE_SHADER_COMPUTE:
      nvc0_stage_set_sampler_views_range(nvc0_context(pipe), 5,
                                         start, nr, views);
      nvc0_context(pipe)->dirty_cp |= NVC0_NEW_CP_TEXTURES;
      break;
   default:
      ;
   }
}
示例#2
0
static void
nvc0_gp_set_sampler_views(struct pipe_context *pipe,
                          unsigned nr,
                          struct pipe_sampler_view **views)
{
   nvc0_stage_set_sampler_views(nvc0_context(pipe), 3, nr, views);
}
示例#3
0
static void
nvc0_set_sampler_views(struct pipe_context *pipe, enum pipe_shader_type shader,
                       unsigned start, unsigned nr,
                       struct pipe_sampler_view **views)
{
   const unsigned s = nvc0_shader_stage(shader);

   assert(start == 0);
   nvc0_stage_set_sampler_views(nvc0_context(pipe), s, nr, views);

   if (s == 5)
      nvc0_context(pipe)->dirty_cp |= NVC0_NEW_CP_TEXTURES;
   else
      nvc0_context(pipe)->dirty_3d |= NVC0_NEW_3D_TEXTURES;
}