emit tgsi declarations for texture samplers
authorBrian <brian.paul@tungstengraphics.com>
Fri, 14 Dec 2007 18:17:48 +0000 (11:17 -0700)
committerBrian <brian.paul@tungstengraphics.com>
Fri, 14 Dec 2007 18:17:48 +0000 (11:17 -0700)
src/mesa/state_tracker/st_mesa_to_tgsi.c

index 27dab5b9c06f50c7b394be3fe93fea21c8800e00..bccabd8004df62ea488c712a4fe6f7c957ed441d 100644 (file)
@@ -585,6 +585,20 @@ make_temp_decl(
 }
 
 
+static struct tgsi_full_declaration
+make_sampler_decl(GLuint index)
+{
+   struct tgsi_full_declaration decl;
+   decl = tgsi_default_full_declaration();
+   decl.Declaration.File = TGSI_FILE_SAMPLER;
+   decl.Declaration.Declare = TGSI_DECLARE_RANGE;
+   decl.u.DeclarationRange.First = index;
+   decl.u.DeclarationRange.Last = index;
+   return decl;
+}
+
+
+
 /**
  * Find the temporaries which are used in the given program.
  */
@@ -788,6 +802,19 @@ tgsi_translate_mesa_program(
       }
    }
 
+   /* texture samplers */
+   for (i = 0; i < 8; i++) {
+      if (program->SamplersUsed & (1 << i)) {
+         struct tgsi_full_declaration fulldecl;
+         fulldecl = make_sampler_decl( i );
+         ti += tgsi_build_full_declaration(&fulldecl,
+                                           &tokens[ti],
+                                           header,
+                                           maxTokens - ti );
+      }
+   }
+
+
    for( i = 0; i < program->NumInstructions; i++ ) {
       compile_instruction(
             &program->Instructions[i],