New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 800833 link

Starred by 5 users

Issue metadata

Status: WontFix
Owner:
OOO until 2019-01-24
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Webgl2 regression (by comparing to webgl1?)

Reported by steph...@sketchfab.com, Jan 10 2018

Issue description

Steps to reproduce the problem:
On Samsung Galaxy S7 Edge (chrome 63 or canary, we didn't test beta)

Visit https://sketchfab.com/models/109b3c7bfc09474cbd9ba0ddde45e3d6?webgl2=1

What is the expected behavior?
We expect it to be the same as in webgl 1 : https://sketchfab.com/models/109b3c7bfc09474cbd9ba0ddde45e3d6?webgl2=0

What went wrong?
Technical information (if it can be of any help):
Because of skin shading, we are using a screenspace checkboard pattern that alternates one diffuse pixel and specular pixel.

The screen only show specular, so it's likely the shader failed to reconstruct the diffuse part. So, probably a shader driver issue or a texture sampling one.

Did this work before? No 

Does this work in other browsers? N/A

Chrome version: 63.0.3239.132  Channel: stable
OS Version: 7.0
Flash Version:
 
checkboardwrong.png
889 KB View Download
webgl1.jpg
403 KB View Download
webgl2.jpg
770 KB View Download

Comment 1 by zmo@chromium.org, Jan 10 2018

Cc: kbr@chromium.org jdarpinian@chromium.org kainino@chromium.org ericrk@chromium.org
Status: Available (was: Unconfirmed)
I can't reproduce this on my Pixel 2, so it seems a driver specific bug.

Comment 2 by kbr@chromium.org, Jan 10 2018

Labels: Needs-Feedback
Sketchfab folks, can you provide us a small and simple test that highlights the difference between the shader execution on this phone and another one?

We can easily spend all of our time triaging driver bugs like this one. We need your help to isolate where in the shader execution the bug is.

Thanks.

The bug is not really critical for us (as we are still using webgl1, and we only reproduced the bug on samsung s7 Edge webgl2). So we don't want to spend too much time on it.

I couldn't reproduce the issue with shadertoy and couldn't isolate a particular shader part either.
(it's not that easy, because the checkerboarding code is spread along multiple pass : prepassZ forward, shading forward, postprocess SSS extraction, blurring and combining so..)

https://sketchfab.com/models/d4ed1499ecf445c68bf19615d8b0a1c3
^ Probably can't do simpler than that

one way to confirm that the checkerboarding code is working correctly is to write in the "TextureSSSExtract" shader:

    if(gTexCoord.x>0.5) return vec4(diffuse, 0.0);
    return vec4(specular, 0.0);

just after the call to : uncheckerboard(diffuse, specular);

Comment 4 by kbr@chromium.org, Jan 12 2018

Status: ExternalDependency (was: Available)
I can't load any Sketchfab models on the Samsung Galaxy Edge S7. I was prompted to install VR Services which I didn't do and the following error is thrown in the console:

you are using a deprecated api, please update to the new one, read mode xxxx
r.create @ standaloneViewer-3a26e6b45e671417d056.js:1
viewer-65909e90cb2e745da085.js:1 Found a VR display
viewer-65909e90cb2e745da085.js:1 osgjs.metric:ReaderParser.parseSceneGraph: 25.2578125ms
commons-a59785f3c0dc850c6673.js:25 Unhandled rejection TypeError: Cannot read property 'renderHeight' of null
    at D.r.onWorldFactor (https://static.sketchfab.com/static/builds/web/dist/viewer-65909e90cb2e745da085.js:17:1469872)
    at y (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:83598)
    at m (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:83272)
    at h (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:81224)
    at D.r.l.trigger (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:83165)
    at D.r.set (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:85029)
    at D.r.initAfterFirstFrame (https://static.sketchfab.com/static/builds/web/dist/viewer-65909e90cb2e745da085.js:17:1424606)
    at D.finished (https://static.sketchfab.com/static/builds/web/dist/viewer-65909e90cb2e745da085.js:17:1012361)
    at D.r.featureFinished (https://static.sketchfab.com/static/builds/web/dist/viewer-65909e90cb2e745da085.js:17:467829)
    at D.r._launchViewer (https://static.sketchfab.com/static/builds/web/dist/viewer-65909e90cb2e745da085.js:17:465748)
    at o (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:72753)
    at o._settlePromiseFromHandler (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:46149)
    at o._settlePromise (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:46949)
    at o._settlePromise0 (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:47648)
    at o._settlePromises (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:48975)
    at o._fulfill (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:48018)
    at a._resolve (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:52437)
    at a._promiseFulfilled (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:52778)
    at o._settlePromise (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:47050)
    at o._settlePromise0 (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:47648)
    at o._settlePromises (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:48975)
    at i._drainQueue (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:2790)
    at i._drainQueues (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:2851)
    at drainQueues (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:984)
    at MutationObserver.<anonymous> (https://static.sketchfab.com/static/builds/web/dist/commons-a59785f3c0dc850c6673.js:25:62542)

Please make Sketchfab more robust to this scenario.

Comment 5 by kbr@chromium.org, Jan 12 2018

After installing Google VR Services I can't immediately reproduce this. Here is about:gpu from the device. It needs to take an update so I'll report if that breaks it. Please provide the same from either Dev or Canary on an affected device.


Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Enabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
broken_egl_image_ref_counting
clear_uniforms_before_first_program_use
disable_framebuffer_cmaa
disable_program_caching_for_transform_feedback
disable_program_disk_cache
dont_disable_webgl_when_compositor_context_lost
force_cube_map_positive_x_allocation
max_copy_texture_chromium_size_1048576
max_texture_size_limit_4096
multisample_renderbuffer_resize_emulation
scalarize_vec_and_mat_constructor_args
unbind_egl_context_to_flush_driver_caches
use_virtualized_gl_contexts
wake_up_gpu_before_drawing
Problems Detected
Non-virtual contexts on Qualcomm sometimes cause out-of-order frames: 289461
Applied Workarounds: use_virtualized_gl_contexts
The first draw operation from an idle state is slow: 309734
Applied Workarounds: wake_up_gpu_before_drawing
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
glFinish doesn't clear caches on Android: 509727
Applied Workarounds: unbind_egl_context_to_flush_driver_caches
Android Adreno crashes on binding incomplete cube map texture to FBO: 518889
Applied Workarounds: force_cube_map_positive_x_allocation
CHROMIUM_copy_texture with 1MB copy per flush to avoid unwanted cache growth on Adreno: 542478
Applied Workarounds: max_copy_texture_chromium_size_1048576
EGLImage ref counting across EGLContext/threads is broken: 585250
Applied Workarounds: broken_egl_image_ref_counting
Limit max texure size to 4096 on all of Android
Applied Workarounds: max_texture_size_limit_4096
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Program binaries don't contain transform feedback varyings on Qualcomm GPUs: 658074
Applied Workarounds: disable_program_caching_for_transform_feedback
Certain Adreno 4xx and 5xx drivers often crash in glProgramBinary.: 699122
Applied Workarounds: disable_program_disk_cache
Multisampled color renderbuffers can't be resized on Qualcomm 4xx/5xx: 696126
Applied Workarounds: multisample_renderbuffer_resize_emulation
eglSwapBuffers intermittently fails on Android when app goes to background: 744678
Applied Workarounds: dont_disable_webgl_when_compositor_context_lost
glGetQueryObject(GL_QUERY_RESULT_AVAILABLE) blocks unexpectedly on Adreno: 750306, 764526
Applied Workarounds: disable(GL_EXT_disjoint_timer_query), disable(GL_EXT_disjoint_timer_query_webgl2)
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported	2018-01-12T21:30:48.041Z
Chrome version	Chrome/65.0.3316.0
Operating system	Android 7.0
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/70c32f6696eae34c08a202f4edd1dddc6cb0856b/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/70c32f6696eae34c08a202f4edd1dddc6cb0856b/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	47c9888c35ca
2D graphics backend	Skia/65 c0034179a1c43e33d3f2d970450c5cf9a68e471c-
Command Line	--use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --use-mobile-user-agent --enable-pinch --enable-viewport --validate-input-event-stream --enable-longpress-drag-selection --touch-selection-strategy=direction --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --enable-dom-distiller --flag-switches-begin --flag-switches-end
Driver Information
Initialization time	225
In-process GPU	false
Passthrough Command Decoder	false
Direct Composition	false
Supports overlays	false
Sandboxed	false
GPU0	VENDOR = 0x0000 [Qualcomm], DEVICE= 0x0000 [Adreno (TM) 530]
Optimus	false
Optimus	false
AMD switchable	false
Driver vendor	
Driver version	145.0
Driver date	
Pixel shader version	3.20
Vertex shader version	3.20
Max. MSAA samples	4
Machine model name	SM-G935T
Machine model version	
GL_VENDOR	Qualcomm
GL_RENDERER	Adreno (TM) 530
GL_VERSION	OpenGL ES 3.2 V@145.0 (GIT@I86b60582e4)
GL_EXTENSIONS	GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_OES_texture_compression_astc GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_OES_element_index_uint GL_EXT_copy_image GL_EXT_geometry_shader GL_EXT_tessellation_shader GL_OES_texture_stencil8 GL_EXT_shader_io_blocks GL_OES_shader_image_atomic GL_OES_sample_variables GL_EXT_texture_border_clamp GL_EXT_multisampled_render_to_texture GL_OES_shader_multisample_interpolation GL_EXT_texture_cube_map_array GL_EXT_draw_buffers_indexed GL_EXT_gpu_shader5 GL_EXT_robustness GL_EXT_texture_buffer GL_EXT_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_texture_storage_multisample_2d_array GL_OES_sample_shading GL_OES_get_program_binary GL_EXT_debug_label GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_QCOM_tiled_rendering GL_ANDROID_extension_pack_es31a GL_EXT_primitive_bounding_box GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_disjoint_timer_query GL_KHR_debug GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_texture_norm16 GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_OVR_multiview GL_OVR_multiview2 GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_OVR_multiview_multisampled_render_to_texture GL_EXT_buffer_storage GL_EXT_blit_framebuffer_params GL_EXT_clip_cull_distance GL_EXT_protected_textures GL_EXT_shader_non_constant_global_initializers
Disabled Extensions	GL_EXT_disjoint_timer_query GL_EXT_disjoint_timer_query_webgl2 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x8252
GPU process crash count	0
Compositor Information
Tile Update Mode	One-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRX_1010102	Software only
BGRA_8888	Software only
RGBA_F16	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Display(s) Information
Info	Display[0] bounds=0,0 360x640, workarea=0,0 360x640, scale=3, external
Color space information	{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component	8
Bits per pixel	24
Video Acceleration Information
Decode vp8	up to 3840x2160 pixels
Decode vp8	up to 3840x2160 pixels (encrypted)
Decode vp9 profile0	up to 3840x2160 pixels
Decode vp9 profile0	up to 3840x2160 pixels (encrypted)
Decode vp9 profile1	up to 3840x2160 pixels
Decode vp9 profile1	up to 3840x2160 pixels (encrypted)
Decode vp9 profile2	up to 3840x2160 pixels
Decode vp9 profile2	up to 3840x2160 pixels (encrypted)
Decode vp9 profile3	up to 3840x2160 pixels
Decode vp9 profile3	up to 3840x2160 pixels (encrypted)
Decode h264 baseline	up to 3840x2160 pixels
Decode h264 main	up to 3840x2160 pixels
Decode h264 extended	up to 3840x2160 pixels
Decode h264 high	up to 3840x2160 pixels
Decode h264 high 10	up to 3840x2160 pixels
Decode h264 high 4:2:2	up to 3840x2160 pixels
Decode h264 high 4:4:4 predictive	up to 3840x2160 pixels
Decode h264 scalable baseline	up to 3840x2160 pixels
Decode h264 scalable high	up to 3840x2160 pixels
Decode h264 stereo high	up to 3840x2160 pixels
Decode h264 multiview high	up to 3840x2160 pixels
Encode vp8	up to 1280x720 pixels and/or 30.000 fps
Encode h264 baseline	up to 1280x720 pixels and/or 30.000 fps

Comment 6 by kbr@chromium.org, Jan 12 2018

Sorry, still no repro after software update.

I think there may be multiple models of the S7 with different GPU types (Qualcomm vs. ARM). Please provide your about:gpu.


Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Enabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
broken_egl_image_ref_counting
clear_uniforms_before_first_program_use
disable_framebuffer_cmaa
disable_program_caching_for_transform_feedback
disable_program_disk_cache
dont_disable_webgl_when_compositor_context_lost
force_cube_map_positive_x_allocation
max_copy_texture_chromium_size_1048576
max_texture_size_limit_4096
multisample_renderbuffer_resize_emulation
scalarize_vec_and_mat_constructor_args
unbind_egl_context_to_flush_driver_caches
use_virtualized_gl_contexts
wake_up_gpu_before_drawing
Problems Detected
Non-virtual contexts on Qualcomm sometimes cause out-of-order frames: 289461
Applied Workarounds: use_virtualized_gl_contexts
The first draw operation from an idle state is slow: 309734
Applied Workarounds: wake_up_gpu_before_drawing
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
glFinish doesn't clear caches on Android: 509727
Applied Workarounds: unbind_egl_context_to_flush_driver_caches
Android Adreno crashes on binding incomplete cube map texture to FBO: 518889
Applied Workarounds: force_cube_map_positive_x_allocation
CHROMIUM_copy_texture with 1MB copy per flush to avoid unwanted cache growth on Adreno: 542478
Applied Workarounds: max_copy_texture_chromium_size_1048576
EGLImage ref counting across EGLContext/threads is broken: 585250
Applied Workarounds: broken_egl_image_ref_counting
Limit max texure size to 4096 on all of Android
Applied Workarounds: max_texture_size_limit_4096
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Program binaries don't contain transform feedback varyings on Qualcomm GPUs: 658074
Applied Workarounds: disable_program_caching_for_transform_feedback
Certain Adreno 4xx and 5xx drivers often crash in glProgramBinary.: 699122
Applied Workarounds: disable_program_disk_cache
Multisampled color renderbuffers can't be resized on Qualcomm 4xx/5xx: 696126
Applied Workarounds: multisample_renderbuffer_resize_emulation
eglSwapBuffers intermittently fails on Android when app goes to background: 744678
Applied Workarounds: dont_disable_webgl_when_compositor_context_lost
glGetQueryObject(GL_QUERY_RESULT_AVAILABLE) blocks unexpectedly on Adreno: 750306, 764526
Applied Workarounds: disable(GL_EXT_disjoint_timer_query), disable(GL_EXT_disjoint_timer_query_webgl2)
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Version Information
Data exported	2018-01-12T21:43:57.138Z
Chrome version	Chrome/65.0.3316.0
Operating system	Android 7.0
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/70c32f6696eae34c08a202f4edd1dddc6cb0856b/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/70c32f6696eae34c08a202f4edd1dddc6cb0856b/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	47c9888c35ca
2D graphics backend	Skia/65 c0034179a1c43e33d3f2d970450c5cf9a68e471c-
Command Line	--use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --use-mobile-user-agent --enable-pinch --enable-viewport --validate-input-event-stream --enable-longpress-drag-selection --touch-selection-strategy=direction --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --enable-dom-distiller --flag-switches-begin --flag-switches-end --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5
Driver Information
Initialization time	1003
In-process GPU	false
Passthrough Command Decoder	false
Direct Composition	false
Supports overlays	false
Sandboxed	false
GPU0	VENDOR = 0x0000 [Qualcomm], DEVICE= 0x0000 [Adreno (TM) 530]
Optimus	false
Optimus	false
AMD switchable	false
Driver vendor	
Driver version	145.0
Driver date	
Pixel shader version	3.20
Vertex shader version	3.20
Max. MSAA samples	4
Machine model name	SM-G935T
Machine model version	
GL_VENDOR	Qualcomm
GL_RENDERER	Adreno (TM) 530
GL_VERSION	OpenGL ES 3.2 V@145.0 (GIT@I86b60582e4)
GL_EXTENSIONS	GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_OES_texture_compression_astc GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_OES_element_index_uint GL_EXT_copy_image GL_EXT_geometry_shader GL_EXT_tessellation_shader GL_OES_texture_stencil8 GL_EXT_shader_io_blocks GL_OES_shader_image_atomic GL_OES_sample_variables GL_EXT_texture_border_clamp GL_EXT_multisampled_render_to_texture GL_OES_shader_multisample_interpolation GL_EXT_texture_cube_map_array GL_EXT_draw_buffers_indexed GL_EXT_gpu_shader5 GL_EXT_robustness GL_EXT_texture_buffer GL_EXT_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_OES_texture_storage_multisample_2d_array GL_OES_sample_shading GL_OES_get_program_binary GL_EXT_debug_label GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_QCOM_tiled_rendering GL_ANDROID_extension_pack_es31a GL_EXT_primitive_bounding_box GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_disjoint_timer_query GL_KHR_debug GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_texture_norm16 GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_OVR_multiview GL_OVR_multiview2 GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_OVR_multiview_multisampled_render_to_texture GL_EXT_buffer_storage GL_EXT_blit_framebuffer_params GL_EXT_clip_cull_distance GL_EXT_protected_textures GL_EXT_shader_non_constant_global_initializers
Disabled Extensions	GL_EXT_disjoint_timer_query GL_EXT_disjoint_timer_query_webgl2 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x8252
GPU process crash count	0
Compositor Information
Tile Update Mode	One-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRX_1010102	Software only
BGRA_8888	Software only
RGBA_F16	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Display(s) Information
Info	Display[0] bounds=0,0 360x640, workarea=0,0 360x640, scale=3, external
Color space information	{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component	8
Bits per pixel	24
Video Acceleration Information
Decode vp8	up to 3840x2160 pixels
Decode vp8	up to 3840x2160 pixels (encrypted)
Decode vp9 profile0	up to 3840x2160 pixels
Decode vp9 profile0	up to 3840x2160 pixels (encrypted)
Decode vp9 profile1	up to 3840x2160 pixels
Decode vp9 profile1	up to 3840x2160 pixels (encrypted)
Decode vp9 profile2	up to 3840x2160 pixels
Decode vp9 profile2	up to 3840x2160 pixels (encrypted)
Decode vp9 profile3	up to 3840x2160 pixels
Decode vp9 profile3	up to 3840x2160 pixels (encrypted)
Decode h264 baseline	up to 3840x2160 pixels
Decode h264 main	up to 3840x2160 pixels
Decode h264 extended	up to 3840x2160 pixels
Decode h264 high	up to 3840x2160 pixels
Decode h264 high 10	up to 3840x2160 pixels
Decode h264 high 4:2:2	up to 3840x2160 pixels
Decode h264 high 4:4:4 predictive	up to 3840x2160 pixels
Decode h264 scalable baseline	up to 3840x2160 pixels
Decode h264 scalable high	up to 3840x2160 pixels
Decode h264 stereo high	up to 3840x2160 pixels
Decode h264 multiview high	up to 3840x2160 pixels
Encode vp8	up to 1280x720 pixels and/or 30.000 fps
Encode h264 baseline	up to 1280x720 pixels and/or 30.000 fps

Comment 7 by kbr@chromium.org, Jan 12 2018

FYI, screenshot on this device.

Screenshot_20180112-144328.png
1.3 MB View Download
Sorry for the delay, I was on holiday.

On the mobile devices we tested, models were loading fine without VR services (maybe a gearvr or s7 specific thing, we'll try to fix that).

Here's the about:gpu on the faulty device:

Graphics Feature Status
Canvas: Hardware accelerated
CheckerImaging: Disabled
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
disable_framebuffer_cmaa
dont_disable_webgl_when_compositor_context_lost
max_texture_size_limit_4096
scalarize_vec_and_mat_constructor_args
use_client_side_arrays_for_stream_buffers
use_virtualized_gl_contexts
Problems Detected
ARM driver doesn't like uploading lots of buffer data constantly
Applied Workarounds: use_client_side_arrays_for_stream_buffers
The Mali-Txxx driver does not guarantee flush ordering: 154715, 10068, 269829, 294779, 285292
Applied Workarounds: use_virtualized_gl_contexts
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Limit max texure size to 4096 on all of Android
Applied Workarounds: max_texture_size_limit_4096
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
eglSwapBuffers intermittently fails on Android when app goes to background: 744678
Applied Workarounds: dont_disable_webgl_when_compositor_context_lost
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Checker-imaging has been disabled via finch trial or the command line.
Disabled Features: checker_imaging
Version Information
Data exported   30/01/2018 à 15:34:08
Chrome version  Chrome/63.0.3239.111
Operating system    Android 7.0
Software rendering list version 13.13
Driver bug list version 10.34
ANGLE commit id 2ff870db3a3b
2D graphics backend Skia/63 dbae7001c9805fb0a4b18fd0cbc889941cb39db4-
Command Line    --use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --use-mobile-user-agent --enable-pinch --enable-viewport --validate-input-event-stream --enable-longpress-drag-selection --touch-selection-strategy=direction --disable-gpu-process-crash-limit --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --ui-prioritize-in-gpu-process --enable-dom-distiller --flag-switches-begin --flag-switches-end
Driver Information
Initialization time 323
In-process GPU  false
Passthrough Command Decoder false
Supports overlays   false
Sandboxed   false
GPU0    VENDOR = 0x0000 [ARM], DEVICE= 0x0000 [Mali-T880]
Optimus false
Optimus false
AMD switchable  false
Driver vendor   
Driver version  1.
Driver date 
Pixel shader version    3.20
Vertex shader version   3.20
Max. MSAA samples   16
Machine model name  SM-G935F
Machine model version   
GL_VENDOR   ARM
GL_RENDERER Mali-T880
GL_VERSION  OpenGL ES 3.2 v1.r12p1-03dev0.228ab63cced004f840e7dd47b762a1d0
GL_EXTENSIONS   GL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_protected_textures
Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Window system binding vendor    
Window system binding version   
Window system binding extensions    
Direct rendering    Yes
Reset notification strategy 0x8252
GPU process crash count 0
Compositor Information
Tile Update Mode    One-copy
Partial Raster  Enabled
GpuMemoryBuffers Status
ATC Software only
ATCIA   Software only
DXT1    Software only
DXT5    Software only
ETC1    Software only
R_8 Software only
R_16    Software only
RG_88   Software only
BGR_565 Software only
RGBA_4444   Software only
RGBX_8888   Software only
RGBA_8888   Software only
BGRX_8888   Software only
BGRA_8888   Software only
RGBA_F16    Software only
YVU_420 Software only
YUV_420_BIPLANAR    Software only
UYVY_422    Software only
Display(s) Information
Info    Display[0] bounds=0,0 360x640, workarea=0,0 360x640, scale=3, external
Color space information {primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL, icc_profile_id:0}
Bits per color component    8
Bits per pixel  32

Comment 9 by kbr@chromium.org, Jan 31 2018

Owner: kbr@chromium.org
Status: WontFix (was: ExternalDependency)
Yup, I figured it was ARM rather than Qualcomm.

Sorry, but I don't think we are going to get to this. We have too many bug reports to try to reduce each one. If you come up with a small test case, we will happily integrate it into the WebGL conformance suite.

Sign in to add a comment