Hash :
5d121e1e
Author :
Date :
2015-06-10T18:56:04
Add generated tables to mirror D3D11 format support. *re-land with fix for test build* These tables can save us on startup time. Instead of querying the tables, we can keep certain assumptions about texture formats because certain formats are guaranteed to be supported in various feature levels. Testing with angle_perftests indicates this patch series will save about 50% of the time we spend in Renderer11::initializeDevice. BUG=angleproject:1014 Change-Id: I5477eea3e8433d36119cd099fb0c08eea168489a Reviewed-on: https://chromium-review.googlesource.com/276758 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
//
// Copyright 2015 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// dxgi_support_table:
// Queries for DXGI support of various texture formats. Depends on DXGI
// version, D3D feature level, and is sometimes guaranteed or optional.
//
#include "common/platform.h"
namespace rx
{
namespace d3d11
{
struct DXGISupport
{
DXGISupport()
: alwaysSupportedFlags(0),
neverSupportedFlags(0),
optionallySupportedFlags(0)
{
}
DXGISupport(UINT alwaysSupportedIn, UINT neverSupportedIn, UINT optionallySupportedIn)
: alwaysSupportedFlags(alwaysSupportedIn),
neverSupportedFlags(neverSupportedIn),
optionallySupportedFlags(optionallySupportedIn)
{
}
UINT alwaysSupportedFlags;
UINT neverSupportedFlags;
UINT optionallySupportedFlags;
};
const DXGISupport &GetDXGISupport(DXGI_FORMAT dxgiFormat, D3D_FEATURE_LEVEL featureLevel);
} // namespace d3d11
} // namespace rx