Merge branch 'headless-sRGB-fix' into 'main'

Adding sRGB support to headless surfaces by adding the format to the list

See merge request mesa/mesa!40275
This commit is contained in:
François Coulombe 2026-03-11 04:58:53 +00:00
commit f304b5e2bd

View file

@ -178,6 +178,14 @@ wsi_headless_surface_get_formats(VkIcdSurfaceBase *icd_surface,
out_fmt->format = VK_FORMAT_R8G8B8A8_UNORM;
out_fmt->colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormatKHR, &out, out_fmt) {
out_fmt->format = VK_FORMAT_B8G8R8A8_SRGB;
out_fmt->colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormatKHR, &out, out_fmt) {
out_fmt->format = VK_FORMAT_R8G8B8A8_SRGB;
out_fmt->colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
} else {
vk_outarray_append_typed(VkSurfaceFormatKHR, &out, out_fmt) {
out_fmt->format = VK_FORMAT_R8G8B8A8_UNORM;
@ -187,6 +195,14 @@ wsi_headless_surface_get_formats(VkIcdSurfaceBase *icd_surface,
out_fmt->format = VK_FORMAT_B8G8R8A8_UNORM;
out_fmt->colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormatKHR, &out, out_fmt) {
out_fmt->format = VK_FORMAT_R8G8B8A8_SRGB;
out_fmt->colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormatKHR, &out, out_fmt) {
out_fmt->format = VK_FORMAT_B8G8R8A8_SRGB;
out_fmt->colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
}
return vk_outarray_status(&out);
@ -210,6 +226,14 @@ wsi_headless_surface_get_formats2(VkIcdSurfaceBase *icd_surface,
out_fmt->surfaceFormat.format = VK_FORMAT_R8G8B8A8_UNORM;
out_fmt->surfaceFormat.colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, out_fmt) {
out_fmt->surfaceFormat.format = VK_FORMAT_B8G8R8A8_SRGB;
out_fmt->surfaceFormat.colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, out_fmt) {
out_fmt->surfaceFormat.format = VK_FORMAT_R8G8B8A8_SRGB;
out_fmt->surfaceFormat.colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
} else {
vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, out_fmt) {
out_fmt->surfaceFormat.format = VK_FORMAT_R8G8B8A8_UNORM;
@ -219,6 +243,14 @@ wsi_headless_surface_get_formats2(VkIcdSurfaceBase *icd_surface,
out_fmt->surfaceFormat.format = VK_FORMAT_B8G8R8A8_UNORM;
out_fmt->surfaceFormat.colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, out_fmt) {
out_fmt->surfaceFormat.format = VK_FORMAT_R8G8B8A8_SRGB;
out_fmt->surfaceFormat.colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
vk_outarray_append_typed(VkSurfaceFormat2KHR, &out, out_fmt) {
out_fmt->surfaceFormat.format = VK_FORMAT_B8G8R8A8_SRGB;
out_fmt->surfaceFormat.colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
}
}
return vk_outarray_status(&out);