[Mesa-dev] [PATCH 2/2] clover: Destory pipe_screen when device does not support compute

Emil Velikov emil.l.velikov at gmail.com
Thu May 8 11:06:46 PDT 2014


On 09/05/14 02:17, Tom Stellard wrote:
> ---
>  src/gallium/state_trackers/clover/core/device.cpp | 4 +++-
>  1 file changed, 3 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..70b5caf 100644
> --- a/src/gallium/state_trackers/clover/core/device.cpp
> +++ b/src/gallium/state_trackers/clover/core/device.cpp
> @@ -42,8 +42,10 @@ 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)) {
> +      pipe->destroy(pipe);
>        throw error(CL_INVALID_DEVICE);
> +   }
>  }
>  
Hi Tom,

AFAICS this will crash when we fail to create the pipe_screen(pipe is NULL).

-Emil
>  device::~device() {
> 



More information about the mesa-dev mailing list