On 19/12/17 07:47, Brian Paul wrote:
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;
Should we add assert(var->data.interpolation < 7); here somewhere?
Either way series:
Reviewed-by: Timothy Arceri <tarc...@itsqueeze.com>
return packing_class;
}
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev