1 //
2 // Copyright 2016 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // This mutating tree traversal works around an issue on the translation
7 // from texelFetchOffset into HLSL function Load on INTEL drivers. It
8 // works by translating texelFetchOffset into texelFetch:
9 //
10 // - From: texelFetchOffset(sampler, Position, lod, offset)
11 // - To: texelFetch(sampler, Position+offset, lod)
12 //
13 // See http://anglebug.com/1469
14 
15 #ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITE_TEXELFETCHOFFSET_H_
16 #define COMPILER_TRANSLATOR_TREEOPS_REWRITE_TEXELFETCHOFFSET_H_
17 
18 #include "common/angleutils.h"
19 
20 namespace sh
21 {
22 
23 class TCompiler;
24 class TIntermNode;
25 class TSymbolTable;
26 
27 ANGLE_NO_DISCARD bool RewriteTexelFetchOffset(TCompiler *compiler,
28                                               TIntermNode *root,
29                                               const TSymbolTable &symbolTable,
30                                               int shaderVersion);
31 
32 }  // namespace sh
33 
34 #endif  // COMPILER_TRANSLATOR_TREEOPS_REWRITE_TEXELFETCHOFFSET_H_
35