tgsi/ureg: give ureg_DECL_constant an explicit index parameter
authorKeith Whitwell <keithw@vmware.com>
Sat, 12 Sep 2009 21:16:00 +0000 (14:16 -0700)
committerKeith Whitwell <keithw@vmware.com>
Sat, 12 Sep 2009 21:16:00 +0000 (14:16 -0700)
Avoid the need to emit all constant declarations in order.  Makes
referring to a specific constant in the constant buffer much easier.

src/gallium/auxiliary/tgsi/tgsi_ureg.c
src/gallium/auxiliary/tgsi/tgsi_ureg.h
src/gallium/state_trackers/xorg/xorg_exa_tgsi.c

index 55a4e5b..9222af9 100644 (file)
@@ -308,8 +308,11 @@ out:
  * value or manage any constant_buffer contents -- that's the
  * resposibility of the calling code.
  */
-struct ureg_src ureg_DECL_constant(struct ureg_program *ureg )
+struct ureg_src ureg_DECL_constant(struct ureg_program *ureg, 
+                                   unsigned index )
 {
+   
+
    return ureg_src_register( TGSI_FILE_CONSTANT, ureg->nr_constants++ );
 }
 
index 3bc1b77..627a5b0 100644 (file)
@@ -129,7 +129,8 @@ ureg_DECL_immediate( struct ureg_program *,
                      unsigned nr );
 
 struct ureg_src
-ureg_DECL_constant( struct ureg_program * );
+ureg_DECL_constant( struct ureg_program *,
+                    unsigned index );
 
 struct ureg_dst
 ureg_DECL_temporary( struct ureg_program * );
index 978dc20..b30cbff 100644 (file)
@@ -247,8 +247,8 @@ create_vs(struct pipe_context *pipe,
    if (ureg == NULL)
       return 0;
 
-   const0 = ureg_DECL_constant(ureg);
-   const1 = ureg_DECL_constant(ureg);
+   const0 = ureg_DECL_constant(ureg, 0);
+   const1 = ureg_DECL_constant(ureg, 1);
 
    /* it has to be either a fill or a composite op */
    debug_assert(is_fill ^ is_composite);