Open Bug 1288746 Opened 4 years ago Updated 2 years ago

CANVAS_WEBGL_SUCCESS shows failures while CANVAS_WEBGL_FAILURE_ID is empty

Categories

(Core :: Canvas: WebGL, defect, P3)

defect

Tracking

()

REOPENED
mozilla50
Tracking Status
firefox50 --- fixed
firefox51 --- fixed

People

(Reporter: jrmuizel, Assigned: BenWa)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

We have some pings that look like this:

{'adapter': {u'GPUActive': True,
   u'RAM': 1024,
   u'description': u'NVIDIA GeForce 9600 GT',
   u'deviceID': u'0x0622',
   u'driver': u'nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um',
   u'driverDate': u'2-3-2015',
   u'driverVersion': u'9.18.13.4144',
   u'subsysID': u'505319da',
   u'vendorID': u'0x10de'},
  'application/buildId': u'20160720030208',
  'clientId': u'826ad85b-5fc1-419b-9c1c-38b0273c1f8a',
  'driverVersion': [9, 18, 13, 4144],
  'environment/build/version': u'50.0a1',
  'environment/system/gfx/adapters': [{u'GPUActive': True,
    u'RAM': 1024,
    u'description': u'NVIDIA GeForce 9600 GT',
    u'deviceID': u'0x0622',
    u'driver': u'nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um',
    u'driverDate': u'2-3-2015',
    u'driverVersion': u'9.18.13.4144',
    u'subsysID': u'505319da',
    u'vendorID': u'0x10de'}],
  'environment/system/gfx/features': {u'compositor': u'd3d11',
   u'd2d': {u'status': u'available', u'version': u'1.1'},
   u'd3d11': {u'blacklisted': False,
    u'status': u'available',
    u'textureSharing': True,
    u'version': 40960,
    u'warp': False}},
  'environment/system/os/name': u'Windows_NT',
  'environment/system/os/servicePackMajor': 1,
  'environment/system/os/servicePackMinor': 0,
  'environment/system/os/version': u'6.1',
  'features': {u'compositor': u'd3d11',
   u'd2d': {u'status': u'available', u'version': u'1.1'},
   u'd3d11': {u'blacklisted': False,
    u'status': u'available',
    u'textureSharing': True,
    u'version': 40960,
    u'warp': False}},
  'payload/histograms/CANVAS_WEBGL_SUCCESS': 0    4.0
  1    0.0
  2    0.0
  dtype: float64,
  'payload/keyedHistograms/CANVAS_WEBGL_ACCL_FAILURE_ID': None,
  'payload/keyedHistograms/CANVAS_WEBGL_FAILURE_ID': None}

It would be interesting to know why. One of the interesting things that I noticed is that dtype of CANVAS_WEBGL_SUCCESS in these cases seems to be float64 where as in some of the other cases it is int64
Blocks: 1257692
Flags: needinfo?(bgirard)
Assignee: nobody → bgirard
Comment on attachment 8773863 [details]
Bug 1288746 - Handle missing WebGL failure IDs.

https://reviewboard.mozilla.org/r/66520/#review63330

::: dom/canvas/WebGLContext.cpp:908
(Diff revision 1)
>  
>          return NS_OK;
>      }
>  
> +    nsCString failureId = NS_LITERAL_CSTRING("FEATURE_FAILURE_WEBGL_UNKOWN");
> +    auto autoTelemetry = mozilla::MakeScopeExit([&] {

No need to capture everything. Let's just capture failureId.
Attachment #8773863 - Flags: review?(jmuizelaar) → review+
Happy to make the change but I'd like to understand better.

Is there any downside to specifying & instead of failureId? Particularly in the generated code? I'd assume other than this being stricter about not accidentally capturing something else it should be equivalent right?
(In reply to Benoit Girard (:BenWa) from comment #5)
> Happy to make the change but I'd like to understand better.
> 
> Is there any downside to specifying & instead of failureId? Particularly in
> the generated code? I'd assume other than this being stricter about not
> accidentally capturing something else it should be equivalent right?

It doesn't seem like there's a big downside.

Google's style guide has had the following change:

-<p>Use lambda expressions where appropriate.  Do not use
-default lambda captures; write all captures explicitly.</p>
+<p>Use lambda expressions where appropriate.  Avoid
+default lambda captures when capturing <code>this</code> or
+if the lambda will escape the current scope.</p>

an Apache C++ style guide says:

    Prefer default capture by value, explicit capture by value, then capture by reference. To avoid dangling-pointer bugs, never use default capture by reference:

It seems like there's no strong reason to prefer either, so do what you think is best.
Pushed by b56girard@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/aef31d829693
Handle missing WebGL failure IDs. r=jrmuizel
https://hg.mozilla.org/mozilla-central/rev/aef31d829693
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Flags: needinfo?(bgirard)
Let's keep this opened until we can confirm the problem is gone.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
We should have some data by now. Let's check today so that we can keep looking if this wasn't it.
This is still very prevalent.

Of the 2613 pings from the last two days on Nightly with data in payload/histograms/CANVAS_WEBGL_SUCCESS, 2125 are missing data in payload/keyedHistograms/CANVAS_WEBGL_FAILURE_ID.
Attachment #8790867 - Flags: review?(jmuizelaar) → review+
https://hg.mozilla.org/mozilla-central/rev/484087507430
Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Resolution: --- → FIXED
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
See Also: → 1344162
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.