[Webkit-unassigned] [Bug 246777] New: [ANGLE] Render pipeline descriptor missing causes GPU-process crash

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Oct 19 16:08:00 PDT 2022


https://bugs.webkit.org/show_bug.cgi?id=246777

            Bug ID: 246777
           Summary: [ANGLE] Render pipeline descriptor missing causes
                    GPU-process crash
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: ANGLE
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: kpiddington at apple.com
                CC: dino at apple.com, kbr at google.com, kkinnunen at apple.com

Following on from https://bugs.webkit.org/show_bug.cgi?id=240896, we are still experiencing some cases where the Metal backend does not 
correctly configure the render pipeline state. In rarer cases, we end up in a state where the render encoder is valid, but the pipeline state is not set. 

Attempt to correct this error with three additional checks

1) When setting up a program, if the render encoder in question does not have a render pipeline state set, attempt to set it, even if the render pass descriptor has not changes.

2) When validating if an encoder is valid, also check if it has a valid render pipeline state during setupDraw. After setupDrawImpl, it should either be invalid (Due to a flush and invalidate all)  or not have a render pipeline state (Due to a misconfiguration on the program, or within the state bits.)

If we end up in the case of 2, attempt to set up the program one more time. (Usually due to a flush and invalidate all). If we've failed to create a render encoder again, attempt to recover the graphics context by dropping flushing the command buffer, invalidating the entire GL state, and dropping the draw call. This may lead to a rendering error, but will not cause a browser crash.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20221019/e38575c5/attachment.htm>


More information about the webkit-unassigned mailing list