specs: Add DXGI interfaces added on Windows 10.0.18362 SDK.

Change-Id: Ie007c122efbaf219e3bbe379a838fd7031b41bef
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/apitrace/+/2224552
Reviewed-by: Po-Hsien Wang <pwang@chromium.org>
Commit-Queue: Robert Tarasov <tutankhamen@chromium.org>
Tested-by: Robert Tarasov <tutankhamen@chromium.org>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5db3128..86e9757 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -158,7 +158,7 @@
         endif ()
 
         # https://developer.microsoft.com/en-us/windows/projects/campaigns/windows-dev-essentials-how-windows-10-sdks-ship
-        set (REQUIRED_WINDOWS_SDK 10.0.14393.0)
+        set (REQUIRED_WINDOWS_SDK 10.0.18362)
         if (NOT DirectX_D3D11_4_INCLUDE_FOUND)
             if (CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION)
                 message (SEND_ERROR
diff --git a/specs/d3d11.py b/specs/d3d11.py
index 677aed8..460be65 100644
--- a/specs/d3d11.py
+++ b/specs/d3d11.py
@@ -1244,6 +1244,17 @@
     (D3D11_SHADER_CACHE_SUPPORT_FLAGS, 'SupportFlags'),
 ])
 
+D3D11_SHARED_RESOURCE_TIER = Enum("D3D11_SHARED_RESOURCE_TIER", [
+    "D3D11_SHARED_RESOURCE_TIER_0",
+    "D3D11_SHARED_RESOURCE_TIER_1",
+    "D3D11_SHARED_RESOURCE_TIER_2",
+])
+
+D3D11_FEATURE_DATA_D3D11_OPTIONS5 = Struct("D3D11_FEATURE_DATA_D3D11_OPTIONS5", [
+    (D3D11_SHARED_RESOURCE_TIER, "SharedResourceTier"),
+])
+
+
 D3D11_FEATURE, D3D11_FEATURE_DATA = EnumPolymorphic("D3D11_FEATURE", "Feature", [
     ("D3D11_FEATURE_THREADING", Pointer(D3D11_FEATURE_DATA_THREADING)),
     ("D3D11_FEATURE_DOUBLES", Pointer(D3D11_FEATURE_DATA_DOUBLES)),
@@ -1264,6 +1275,7 @@
     ("D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT", Pointer(D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT)),
     ("D3D11_FEATURE_D3D11_OPTIONS4", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS4)),
     ("D3D11_FEATURE_SHADER_CACHE", Pointer(D3D11_FEATURE_DATA_SHADER_CACHE)),
+    ("D3D11_FEATURE_D3D11_OPTIONS5", Pointer(D3D11_FEATURE_DATA_D3D11_OPTIONS5)),
 ], Blob(Void, "FeatureSupportDataSize"), False)
 
 D3D11_NUM_RTVS = FakeEnum(UINT, [
@@ -2825,6 +2837,7 @@
     'D3D11_FENCE_FLAG_NONE',
     'D3D11_FENCE_FLAG_SHARED',
     'D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER',
+    'D3D11_FENCE_FLAG_NON_MONITORED',
 ])
 
 ID3D11Device4 = Interface('ID3D11Device4', ID3D11Device3)
diff --git a/specs/dxgi.py b/specs/dxgi.py
index f60b9a8..4348293 100644
--- a/specs/dxgi.py
+++ b/specs/dxgi.py
@@ -520,7 +520,7 @@
 
 IDXGIFactory1.methods += [
     StdMethod(HRESULT, "EnumAdapters1", [(UINT, "Adapter"), Out(Pointer(ObjPointer(IDXGIAdapter1)), "ppAdapter")]),
-    StdMethod(BOOL, "IsCurrent", []),
+    StdMethod(BOOL, "IsCurrent", [], sideeffects=False),
 ]
 
 IDXGIAdapter1.methods += [
@@ -1083,6 +1083,9 @@
     'DXGI_ADAPTER_FLAG3_SOFTWARE',
     'DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE',
     'DXGI_ADAPTER_FLAG3_FORCE_DWORD',
+    'DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES',
+    'DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES',
+    'DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE',
 ])
 
 DXGI_ADAPTER_DESC3 = Struct('DXGI_ADAPTER_DESC3', [
@@ -1123,6 +1126,13 @@
     'DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED',
 ])
 
+DXGI_GPU_PREFERENCE = Enum('DXGI_GPU_PREFERENCE', [
+    'DXGI_GPU_PREFERENCE_UNSPECIFIED',
+    'DXGI_GPU_PREFERENCE_MINIMUM_POWER',
+    'DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE',
+])
+
+IDXGIFactory6 = Interface('IDXGIFactory6', IDXGIFactory5)
 IDXGIAdapter4 = Interface('IDXGIAdapter4', IDXGIAdapter3)
 IDXGIOutput6 = Interface('IDXGIOutput6', IDXGIOutput5)
 
@@ -1135,7 +1145,16 @@
     StdMethod(HRESULT, 'CheckHardwareCompositionSupport', [Out(Pointer(DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS), 'pFlags')], sideeffects=False),
 ]
 
+IDXGIFactory6.methods += [
+    StdMethod(HRESULT, 'EnumAdapterByGpuPreference', [(UINT, 'Adapter'), (DXGI_GPU_PREFERENCE, 'GpuPreference'), (REFIID, 'riid'), Out(Pointer(ObjPointer(Void)), 'ppvAdapter')]),
+]
+
 dxgi.addInterfaces([
+    IDXGIFactory6,
     IDXGIAdapter4,
     IDXGIOutput6,
 ])
+
+dxgi.addFunctions([
+    StdFunction(HRESULT, "DXGIDeclareAdapterRemovalSupport", [], sideeffects=False),
+])