If the row-major expression that was being transformed was in the form:
arr.length()
where `arr` is an SSBO unsized array, the translator transformation was
attempting to transpose the `arr` expression, which is both wrong and
impossible. Note that length() is removed through a prior
transformation except for this particular case.
This change recognizes this usage and supports it by keeping the
expression as is (as the length() would be identical pre or post
transformation).
Bug: angleproject:3443
Change-Id: I8efacb7b12d5e53047eb56ab5d86830d81952d86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1917422Reviewed-by:
Tim Van Patten <timvp@google.com>
Reviewed-by:
Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| tree_ops | Loading commit data... | |
| tree_util | Loading commit data... | |
| 64bit-lexer-safety.patch | Loading commit data... | |
| ASTMetadataHLSL.cpp | Loading commit data... | |
| ASTMetadataHLSL.h | Loading commit data... | |
| AtomicCounterFunctionHLSL.cpp | Loading commit data... | |
| AtomicCounterFunctionHLSL.h | Loading commit data... | |
| BaseTypes.h | Loading commit data... | |
| BuiltInFunctionEmulator.cpp | Loading commit data... | |
| BuiltInFunctionEmulator.h | Loading commit data... | |
| BuiltInFunctionEmulatorGLSL.cpp | Loading commit data... | |
| BuiltInFunctionEmulatorGLSL.h | Loading commit data... | |
| BuiltInFunctionEmulatorHLSL.cpp | Loading commit data... | |
| BuiltInFunctionEmulatorHLSL.h | Loading commit data... | |
| BuiltinsWorkaroundGLSL.cpp | Loading commit data... | |
| BuiltinsWorkaroundGLSL.h | Loading commit data... | |
| CallDAG.cpp | Loading commit data... | |
| CallDAG.h | Loading commit data... | |
| CodeGen.cpp | Loading commit data... | |
| CollectVariables.cpp | Loading commit data... | |
| CollectVariables.h | Loading commit data... | |
| Common.h | Loading commit data... | |
| Compiler.cpp | Loading commit data... | |
| Compiler.h | Loading commit data... | |
| ConstantUnion.cpp | Loading commit data... | |
| ConstantUnion.h | Loading commit data... | |
| Declarator.cpp | Loading commit data... | |
| Declarator.h | Loading commit data... | |
| Diagnostics.cpp | Loading commit data... | |
| Diagnostics.h | Loading commit data... | |
| DirectiveHandler.cpp | Loading commit data... | |
| DirectiveHandler.h | Loading commit data... | |
| ExtensionBehavior.cpp | Loading commit data... | |
| ExtensionBehavior.h | Loading commit data... | |
| ExtensionGLSL.cpp | Loading commit data... | |
| ExtensionGLSL.h | Loading commit data... | |
| FlagStd140Structs.cpp | Loading commit data... | |
| FlagStd140Structs.h | Loading commit data... | |
| FunctionLookup.cpp | Loading commit data... | |
| FunctionLookup.h | Loading commit data... | |
| HashNames.cpp | Loading commit data... | |
| HashNames.h | Loading commit data... | |
| ImageFunctionHLSL.cpp | Loading commit data... | |
| ImageFunctionHLSL.h | Loading commit data... | |
| ImmutableString.h | Loading commit data... | |
| ImmutableStringBuilder.cpp | Loading commit data... | |
| ImmutableStringBuilder.h | Loading commit data... | |
| ImmutableString_ESSL_autogen.cpp | Loading commit data... | |
| ImmutableString_autogen.cpp | Loading commit data... | |
| InfoSink.cpp | Loading commit data... | |
| InfoSink.h | Loading commit data... | |
| Initialize.cpp | Loading commit data... | |
| Initialize.h | Loading commit data... | |
| InitializeDll.cpp | Loading commit data... | |
| InitializeDll.h | Loading commit data... | |
| InitializeGlobals.h | Loading commit data... | |
| IntermNode.cpp | Loading commit data... | |
| IntermNode.h | Loading commit data... | |
| IsASTDepthBelowLimit.cpp | Loading commit data... | |
| IsASTDepthBelowLimit.h | Loading commit data... | |
| Operator.cpp | Loading commit data... | |
| Operator.h | Loading commit data... | |
| OutputESSL.cpp | Loading commit data... | |
| OutputESSL.h | Loading commit data... | |
| OutputGLSL.cpp | Loading commit data... | |
| OutputGLSL.h | Loading commit data... | |
| OutputGLSLBase.cpp | Loading commit data... | |
| OutputGLSLBase.h | Loading commit data... | |
| OutputHLSL.cpp | Loading commit data... | |
| OutputHLSL.h | Loading commit data... | |
| OutputTree.cpp | Loading commit data... | |
| OutputTree.h | Loading commit data... | |
| OutputVulkanGLSL.cpp | Loading commit data... | |
| OutputVulkanGLSL.h | Loading commit data... | |
| OutputVulkanGLSLForMetal.h | Loading commit data... | |
| OutputVulkanGLSLForMetal.mm | Loading commit data... | |
| ParseContext.cpp | Loading commit data... | |
| ParseContext.h | Loading commit data... | |
| ParseContext_ESSL_autogen.h | Loading commit data... | |
| ParseContext_complete_autogen.h | Loading commit data... | |
| ParseContext_interm.h | Loading commit data... | |
| PoolAlloc.cpp | Loading commit data... | |
| PoolAlloc.h | Loading commit data... | |
| Pragma.h | Loading commit data... | |
| QualifierTypes.cpp | Loading commit data... | |
| QualifierTypes.h | Loading commit data... | |
| ResourcesHLSL.cpp | Loading commit data... | |
| ResourcesHLSL.h | Loading commit data... | |
| Severity.h | Loading commit data... | |
| ShaderLang.cpp | Loading commit data... | |
| ShaderStorageBlockFunctionHLSL.cpp | Loading commit data... | |
| ShaderStorageBlockFunctionHLSL.h | Loading commit data... | |
| ShaderStorageBlockOutputHLSL.cpp | Loading commit data... | |
| ShaderStorageBlockOutputHLSL.h | Loading commit data... | |
| ShaderVars.cpp | Loading commit data... | |
| StaticType.h | Loading commit data... | |
| StructureHLSL.cpp | Loading commit data... | |
| StructureHLSL.h | Loading commit data... | |
| Symbol.cpp | Loading commit data... | |
| Symbol.h | Loading commit data... | |
| SymbolTable.cpp | Loading commit data... | |
| SymbolTable.h | Loading commit data... | |
| SymbolTable_ESSL_autogen.cpp | Loading commit data... | |
| SymbolTable_autogen.cpp | Loading commit data... | |
| SymbolTable_autogen.h | Loading commit data... | |
| SymbolUniqueId.cpp | Loading commit data... | |
| SymbolUniqueId.h | Loading commit data... | |
| TextureFunctionHLSL.cpp | Loading commit data... | |
| TextureFunctionHLSL.h | Loading commit data... | |
| TranslatorESSL.cpp | Loading commit data... | |
| TranslatorESSL.h | Loading commit data... | |
| TranslatorGLSL.cpp | Loading commit data... | |
| TranslatorGLSL.h | Loading commit data... | |
| TranslatorHLSL.cpp | Loading commit data... | |
| TranslatorHLSL.h | Loading commit data... | |
| TranslatorMetal.cpp | Loading commit data... | |
| TranslatorMetal.h | Loading commit data... | |
| TranslatorVulkan.cpp | Loading commit data... | |
| TranslatorVulkan.h | Loading commit data... | |
| Types.cpp | Loading commit data... | |
| Types.h | Loading commit data... | |
| UtilsHLSL.cpp | Loading commit data... | |
| UtilsHLSL.h | Loading commit data... | |
| ValidateAST.cpp | Loading commit data... | |
| ValidateAST.h | Loading commit data... | |
| ValidateGlobalInitializer.cpp | Loading commit data... | |
| ValidateGlobalInitializer.h | Loading commit data... | |
| ValidateLimitations.cpp | Loading commit data... | |
| ValidateLimitations.h | Loading commit data... | |
| ValidateMaxParameters.cpp | Loading commit data... | |
| ValidateMaxParameters.h | Loading commit data... | |
| ValidateOutputs.cpp | Loading commit data... | |
| ValidateOutputs.h | Loading commit data... | |
| ValidateSwitch.cpp | Loading commit data... | |
| ValidateSwitch.h | Loading commit data... | |
| ValidateVaryingLocations.cpp | Loading commit data... | |
| ValidateVaryingLocations.h | Loading commit data... | |
| VariablePacker.cpp | Loading commit data... | |
| VariablePacker.h | Loading commit data... | |
| VersionGLSL.cpp | Loading commit data... | |
| VersionGLSL.h | Loading commit data... | |
| blocklayout.cpp | Loading commit data... | |
| blocklayout.h | Loading commit data... | |
| blocklayoutHLSL.cpp | Loading commit data... | |
| blocklayoutHLSL.h | Loading commit data... | |
| builtin_function_declarations.txt | Loading commit data... | |
| builtin_variables.json | Loading commit data... | |
| emulated_builtin_function_data_hlsl.json | Loading commit data... | |
| emulated_builtin_functions_hlsl_autogen.cpp | Loading commit data... | |
| gen_builtin_symbols.py | Loading commit data... | |
| gen_emulated_builtin_function_tables.py | Loading commit data... | |
| generate_parser.sh | Loading commit data... | |
| glslang.h | Loading commit data... | |
| glslang.l | Loading commit data... | |
| glslang.y | Loading commit data... | |
| glslang_lex.cpp | Loading commit data... | |
| glslang_tab.cpp | Loading commit data... | |
| glslang_tab.h | Loading commit data... | |
| length_limits.h | Loading commit data... | |
| util.cpp | Loading commit data... | |
| util.h | Loading commit data... |