mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-09 01:28:19 +02:00
vulkan/wsi/headless: add sRGB swapchain format support
Headless surfaces when queried return that they only support RGBA UNORM and BGRA UNORM. Adding those lines enables RGBA SRGB and BGRA SRGB support to headless surfaces. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40275>
This commit is contained in:
parent
9b12664b72
commit
4112eb2b0f
1 changed files with 32 additions and 0 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue