diff --git a/devices/src/virtio/gpu/parameters.rs b/devices/src/virtio/gpu/parameters.rs index a13ae32b1a..09d6dfbf5d 100644 --- a/devices/src/virtio/gpu/parameters.rs +++ b/devices/src/virtio/gpu/parameters.rs @@ -116,9 +116,11 @@ fn deserialize_wsi<'de, D: Deserializer<'de>>( match s.as_str() { "vk" => Ok(Some(RutabagaWsi::Vulkan)), - _ => Err(serde::de::Error::custom( - "gpu parameter 'wsi' should be vk".to_string(), - )), + "vulkan" => Ok(Some(RutabagaWsi::Vulkan)), + _ => Err(serde::de::Error::custom(format!( + "unrecognized gpu parameter {} for 'wsi' option", + s.as_str(), + ))), } } diff --git a/rutabaga_gfx/src/rutabaga_utils.rs b/rutabaga_gfx/src/rutabaga_utils.rs index 9b03bce069..00f99e5c2d 100644 --- a/rutabaga_gfx/src/rutabaga_utils.rs +++ b/rutabaga_gfx/src/rutabaga_utils.rs @@ -428,6 +428,7 @@ const GFXSTREAM_RENDERER_FLAGS_ASYNC_FENCE_CB: u32 = 1 << 23; pub struct GfxstreamFlags(u32); #[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "kebab-case")] pub enum RutabagaWsi { Vulkan, } diff --git a/src/crosvm/sys/unix/config.rs b/src/crosvm/sys/unix/config.rs index 65d4eced23..19c553a508 100644 --- a/src/crosvm/sys/unix/config.rs +++ b/src/crosvm/sys/unix/config.rs @@ -565,6 +565,10 @@ mod tests { let gpu_params: GpuParameters = parse_gpu_options("backend=virglrenderer,wsi=vk").unwrap(); assert!(matches!(gpu_params.wsi, Some(RutabagaWsi::Vulkan))); + let gpu_params: GpuParameters = + parse_gpu_options("backend=virglrenderer,wsi=vulkan").unwrap(); + assert!(matches!(gpu_params.wsi, Some(RutabagaWsi::Vulkan))); + let gpu_params: GpuParameters = parse_gpu_options("wsi=vk,backend=virglrenderer").unwrap(); assert!(matches!(gpu_params.wsi, Some(RutabagaWsi::Vulkan)));