Mesa (10.2): clover: Destory pipe_screen when device does not support compute v2

Ian Romanick idr at kemper.freedesktop.org
Sat May 10 03:27:28 UTC 2014


Module: Mesa
Branch: 10.2
Commit: e29daf82cc3a0706305e1ba80ed587023910d5ac
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e29daf82cc3a0706305e1ba80ed587023910d5ac

Author: Tom Stellard <thomas.stellard at amd.com>
Date:   Thu May  8 21:08:32 2014 -0400

clover: Destory pipe_screen when device does not support compute v2

v2:
  - Make sure screen was successfully created before destroying it.

Cc: "10.2" <mesa-stable at lists.freedesktop.org>
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
(cherry picked from commit c5f0c98c49a78777b2564a53028e345195ef275f)

---

 src/gallium/state_trackers/clover/core/device.cpp |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/clover/core/device.cpp b/src/gallium/state_trackers/clover/core/device.cpp
index 2f84677..bc3e3e6 100644
--- a/src/gallium/state_trackers/clover/core/device.cpp
+++ b/src/gallium/state_trackers/clover/core/device.cpp
@@ -42,8 +42,11 @@ namespace {
 device::device(clover::platform &platform, pipe_loader_device *ldev) :
    platform(platform), ldev(ldev) {
    pipe = pipe_loader_create_screen(ldev, PIPE_SEARCH_DIR);
-   if (!pipe || !pipe->get_param(pipe, PIPE_CAP_COMPUTE))
+   if (!pipe || !pipe->get_param(pipe, PIPE_CAP_COMPUTE)) {
+      if (pipe)
+         pipe->destroy(pipe);
       throw error(CL_INVALID_DEVICE);
+   }
 }
 
 device::~device() {




More information about the mesa-commit mailing list