backends/drm: suppress logging for direct scanout

BUG: 456089
This commit is contained in:
Xaver Hugl 2022-06-28 23:18:22 +02:00
parent 29625218d3
commit ef97158f96
4 changed files with 36 additions and 5 deletions

View file

@ -150,7 +150,6 @@ std::shared_ptr<DrmFramebuffer> DrmFramebuffer::createFramebuffer(const std::sha
if (ret == 0) { if (ret == 0) {
return std::make_shared<DrmFramebuffer>(buffer, framebufferId); return std::make_shared<DrmFramebuffer>(buffer, framebufferId);
} else { } else {
qCWarning(KWIN_DRM) << "Could not create drm framebuffer!" << strerror(errno);
return nullptr; return nullptr;
} }
} }

View file

@ -42,6 +42,9 @@ bool DrmLeaseEglGbmLayer::checkTestBuffer()
} }
if (newBo) { if (newBo) {
m_framebuffer = DrmFramebuffer::createFramebuffer(std::make_shared<GbmBuffer>(m_pipeline->gpu(), newBo)); m_framebuffer = DrmFramebuffer::createFramebuffer(std::make_shared<GbmBuffer>(m_pipeline->gpu(), newBo));
if (!m_framebuffer) {
qCWarning(KWIN_DRM, "Failed to create gbm framebuffer for lease output: %s", strerror(errno));
}
} else { } else {
qCWarning(KWIN_DRM) << "Failed to create gbm_bo for lease output"; qCWarning(KWIN_DRM) << "Failed to create gbm_bo for lease output";
} }

View file

@ -16,6 +16,7 @@
#include "drm_pipeline.h" #include "drm_pipeline.h"
#include "drm_virtual_output.h" #include "drm_virtual_output.h"
#include "dumb_swapchain.h" #include "dumb_swapchain.h"
#include "logging.h"
#include "scene_qpainter_drm_backend.h" #include "scene_qpainter_drm_backend.h"
#include <drm_fourcc.h> #include <drm_fourcc.h>
@ -49,6 +50,9 @@ bool DrmQPainterLayer::endFrame(const QRegion &renderedRegion, const QRegion &da
m_currentDamage = damagedRegion; m_currentDamage = damagedRegion;
m_swapchain->releaseBuffer(m_swapchain->currentBuffer(), damagedRegion); m_swapchain->releaseBuffer(m_swapchain->currentBuffer(), damagedRegion);
m_currentFramebuffer = DrmFramebuffer::createFramebuffer(m_swapchain->currentBuffer()); m_currentFramebuffer = DrmFramebuffer::createFramebuffer(m_swapchain->currentBuffer());
if (!m_currentFramebuffer) {
qCWarning(KWIN_DRM, "Failed to create dumb framebuffer: %s", strerror(errno));
}
return m_currentFramebuffer != nullptr; return m_currentFramebuffer != nullptr;
} }
@ -58,6 +62,9 @@ bool DrmQPainterLayer::checkTestBuffer()
m_swapchain = std::make_shared<DumbSwapchain>(m_pipeline->gpu(), m_pipeline->bufferSize(), DRM_FORMAT_XRGB8888); m_swapchain = std::make_shared<DumbSwapchain>(m_pipeline->gpu(), m_pipeline->bufferSize(), DRM_FORMAT_XRGB8888);
if (!m_swapchain->isEmpty()) { if (!m_swapchain->isEmpty()) {
m_currentFramebuffer = DrmFramebuffer::createFramebuffer(m_swapchain->currentBuffer()); m_currentFramebuffer = DrmFramebuffer::createFramebuffer(m_swapchain->currentBuffer());
if (!m_currentFramebuffer) {
qCWarning(KWIN_DRM, "Failed to create dumb framebuffer: %s", strerror(errno));
}
} else { } else {
m_currentFramebuffer.reset(); m_currentFramebuffer.reset();
} }
@ -110,6 +117,9 @@ bool DrmCursorQPainterLayer::endFrame(const QRegion &damagedRegion, const QRegio
Q_UNUSED(renderedRegion) Q_UNUSED(renderedRegion)
m_swapchain->releaseBuffer(m_swapchain->currentBuffer(), damagedRegion); m_swapchain->releaseBuffer(m_swapchain->currentBuffer(), damagedRegion);
m_currentFramebuffer = DrmFramebuffer::createFramebuffer(m_swapchain->currentBuffer()); m_currentFramebuffer = DrmFramebuffer::createFramebuffer(m_swapchain->currentBuffer());
if (!m_currentFramebuffer) {
qCWarning(KWIN_DRM, "Failed to create dumb framebuffer for the cursor: %s", strerror(errno));
}
return m_currentFramebuffer != nullptr; return m_currentFramebuffer != nullptr;
} }
@ -177,6 +187,9 @@ bool DrmLeaseQPainterLayer::checkTestBuffer()
m_buffer = DrmDumbBuffer::createDumbBuffer(m_pipeline->gpu(), size, DRM_FORMAT_XRGB8888); m_buffer = DrmDumbBuffer::createDumbBuffer(m_pipeline->gpu(), size, DRM_FORMAT_XRGB8888);
if (m_buffer) { if (m_buffer) {
m_framebuffer = DrmFramebuffer::createFramebuffer(m_buffer); m_framebuffer = DrmFramebuffer::createFramebuffer(m_buffer);
if (!m_framebuffer) {
qCWarning(KWIN_DRM, "Failed to create dumb framebuffer for lease output: %s", strerror(errno));
}
} else { } else {
m_framebuffer.reset(); m_framebuffer.reset();
} }

