This is a workaround for the webgl2 conformance test case
WebglConformance_conformance2_glsl3_vector_dynamic_indexing_swizzled_lvalue.
Dynamic indexing of swizzled lvalue like "v.zyx[i] = 0.0" is problematic on
various platforms. This removes the indexing by translating it this way:
void dyn_index_write_vec3(inout vec3 base, in int index, in float value){
switch (index) {
case (0):
(base[0] = value);
return ;
case (1):
(base[1] = value);
return ;
case (2):
(base[2] = value);
return ;
default:
break;
}
if ((index < 0))
{
(base[0] = value);
return ;
}
{
(base[2] = value);
}
}
...
dyn_index_write_vec3(v.zyx, i, 0.0);
...
Bug: chromium:709351
Change-Id: I971b38eb404209b56e6764af1063878c078a7e88
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1869109
Commit-Queue: Jie A Chen <jie.a.chen@intel.com>
Reviewed-by:
Geoff Lang <geofflang@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| BuiltIn.h | Loading commit data... | |
| BuiltIn_ESSL_autogen.h | Loading commit data... | |
| BuiltIn_complete_autogen.h | Loading commit data... | |
| FindFunction.cpp | Loading commit data... | |
| FindFunction.h | Loading commit data... | |
| FindMain.cpp | Loading commit data... | |
| FindMain.h | Loading commit data... | |
| FindSymbolNode.cpp | Loading commit data... | |
| FindSymbolNode.h | Loading commit data... | |
| IntermNodePatternMatcher.cpp | Loading commit data... | |
| IntermNodePatternMatcher.h | Loading commit data... | |
| IntermNode_util.cpp | Loading commit data... | |
| IntermNode_util.h | Loading commit data... | |
| IntermTraverse.cpp | Loading commit data... | |
| IntermTraverse.h | Loading commit data... | |
| NodeSearch.h | Loading commit data... | |
| ReplaceShadowingVariables.cpp | Loading commit data... | |
| ReplaceShadowingVariables.h | Loading commit data... | |
| ReplaceVariable.cpp | Loading commit data... | |
| ReplaceVariable.h | Loading commit data... | |
| RunAtTheEndOfShader.cpp | Loading commit data... | |
| RunAtTheEndOfShader.h | Loading commit data... | |
| Visit.h | Loading commit data... |