Для Direct3D 11 вы должны ознакомиться с аппаратными уровнями Direct3D - см. в этом блоге для получения дополнительной информации.Современный Direct3D поддерживает только определенный набор форматов для «отображения» (то есть, буфер), обозначенный D3D11_FORMAT_SUPPORT_DISPLAY
.Они поддерживаются всем совместимым с Direct3D 11 оборудованием (уровни функций 9.1 - 12.1):
DXGI_FORMAT_R8G8B8A8_UNORM
DXGI_FORMAT_B8G8R8A8_UNORM
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
и B8G8R8A8_UNORM_SRGB
также поддерживаются в качестве форматов буферного буфера при использовании «старых» стилей представления,но не поддерживаются напрямую для новых моделей в стиле флип DXGI_SWAP_EFFECT_FLIP_*
.В этих случаях вы предоставляете формат *_SRGB
только для целевого представления рендеринга, а не для самого буфера.
Аппаратный уровень Direct3D 10.0 или выше также поддерживает:
DXGI_FORMAT_R16G16B16A16_FLOAT
DXGI_FORMAT_R10G10B10A2_UNORM
См. Анатомия Direct3D 11 Создание устройства
Если вы используете Windows 8.1 или Windows 10 для своей машины разработки, вы также должны посмотреть, как включить DXGI Debug Layer , поскольку это дало бы дополнительную информацию для этого сбоя.
DXGI WARNING: IDXGIFactory::CreateSwapChain: Blt-model swap effects (DXGI_SWAP_EFFECT_DISCARD and DXGI_SWAP_EFFECT_SEQUENTIAL)
are legacy swap effects that are predominantly superceded by their
flip-model counterparts (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL and DXGI_SWAP_EFFECT_FLIP_DISCARD).
Please consider updating your application to leverage flip-model swap effects
to benefit from modern presentation enhancements. More information
is available at http://aka.ms/dxgiflipmodel. [ MISCELLANEOUS WARNING #294: ]
DXGI ERROR: IDXGIFactory::CreateSwapChain: Flip model swapchains (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
and DXGI_SWAP_EFFECT_FLIP_DISCARD) only support the following Formats:
(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R10G10B10A2_UNORM), assuming
the underlying Device does as well.
DXGI_SWAP_CHAIN_DESC{ SwapChainType = ..._HWND, BufferDesc = DXGI_MODE_DESC1{Width = 800, Height = 600, RefreshRate = DXGI_RATIONAL{ Numerator = 0, Denominator = 0 }, Format = B8G8R8X8_UNORM, ScanlineOrdering = ..._UNSPECIFIED, Scaling = ..._UNSPECIFIED, Stereo = FALSE }, SampleDesc = DXGI_SAMPLE_DESC{ Count = 1, Quality = 0 }, BufferUsage = 0x20, BufferCount = 2, OutputWindow = 0x0023094C, Scaling = ..._STRETCH, Windowed = TRUE, SwapEffect = ..._FLIP_DISCARD, AlphaMode = ..._IGNORE, Flags = 0x0 }[ MISCELLANEOUS ERROR #101: ]