Edit

kc3-lang/angle/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h

Branch :

  • Show log

    Commit

  • Author : Shahbaz Youssefi
    Date : 2020-01-25 23:25:43
    Hash : e28883de
    Message : Vulkan: Fix handling of inactive fragment outputs These were never assigned a location. They are now removed by the translator similar to other inactive variables. Bug: angleproject:4313 Change-Id: I3398d06e1dea3f43b84f206cca07cde5b44b21a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2021734 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>

  • src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h
  • //
    // 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.
    //
    // RemoveInactiveInterfaceVariables.h:
    //  Drop shader interface variable declarations for those that are inactive.  This step needs to be
    //  done after CollectVariables.  This avoids having to emulate them (e.g. atomic counters for
    //  Vulkan) or remove them in glslang wrapper (again, for Vulkan).
    //
    //  Shouldn't be run for the GL backend, as it queries shader interface variables from GL itself,
    //  instead of relying on what was gathered during CollectVariables.
    //
    
    #ifndef COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_
    #define COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_
    
    #include "common/angleutils.h"
    
    namespace sh
    {
    
    struct InterfaceBlock;
    struct ShaderVariable;
    class TCompiler;
    class TIntermBlock;
    class TSymbolTable;
    
    ANGLE_NO_DISCARD bool RemoveInactiveInterfaceVariables(
        TCompiler *compiler,
        TIntermBlock *root,
        const std::vector<sh::ShaderVariable> &attributes,
        const std::vector<sh::ShaderVariable> &inputVaryings,
        const std::vector<sh::ShaderVariable> &outputVariables,
        const std::vector<sh::ShaderVariable> &uniforms,
        const std::vector<sh::InterfaceBlock> &interfaceBlocks);
    
    }  // namespace sh
    
    #endif  // COMPILER_TRANSLATOR_TREEOPS_REMOVEINACTIVEVARIABLES_H_