headers: Update imported headers to Wine 7221d4565c55d006f18d50481e246a5c9649a3ff

This closes https://github.com/mingw-w64/mingw-w64/issues/159.

Signed-off-by: LIU Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/d3d12.h b/mingw-w64-headers/include/d3d12.h
index 2a4e248..77ec366 100644
--- a/mingw-w64-headers/include/d3d12.h
+++ b/mingw-w64-headers/include/d3d12.h
@@ -466,6 +466,30 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __ID3D12SDKConfiguration1_FWD_DEFINED__
+#define __ID3D12SDKConfiguration1_FWD_DEFINED__
+typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1;
+#ifdef __cplusplus
+interface ID3D12SDKConfiguration1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12DeviceFactory_FWD_DEFINED__
+#define __ID3D12DeviceFactory_FWD_DEFINED__
+typedef interface ID3D12DeviceFactory ID3D12DeviceFactory;
+#ifdef __cplusplus
+interface ID3D12DeviceFactory;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__
+#define __ID3D12DeviceConfiguration_FWD_DEFINED__
+typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration;
+#ifdef __cplusplus
+interface ID3D12DeviceConfiguration;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__
 #define __ID3D12GraphicsCommandList5_FWD_DEFINED__
 typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5;
@@ -19284,7 +19308,7 @@
     D3D12_BARRIER_SYNC_NONE = 0x0,
     D3D12_BARRIER_SYNC_ALL = 0x1,
     D3D12_BARRIER_SYNC_DRAW = 0x2,
-    D3D12_BARRIER_SYNC_INPUT_ASSEMBLER = 0x4,
+    D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4,
     D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
     D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
     D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
@@ -19298,6 +19322,7 @@
     D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
     D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
     D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
+    D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000,
     D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
     D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
     D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
@@ -21713,6 +21738,429 @@
 
 #endif  /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * ID3D12SDKConfiguration1 interface
