Three.js: Textures are extremely washed out

Created on 13 Sep 2016  Â·  49Comments  Â·  Source: mrdoob/three.js

Description of the problem

Textures are not appearing correctly. They are extremely light. This demo (http://threejs.org/examples/?q=texture#webgl_materials_texture_tga) looks like this:

image

Three.js version
  • [x ] r79

    Browser
  • [x] Chrome v53

    OS
  • [x] Mac OS X - El Capitan

Most helpful comment

@kenrussell Updating... with --disable-features=WebGLImageChromium, Chrome 56.0.2924.87 appears to render correctly on AMD Radeon HD 6750M

renderer = new THREE.WebGLRenderer( { antialias: true, alpha: false } );

However, without the flag, the scene is either washed out or completely white.

All 49 comments

What hardware is that on?

On my iMac with OS X 10.11.6, AMD Radeon R9 M295X and Chrome 53.0.2785.113 the demo looks good.

image

The hardware specs are as follows:
iMac (21.5-inch, Mid 2011)
Processor 2.5 GHz Intel Core i5
Memory 16 GB 1333 MHz DDR3
Graphics AMD Radeon HD 6750M 512 MB

Sorry for being so slow to respond. The person who is experiencing this issue is a different location from myself so it is taking extra time to collaborate.

@DavidWiebe Are there any error messages or warnings in the browser console?

@DavidWiebe does the machine have the latest graphic card drivers installed?

@Mugen87 I don't believe there is anything in the console. The user that was experiencing this issue has downgraded their version of Chrome to 51 which works for them at this point. I'm looking for a machine where I can reproduce this issue to debug it further.

@mrdoob, yes the machine is fully up to date with all updates provided by Apple.

@kenrussell rings a bell?

@mrdoob do you think this is the same problem that we saw with your stereo sample?

@DavidWiebe could you ask the user to test with Chrome Canary? It looks like there was a bug in Chrome 53 related to WebGL contexts created with { alpha: false }, which has since been fixed. We don't have the exact same hardware in house to test with.

@mrdoob do you think this is the same problem that we saw with your stereo sample?

I don't think it's related no. I can't replicate here at least.

@kenrussell, this issue is also present on Chrome Canary (v54).

Sorry, I can't reproduce on an older Mac Pro with GPU of similar vintage to yours. Here's about:gpu from my Chrome Canary instance. Canary is version 55 at this point FYI.

Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Hardware accelerated
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
Driver Bug Workarounds
disable_framebuffer_cmaa
disable_multimonitor_multisampling
get_frag_data_info_bug
pack_parameters_workaround_with_pack_buffer
regenerate_struct_names
scalarize_vec_and_mat_constructor_args
set_zero_level_before_generating_mipmap
unfold_short_circuit_as_ternary_operation
unpack_alignment_workaround_with_unpack_buffer
use_intermediary_for_copy_texture_image
use_shadowed_tex_level_params
Problems Detected
Multisampling is buggy on OSX when multiple monitors are connected: 237931
Applied Workarounds: disable_multimonitor_multisampling
Unfold short circuit on Mac OS X: 307751
Applied Workarounds: unfold_short_circuit_as_ternary_operation
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Mac drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499
Applied Workarounds: set_zero_level_before_generating_mipmap
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777
Applied Workarounds: use_intermediary_for_copy_texture_image
Mac Drivers store texture level parameters on int16_t that overflow: 610153
Applied Workarounds: use_shadowed_tex_level_params
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
glGetFragData{Location|Index} works incorrectly on Max: 638340
Applied Workarounds: get_frag_data_info_bug
Version Information
Data exported 9/16/2016, 1:53:23 PM
Chrome version Chrome/55.0.2862.0
Operating system Mac OS X 10.11.6
Software rendering list version 11.13
Driver bug list version 8.98
ANGLE commit id 09cfac606ef5
2D graphics backend Skia/55 262052c9261a567f937ae05ade11ea7a3d280f4c
Command Line Args Chrome Canary.app/Contents/MacOS/Google Chrome Canary --flag-switches-begin --enable-nacl --flag-switches-end
Driver Information
Initialization time 50
In-process GPU false
Sandboxed true
GPU0 VENDOR = 0x1002, DEVICE= 0x679a _ACTIVE_
Optimus false
AMD switchable false
Driver vendor
Driver version 1.42.15
Driver date
Pixel shader version 4.10
Vertex shader version 4.10
Max. MSAA samples 8
Machine model name MacPro
Machine model version 5.1
GL_VENDOR ATI Technologies Inc.
GL_RENDERER AMD Radeon HD 7950 OpenGL Engine
GL_VERSION 4.1 ATI-1.42.15
GL_EXTENSIONS GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_bounds_test GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
Disabled Extensions
Window system binding vendor
Window system binding version
Window system binding extensions
Direct rendering Yes
Reset notification strategy 0x0000
GPU process crash count 0
Compositor Information
Tile Update Mode Zero-copy
Partial Raster Enabled
GpuMemoryBuffers Status
ATC Software only
ATCIA Software only
DXT1 Software only
DXT5 Software only
ETC1 Software only
R_8 GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
BGR_565 Software only
RGBA_4444 Software only
RGBX_8888 Software only
RGBA_8888 GPU_READ, SCANOUT
BGRX_8888 GPU_READ, SCANOUT
BGRA_8888 GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420 Software only
YUV_420_BIPLANAR GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422 GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT

You're right, the version that was last tested and still not working is version 55:

chrome://version/

Google Chrome  55.0.2862.0 (Official Build) canary (64-bit)
Revision  d29bb8a29d313a1939b297c45b39560ff22a89cb-refs/heads/master@{#419063}
OS  Mac OS X
JavaScript  V8 5.5.216
Flash  23.0.0.162
User Agent  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2862.0 Safari/537.36
Command Line  /Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary --flag-switches-begin --flag-switches-end
Executable Path  /Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary
Profile Path  /Users/joshnielsen/Library/Application Support/Google/Chrome Canary/Default
Variations  6a89113b-30be434a

chrome://gpu/

Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Software only, hardware acceleration unavailable
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
Driver Bug Workarounds
disable_framebuffer_cmaa
disable_multimonitor_multisampling
get_frag_data_info_bug
pack_parameters_workaround_with_pack_buffer
regenerate_struct_names
scalarize_vec_and_mat_constructor_args
set_zero_level_before_generating_mipmap
unfold_short_circuit_as_ternary_operation
unpack_alignment_workaround_with_unpack_buffer
use_intermediary_for_copy_texture_image
use_shadowed_tex_level_params
Problems Detected
Some GPUs on Mac can perform poorly with GPU rasterization. Disable all known AMD GPUs other than the R200, R300, and D series, which have been tested.: 613272, 614468
Disabled Features: gpu_rasterization
Multisampling is buggy on OSX when multiple monitors are connected: 237931
Applied Workarounds: disable_multimonitor_multisampling
Unfold short circuit on Mac OS X: 307751
Applied Workarounds: unfold_short_circuit_as_ternary_operation
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Mac drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499
Applied Workarounds: set_zero_level_before_generating_mipmap
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777
Applied Workarounds: use_intermediary_for_copy_texture_image
Mac Drivers store texture level parameters on int16_t that overflow: 610153
Applied Workarounds: use_shadowed_tex_level_params
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
glGetFragData{Location|Index} works incorrectly on Max: 638340
Applied Workarounds: get_frag_data_info_bug
Version Information
Data exported  9/16/2016, 3:39:27 PM
Chrome version  Chrome/55.0.2862.0
Operating system  Mac OS X 10.11.6
Software rendering list version  11.13
Driver bug list version  8.98
ANGLE commit id  09cfac606ef5
2D graphics backend  Skia/55 262052c9261a567f937ae05ade11ea7a3d280f4c
Command Line Args  Chrome Canary.app/Contents/MacOS/Google Chrome Canary --flag-switches-begin --flag-switches-end
Driver Information
Initialization time  64
In-process GPU  false
Sandboxed  true
GPU0  VENDOR = 0x1002, DEVICE= 0x6741 _ACTIVE_
Optimus  false
AMD switchable  false
Driver vendor  
Driver version  1.42.15
Driver date  
Pixel shader version  4.10
Vertex shader version  4.10
Max. MSAA samples  8
Machine model name  iMac
Machine model version  12.1
GL_VENDOR  ATI Technologies Inc.
GL_RENDERER  AMD Radeon HD 6750M OpenGL Engine
GL_VERSION  4.1 ATI-1.42.15
GL_EXTENSIONS  GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
Disabled Extensions  
Window system binding vendor  
Window system binding version  
Window system binding extensions  
Direct rendering  Yes
Reset notification strategy  0x0000
GPU process crash count  0
Compositor Information
Tile Update Mode  Zero-copy
Partial Raster  Enabled
GpuMemoryBuffers Status
ATC  Software only
ATCIA  Software only
DXT1  Software only
DXT5  Software only
ETC1  Software only
R_8  GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
BGR_565  Software only
RGBA_4444  Software only
RGBX_8888  Software only
RGBA_8888  GPU_READ, SCANOUT
BGRX_8888  GPU_READ, SCANOUT
BGRA_8888  GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420  Software only
YUV_420_BIPLANAR  GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422  GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT

@DavidWiebe are you saying that Chrome 55 renders this sample correctly on the user's machine with the AMD Radeon HD 6750M? I just tested Chrome 53 (I didn't test beta, i.e., Chrome 54) and it's working fine on the machine above which has an AMD Radeon HD 7950.

Just updated Chrome and started to experience this issue. This occurs for me with Chrome 53 using AMD Radeon HD 6750M. Doesn't occur with Safari or Firefox. Also doesn't seem to occur when using Three.js r62 or below but happens with r63 and up. Didn't have time yet to see what's the difference.

EDIT: r63 sets alpha to false by default and the bug is with alpha being false.

I can confirm that with AMD Radeon HD 6750M and Chrome 53, the error occurs when the renderer is instantiated with antialias set to true, and alpha set to false.

The washout is the renderer's canvas being composited with the CSS background-color, which in the referenced example, is white.

@kenrussell, sorry for not being clear. The user who is experiencing this problem is still experiencing the problem on Chrome 55. They have downgraded to Chrome 51 which does not have this problem.

As soon as I have time, I will test @WestLangley's suggestion and instantiate the renderer with alpha set to true.

As soon as I have time, I will test @WestLangley's suggestion and instantiate the renderer with alpha set to true.

As I said, I believe the problem occurs when antialias is set to true, and alpha is set to false.

Yes, I do suspect that the problem is with canvases created with the "alpha:false" context creation attribute.

Could you try launching Chrome Canary from the Terminal with the following command line argument?

/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --disable-features=WebGLImageChromium

(You'll need to shut down any running Canary instance.)

Does that change the behavior? (We don't have this hardware in house to test with)

Could you try launching Chrome Canary from the Terminal with the following command line argument?

/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --disable-features=WebGLImageChromium

Done. The behavior does appear to be correct on AMD Radeon HD 6750M when antialias: true, alpha: false.

Thanks for confirming. I've filed http://crbug.com/648466 about this problem. We'll appreciate your help testing a fix. In the meantime, please use that command-line argument as a workaround.

In the meantime, please use that command-line argument as a workaround.

@kenrussell Actually, the behavior appears correct for me with Version 55.0.2865.0 canary (64-bit) _without the flags_.

Also, as I have tried to make clear, the problem does not occur when antialias: false -- only when antialias: true.

Perhaps the OP is getting different results.

@WestLangley OK, thanks for confirming. It wasn't clear whether you'd tested with Chrome 55.

If things are working in Chrome 55 then this is a bug that's already been fixed. I've closed http://crbug.com/648466 .

Thanks for the help. I can confirm that setting alpha to true has fixed my problems.

@WestLangley do you think you could test with Chrome 54 (beta)? I would like to know whether we need to merge a bug fix back to that release.

You can test easily by downloading it, putting it in a temporary folder, and launching it from the Terminal:

./Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=/tmp/t1

This will prevent it interfering with your normal Chrome installation.

@kenrussell The bug appears to be present with Version 54.0.2840.34 beta (64-bit).

@WestLangley thanks for the feedback; I reopened http://crbug.com/648466 .

@kenrussell Another example is http://threejs.org/examples/webgl_loader_md2_control.html where the offending line is

renderer = new THREE.WebGLRenderer( { antialias: true } ); // renders washed out
renderer = new THREE.WebGLRenderer( { antialias: false } ); // renders normally

@WestLangley OK, thanks for the information.

It would be really helpful if you could confirm that launching Chrome 54 from the Terminal with the command line flag:
--disable-features=WebGLImageChromium

makes it render correctly in all cases.

@kenrussell Yes, with --disable-features=WebGLImageChromium, Chrome 54 appears to render correctly on AMD Radeon HD 6750M in all four cases.

renderer = new THREE.WebGLRenderer( { antialias: true, alpha: false } );

@WestLangley thanks for the information.

Do you think you could run the test case from http://crbug.com/649053 with Chrome 55 (Canary) on your machine and tell me whether it works there? I'm trying to understand whether there are still bugs in this area in Chrome 55. Thanks. Unfortunately we don't have this hardware in house.

Do you think you could run the test case from http://crbug.com/649053 with Chrome 55 (Canary)

@kenrussell With Version 55.0.2868.0 canary (64-bit), the test case https://studio.cospaces.io/Gallery/HmyPtaX2mjZ.Cg6Rw5p78kU appears to render correctly and resize normally on AMD Radeon HD 6750M.

With Version 53.0.2785.116 (64-bit), the same test case turns _white_ (not black) when resizing on AMD Radeon HD 6750M.

The three.js examples also have the resizing problem in version 53. They appear to render correctly when resizing on 55.

FYI I'm also experiencing this problem.

Chrome version Chrome/55.0.2883.95
Chrome version Chrome/57.0.2978.0
Operating system Mac OS X 10.11.2
AMD Radeon HD 6770M

Screenshot: https://www.dropbox.com/s/preas21cn998xr9/Screenshot%202017-01-11%2015.44.58.png?dl=0

It only happens when antialias: true AND alpha: false , changing alpha to true makes it look normal again.

Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Rasterization: Software only, hardware acceleration unavailable
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
VPx Video Decode: Hardware accelerated
WebGL: Hardware accelerated
Driver Bug Workarounds
disable_framebuffer_cmaa
disable_multimonitor_multisampling
get_frag_data_info_bug
pack_parameters_workaround_with_pack_buffer
regenerate_struct_names
scalarize_vec_and_mat_constructor_args
set_zero_level_before_generating_mipmap
unfold_short_circuit_as_ternary_operation
unpack_alignment_workaround_with_unpack_buffer
use_intermediary_for_copy_texture_image
use_shadowed_tex_level_params
Problems Detected
Some GPUs on Mac can perform poorly with GPU rasterization. Disable all known Intel GPUs other than Intel 6th and 7th Generation cards, which have been tested.: 613272, 614468
Disabled Features: gpu_rasterization
Some GPUs on Mac can perform poorly with GPU rasterization. Disable all known AMD GPUs other than the R200, R300, and D series, which have been tested.: 613272, 614468
Disabled Features: gpu_rasterization
Multisampling is buggy on OSX when multiple monitors are connected: 237931
Applied Workarounds: disable_multimonitor_multisampling
Unfold short circuit on Mac OS X: 307751
Applied Workarounds: unfold_short_circuit_as_ternary_operation
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Mac drivers handle struct scopes incorrectly: 403957
Applied Workarounds: regenerate_struct_names
glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499
Applied Workarounds: set_zero_level_before_generating_mipmap
Pack parameters work incorrectly with pack buffer bound: 563714
Applied Workarounds: pack_parameters_workaround_with_pack_buffer
Alignment works incorrectly with unpack buffer bound: 563714
Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer
copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777
Applied Workarounds: use_intermediary_for_copy_texture_image
Mac Drivers store texture level parameters on int16_t that overflow: 610153
Applied Workarounds: use_shadowed_tex_level_params
Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198
Applied Workarounds: disable_framebuffer_cmaa
glGetFragData{Location|Index} works incorrectly on Max: 638340
Applied Workarounds: get_frag_data_info_bug
Version Information
Data exported   1/11/2017, 3:34:40 PM
Chrome version  Chrome/55.0.2883.95
Operating system    Mac OS X 10.11.2
Software rendering list version 11.17
Driver bug list version 9.15
ANGLE commit id 4d208abb1926
2D graphics backend Skia/55 d1740f81c843c65acd58d1b571ce94b90fee99d0
Command Line Args   Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --flag-switches-end
Driver Information
Initialization time 31
In-process GPU  false
Sandboxed   true
GPU0    VENDOR = 0x1002, DEVICE= 0x6740 *ACTIVE*
GPU1    VENDOR = 0x8086, DEVICE= 0x0126
Optimus false
AMD switchable  true
Driver vendor   
Driver version  1.40.15
Driver date 
Pixel shader version    4.10
Vertex shader version   4.10
Max. MSAA samples   8
Machine model name  MacBookPro
Machine model version   8.3
GL_VENDOR   ATI Technologies Inc.
GL_RENDERER AMD Radeon HD 6770M OpenGL Engine
GL_VERSION  4.1 ATI-1.40.15
GL_EXTENSIONS   GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier
Disabled Extensions 
Window system binding vendor    
Window system binding version   
Window system binding extensions    
Direct rendering    Yes
Reset notification strategy 0x0000
GPU process crash count 0
Compositor Information
Tile Update Mode    Zero-copy
Partial Raster  Enabled
GpuMemoryBuffers Status
ATC Software only
ATCIA   Software only
DXT1    Software only
DXT5    Software only
ETC1    Software only
R_8 GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
RG_88   Software only
BGR_565 Software only
RGBA_4444   Software only
RGBX_8888   Software only
RGBA_8888   GPU_READ, SCANOUT
BGRX_8888   GPU_READ, SCANOUT
BGRA_8888   GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
YVU_420 Software only
YUV_420_BIPLANAR    GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
UYVY_422    GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT

@ffdead filed http://crbug.com/680154 about making the workaround apply to your machine.

You can launch Chrome from the command line with the argument --disable_multisampling_color_mask_usage to work around the problem, for example by quitting Chrome and running from the Terminal:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable_multisampling_color_mask_usage

thanks @kenrussell I can confirm that using the flag fixes the issue for me

@kenrussell Updating... with --disable-features=WebGLImageChromium, Chrome 56.0.2924.87 appears to render correctly on AMD Radeon HD 6750M

renderer = new THREE.WebGLRenderer( { antialias: true, alpha: false } );

However, without the flag, the scene is either washed out or completely white.

@WestLangley please file a new bug on crbug.com/ including about:gpu and send me the bug ID. Thanks.

Same issue here with HD 6770M. Seems like the old flag --disable_multisampling_color_mask_usage stopped fixing the issue so thanks for providing a new workaround @WestLangley !

@kenrussell Thanks. 690959.

@ffdead The problem appears to be fixed in Chrome Beta (57) -- at least for HD 6750M. How about your device?

@WestLangley I still have the same problem in both beta & canary
Version 57.0.2987.37 beta (64-bit)
Version 58.0.3011.0 canary (64-bit)

@ffdead Let's see what @kenrussell suggests. He has been extremely helpful.

Ref: https://bugs.chromium.org/p/chromium/issues/detail?id=680154

@WestLangley @ffdead it looks like we did in fact accidentally break this in Chrome 56 and that it's fixed in Chrome 57. If this had been caught earlier in Chrome 56's release cycle, we could have fixed it, but at this point only critical security fixes will be accepted into Chrome 56. I encourage you and other developers to run with Chrome's early access branches like Beta, Dev and Canary and report bugs that you find. (It's a problem that these can't be simultaneously installed on Windows and macOS, but this is being worked on.)

Sorry about the regression.

(@ffdead I need to fix http://crbug.com/680154 and have taken it.)

@kenrussell not sure where to report this but this problem just got worse for me. Now WebGL does not work at all for me in Chrome Beta or Chrome Canary (Version 58.0.3029.0 canary (64-bit).

THREE.WebGLRenderer: Error creating WebGL context.
https://www.dropbox.com/s/rnnw4d2zjokxlj1/Screenshot%202017-03-03%2015.14.35.png?dl=0

I found a similar bug here:
https://bugs.chromium.org/p/chromium/issues/detail?id=574659&q=THREE.WebGLRenderer%3A%20Error%20creating%20WebGL%20context.&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified

@ffdead I just realized that Chrome has also blacklisted the Intel HD 3000 GPU which is likely in your dual-GPU laptop. That particular GPU was causing a lot of crashes. Sorry, but we are not going to revisit that decision. It's been discussed at great length.

The only workaround for this would be to run Chrome from the Terminal with the command line argument --ignore-gpu-blacklist, but this is not a good solution because the rest of the blacklist entries will be ignored. You would have to put them back in one by one (i.e., --disable_multisampling_color_mask_usage).

Sorry. I really recommend that you upgrade your machine at this point or switch to Firefox.

Thanks @kenrussell - I guess it's time to upgrade. I'm in the middle of a big WebGL project at the moment, is there any way to disable automatic updates in Chrome and stay on v56 until I have new hardware?

@ffdead I'm sorry about that. Launch Chrome from the command line with --ignore-gpu-blacklist --disable_multisampling_color_mask_usage (and possibly the names of other workarounds from about:gpu) and that should get you going again.

@kenrussell Kind of related question...

When Chrome Rats!-WebGL-hit-a-snags, how do we re-enable it if we don't click the Reload button by mistake?

If you just reload the page, the next attempt to create a WebGL context will bring up the "Rats" infobar again, and you'll have the chance to click its "Reload" button and re-enable WebGL for that domain.

The UI for this will be changing soon in http://crbug.com/575305 .

Was this page helpful?
0 / 5 - 0 ratings

Related issues

boyravikumar picture boyravikumar  Â·  3Comments

alexprut picture alexprut  Â·  3Comments

zsitro picture zsitro  Â·  3Comments

ghost picture ghost  Â·  3Comments

clawconduce picture clawconduce  Â·  3Comments