[Mesa-dev] [PATCH 5/9] glsl: use bitwise operators in varying_matches::compute_packing_class()

Brian Paul brianp at vmware.com
Mon Dec 18 20:47:24 UTC 2017


The mix of bitwise operators with * and + to compute the packing_class
values was a little weird.  Just use bitwise ops instead.
---
 src/compiler/glsl/link_varyings.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
index 7821b1e..17d8653 100644
--- a/src/compiler/glsl/link_varyings.cpp
+++ b/src/compiler/glsl/link_varyings.cpp
@@ -1982,11 +1982,12 @@ varying_matches::compute_packing_class(const ir_variable *var)
     *
     * Therefore, the packing class depends only on the interpolation type.
     */
-   unsigned packing_class = var->data.centroid | (var->data.sample << 1) |
+   unsigned packing_class = (var->data.centroid << 0) |
+                            (var->data.sample << 1) |
                             (var->data.patch << 2) |
                             (var->data.must_be_shader_input << 3);
-   packing_class *= 8;
-   packing_class += var->is_interpolation_flat()
+   packing_class <<= 3;
+   packing_class |= var->is_interpolation_flat()
       ? unsigned(INTERP_MODE_FLAT) : var->data.interpolation;
    return packing_class;
 }
-- 
1.9.1



More information about the mesa-dev mailing list