The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at disable-ht-prediction 50 lines 2.2 kB view raw
1// Copyright 2022, Collabora, Ltd. 2// SPDX-License-Identifier: BSL-1.0 3/*! 4 * @file 5 * @brief DXGI formats shared between D3D11 and D3D12 tests. 6 * @author Rylie Pavlik <rylie.pavlik@collabora.com> 7 */ 8 9#pragma once 10 11#include <dxgi.h> 12#include <initializer_list> 13#include <algorithm> 14 15#define MAKE_PAIR(ENUM) \ 16 { \ 17#ENUM, ENUM \ 18 } 19static constexpr std::initializer_list<std::pair<const char *, DXGI_FORMAT>> colorNamesAndFormats = { 20 MAKE_PAIR(DXGI_FORMAT_B8G8R8A8_UNORM_SRGB), MAKE_PAIR(DXGI_FORMAT_B8G8R8A8_UNORM), 21 MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_FLOAT), MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_UNORM), 22 MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_FLOAT), MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_UNORM), 23 MAKE_PAIR(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB), MAKE_PAIR(DXGI_FORMAT_R8G8B8A8_UNORM), 24 MAKE_PAIR(DXGI_FORMAT_R32_FLOAT), 25}; 26 27static constexpr std::initializer_list<DXGI_FORMAT> depthStencilFormats = { 28 DXGI_FORMAT_D16_UNORM, 29 DXGI_FORMAT_D24_UNORM_S8_UINT, 30 DXGI_FORMAT_D32_FLOAT_S8X24_UINT, 31 DXGI_FORMAT_D32_FLOAT, 32}; 33static constexpr std::initializer_list<std::pair<const char *, DXGI_FORMAT>> namesAndFormats = { 34 MAKE_PAIR(DXGI_FORMAT_B8G8R8A8_UNORM_SRGB), MAKE_PAIR(DXGI_FORMAT_B8G8R8A8_UNORM), 35 MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_FLOAT), MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_UNORM), 36 MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_FLOAT), MAKE_PAIR(DXGI_FORMAT_R16G16B16A16_UNORM), 37 MAKE_PAIR(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB), MAKE_PAIR(DXGI_FORMAT_R8G8B8A8_UNORM), 38 MAKE_PAIR(DXGI_FORMAT_R32_FLOAT), MAKE_PAIR(DXGI_FORMAT_D16_UNORM), 39 MAKE_PAIR(DXGI_FORMAT_D24_UNORM_S8_UINT), MAKE_PAIR(DXGI_FORMAT_D32_FLOAT_S8X24_UINT), 40 MAKE_PAIR(DXGI_FORMAT_D32_FLOAT), 41}; 42 43static inline bool 44isDepthStencilFormat(DXGI_FORMAT format) 45{ 46 const auto b = depthStencilFormats.begin(); 47 const auto e = depthStencilFormats.end(); 48 auto it = std::find(b, e, format); 49 return it != e; 50}