From: Tom Stellard <thomas.stell...@amd.com> After pipe_loader_release() is called, if any of the pipe_* objects try to call into the gallium API the application will segfault.
The only time devices are deleted is when the global _clover_platform object is deleted by the static destructor. However, since application objects that are deleted by the static destructor *after* _clover_platform might try to make a CL API calls from their destructor, it is never safe to call pipe_loader_release(). --- src/gallium/state_trackers/clover/core/device.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp index 76a49d0..2290366 100644 --- a/src/gallium/state_trackers/clover/core/device.cpp +++ b/src/gallium/state_trackers/clover/core/device.cpp @@ -48,8 +48,6 @@ device::device(clover::platform &platform, pipe_loader_device *ldev) : device::~device() { if (pipe) pipe->destroy(pipe); - if (ldev) - pipe_loader_release(&ldev, 1); } bool -- 1.8.1.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev