diff --git a/src/backends/drm/drm_egl_cursor_layer.cpp b/src/backends/drm/drm_egl_cursor_layer.cpp index 6333fd3851..022d0bf6d5 100644 --- a/src/backends/drm/drm_egl_cursor_layer.cpp +++ b/src/backends/drm/drm_egl_cursor_layer.cpp @@ -21,7 +21,7 @@ namespace KWin EglGbmCursorLayer::EglGbmCursorLayer(EglGbmBackend *eglBackend, DrmPipeline *pipeline) : DrmPipelineLayer(pipeline) - , m_surface(pipeline->gpu(), eglBackend, pipeline->gpu()->atomicModeSetting() ? EglGbmLayerSurface::BufferTarget::Linear : EglGbmLayerSurface::BufferTarget::Dumb, EglGbmLayerSurface::FormatOption::RequireAlpha) + , m_surface(pipeline->gpu(), eglBackend, pipeline->gpu()->atomicModeSetting() && !pipeline->gpu()->isVirtualMachine() ? EglGbmLayerSurface::BufferTarget::Linear : EglGbmLayerSurface::BufferTarget::Dumb, EglGbmLayerSurface::FormatOption::RequireAlpha) { } diff --git a/src/backends/drm/drm_gpu.cpp b/src/backends/drm/drm_gpu.cpp index 63f35f3d0b..df392d1cdf 100644 --- a/src/backends/drm/drm_gpu.cpp +++ b/src/backends/drm/drm_gpu.cpp @@ -692,6 +692,11 @@ bool DrmGpu::isVmwgfx() const return m_isVmwgfx; } +bool DrmGpu::isVirtualMachine() const +{ + return m_isVirtualMachine; +} + bool DrmGpu::isRemoved() const { return m_isRemoved; diff --git a/src/backends/drm/drm_gpu.h b/src/backends/drm/drm_gpu.h index 2eebaba42f..fd2d1c67fa 100644 --- a/src/backends/drm/drm_gpu.h +++ b/src/backends/drm/drm_gpu.h @@ -80,6 +80,7 @@ public: bool isNVidia() const; bool isAmdgpu() const; bool isVmwgfx() const; + bool isVirtualMachine() const; EglDisplay *eglDisplay() const; DrmBackend *platform() const; /**