Sketch and measurement graphics not showing up after 4.12 update

9728
20
Jump to solution
07-26-2019 02:11 PM
WesllyH_
New Contributor II

For some reason the graphics for the measurement and sketch widgets don't work for me after I upgraded the js api for v4.12. I thought it could be a problem with my application but it doesn't work with the official samples either

Things I tried:

- I tested it at 8 different computers but only mine (a mac mini late 2012) and a lenovo notebook had this problem.

- This issue happens at all major browsers at my machine (chrome, firefox and safari), with and without any extensions enabled

- It doesn't work with a different user in the same computer either, even a newly created one

- It works when I boot my computer at safe mode (but everything is very slow)

- It works just fine at v4.11, but not v4.12

Any ideas?

EDIT: Looks like the issue happens at computers using either Intel HD 4000 or 3000 gpus.

20 Replies
mgeorge
Esri Contributor

For those who are experiencing this problem, do FeatureLayers also suffer from the same issue? Or is this issue just with sketch/graphics?

To give a little insight into this issue, in both 2D and 3D we use WebGL to do all of the rendering, however due to the different nature of the rendering requirements, these code execution paths are different. For 2D we recently added support for fast-attribute updates, which allows for quickly changing things like the valueExpression of a visualVariable, and as a result of this change, visibility, filters, effects, and other per-feature/graphic attributes also now go through this faster code path. We have several fallbacks for when devices do not support certain features (like SharedArrayBuffer or the WebGL floating point textures extension), however sometimes these fallbacks are not enough when we encounter driver related issues. We'll need to do a little digging to see where the problem lies.

ntpciland
New Contributor II

Yes,featurelayer is ok. 

And I just repair success one intel hd graphic's computer. 

I update this computer's graphic driver from 21.x to 26.x(intel hd graphic driver) 

Edge and firefox is work right now. 

Then i remove chrome and re-setup... Chrome is work. 

Although I fix one computer, it is still hard to tell all normal user who to setting their computer

0 Kudos
WesllyH_
New Contributor II

Feature layers are working fine for me

0 Kudos
mgeorge
Esri Contributor

Thanks everyone for the feedback. We'll update you when we have more information. Currently we're in the process of getting access to a device with the issue. As ntpc iland‌ mentioned, it may be a good idea to try updating the graphics drivers on the affected machines and see if this fixes the problem.

0 Kudos
WesllyH_
New Contributor II

Matt George‌ I can't update my gpu driver because it is bundled with macos updates and I'm already using the latest provided by apple, but thanks for looking into this issue, I'll keep using 4.11 meanwhile

0 Kudos
mgeorge
Esri Contributor

Hi everyone, just wanted to give another update on this. After looking at a machine with an Intel HD 3000 graphics exhibiting the same issue, we were able to narrow down the problem as relating to texture lookups. The specific 4.12 change that caused this rendering issue was a 2D engine-level performance enhancement to speed up pushing attribute changes (as mentioned earlier). Basically we encode binary flags into the red channel of a texture, and then decode this on the GPU to drive visibility, filters, and effects. As part of this, we were able to normalize the way we send per-feature data to the GPU, allowing multiple vertices to reuse the same texture data.This is both faster for us to update, as well as alleviates how much GPU memory each vertex requires.

Related to this graphic visibility issue, we noticed a similar problem for FeatureLayers where inaccuracies in the decoding process on our device was causing `FeatureFilter` and `FeatureEffect` to corrupt each other. At least for the specific device we have access to, it appears that sampler precision specifiers are being ignored. This does not appear to be in compliance with the OpenGL ES Specification which stipulates that these specifiers should drive the precision of the result of `texture2D` (see section 8 of the OpenGL ES 1.0 Specification). This causes the bit flags to be decoded incorrectly. If possible, we recommend updating graphics drivers, but we are currently working on a driver mitigation workaround that should prevent hard failures like visible features/graphics becoming invisible.

mgeorge
Esri Contributor

Just to let everyone know, we had a little bit of trouble getting the device, but we were finally able to get a computer with an HD 4000 and verify that the workaround we have works on that device as well. We are looking to merge the workaround into our 4.13 dev branch sometime today, and the behavior will basically be as follows: 

- Run a graphical test at startup that determines whether the driver suffers from this issue

- If so, a warning will be logged and our lowp sampler workaround will be applied. 

JoseSousa
Esri Contributor

Hi guys,

This issue can be tracked below. It has been fixed in 4.13.

BUG-000124127: The Sketch widget fails to sketch graphics in the Go.. 

Cheers,

Jose

UndralBatsukh
Esri Regular Contributor

Hi there, 

This issue will be fixed at version 4.13 which is expected to be released early October. 

-Undral