st: Translate address register declaration.
authorMichal Krol <michal@tungstengraphics.com>
Mon, 18 Aug 2008 20:51:15 +0000 (22:51 +0200)
committerMichal Krol <michal@tungstengraphics.com>
Mon, 18 Aug 2008 22:44:15 +0000 (00:44 +0200)
src/mesa/state_tracker/st_mesa_to_tgsi.c

index 372e4672f6ad409fbc595cc97b89ae22d7defbf6..bcb23eefc32cdf7927eeffa92efee5ac1eec588b 100644 (file)
@@ -610,6 +610,19 @@ make_temp_decl(
    return decl;
 }
 
+static struct tgsi_full_declaration
+make_addr_decl(
+   GLuint start_index,
+   GLuint end_index )
+{
+   struct tgsi_full_declaration decl;
+
+   decl = tgsi_default_full_declaration();
+   decl.Declaration.File = TGSI_FILE_ADDRESS;
+   decl.DeclarationRange.First = start_index;
+   decl.DeclarationRange.Last = end_index;
+   return decl;
+}
 
 static struct tgsi_full_declaration
 make_sampler_decl(GLuint index)
@@ -828,6 +841,21 @@ tgsi_translate_mesa_program(
       }
    }
 
+   /* Address register.
+   */
+   if (program->NumAddressRegs > 0) {
+      struct tgsi_full_declaration fulldecl;
+
+      assert( program->NumAddressRegs == 1 );
+
+      fulldecl = make_addr_decl( 0, 0 );
+      ti += tgsi_build_full_declaration(
+         &fulldecl,
+         &tokens[ti],
+         header,
+         maxTokens - ti );
+   }
+
    /* immediates/literals */
    memset(immediates, ~0, sizeof(immediates));