[Public WebGL] Some ARB_robustness questions

Kenneth Russell [email protected]
Fri May 13 11:38:16 PDT 2011


On Fri, May 13, 2011 at 6:56 AM, Benoit Jacob <[email protected]> wrote:
>
> Hi,
>
> Is ARB_robustness only an extension for desktop OpenGL, or is there an ES version of it?

Right now it is only for desktop OpenGL. However, EGL already has a
notion of losing the context, currently due to power management
events. If the OpenGL ES / EGL drivers also triggered this when a
given GPU operation took too long, then a WebGL implementation could
build its denial of service defense on top of this mechanism. It would
be better, though, if at least a subset of ARB_robustness were ported
to EGL so that glGetGraphicsResetStatusARB() (which is supposed to be
cheap) would be available.

> If there is, does anyone know how well supported ARB_robustness is on mobile (Android, etc) devices?
>
> What about ANGLE's libGLESv2? Which is how most users get WebGL on Windows. Is it possible to implement parts of ARB_robustness on top of D3D9? What's the plan? Sorry if I'm missing an obvious reason why that's not needed.

ANGLE exposes the EGL interface, and when Windows resets the GPU, the
D3D9 device lost event is translated into an EGL context lost event.
The WebGL implementation can use this as an indication that an
"unknown" context reset occurred. Unfortunately, building on D3D, it
isn't possible to be more precise and identify guilty vs. innocent
contexts (to the best of my knowledge).

In Chrome, the current plan is:

  - When ARB_robustness is available:
    - If a WebGL context gets a "guilty context reset" status, don't
automatically restore it. Tell the user that WebGL caused the GPU to
reset. Either tell them that the content won't be restored, or ask
them if they want to continue running the content.
    - For the innocent context reset status, automatically restore the context.
    - For the unknown reset status, treat it the same as the guilty
context reset status, only tell the user that WebGL *might* have
caused the GPU to reset and ask if they want to continue running the
content.

  - On Windows with ANGLE / EGL:
    - If eglMakeCurrent fails and eglGetError returns
EGL_CONTEXT_LOST, treat this the same as an unknown reset status with
ARB_robustness.

-Ken

> Thanks,
> Benoit
> -----------------------------------------------------------
> You are currently subscribed to [email protected]
> To unsubscribe, send an email to [email protected] with
> the following command in the body of your email:
> unsubscribe public_webgl
> -----------------------------------------------------------
>
>
-----------------------------------------------------------
You are currently subscribed to [email protected]
To unsubscribe, send an email to [email protected] with
the following command in the body of your email:
unsubscribe public_webgl
-----------------------------------------------------------




More information about the public_webgl mailing list