Edit

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

Branch :

  • Show log

    Commit

  • Author : Qin Jiajia
    Date : 2018-11-12 15:53:34
    Hash : 81a880aa
    Message : ES31: support ssbo as binary operand This patch will process ssbo as compound assignment binary operand or readonly binary operand. BUG: angleproject:1951 Change-Id: I4a0da77649d719fa08e6bf4c3d9ace58dbfb7aab Reviewed-on: https://chromium-review.googlesource.com/c/1349449 Commit-Queue: Jiajia Qin <jiajia.qin@intel.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>

  • src/compiler/translator/tree_ops/RewriteExpressionsWithShaderStorageBlock.h
  • //
    // Copyright 2018 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.
    //
    // RewriteExpressionsWithShaderStorageBlock rewrites the expressions that contain shader storage
    // block calls into several simple ones that can be easily handled in the HLSL translator. After the
    // AST pass, all ssbo related blocks will be like below:
    //     ssbo_access_chain = ssbo_access_chain;
    //     ssbo_access_chain = expr_no_ssbo;
    //     lvalue_no_ssbo    = ssbo_access_chain;
    //
    // Below situations are needed to be rewritten (Details can be found in .cpp file).
    //     SSBO as the operand of compound assignment operators.
    //     SSBO as the operand of ++/--.
    //     SSBO as the operand of repeated assignment.
    //     SSBO as the operand of readonly unary/binary/ternary operators.
    //     SSBO as the argument of aggregate type.
    //     SSBO as the condition of if/switch/while/do-while/for
    
    #ifndef COMPILER_TRANSLATOR_TREEOPS_REWRITE_EXPRESSIONS_WITH_SHADER_STORAGE_BLOCK_H_
    #define COMPILER_TRANSLATOR_TREEOPS_REWRITE_EXPRESSIONS_WITH_SHADER_STORAGE_BLOCK_H_
    
    namespace sh
    {
    class TIntermNode;
    class TSymbolTable;
    
    void RewriteExpressionsWithShaderStorageBlock(TIntermNode *root, TSymbolTable *symbolTable);
    }  // namespace sh
    
    #endif  // COMPILER_TRANSLATOR_TREEOPS_REWRITE_EXPRESSIONS_WITH_SHADER_STORAGE_BLOCK_H_