~mmach/netext73/webkit2gtk

« back to all changes in this revision

Viewing changes to Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h

  • Committer: mmach
  • Date: 2023-06-16 17:21:37 UTC
  • Revision ID: netbit73@gmail.com-20230616172137-2rqx6yr96ga9g3kp
1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// Copyright 2019 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
// RemoveInactiveInterfaceVariables.h:
 
7
//  Drop shader interface variable declarations for those that are inactive.  This step needs to be
 
8
//  done after CollectVariables.  This avoids having to emulate them (e.g. atomic counters for
 
9
//  Vulkan) or remove them in glslang wrapper (again, for Vulkan).
 
10
//
 
11
//  Shouldn't be run for the GL backend, as it queries shader interface variables from GL itself,
 
12
//  instead of relying on what was gathered during CollectVariables.
 
13
//
 
14
 
 
15
#ifndef COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_
 
16
#define COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_
 
17
 
 
18
#include "common/angleutils.h"
 
19
 
 
20
namespace sh
 
21
{
 
22
 
 
23
struct InterfaceBlock;
 
24
struct ShaderVariable;
 
25
class TCompiler;
 
26
class TIntermBlock;
 
27
class TSymbolTable;
 
28
 
 
29
ANGLE_NO_DISCARD bool RemoveInactiveInterfaceVariables(
 
30
    TCompiler *compiler,
 
31
    TIntermBlock *root,
 
32
    const std::vector<sh::ShaderVariable> &attributes,
 
33
    const std::vector<sh::ShaderVariable> &inputVaryings,
 
34
    const std::vector<sh::ShaderVariable> &outputVariables,
 
35
    const std::vector<sh::ShaderVariable> &uniforms,
 
36
    const std::vector<sh::InterfaceBlock> &interfaceBlocks);
 
37
 
 
38
}  // namespace sh
 
39
 
 
40
#endif  // COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_