Skip to content
  • David Edmundson's avatar
    Fix DRM EGL crash regression · 3d619c99
    David Edmundson authored
    Summary:
    In 47343fb8 we made GBM buffer shared.
    
    What we wanted to do was:
    Unbox the shared_pointer<GBMSurface> to give us a GBMSurface* object
    Call the gbm_surface*() on that operator
    Then cast that to a void* for eglCreatePlatformWindowSurfaceEXT
    
    What we did:
    Cast the std::shared_ptr<GBMSurface> to a gbm_surface*  then cast that
    to void*.
    This is just a garbage value and it crashes in Mesa when we do our first
    paint.
    
    I've replaced that with an explicit method then we can use shared_ptr's
    -> operator rather than get() which does the right thing in a readable
    way.
    
    Test Plan:
    It crashed after rebasing to master (for Aleix too)
    No longer crashes
    
    Reviewers: #plasma
    
    Subscribers: plasma-devel, kwin, #kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D8251
    3d619c99