[Mesa-dev] [PATCH 11/12] Get rid of _mesa_frag_attrib_to_vert_result().

Paul Berry stereotype441 at gmail.com
Mon Mar 11 15:51:15 PDT 2013


Now that there is no difference between the enums that represent
vertex outputs and fragment inputs, there's no need for a conversion
function.
---
 src/mesa/drivers/dri/i965/gen6_sf_state.c | 15 +++++++--------
 src/mesa/main/mtypes.h                    | 26 +-------------------------
 2 files changed, 8 insertions(+), 33 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c
index 3da220d..74b232f 100644
--- a/src/mesa/drivers/dri/i965/gen6_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c
@@ -56,24 +56,23 @@ uint32_t
 get_attr_override(struct brw_vue_map *vue_map, int urb_entry_read_offset,
                   int fs_attr, bool two_side_color, uint32_t *max_source_attr)
 {
-   int vs_attr = _mesa_frag_attrib_to_vert_result(fs_attr);
-   if (vs_attr < 0 || vs_attr == VARYING_SLOT_POS) {
-      /* These attributes will be overwritten by the fragment shader's
-       * interpolation code (see emit_interp() in brw_wm_fp.c), so just let
-       * them reference the first available attribute.
+   if (fs_attr == FRAG_ATTRIB_WPOS) {
+      /* This attribute will be overwritten by the fragment shader's
+       * interpolation code (see emit_interp() in brw_wm_fp.c), so just let it
+       * reference the first available attribute.
        */
       return 0;
    }
 
    /* Find the VUE slot for this attribute. */
-   int slot = vue_map->vert_result_to_slot[vs_attr];
+   int slot = vue_map->vert_result_to_slot[fs_attr];
 
    /* If there was only a back color written but not front, use back
     * as the color instead of undefined
     */
-   if (slot == -1 && vs_attr == VARYING_SLOT_COL0)
+   if (slot == -1 && fs_attr == VARYING_SLOT_COL0)
       slot = vue_map->vert_result_to_slot[VARYING_SLOT_BFC0];
-   if (slot == -1 && vs_attr == VARYING_SLOT_COL1)
+   if (slot == -1 && fs_attr == VARYING_SLOT_COL1)
       slot = vue_map->vert_result_to_slot[VARYING_SLOT_BFC1];
 
    if (slot == -1) {
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index f8a6911..9c431af 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -218,7 +218,6 @@ typedef enum
  * - vertResults (in prog_print.c's arb_output_attrib_string())
  * - fragAttribs (in prog_print.c's arb_input_attrib_string())
  * - _mesa_varying_slot_in_fs()
- * - _mesa_frag_attrib_to_vert_result()
  */
 typedef enum
 {
@@ -287,9 +286,7 @@ typedef enum
 /*********************************************/
 
 /**
- * Indexes for fragment program input attributes.  Note that
- * _mesa_frag_attrib_to_vert_result() makes assumptions about the layout of
- * this enum.
+ * Indexes for fragment program input attributes.
  */
 typedef enum
 {
@@ -335,27 +332,6 @@ _mesa_varying_slot_in_fs(gl_varying_slot slot)
 
 
 /**
- * Convert from a gl_frag_attrib value to the corresponding gl_varying_slot
- * for a vertex output.
- *
- * gl_frag_attrib values which have no corresponding vertex output
- * (FRAG_ATTRIB_FACE and FRAG_ATTRIB_PNTC) are converted to a value of -1.
- */
-static inline int
-_mesa_frag_attrib_to_vert_result(gl_frag_attrib frag_attrib)
-{
-   if (frag_attrib <= FRAG_ATTRIB_TEX7)
-      return frag_attrib;
-   else if (frag_attrib < FRAG_ATTRIB_CLIP_DIST0)
-      return -1;
-   else if (frag_attrib <= FRAG_ATTRIB_CLIP_DIST1)
-      return frag_attrib;
-   else /* frag_attrib >= FRAG_ATTRIB_VAR0 */
-      return frag_attrib;
-}
-
-
-/**
  * Bitflags for fragment program input attributes.
  */
 /*@{*/
-- 
1.8.1.5



More information about the mesa-dev mailing list