View file

@ -129,7 +129,11 @@ std::optional<std::tuple<std::shared_ptr<DrmFramebuffer>, QRegion>> EglGbmLayerS
if (m_gpu == m_eglBackend->gpu()) { if (m_gpu == m_eglBackend->gpu()) {
if (const auto buffer = m_gbmSurface->swapBuffers(damagedRegion)) { if (const auto buffer = m_gbmSurface->swapBuffers(damagedRegion)) {
m_currentBuffer = buffer; m_currentBuffer = buffer;
return std::tuple(DrmFramebuffer::createFramebuffer(buffer), damagedRegion); auto ret = DrmFramebuffer::createFramebuffer(buffer);
if (!ret) {
qCWarning(KWIN_DRM, "Failed to create framebuffer for EglGbmLayerSurface: %s", strerror(errno));
}
return std::tuple(ret, damagedRegion);
} }
} else { } else {
if (const auto gbmBuffer = m_gbmSurface->swapBuffers(damagedRegion)) { if (const auto gbmBuffer = m_gbmSurface->swapBuffers(damagedRegion)) {
@ -282,7 +286,11 @@ std::shared_ptr<DrmFramebuffer> EglGbmLayerSurface::importDmabuf()
qCWarning(KWIN_DRM, "failed to import gbm_bo for multi-gpu usage: %s", strerror(errno)); qCWarning(KWIN_DRM, "failed to import gbm_bo for multi-gpu usage: %s", strerror(errno));
return nullptr; return nullptr;
} }
return DrmFramebuffer::createFramebuffer(imported); const auto ret = DrmFramebuffer::createFramebuffer(imported);
if (!ret) {
qCWarning(KWIN_DRM, "Failed to create framebuffer for multi-gpu: %s", strerror(errno));
}
return ret;
} }
std::shared_ptr<DrmFramebuffer> EglGbmLayerSurface::importWithCpu() std::shared_ptr<DrmFramebuffer> EglGbmLayerSurface::importWithCpu()
@ -313,7 +321,11 @@ std::shared_ptr<DrmFramebuffer> EglGbmLayerSurface::importWithCpu()
if (!memcpy(importBuffer->data(), m_currentBuffer->mappedData(), importBuffer->size().height() * importBuffer->strides()[0])) { if (!memcpy(importBuffer->data(), m_currentBuffer->mappedData(), importBuffer->size().height() * importBuffer->strides()[0])) {
return nullptr; return nullptr;
} }
return DrmFramebuffer::createFramebuffer(importBuffer); const auto ret = DrmFramebuffer::createFramebuffer(importBuffer);
if (!ret) {
qCWarning(KWIN_DRM, "Failed to create framebuffer for CPU import: %s", strerror(errno));
}
return ret;
} }
bool EglGbmLayerSurface::doesSwapchainFit(DumbSwapchain *swapchain) const bool EglGbmLayerSurface::doesSwapchainFit(DumbSwapchain *swapchain) const
@ -364,7 +376,11 @@ std::shared_ptr<DrmFramebuffer> EglGbmLayerSurface::renderTestBuffer(const QSize
return nullptr; return nullptr;
} }
} }
return DrmFramebuffer::createFramebuffer(m_currentBuffer); const auto ret = DrmFramebuffer::createFramebuffer(m_currentBuffer);
if (!ret) {
qCWarning(KWIN_DRM, "Failed to create framebuffer for testing: %s", strerror(errno));
}
return ret;
} else { } else {
return nullptr; return nullptr;
} }