A new AST validation is added to ensure that the same TStructure or TInterfaceBlock is not redundantly defined. This helps with SPIR-V generation by allowing the id to be used as key in a hash map that looks up the corresponding SPIR-V type id. A bug is fixed where the Vulkan driver uniform declaration created two identical declarations for ANGLEDepthRangeParams. A number of other bugs are also fixed in this change, where if a variable declaration is eliminated (for example due to constant folding, or inactive interface variable removal) and it contained a struct specifier, the struct declaration was also removed. OutputGLSLBase had a hack where structs were declared on first encounter, which was incorrect as the scope of the declaration could change. Those bugs are fixed and this hack is removed. Bug: angleproject:2733 Bug: angleproject:4889 Bug: angleproject:5936 Change-Id: I8e13748c0bf552ae8b052249282769a1f0775603 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2881942Reviewed-by:Charlie Lao <cclao@google.com> Reviewed-by:
Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| d3d | Loading commit data... | |
| gl | Loading commit data... | |
| vulkan | Loading commit data... | |
| ClampPointSize.cpp | Loading commit data... | |
| ClampPointSize.h | Loading commit data... | |
| DeclareAndInitBuiltinsForInstancedMultiview.cpp | Loading commit data... | |
| DeclareAndInitBuiltinsForInstancedMultiview.h | Loading commit data... | |
| DeferGlobalInitializers.cpp | Loading commit data... | |
| DeferGlobalInitializers.h | Loading commit data... | |
| EmulateGLFragColorBroadcast.cpp | Loading commit data... | |
| EmulateGLFragColorBroadcast.h | Loading commit data... | |
| EmulateMultiDrawShaderBuiltins.cpp | Loading commit data... | |
| EmulateMultiDrawShaderBuiltins.h | Loading commit data... | |
| EmulatePrecision.cpp | Loading commit data... | |
| EmulatePrecision.h | Loading commit data... | |
| FoldExpressions.cpp | Loading commit data... | |
| FoldExpressions.h | Loading commit data... | |
| ForcePrecisionQualifier.cpp | Loading commit data... | |
| ForcePrecisionQualifier.h | Loading commit data... | |
| InitializeVariables.cpp | Loading commit data... | |
| InitializeVariables.h | Loading commit data... | |
| PruneEmptyCases.cpp | Loading commit data... | |
| PruneEmptyCases.h | Loading commit data... | |
| PruneNoOps.cpp | Loading commit data... | |
| PruneNoOps.h | Loading commit data... | |
| RemoveArrayLengthMethod.cpp | Loading commit data... | |
| RemoveArrayLengthMethod.h | Loading commit data... | |
| RemoveDynamicIndexing.cpp | Loading commit data... | |
| RemoveDynamicIndexing.h | Loading commit data... | |
| RemoveInvariantDeclaration.cpp | Loading commit data... | |
| RemoveInvariantDeclaration.h | Loading commit data... | |
| RemoveUnreferencedVariables.cpp | Loading commit data... | |
| RemoveUnreferencedVariables.h | Loading commit data... | |
| RewriteTexelFetchOffset.cpp | Loading commit data... | |
| RewriteTexelFetchOffset.h | Loading commit data... | |
| ScalarizeVecAndMatConstructorArgs.cpp | Loading commit data... | |
| ScalarizeVecAndMatConstructorArgs.h | Loading commit data... | |
| SeparateDeclarations.cpp | Loading commit data... | |
| SeparateDeclarations.h | Loading commit data... | |
| SimplifyLoopConditions.cpp | Loading commit data... | |
| SimplifyLoopConditions.h | Loading commit data... | |
| SplitSequenceOperator.cpp | Loading commit data... | |
| SplitSequenceOperator.h | Loading commit data... |