diff --git a/devices/src/virtio/gpu/backend.rs b/devices/src/virtio/gpu/backend.rs index 690c94df98..0359dd34de 100644 --- a/devices/src/virtio/gpu/backend.rs +++ b/devices/src/virtio/gpu/backend.rs @@ -770,11 +770,22 @@ impl Backend { ) { Ok(buffer) => buffer, Err(e) => { - error!( - "failed to create buffer for 3d resource {}: {}", - format, e - ); - return GpuResponse::ErrUnspec; + // Attempt to allocate the buffer without scanout flag. + match self.device.create_buffer( + width, + height, + Format::from(fourcc), + Flags::empty().use_rendering(true), + ) { + Ok(buffer) => buffer, + Err(e) => { + error!( + "failed to create buffer for 3d resource {}: {}", + format, e + ); + return GpuResponse::ErrUnspec; + } + } } };