mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 21:50:11 +01:00
vulkan/wsi: Support alpha swapchains on win32
Map VkSwapchainCreateInfoKHR.compositeAlpha to corresponding DXGI_SWAP_CHAIN_DESC1.alphaMode. Add VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR to capabilities as it was missing there. Signed-off-by: Benjamin Otte <otte@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32048>
This commit is contained in:
parent
f2f4206d49
commit
e757238370
1 changed files with 19 additions and 2 deletions
|
|
@ -209,7 +209,8 @@ wsi_win32_surface_get_capabilities(VkIcdSurfaceBase *surf,
|
|||
|
||||
caps->supportedCompositeAlpha =
|
||||
VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR |
|
||||
VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR;
|
||||
VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR |
|
||||
VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR;
|
||||
|
||||
caps->supportedUsageFlags = wsi_caps_get_image_usage();
|
||||
|
||||
|
|
@ -751,6 +752,22 @@ wsi_win32_surface_create_swapchain_dxgi(
|
|||
ID3D12CommandQueue *queue =
|
||||
(ID3D12CommandQueue *)wsi->wsi->win32.get_d3d12_command_queue(device);
|
||||
|
||||
DXGI_ALPHA_MODE alpha_mode;
|
||||
switch (create_info->compositeAlpha) {
|
||||
case VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR:
|
||||
alpha_mode = DXGI_ALPHA_MODE_IGNORE;
|
||||
break;
|
||||
case VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR:
|
||||
alpha_mode = DXGI_ALPHA_MODE_PREMULTIPLIED;
|
||||
break;
|
||||
case VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR:
|
||||
alpha_mode = DXGI_ALPHA_MODE_STRAIGHT;
|
||||
break;
|
||||
default:
|
||||
alpha_mode = DXGI_ALPHA_MODE_UNSPECIFIED;
|
||||
break;
|
||||
}
|
||||
|
||||
DXGI_SWAP_CHAIN_DESC1 desc = {
|
||||
create_info->imageExtent.width,
|
||||
create_info->imageExtent.height,
|
||||
|
|
@ -761,7 +778,7 @@ wsi_win32_surface_create_swapchain_dxgi(
|
|||
create_info->minImageCount,
|
||||
DXGI_SCALING_STRETCH,
|
||||
DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL,
|
||||
DXGI_ALPHA_MODE_UNSPECIFIED,
|
||||
alpha_mode,
|
||||
chain->base.present_mode == VK_PRESENT_MODE_IMMEDIATE_KHR ?
|
||||
DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING : 0u
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue