mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
winsys/d3d12: Support no-alpha formats through the DXGI swapchain path
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35142>
This commit is contained in:
parent
548f652d10
commit
f5781553f6
1 changed files with 13 additions and 1 deletions
|
|
@ -113,12 +113,22 @@ d3d12_wgl_framebuffer_resize(stw_winsys_framebuffer *fb,
|
|||
desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT | DXGI_USAGE_SHADER_INPUT;
|
||||
desc.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING | DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT;
|
||||
desc.Format = d3d12_get_format(templ->format);
|
||||
if (desc.Format == DXGI_FORMAT_B8G8R8X8_UNORM)
|
||||
desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
|
||||
desc.Width = templ->width0;
|
||||
desc.Height = templ->height0;
|
||||
desc.SampleDesc.Count = 1;
|
||||
desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
|
||||
|
||||
framebuffer->pformat = templ->format;
|
||||
switch (templ->format) {
|
||||
case PIPE_FORMAT_B8G8R8X8_UNORM:
|
||||
framebuffer->pformat = PIPE_FORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
case PIPE_FORMAT_R8G8B8X8_UNORM:
|
||||
framebuffer->pformat = PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!framebuffer->swapchain) {
|
||||
ComPtr<IDXGISwapChain1> swapchain1;
|
||||
|
|
@ -310,7 +320,9 @@ d3d12_wgl_create_framebuffer(struct pipe_screen *screen,
|
|||
if (pfi->stvis.color_format != PIPE_FORMAT_B8G8R8A8_UNORM &&
|
||||
pfi->stvis.color_format != PIPE_FORMAT_R8G8B8A8_UNORM &&
|
||||
pfi->stvis.color_format != PIPE_FORMAT_R10G10B10A2_UNORM &&
|
||||
pfi->stvis.color_format != PIPE_FORMAT_R16G16B16A16_FLOAT)
|
||||
pfi->stvis.color_format != PIPE_FORMAT_R16G16B16A16_FLOAT &&
|
||||
pfi->stvis.color_format != PIPE_FORMAT_B8G8R8X8_UNORM &&
|
||||
pfi->stvis.color_format != PIPE_FORMAT_R8G8B8X8_UNORM)
|
||||
return NULL;
|
||||
|
||||
struct d3d12_wgl_framebuffer *fb = CALLOC_STRUCT(d3d12_wgl_framebuffer);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue