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

Issue 658930 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug

Blocking:
issue 612542
issue 662644



Sign in to add a comment

Bug in sampling of seamless integer cube map textures on Intel GPUs on macOS

Project Member Reported by kbr@chromium.org, Oct 24 2016

Issue description

If 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.

 

Comment 1 by zmo@chromium.org, Dec 1 2016

Blocking: 662644
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.

Comment 3 by zmo@chromium.org, Dec 20 2016

Owner: kainino@chromium.org
Status: Assigned (was: ExternalDependency)
Fixed in 10.12.2. I resolved the Apple Radar (27231650).

Kai, can you remove the skipCorners logic from the conformance tests?
FTR, I started to do this but ran into  issue 665656  (most likely)
Blocking: 612542
Cc: kbr@chromium.org jie.a.c...@intel.com zmo@chromium.org
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.

Comment 6 by zmo@chromium.org, Jan 26 2017

Which GPUs are GEN7?
Haswell: GEN7
Broadwell: GEN8
Skylake: GEN9
Kabylake: GEN9.5

Comment 8 by yang...@intel.com, Feb 17 2017

Please help to file a radar for this, and I will communicate with our driver team with proper priority. 

Comment 9 by enne@chromium.org, Feb 23 2018

Should gpu/config/gpu_driver_bug_list.json specify disable_texture_cube_map_seamless for these cases?

Comment 10 by zmo@chromium.org, Feb 23 2018

Owner: yunchao...@intel.com
Yunchao, can you take a look at this and see if we need to add an entry for the workaround?
Sorry, I missed this message. I will take a look, Zhenyao. 

Comment 12 Deleted

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.
Labels: webgl-conformance

Sign in to add a comment