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 |
|---|---|---|
| .. | ||
| cgl | Loading commit data... | |
| egl | Loading commit data... | |
| glx | Loading commit data... | |
| wgl | Loading commit data... | |
| BlitGL.cpp | Loading commit data... | |
| BlitGL.h | Loading commit data... | |
| BufferGL.cpp | Loading commit data... | |
| BufferGL.h | Loading commit data... | |
| ClearMultiviewGL.cpp | Loading commit data... | |
| ClearMultiviewGL.h | Loading commit data... | |
| CompilerGL.cpp | Loading commit data... | |
| CompilerGL.h | Loading commit data... | |
| ContextGL.cpp | Loading commit data... | |
| ContextGL.h | Loading commit data... | |
| DispatchTableGL_autogen.cpp | Loading commit data... | |
| DispatchTableGL_autogen.h | Loading commit data... | |
| DisplayGL.cpp | Loading commit data... | |
| DisplayGL.h | Loading commit data... | |
| FeatureSupportGL.md | Loading commit data... | |
| FenceNVGL.cpp | Loading commit data... | |
| FenceNVGL.h | Loading commit data... | |
| FramebufferGL.cpp | Loading commit data... | |
| FramebufferGL.h | Loading commit data... | |
| FunctionsGL.cpp | Loading commit data... | |
| FunctionsGL.h | Loading commit data... | |
| ImageGL.cpp | Loading commit data... | |
| ImageGL.h | Loading commit data... | |
| MemoryObjectGL.cpp | Loading commit data... | |
| MemoryObjectGL.h | Loading commit data... | |
| PathGL.cpp | Loading commit data... | |
| PathGL.h | Loading commit data... | |
| ProgramGL.cpp | Loading commit data... | |
| ProgramGL.h | Loading commit data... | |
| ProgramPipelineGL.cpp | Loading commit data... | |
| ProgramPipelineGL.h | Loading commit data... | |
| QueryGL.cpp | Loading commit data... | |
| QueryGL.h | Loading commit data... | |
| RenderbufferGL.cpp | Loading commit data... | |
| RenderbufferGL.h | Loading commit data... | |
| RendererGL.cpp | Loading commit data... | |
| RendererGL.h | Loading commit data... | |
| SamplerGL.cpp | Loading commit data... | |
| SamplerGL.h | Loading commit data... | |
| SemaphoreGL.cpp | Loading commit data... | |
| SemaphoreGL.h | Loading commit data... | |
| ShaderGL.cpp | Loading commit data... | |
| ShaderGL.h | Loading commit data... | |
| StateManagerGL.cpp | Loading commit data... | |
| StateManagerGL.h | Loading commit data... | |
| SurfaceGL.cpp | Loading commit data... | |
| SurfaceGL.h | Loading commit data... | |
| SyncGL.cpp | Loading commit data... | |
| SyncGL.h | Loading commit data... | |
| TextureGL.cpp | Loading commit data... | |
| TextureGL.h | Loading commit data... | |
| TransformFeedbackGL.cpp | Loading commit data... | |
| TransformFeedbackGL.h | Loading commit data... | |
| VertexArrayGL.cpp | Loading commit data... | |
| VertexArrayGL.h | Loading commit data... | |
| formatutilsgl.cpp | Loading commit data... | |
| formatutilsgl.h | Loading commit data... | |
| functionsgl_enums.h | Loading commit data... | |
| functionsgl_typedefs.h | Loading commit data... | |
| generate_gl_dispatch_table.py | Loading commit data... | |
| gl_bindings_data.json | Loading commit data... | |
| null_functions.cpp | Loading commit data... | |
| null_functions.h | Loading commit data... | |
| renderergl_utils.cpp | Loading commit data... | |
| renderergl_utils.h | Loading commit data... |