Bug in sampling of seamless integer cube map textures on Intel GPUs on macOS |
|||||
Issue descriptionIf a cube map texture is allocated with one of the integer internal formats supported in OpenGL 4.1, and seamless cube maps are enabled, then on Intel GPUs on Mac OS, the sampling of one of the texels (apparently the upper right -- texture coordinates (s, t) = (1, 1)) is black. It appears there is a singularity in the texture interpolation. This affects Chrome's WebGL 2.0 implementation, which exposes OpenGL ES 3.0 functionality, and which includes these texture formats. The attached test exercises the 8-bit unsigned integer formats, but it is likely that the 16- and 32-bit formats are also affected, as well as the signed variants. Steps to reproduce: 1. Install Chrome Canary on a MacBook Air with Intel GPU. 2. Launch from the Terminal with the following arguments: /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --user-data-dir=/tmp/t1 --enable-unsafe-es3-apis --allow-file-access-from-files 3. Navigate to the attached test case (.../integer-cubemap-texture-sampling/integer-cubemap-texture-sampling.html). Expected results: All tests should pass, as they do for example on a MacBook Pro with discrete NVIDIA or AMD GPU. Actual results: The tests all fail. The upper-right quadrant of each failing image is black, which is the result from sampling that texel. Configuration Happens on all Macs with Intel GPUs (and no discrete GPU). OS X Version/Build OS X 10.11.5 (15F34) Filed as Radar 27231650. Marking ExternalDependency -- there's no workaround we can do.
,
Dec 20 2016
zmo, did you check to see if this one is fixed in macOS 10.12.2? It looks to me like it probably is. I removed the skipCorners logic from conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte.html and CUBE_MAP tests passed on 10.12.2 but failed on 10.11.4. Given, a bunch of other tests in that file also fail on 10.11.4 so I can't tell for sure if it's the same.
,
Dec 20 2016
Fixed in 10.12.2. I resolved the Apple Radar (27231650). Kai, can you remove the skipCorners logic from the conformance tests?
,
Jan 3 2017
FTR, I started to do this but ran into issue 665656 (most likely)
,
Jan 24 2017
I verified conformance2/textures/misc/integer-cubemap-texture-sampling.html still failed on Intel GEN7 gpus on Mac OSX. But it passed on Intel GEN9 gpus on Mac OSX. With --disable_texture_cube_map_seamless=1, conformance2/textures/misc/integer-cubemap-texture-sampling.html can pass on GEN7, but there were some failed other dEQP tests with seamless cube map disabled. I found this issue when I supported cube map texture for CopyTextureCHROMIUM extension.
,
Jan 26 2017
Which GPUs are GEN7?
,
Jan 27 2017
Haswell: GEN7 Broadwell: GEN8 Skylake: GEN9 Kabylake: GEN9.5
,
Feb 17 2017
Please help to file a radar for this, and I will communicate with our driver team with proper priority.
,
Feb 23 2018
Should gpu/config/gpu_driver_bug_list.json specify disable_texture_cube_map_seamless for these cases?
,
Feb 23 2018
Yunchao, can you take a look at this and see if we need to add an entry for the workaround?
,
Mar 1 2018
Sorry, I missed this message. I will take a look, Zhenyao.
,
Mar 12 2018
I disabled the workaround and tested it on OSX with Intel Haswell (OSX 10.13.2), Skylake (OSX 10.12.6) and Kabylake (OSX 10.12.6) architecture. the test passed on all these machines. But when I removed the code and run the Chromium bots, it still failed on mac_chromium_rel_ng on OSX 10.12.6 with Intel Haswell: https://chromium-review.googlesource.com/c/chromium/src/+/955123 So I suppose the workaround is necessary only when the graphics card is Intel Gen7 or prior graphics (Haswell or prior architecture), and the OSX is 10.12.6 or older. I will add an entry in gpu/config/gpu_driver_bug_list.json for this workaround.
,
Nov 27
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by zmo@chromium.org
, Dec 1 2016