davidedmundson created this revision.
davidedmundson added a reviewer: Plasma.
Restricted Application added a project: KWin.
Restricted Application added subscribers: KWin, kwin, plasma-devel.

REVISION SUMMARY
  In https://phabricator.kde.org/R108:47343fb8f75909f6491c0534004df56ee1e53737 
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

REPOSITORY
  R108 KWin

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D8251

AFFECTED FILES
  autotests/test_gbm_surface.cpp
  plugins/platforms/drm/egl_gbm_backend.cpp
  plugins/platforms/drm/gbm_surface.h

To: davidedmundson, #plasma
Cc: plasma-devel, kwin, #kwin, bwowk, ZrenBot, progwolff, lesliezhai, 
ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart

Reply via email to