Hash :
56db3789
Author :
Date :
2019-08-01T17:09:53
Use flat arrays instead of switches for function lookups Current implementation of built in function lookup uses autogenerated switch statements. Instead, use the perfect hash mapping to have the lookup use arrays instead. This will improve runtime performance. Bug: angleproject:3805 Change-Id: I6d0ba62d79abd53a7fe818fe675282800781f256 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1756883 Commit-Queue: Clemen Deng <clemendeng@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_builtin_symbols.py using data from builtin_variables.json and
// builtin_function_declarations.txt.
//
// Copyright 2019 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.
//
// SymbolTable_autogen.h:
// Autogenerated member variables of TSymbolTable.
#ifndef COMPILER_TRANSLATOR_SYMBOLTABLE_AUTOGEN_H_
#define COMPILER_TRANSLATOR_SYMBOLTABLE_AUTOGEN_H_
namespace sh
{
class TSymbolTableBase
{
public:
TSymbolTableBase() = default;
TSymbol *mVar_gl_DepthRangeParameters = nullptr;
TSymbol *mVar_gl_DepthRange = nullptr;
TSymbol *mVar_gl_MaxVertexAttribs = nullptr;
TSymbol *mVar_gl_MaxVertexUniformVectors = nullptr;
TSymbol *mVar_gl_MaxVertexTextureImageUnits = nullptr;
TSymbol *mVar_gl_MaxCombinedTextureImageUnits = nullptr;
TSymbol *mVar_gl_MaxTextureImageUnits = nullptr;
TSymbol *mVar_gl_MaxFragmentUniformVectors = nullptr;
TSymbol *mVar_gl_MaxVaryingVectors = nullptr;
TSymbol *mVar_gl_MaxDrawBuffers = nullptr;
TSymbol *mVar_gl_MaxDualSourceDrawBuffersEXT = nullptr;
TSymbol *mVar_gl_MaxVertexOutputVectors = nullptr;
TSymbol *mVar_gl_MaxFragmentInputVectors = nullptr;
TSymbol *mVar_gl_MinProgramTexelOffset = nullptr;
TSymbol *mVar_gl_MaxProgramTexelOffset = nullptr;
TSymbol *mVar_gl_MaxImageUnits = nullptr;
TSymbol *mVar_gl_MaxVertexImageUniforms = nullptr;
TSymbol *mVar_gl_MaxFragmentImageUniforms = nullptr;
TSymbol *mVar_gl_MaxComputeImageUniforms = nullptr;
TSymbol *mVar_gl_MaxCombinedImageUniforms = nullptr;
TSymbol *mVar_gl_MaxCombinedShaderOutputResources = nullptr;
TSymbol *mVar_gl_MaxComputeWorkGroupCount = nullptr;
TSymbol *mVar_gl_MaxComputeWorkGroupSize = nullptr;
TSymbol *mVar_gl_MaxComputeUniformComponents = nullptr;
TSymbol *mVar_gl_MaxComputeTextureImageUnits = nullptr;
TSymbol *mVar_gl_MaxComputeAtomicCounters = nullptr;
TSymbol *mVar_gl_MaxComputeAtomicCounterBuffers = nullptr;
TSymbol *mVar_gl_MaxVertexAtomicCounters = nullptr;
TSymbol *mVar_gl_MaxFragmentAtomicCounters = nullptr;
TSymbol *mVar_gl_MaxCombinedAtomicCounters = nullptr;
TSymbol *mVar_gl_MaxAtomicCounterBindings = nullptr;
TSymbol *mVar_gl_MaxVertexAtomicCounterBuffers = nullptr;
TSymbol *mVar_gl_MaxFragmentAtomicCounterBuffers = nullptr;
TSymbol *mVar_gl_MaxCombinedAtomicCounterBuffers = nullptr;
TSymbol *mVar_gl_MaxAtomicCounterBufferSize = nullptr;
TSymbol *mVar_gl_MaxGeometryInputComponents = nullptr;
TSymbol *mVar_gl_MaxGeometryOutputComponents = nullptr;
TSymbol *mVar_gl_MaxGeometryImageUniforms = nullptr;
TSymbol *mVar_gl_MaxGeometryTextureImageUnits = nullptr;
TSymbol *mVar_gl_MaxGeometryOutputVertices = nullptr;
TSymbol *mVar_gl_MaxGeometryTotalOutputComponents = nullptr;
TSymbol *mVar_gl_MaxGeometryUniformComponents = nullptr;
TSymbol *mVar_gl_MaxGeometryAtomicCounters = nullptr;
TSymbol *mVar_gl_MaxGeometryAtomicCounterBuffers = nullptr;
TSymbol *mVar_gl_FragData = nullptr;
TSymbol *mVar_gl_SecondaryFragDataEXT = nullptr;
TSymbol *mVar_gl_FragDepthEXT = nullptr;
TSymbol *mVar_gl_LastFragData = nullptr;
TSymbol *mVar_gl_LastFragDataNV = nullptr;
TSymbol *mVar_gl_PerVertex = nullptr;
TSymbol *mVar_gl_in = nullptr;
TSymbol *mVar_gl_PositionGS = nullptr;
};
} // namespace sh
#endif // COMPILER_TRANSLATOR_SYMBOLTABLE_AUTOGEN_H_