+ */
+#ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
+#define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12SDKConfiguration1, 0x8aaf9303, 0xad25, 0x48b9, 0x9a,0x57, 0xd9,0xc3,0x7e,0x00,0x9d,0x9f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f")
+ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory(
+        UINT sdk_version,
+        const char *sdk_path,
+        REFIID riid,
+        void **ppv) = 0;
+
+    virtual void STDMETHODCALLTYPE FreeUnusedSDKs(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12SDKConfiguration1, 0x8aaf9303, 0xad25, 0x48b9, 0x9a,0x57, 0xd9,0xc3,0x7e,0x00,0x9d,0x9f)
+#endif
+#else
+typedef struct ID3D12SDKConfiguration1Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12SDKConfiguration1 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12SDKConfiguration1 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12SDKConfiguration1 *This);
+
+    /*** ID3D12SDKConfiguration methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetSDKVersion)(
+        ID3D12SDKConfiguration1 *This,
+        UINT version,
+        const char *path);
+
+    /*** ID3D12SDKConfiguration1 methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateDeviceFactory)(
+        ID3D12SDKConfiguration1 *This,
+        UINT sdk_version,
+        const char *sdk_path,
+        REFIID riid,
+        void **ppv);
+
+    void (STDMETHODCALLTYPE *FreeUnusedSDKs)(
+        ID3D12SDKConfiguration1 *This);
+
+    END_INTERFACE
+} ID3D12SDKConfiguration1Vtbl;
+
+interface ID3D12SDKConfiguration1 {
+    CONST_VTBL ID3D12SDKConfiguration1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12SDKConfiguration1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12SDKConfiguration1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12SDKConfiguration methods ***/
+#define ID3D12SDKConfiguration1_SetSDKVersion(This,version,path) (This)->lpVtbl->SetSDKVersion(This,version,path)
+/*** ID3D12SDKConfiguration1 methods ***/
+#define ID3D12SDKConfiguration1_CreateDeviceFactory(This,sdk_version,sdk_path,riid,ppv) (This)->lpVtbl->CreateDeviceFactory(This,sdk_version,sdk_path,riid,ppv)
+#define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) (This)->lpVtbl->FreeUnusedSDKs(This)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT ID3D12SDKConfiguration1_QueryInterface(ID3D12SDKConfiguration1* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG ID3D12SDKConfiguration1_AddRef(ID3D12SDKConfiguration1* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG ID3D12SDKConfiguration1_Release(ID3D12SDKConfiguration1* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12SDKConfiguration methods ***/
+static inline HRESULT ID3D12SDKConfiguration1_SetSDKVersion(ID3D12SDKConfiguration1* This,UINT version,const char *path) {
+    return This->lpVtbl->SetSDKVersion(This,version,path);
+}
+/*** ID3D12SDKConfiguration1 methods ***/
+static inline HRESULT ID3D12SDKConfiguration1_CreateDeviceFactory(ID3D12SDKConfiguration1* This,UINT sdk_version,const char *sdk_path,REFIID riid,void **ppv) {
+    return This->lpVtbl->CreateDeviceFactory(This,sdk_version,sdk_path,riid,ppv);
+}
+static inline void ID3D12SDKConfiguration1_FreeUnusedSDKs(ID3D12SDKConfiguration1* This) {
+    This->lpVtbl->FreeUnusedSDKs(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */
+
+typedef enum D3D12_DEVICE_FACTORY_FLAGS {
+    D3D12_DEVICE_FACTORY_FLAG_NONE = 0,
+    D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1,
+    D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2,
+    D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4
+} D3D12_DEVICE_FACTORY_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEVICE_FACTORY_FLAGS)
+/*****************************************************************************
+ * ID3D12DeviceFactory interface
+ */
+#ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__
+#define __ID3D12DeviceFactory_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12DeviceFactory, 0x61f307d3, 0xd34e, 0x4e7c, 0x83,0x74, 0x3b,0xa4,0xde,0x23,0xcc,0xcb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb")
+ID3D12DeviceFactory : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetFlags(
+        D3D12_DEVICE_FACTORY_FLAGS flags) = 0;
+
+    virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface(
+        REFCLSID clsid,
+        REFIID iid,
+        void **ppv) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures(
+        UINT num_features,
+        const IID *iids,
+        void *configuration_structs,
+        UINT *configuration_struct_sizes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDevice(
+        IUnknown *adapter,
+        D3D_FEATURE_LEVEL feature_level,
+        REFIID riid,
+        void **ppv_device) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12DeviceFactory, 0x61f307d3, 0xd34e, 0x4e7c, 0x83,0x74, 0x3b,0xa4,0xde,0x23,0xcc,0xcb)
+#endif
+#else
+typedef struct ID3D12DeviceFactoryVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12DeviceFactory *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12DeviceFactory *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12DeviceFactory *This);
+
+    /*** ID3D12DeviceFactory methods ***/
+    HRESULT (STDMETHODCALLTYPE *InitializeFromGlobalState)(
+        ID3D12DeviceFactory *This);
+
+    HRESULT (STDMETHODCALLTYPE *ApplyToGlobalState)(
+        ID3D12DeviceFactory *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetFlags)(
+        ID3D12DeviceFactory *This,
+        D3D12_DEVICE_FACTORY_FLAGS flags);
+
+    D3D12_DEVICE_FACTORY_FLAGS (STDMETHODCALLTYPE *GetFlags)(
+        ID3D12DeviceFactory *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetConfigurationInterface)(
+        ID3D12DeviceFactory *This,
+        REFCLSID clsid,
+        REFIID iid,
+        void **ppv);
+
+    HRESULT (STDMETHODCALLTYPE *EnableExperimentalFeatures)(
+        ID3D12DeviceFactory *This,
+        UINT num_features,
+        const IID *iids,
+        void *configuration_structs,
+        UINT *configuration_struct_sizes);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDevice)(
+        ID3D12DeviceFactory *This,
+        IUnknown *adapter,
+        D3D_FEATURE_LEVEL feature_level,
+        REFIID riid,
+        void **ppv_device);
+
+    END_INTERFACE
+} ID3D12DeviceFactoryVtbl;
+
+interface ID3D12DeviceFactory {
+    CONST_VTBL ID3D12DeviceFactoryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12DeviceFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12DeviceFactory_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12DeviceFactory methods ***/
+#define ID3D12DeviceFactory_InitializeFromGlobalState(This) (This)->lpVtbl->InitializeFromGlobalState(This)
+#define ID3D12DeviceFactory_ApplyToGlobalState(This) (This)->lpVtbl->ApplyToGlobalState(This)
+#define ID3D12DeviceFactory_SetFlags(This,flags) (This)->lpVtbl->SetFlags(This,flags)
+#define ID3D12DeviceFactory_GetFlags(This) (This)->lpVtbl->GetFlags(This)
+#define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) (This)->lpVtbl->GetConfigurationInterface(This,clsid,iid,ppv)
+#define ID3D12DeviceFactory_EnableExperimentalFeatures(This,num_features,iids,configuration_structs,configuration_struct_sizes) (This)->lpVtbl->EnableExperimentalFeatures(This,num_features,iids,configuration_structs,configuration_struct_sizes)
+#define ID3D12DeviceFactory_CreateDevice(This,adapter,feature_level,riid,ppv_device) (This)->lpVtbl->CreateDevice(This,adapter,feature_level,riid,ppv_device)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT ID3D12DeviceFactory_QueryInterface(ID3D12DeviceFactory* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG ID3D12DeviceFactory_AddRef(ID3D12DeviceFactory* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG ID3D12DeviceFactory_Release(ID3D12DeviceFactory* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12DeviceFactory methods ***/
+static inline HRESULT ID3D12DeviceFactory_InitializeFromGlobalState(ID3D12DeviceFactory* This) {
+    return This->lpVtbl->InitializeFromGlobalState(This);
+}
+static inline HRESULT ID3D12DeviceFactory_ApplyToGlobalState(ID3D12DeviceFactory* This) {
+    return This->lpVtbl->ApplyToGlobalState(This);
+}
+static inline HRESULT ID3D12DeviceFactory_SetFlags(ID3D12DeviceFactory* This,D3D12_DEVICE_FACTORY_FLAGS flags) {
+    return This->lpVtbl->SetFlags(This,flags);
+}
+static inline D3D12_DEVICE_FACTORY_FLAGS ID3D12DeviceFactory_GetFlags(ID3D12DeviceFactory* This) {
+    return This->lpVtbl->GetFlags(This);
+}
+static inline HRESULT ID3D12DeviceFactory_GetConfigurationInterface(ID3D12DeviceFactory* This,REFCLSID clsid,REFIID iid,void **ppv) {
+    return This->lpVtbl->GetConfigurationInterface(This,clsid,iid,ppv);
+}
+static inline HRESULT ID3D12DeviceFactory_EnableExperimentalFeatures(ID3D12DeviceFactory* This,UINT num_features,const IID *iids,void *configuration_structs,UINT *configuration_struct_sizes) {
+    return This->lpVtbl->EnableExperimentalFeatures(This,num_features,iids,configuration_structs,configuration_struct_sizes);
+}
+static inline HRESULT ID3D12DeviceFactory_CreateDevice(ID3D12DeviceFactory* This,IUnknown *adapter,D3D_FEATURE_LEVEL feature_level,REFIID riid,void **ppv_device) {
+    return This->lpVtbl->CreateDevice(This,adapter,feature_level,riid,ppv_device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */
+
+typedef enum D3D12_DEVICE_FLAGS {
+    D3D12_DEVICE_FLAG_NONE = 0,
+    D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1,
+    D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2,
+    D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4,
+    D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8,
+    D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10,
+    D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20,
+    D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40,
+    D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80,
+    D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100,
+    D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200,
+    D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400
+} D3D12_DEVICE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEVICE_FLAGS)
+typedef struct D3D12_DEVICE_CONFIGURATION_DESC {
+    D3D12_DEVICE_FLAGS Flags;
+    UINT GpuBasedValidationFlags;
+    UINT SDKVersion;
+    UINT NumEnabledExperimentalFeatures;
+} D3D12_DEVICE_CONFIGURATION_DESC;
+/*****************************************************************************
+ * ID3D12DeviceConfiguration interface
+ */
+#ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
+#define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12DeviceConfiguration, 0x78dbf87b, 0xf766, 0x422b, 0xa6,0x1c, 0xc8,0xc4,0x46,0xbd,0xb9,0xad);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad")
+ID3D12DeviceConfiguration : public IUnknown
+{
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+    virtual D3D12_DEVICE_CONFIGURATION_DESC* STDMETHODCALLTYPE GetDesc(
+        D3D12_DEVICE_CONFIGURATION_DESC *__ret) = 0;
+    D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc(
+        )
+    {
+        D3D12_DEVICE_CONFIGURATION_DESC __ret;
+        return *GetDesc(&__ret);
+    }
+#else
+    virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc(
+        ) = 0;
+#endif
+
+    virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures(
+        GUID *guids,
+        UINT num_guids) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature(
+        const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
+        ID3DBlob **result,
+        ID3DBlob **error) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer(
+        const void *blob,
+        SIZE_T size,
+        REFIID riid,
+        void **deserializer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12DeviceConfiguration, 0x78dbf87b, 0xf766, 0x422b, 0xa6,0x1c, 0xc8,0xc4,0x46,0xbd,0xb9,0xad)
+#endif
+#else
+typedef struct ID3D12DeviceConfigurationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12DeviceConfiguration *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12DeviceConfiguration *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12DeviceConfiguration *This);
+
+    /*** ID3D12DeviceConfiguration methods ***/
+    D3D12_DEVICE_CONFIGURATION_DESC * (STDMETHODCALLTYPE *GetDesc)(
+        ID3D12DeviceConfiguration *This,
+        D3D12_DEVICE_CONFIGURATION_DESC *__ret);
+
+    HRESULT (STDMETHODCALLTYPE *GetEnabledExperimentalFeatures)(
+        ID3D12DeviceConfiguration *This,
+        GUID *guids,
+        UINT num_guids);
+
+    HRESULT (STDMETHODCALLTYPE *SerializeVersionedRootSignature)(
+        ID3D12DeviceConfiguration *This,
+        const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
+        ID3DBlob **result,
+        ID3DBlob **error);
+
+    HRESULT (STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer)(
+        ID3D12DeviceConfiguration *This,
+        const void *blob,
+        SIZE_T size,
+        REFIID riid,
+        void **deserializer);
+
+    END_INTERFACE
+} ID3D12DeviceConfigurationVtbl;
+
+interface ID3D12DeviceConfiguration {
+    CONST_VTBL ID3D12DeviceConfigurationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12DeviceConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12DeviceConfiguration_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12DeviceConfiguration methods ***/
+#define ID3D12DeviceConfiguration_GetDesc(This) ID3D12DeviceConfiguration_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,guids,num_guids) (This)->lpVtbl->GetEnabledExperimentalFeatures(This,guids,num_guids)
+#define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,desc,result,error) (This)->lpVtbl->SerializeVersionedRootSignature(This,desc,result,error)
+#define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,blob,size,riid,deserializer) (This)->lpVtbl->CreateVersionedRootSignatureDeserializer(This,blob,size,riid,deserializer)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT ID3D12DeviceConfiguration_QueryInterface(ID3D12DeviceConfiguration* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG ID3D12DeviceConfiguration_AddRef(ID3D12DeviceConfiguration* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG ID3D12DeviceConfiguration_Release(ID3D12DeviceConfiguration* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12DeviceConfiguration methods ***/
+static inline D3D12_DEVICE_CONFIGURATION_DESC ID3D12DeviceConfiguration_GetDesc(ID3D12DeviceConfiguration* This) {
+    D3D12_DEVICE_CONFIGURATION_DESC __ret;
+    return *This->lpVtbl->GetDesc(This,&__ret);
+}
+static inline HRESULT ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(ID3D12DeviceConfiguration* This,GUID *guids,UINT num_guids) {
+    return This->lpVtbl->GetEnabledExperimentalFeatures(This,guids,num_guids);
+}
+static inline HRESULT ID3D12DeviceConfiguration_SerializeVersionedRootSignature(ID3D12DeviceConfiguration* This,const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,ID3DBlob **result,ID3DBlob **error) {
+    return This->lpVtbl->SerializeVersionedRootSignature(This,desc,result,error);
+}
+static inline HRESULT ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(ID3D12DeviceConfiguration* This,const void *blob,SIZE_T size,REFIID riid,void **deserializer) {
+    return This->lpVtbl->CreateVersionedRootSignatureDeserializer(This,blob,size,riid,deserializer);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */
+
 typedef enum D3D12_AXIS_SHADING_RATE {
     D3D12_AXIS_SHADING_RATE_1X = 0x0,
     D3D12_AXIS_SHADING_RATE_2X = 0x1,
diff --git a/mingw-w64-headers/include/d3d12.idl b/mingw-w64-headers/include/d3d12.idl
index 93184c7..f260743 100644
--- a/mingw-w64-headers/include/d3d12.idl
+++ b/mingw-w64-headers/include/d3d12.idl
@@ -4767,7 +4767,7 @@
     D3D12_BARRIER_SYNC_NONE = 0x0,
     D3D12_BARRIER_SYNC_ALL = 0x1,
     D3D12_BARRIER_SYNC_DRAW = 0x2,
-    D3D12_BARRIER_SYNC_INPUT_ASSEMBLER = 0x4,
+    D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4,
     D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8,
     D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10,
     D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20,
@@ -4781,6 +4781,7 @@
     D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000,
     D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000,
     D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000,
+    D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000,
     D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000,
     D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000,
     D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000,
@@ -5040,6 +5041,113 @@
     HRESULT SetSDKVersion(UINT version, const char *path);
 }
 
+[
+    uuid(8aaf9303-ad25-48b9-9a57-d9c37e009d9f),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface ID3D12SDKConfiguration1 : ID3D12SDKConfiguration
+{
+    HRESULT CreateDeviceFactory(
+        [in] UINT sdk_version,
+        [in] const char *sdk_path,
+        [in] REFIID riid,
+        [out] void **ppv);
+
+    void FreeUnusedSDKs();
+}
+
+typedef enum D3D12_DEVICE_FACTORY_FLAGS
+{
+    D3D12_DEVICE_FACTORY_FLAG_NONE = 0,
+    D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1,
+    D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2,
+    D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4,
+} D3D12_DEVICE_FACTORY_FLAGS;
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEVICE_FACTORY_FLAGS)")
+
+[
+    uuid(61f307d3-d34e-4e7c-8374-3ba4de23cccb),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface ID3D12DeviceFactory : IUnknown
+{
+    HRESULT InitializeFromGlobalState();
+    HRESULT ApplyToGlobalState();
+    HRESULT SetFlags(D3D12_DEVICE_FACTORY_FLAGS flags);
+    D3D12_DEVICE_FACTORY_FLAGS GetFlags();
+
+    HRESULT GetConfigurationInterface(
+        [in] REFCLSID clsid,
+        [in] REFIID iid,
+        [out] void **ppv);
+
+    HRESULT EnableExperimentalFeatures(
+        [in] UINT num_features,
+        [in] const IID *iids,
+        [in] void *configuration_structs,
+        [in] UINT *configuration_struct_sizes);
+
+    HRESULT CreateDevice(
+        [in, optional] IUnknown *adapter,
+        [in] D3D_FEATURE_LEVEL feature_level,
+        [in] REFIID riid,
+        [out] void **ppv_device);
+}
+
+typedef enum D3D12_DEVICE_FLAGS
+{
+    D3D12_DEVICE_FLAG_NONE = 0,
+    D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1,
+    D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2,
+    D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4,
+    D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8,
+    D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10,
+    D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20,
+    D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40,
+    D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80,
+    D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100,
+    D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200,
+    D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400,
+} D3D12_DEVICE_FLAGS;
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEVICE_FLAGS)")
+
+typedef struct D3D12_DEVICE_CONFIGURATION_DESC
+{
+    D3D12_DEVICE_FLAGS Flags;
+    UINT GpuBasedValidationFlags;
+    UINT SDKVersion;
+    UINT NumEnabledExperimentalFeatures;
+} D3D12_DEVICE_CONFIGURATION_DESC;
+
+[
+    uuid(78dbf87b-f766-422b-a61c-c8c446bdb9ad),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface ID3D12DeviceConfiguration : IUnknown
+{
+    D3D12_DEVICE_CONFIGURATION_DESC GetDesc();
+    HRESULT GetEnabledExperimentalFeatures(
+        [out] GUID *guids,
+        [in] UINT num_guids);
+
+    HRESULT SerializeVersionedRootSignature(
+        [in] const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,
+        [out] ID3DBlob **result,
+        [out, optional] ID3DBlob **error);
+
+    HRESULT CreateVersionedRootSignatureDeserializer(
+        [in] const void *blob,
+        [in] SIZE_T size,
+        [in] REFIID riid,
+        [out] void **deserializer);
+}
+
 typedef enum D3D12_AXIS_SHADING_RATE
 {
     D3D12_AXIS_SHADING_RATE_1X = 0x0,
diff --git a/mingw-w64-headers/include/d3d12sdklayers.h b/mingw-w64-headers/include/d3d12sdklayers.h
index cad1ad8..3d91e7d 100644
--- a/mingw-w64-headers/include/d3d12sdklayers.h
+++ b/mingw-w64-headers/include/d3d12sdklayers.h
@@ -989,7 +989,8 @@
     D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 0x4fd,
     D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 0x4fe,
     D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 0x4ff,
-    D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 0x500
+    D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT = 0x536,
+    D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 0x537
 } D3D12_MESSAGE_ID;
 typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
     D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0x0,
diff --git a/mingw-w64-headers/include/d3d12sdklayers.idl b/mingw-w64-headers/include/d3d12sdklayers.idl
index abfd25c..199cd77 100644
--- a/mingw-w64-headers/include/d3d12sdklayers.idl
+++ b/mingw-w64-headers/include/d3d12sdklayers.idl
@@ -891,6 +891,7 @@
     D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 0x04fd,
     D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 0x04fe,
     D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 0x04ff,
+    D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT = 0x0536,
     D3D12_MESSAGE_ID_D3D12_MESSAGES_END
 } D3D12_MESSAGE_ID;