Revert "libcamera: software_isp: gbm: Add a GBM helper class for GPU surface access"
GBM is not used any more - remove the helper class.
This reverts commit c60b1ce819.
Signed-off-by: Robert Mader <robert.mader@collabora.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # sm8250/rb5, x1e/Dell Insprion14p
Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
committed by
Kieran Bingham
parent
a5e01866ae
commit
7350d6cc5d
@@ -1,107 +0,0 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
/*
|
||||
* Copyright (C) 2024, Linaro Ltd.
|
||||
*
|
||||
* Authors:
|
||||
* Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
||||
*
|
||||
* Helper class for managing GBM interactions
|
||||
*/
|
||||
|
||||
#include "libcamera/internal/gbm.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/dma-heap.h>
|
||||
|
||||
namespace libcamera {
|
||||
|
||||
LOG_DEFINE_CATEGORY(GBM)
|
||||
|
||||
/**
|
||||
* \class GBM
|
||||
* \brief Helper class for managing GBM interactions
|
||||
*
|
||||
* The GBM class provides a simplified interface for creating and managing
|
||||
* GBM devices. It handles the initialization and teardown of GBM devices
|
||||
* used for buffer allocation in graphics and camera pipelines.
|
||||
*
|
||||
* This class is responsible for opening a DRI render node, creating a GBM
|
||||
* device, and providing access to the device and its associated pixel format.
|
||||
*/
|
||||
|
||||
/**
|
||||
*\var GBM::fd_
|
||||
*\brief file descriptor to DRI device
|
||||
*/
|
||||
|
||||
/**
|
||||
*\var GBM::gbmDevice_
|
||||
*\brief Pointer to GBM device structure derived from fd_
|
||||
*/
|
||||
|
||||
/**
|
||||
*\var GBM::format_
|
||||
*\brief Pixel format the GBM surface was created in
|
||||
*/
|
||||
|
||||
/**
|
||||
*\brief GBM constructor.
|
||||
*
|
||||
* Creates a GBM instance with uninitialised state.
|
||||
*/
|
||||
GBM::GBM()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
*\brief GBM destructor
|
||||
*
|
||||
* Cleans up the GBM device if it was successfully created, and closes
|
||||
* the associated file descriptor.
|
||||
*/
|
||||
GBM::~GBM()
|
||||
{
|
||||
if (gbmDevice_)
|
||||
gbm_device_destroy(gbmDevice_);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Create and initialize a GBM device
|
||||
*
|
||||
* \todo Get dri device name from envOption setting
|
||||
*
|
||||
* Opens the DRI render node (/dev/dri/renderD128) and creates a GBM
|
||||
* device using the libgbm library. Sets the default pixel format to
|
||||
* ARGB8888.
|
||||
*
|
||||
* \return 0 on success, or a negative error code on failure
|
||||
*/
|
||||
int GBM::createDevice()
|
||||
{
|
||||
const char dri_node[] = "/dev/dri/renderD128";
|
||||
|
||||
int fd = open(dri_node, O_RDWR | O_CLOEXEC | O_NOCTTY);
|
||||
if (fd < 0) {
|
||||
LOG(GBM, Error) << "Open " << dri_node << " fail " << strerror(errno);
|
||||
return -errno;
|
||||
}
|
||||
fd_ = UniqueFD(fd);
|
||||
|
||||
gbmDevice_ = gbm_create_device(fd_.get());
|
||||
if (!gbmDevice_) {
|
||||
LOG(GBM, Error) << "gbm_create_device fail" << strerror(errno);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
format_ = libcamera::formats::ARGB8888;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
} /* namespace libcamera */
|
||||
@@ -70,15 +70,6 @@ libcamera_deps = []
|
||||
libatomic = cc.find_library('atomic', required : false)
|
||||
libthreads = dependency('threads')
|
||||
|
||||
libgbm = dependency('gbm', required : false)
|
||||
gbm_works = cc.check_header('gbm.h', required: false)
|
||||
|
||||
if libgbm.found() and gbm_works
|
||||
libcamera_internal_sources += files([
|
||||
'gbm.cpp',
|
||||
])
|
||||
endif
|
||||
|
||||
mesa_works = cc.check_header('EGL/egl.h', required: false)
|
||||
libegl = dependency('egl', required : false)
|
||||
libglesv2 = dependency('glesv2', required : false)
|
||||
@@ -91,7 +82,7 @@ if libglesv2.found()
|
||||
config_h.set('HAVE_GLESV2', 1)
|
||||
endif
|
||||
|
||||
if mesa_works and gbm_works
|
||||
if mesa_works
|
||||
libcamera_internal_sources += files([
|
||||
'egl.cpp',
|
||||
])
|
||||
@@ -209,7 +200,6 @@ libcamera_deps += [
|
||||
libcrypto,
|
||||
libdl,
|
||||
libegl,
|
||||
libgbm,
|
||||
libglesv2,
|
||||
liblttng,
|
||||
libudev,
|
||||
|
||||
Reference in New Issue
Block a user