src/compiler/translator/tree_ops/RewriteStructSamplers.cpp


Log

Author Commit Date CI Message
James Dong 1d5aaa6c 2019-08-06T11:20:13 Vulkan: support dynamic indices in array of arrays Expands existing struct-sampler rewrite to flatten arrays of arrays. This allows us to support dynamically-uniform array indexing, which is core in ES 3.2. Samplers inside (possibly nested) structs are broken apart as before, and then if the type resulting from merging the array sizes of the field and its containing structs is an array of array, the array is flattened. Also adds an offset parameter to functions taking in arrays to account for this translation. As a result of outer array sizes leaking into function signatures, functions taking arrays of different sizes are duplicated according to how the function is invoked. Bug: angleproject:3604 Change-Id: Ic9373fd12a38f19bd811eac92e281055a63c1901 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1744177 Commit-Queue: James Dong <dongja@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 472c74c6 2019-08-19T16:32:13 Translator: Allow tree validation in children of TCompiler This is to be able to perform validation inside TranslatorVulkan, even if it's through ASSERTs. Additionally, every transformation is changed such that they do their validation themselves. TIntermTraverser::updateTree() performs the validation, which indirectly validates many of three tree transformations. Some of the more ancient transformations that don't use this function directly call TCompiler::validateAST. Bug: angleproject:2733 Change-Id: Ie4af029d34e053c5ad1dc8c2c2568eecd625d344 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1761149 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill b980c563 2018-11-27T11:34:27 Reformat all cpp and h files. This applies git cl format --full to all ANGLE sources. Bug: angleproject:2986 Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f Reviewed-on: https://chromium-review.googlesource.com/c/1351367 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 76301e09 2018-07-19T11:48:30 Vulkan: Fix compound nested sampler struct params. Replace the struct type of binary and symbol parameter nodes with a lookup of the struct type in the tree. Bug: angleproject:2494 Change-Id: I1e892e0f1b1f97302d1cdce1035f51c01d0efd9e Reviewed-on: https://chromium-review.googlesource.com/1135695 Reviewed-by: Olli Etuaho <oetuaho@nvidia.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 84c11c53 2018-07-11T10:12:39 Vulkan: Implement sampler structs as function args. Bug: angleproject:2494 Change-Id: Ia8e374846427b7140ab2565ae5b9b18409a76d96 Reviewed-on: https://chromium-review.googlesource.com/1117323 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill 71a151fd 2018-06-26T16:07:42 Vulkan: Use TSymbolTable in ExtractStructSamplers. This will enable more code reuse when handling sampler struct as function arguments. We can add the sampler structs to the symbol table stack when they are function arguments. Bug: angleproject:2494 Change-Id: I9eeb1d3822e34cd43535e1b16a98864545755d22 Reviewed-on: https://chromium-review.googlesource.com/1117322 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Jamie Madill cdf50444 2018-06-26T15:05:42 Add test for sampler struct rewriting indexing. The concern originally was that rewriting sampler structs could lead to incorrect behaviour for indexing. The test attempts to cover this but doesn't repro. It possibly is not an issue. Bug: angleproject:2494 Change-Id: Ibc34b08b5cee3b6ff82d150a64f1768aae64396f Reviewed-on: https://chromium-review.googlesource.com/1117321 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Luc Ferron <lucferron@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ac1a377d 2018-06-26T15:05:38 Vulkan: Split tree ops into separate files. This makes the design consistent. Added new files for NameEmbeddedStructs and RewriteStructSamplers. Bug: angleproject:2665 Bug: angleproject:2494 Change-Id: If7d22a6ce9a86d51d38f68787006b7a28957861e Reviewed-on: https://chromium-review.googlesource.com/1108086 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>