From d56f188854135ff4d1cf2cb6bf184a8301a82edd Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Thu, 25 Apr 2024 11:14:03 -0700 Subject: [PATCH] Revert "ui/cameraview: merge EGL Image Clearing code into `clearEGLImages()` (#32292)" This reverts commit 7e6dda546ee58d4cf05352f9ff9fab97b3e9464f. --- selfdrive/ui/qt/widgets/cameraview.cc | 37 +++++++++++++++++---------- selfdrive/ui/qt/widgets/cameraview.h | 1 - 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/selfdrive/ui/qt/widgets/cameraview.cc b/selfdrive/ui/qt/widgets/cameraview.cc index 16a5ffbf07..e4f1396268 100644 --- a/selfdrive/ui/qt/widgets/cameraview.cc +++ b/selfdrive/ui/qt/widgets/cameraview.cc @@ -6,6 +6,14 @@ #include #endif +#include +#include +#include +#include + +#include +#include + namespace { const char frame_vertex_shader[] = @@ -189,7 +197,15 @@ void CameraWidget::stopVipcThread() { vipc_thread = nullptr; } - clearEGLImages(); +#ifdef QCOM2 + EGLDisplay egl_display = eglGetCurrentDisplay(); + assert(egl_display != EGL_NO_DISPLAY); + for (auto &pair : egl_images) { + eglDestroyImageKHR(egl_display, pair.second); + assert(eglGetError() == EGL_SUCCESS); + } + egl_images.clear(); +#endif } void CameraWidget::availableStreamsUpdated(std::set streams) { @@ -320,7 +336,12 @@ void CameraWidget::vipcConnected(VisionIpcClient *vipc_client) { stream_stride = vipc_client->buffers[0].stride; #ifdef QCOM2 - clearEGLImages(); + EGLDisplay egl_display = eglGetCurrentDisplay(); + assert(egl_display != EGL_NO_DISPLAY); + for (auto &pair : egl_images) { + eglDestroyImageKHR(egl_display, pair.second); + } + egl_images.clear(); for (int i = 0; i < vipc_client->num_buffers; i++) { // import buffers into OpenGL int fd = dup(vipc_client->buffers[i].fd); // eglDestroyImageKHR will close, so duplicate @@ -414,15 +435,3 @@ void CameraWidget::clearFrames() { frames.clear(); available_streams.clear(); } - - -void CameraWidget::clearEGLImages() { -#ifdef QCOM2 - EGLDisplay egl_display = eglGetCurrentDisplay(); - assert(egl_display != EGL_NO_DISPLAY); - for (auto &pair : egl_images) { - eglDestroyImageKHR(egl_display, pair.second); - } - egl_images.clear(); -#endif -} diff --git a/selfdrive/ui/qt/widgets/cameraview.h b/selfdrive/ui/qt/widgets/cameraview.h index 4f1cbede69..c97038cf43 100644 --- a/selfdrive/ui/qt/widgets/cameraview.h +++ b/selfdrive/ui/qt/widgets/cameraview.h @@ -58,7 +58,6 @@ protected: void updateCalibration(const mat3 &calib); void vipcThread(); void clearFrames(); - void clearEGLImages(); int glWidth(); int glHeight();