Hash :
e292e902
Author :
Date :
2016-09-07T10:49:01
Workaround the unary minus operator issue on Intel On some Intel D3D drivers, evaluating unary minor operator on an integer variable may get wrong answer in vertex shader. This patch works around this bug by replacing -(int) with ~(int)+1 on Windows Intel. BUG=chromium:644033 Change-Id: I0af719e84d618a33f25bcb33bde0c381fb462a31 Reviewed-on: https://chromium-review.googlesource.com/381675 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// This mutating tree traversal works around a bug on evaluating unary
// integer variable on Intel D3D driver. It works by rewriting -(int) to
// ~(int) + 1 when evaluating unary integer variables.
#ifndef COMPILER_TRANSLATOR_REWRITEUNARYMINUSOPERATORINT_H_
#define COMPILER_TRANSLATOR_REWRITEUNARYMINUSOPERATORINT_H_
class TIntermNode;
namespace sh
{
void RewriteUnaryMinusOperatorInt(TIntermNode *root);
} // namespace sh
#endif // COMPILER_TRANSLATOR_REWRITEUNARYMINUSOPERATORINT_H_