From: Ian Romanick <ian.d.roman...@intel.com>

The GLSL spec says:

    "The shift operators (<<) and (>>).... One operand can be signed
    while the other is unsigned. In all cases, the resulting type will
    be the same type as the left operand. If the first operand is a
    scalar, the second operand has to be a scalar as well. If the
    first operand is a vector, the second operand must be a scalar or
    a vector, and the result is computed component-wise."

This should compute the same value since the shift count is the
literal 1.  We still need separate versions of the function because of
the type rulse fo the bit-wise and operator.

Signed-off-by: Ian Romanick <ian.d.roman...@intel.com>
---
 src/mesa/drivers/common/meta_blit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/common/meta_blit.c 
b/src/mesa/drivers/common/meta_blit.c
index 1d40199..2e45231 100644
--- a/src/mesa/drivers/common/meta_blit.c
+++ b/src/mesa/drivers/common/meta_blit.c
@@ -474,7 +474,7 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
 
          if (src_datatype == GL_INT || src_datatype == GL_UNSIGNED_INT) {
             merge_function =
-               "gvec4 merge(gvec4 a, gvec4 b) { return (a >> gvec4(1)) + (b >> 
gvec4(1)) + (a & b & gvec4(1)); }\n";
+               "gvec4 merge(gvec4 a, gvec4 b) { return (a >> 1) + (b >> 1) + 
(a & b & gvec4(1)); }\n";
          } else {
             /* The divide will happen at the end for floats. */
             merge_function =
-- 
2.5.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to