diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index d128fa07e69..791b638be19 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -653,17 +653,6 @@ d3d12_is_format_supported(struct pipe_screen *pscreen, } else fmt_info_sv = fmt_info; -#ifdef _WIN32 - if (bind & PIPE_BIND_DISPLAY_TARGET && - (!(fmt_info.Support1 & D3D12_FORMAT_SUPPORT1_DISPLAY) || - // Disable formats that don't support flip model - dxgi_format == DXGI_FORMAT_B8G8R8X8_UNORM || - dxgi_format == DXGI_FORMAT_B5G5R5A1_UNORM || - dxgi_format == DXGI_FORMAT_B5G6R5_UNORM || - dxgi_format == DXGI_FORMAT_B4G4R4A4_UNORM)) - return false; -#endif - if (bind & PIPE_BIND_DEPTH_STENCIL && !(fmt_info.Support1 & D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL)) return false; diff --git a/src/gallium/winsys/d3d12/wgl/d3d12_wgl_framebuffer.cpp b/src/gallium/winsys/d3d12/wgl/d3d12_wgl_framebuffer.cpp index 65aebdb92d1..ee3edc32b05 100644 --- a/src/gallium/winsys/d3d12/wgl/d3d12_wgl_framebuffer.cpp +++ b/src/gallium/winsys/d3d12/wgl/d3d12_wgl_framebuffer.cpp @@ -227,6 +227,12 @@ d3d12_wgl_create_framebuffer(struct pipe_screen *screen, (pfi->pfd.dwFlags & PFD_SUPPORT_GDI)) return NULL; + 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) + return NULL; + struct d3d12_wgl_framebuffer *fb = CALLOC_STRUCT(d3d12_wgl_framebuffer); if (!fb) return NULL;