headers: Update imported headers to current Wine version.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-headers/include/d3d10.h b/mingw-w64-headers/include/d3d10.h
index 0dc0b8d..f5251ad 100644
--- a/mingw-w64-headers/include/d3d10.h
+++ b/mingw-w64-headers/include/d3d10.h
@@ -1039,8 +1039,14 @@
     D3D10_RTV_DIMENSION_TEXTURE3D = 8
 } D3D10_RTV_DIMENSION;
 typedef struct D3D10_BUFFER_RTV {
-    UINT ElementOffset;
-    UINT ElementWidth;
+    __C89_NAMELESS union {
+        UINT FirstElement;
+        UINT ElementOffset;
+    } __C89_NAMELESSUNIONNAME1;
+    __C89_NAMELESS union {
+        UINT NumElements;
+        UINT ElementWidth;
+    } __C89_NAMELESSUNIONNAME2;
 } D3D10_BUFFER_RTV;
 typedef struct D3D10_TEX1D_RTV {
     UINT MipSlice;
@@ -1086,8 +1092,14 @@
 } D3D10_RENDER_TARGET_VIEW_DESC;
 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
 typedef struct D3D10_BUFFER_SRV {
-    UINT ElementOffset;
-    UINT ElementWidth;
+    __C89_NAMELESS union {
+        UINT FirstElement;
+        UINT ElementOffset;
+    } __C89_NAMELESSUNIONNAME1;
+    __C89_NAMELESS union {
+        UINT NumElements;
+        UINT ElementWidth;
+    } __C89_NAMELESSUNIONNAME2;
 } D3D10_BUFFER_SRV;
 typedef struct D3D10_TEX1D_SRV {
     UINT MostDetailedMip;
@@ -1301,7 +1313,9 @@
     D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
     D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP = 0x10,
     D3D10_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
-    D3D10_CREATE_DEVICE_STRICT_VALIDATION = 0x200
+    D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
+    D3D10_CREATE_DEVICE_STRICT_VALIDATION = 0x200,
+    D3D10_CREATE_DEVICE_DEBUGGABLE = 0x400
 } D3D10_CREATE_DEVICE_FLAG;
 #ifndef __ID3D10Device_FWD_DEFINED__
 #define __ID3D10Device_FWD_DEFINED__
diff --git a/mingw-w64-headers/include/d3d10.idl b/mingw-w64-headers/include/d3d10.idl
index f125956..146332a 100644
--- a/mingw-w64-headers/include/d3d10.idl
+++ b/mingw-w64-headers/include/d3d10.idl
@@ -660,8 +660,14 @@
 } D3D10_RTV_DIMENSION;
 
 typedef struct D3D10_BUFFER_RTV {
-    UINT ElementOffset;
-    UINT ElementWidth;
+    union {
+        UINT FirstElement;
+        UINT ElementOffset;
+    };
+    union {
+        UINT NumElements;
+        UINT ElementWidth;
+    };
 } D3D10_BUFFER_RTV;
 
 typedef struct D3D10_TEX1D_RTV {
@@ -717,8 +723,14 @@
 typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
 
 typedef struct D3D10_BUFFER_SRV {
-    UINT ElementOffset;
-    UINT ElementWidth;
+    union {
+        UINT FirstElement;
+        UINT ElementOffset;
+    };
+    union {
+        UINT NumElements;
+        UINT ElementWidth;
+    };
 } D3D10_BUFFER_SRV;
 
 typedef struct D3D10_TEX1D_SRV {
@@ -972,7 +984,9 @@
     D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
     D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP                      = 0x10,
     D3D10_CREATE_DEVICE_BGRA_SUPPORT                             = 0x20,
-    D3D10_CREATE_DEVICE_STRICT_VALIDATION                        = 0x0200
+    D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
+    D3D10_CREATE_DEVICE_STRICT_VALIDATION                             = 0x200,
+    D3D10_CREATE_DEVICE_DEBUGGABLE                                    = 0x400,
 } D3D10_CREATE_DEVICE_FLAG;
 
 /* Core */
diff --git a/mingw-w64-headers/include/d3d10sdklayers.h b/mingw-w64-headers/include/d3d10sdklayers.h
index ff49ad5..dc2cf8d 100644
--- a/mingw-w64-headers/include/d3d10sdklayers.h
+++ b/mingw-w64-headers/include/d3d10sdklayers.h
@@ -18,6 +18,22 @@
 
 /* Forward declarations */
 
+#ifndef __ID3D10Debug_FWD_DEFINED__
+#define __ID3D10Debug_FWD_DEFINED__
+typedef interface ID3D10Debug ID3D10Debug;
+#ifdef __cplusplus
+interface ID3D10Debug;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D10SwitchToRef_FWD_DEFINED__
+#define __ID3D10SwitchToRef_FWD_DEFINED__
+typedef interface ID3D10SwitchToRef ID3D10SwitchToRef;
+#ifdef __cplusplus
+interface ID3D10SwitchToRef;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __ID3D10InfoQueue_FWD_DEFINED__
 #define __ID3D10InfoQueue_FWD_DEFINED__
 typedef interface ID3D10InfoQueue ID3D10InfoQueue;
@@ -39,6 +55,12 @@
 #ifdef WINE_NO_UNICODE_MACROS
 #undef GetMessage
 #endif
+#define D3D10_DEBUG_FEATURE_FLUSH_PER_RENDER_OP (0x1)
+
+#define D3D10_DEBUG_FEATURE_FINISH_PER_RENDER_OP (0x2)
+
+#define D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP (0x4)
+
 typedef enum D3D10_MESSAGE_CATEGORY {
     D3D10_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0,
     D3D10_MESSAGE_CATEGORY_MISCELLANEOUS = 1,
@@ -588,6 +610,233 @@
     D3D10_INFO_QUEUE_FILTER_DESC DenyList;
 } D3D10_INFO_QUEUE_FILTER;
 /*****************************************************************************
+ * ID3D10Debug interface
+ */
+#ifndef __ID3D10Debug_INTERFACE_DEFINED__
+#define __ID3D10Debug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10Debug, 0x9b7e4e01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4e01-342c-4106-a19f-4f2704f689f0")
+ID3D10Debug : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetFeatureMask(
+        UINT mask) = 0;
+
+    virtual UINT STDMETHODCALLTYPE GetFeatureMask(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPresentPerRenderOpDelay(
+        UINT milliseconds) = 0;
+
+    virtual UINT STDMETHODCALLTYPE GetPresentPerRenderOpDelay(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSwapChain(
+        IDXGISwapChain *swapchain) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSwapChain(
+        IDXGISwapChain **swapchain) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Validate(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10Debug, 0x9b7e4e01, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10DebugVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D10Debug *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D10Debug *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D10Debug *This);
+
+    /*** ID3D10Debug methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetFeatureMask)(
+        ID3D10Debug *This,
+        UINT mask);
+
+    UINT (STDMETHODCALLTYPE *GetFeatureMask)(
+        ID3D10Debug *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetPresentPerRenderOpDelay)(
+        ID3D10Debug *This,
+        UINT milliseconds);
+
+    UINT (STDMETHODCALLTYPE *GetPresentPerRenderOpDelay)(
+        ID3D10Debug *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetSwapChain)(
+        ID3D10Debug *This,
+        IDXGISwapChain *swapchain);
+
+    HRESULT (STDMETHODCALLTYPE *GetSwapChain)(
+        ID3D10Debug *This,
+        IDXGISwapChain **swapchain);
+
+    HRESULT (STDMETHODCALLTYPE *Validate)(
+        ID3D10Debug *This);
+
+    END_INTERFACE
+} ID3D10DebugVtbl;
+
+interface ID3D10Debug {
+    CONST_VTBL ID3D10DebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10Debug_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10Debug methods ***/
+#define ID3D10Debug_SetFeatureMask(This,mask) (This)->lpVtbl->SetFeatureMask(This,mask)
+#define ID3D10Debug_GetFeatureMask(This) (This)->lpVtbl->GetFeatureMask(This)
+#define ID3D10Debug_SetPresentPerRenderOpDelay(This,milliseconds) (This)->lpVtbl->SetPresentPerRenderOpDelay(This,milliseconds)
+#define ID3D10Debug_GetPresentPerRenderOpDelay(This) (This)->lpVtbl->GetPresentPerRenderOpDelay(This)
+#define ID3D10Debug_SetSwapChain(This,swapchain) (This)->lpVtbl->SetSwapChain(This,swapchain)
+#define ID3D10Debug_GetSwapChain(This,swapchain) (This)->lpVtbl->GetSwapChain(This,swapchain)
+#define ID3D10Debug_Validate(This) (This)->lpVtbl->Validate(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10Debug_QueryInterface(ID3D10Debug* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10Debug_AddRef(ID3D10Debug* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10Debug_Release(ID3D10Debug* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D10Debug methods ***/
+static FORCEINLINE HRESULT ID3D10Debug_SetFeatureMask(ID3D10Debug* This,UINT mask) {
+    return This->lpVtbl->SetFeatureMask(This,mask);
+}
+static FORCEINLINE UINT ID3D10Debug_GetFeatureMask(ID3D10Debug* This) {
+    return This->lpVtbl->GetFeatureMask(This);
+}
+static FORCEINLINE HRESULT ID3D10Debug_SetPresentPerRenderOpDelay(ID3D10Debug* This,UINT milliseconds) {
+    return This->lpVtbl->SetPresentPerRenderOpDelay(This,milliseconds);
+}
+static FORCEINLINE UINT ID3D10Debug_GetPresentPerRenderOpDelay(ID3D10Debug* This) {
+    return This->lpVtbl->GetPresentPerRenderOpDelay(This);
+}
+static FORCEINLINE HRESULT ID3D10Debug_SetSwapChain(ID3D10Debug* This,IDXGISwapChain *swapchain) {
+    return This->lpVtbl->SetSwapChain(This,swapchain);
+}
+static FORCEINLINE HRESULT ID3D10Debug_GetSwapChain(ID3D10Debug* This,IDXGISwapChain **swapchain) {
+    return This->lpVtbl->GetSwapChain(This,swapchain);
+}
+static FORCEINLINE HRESULT ID3D10Debug_Validate(ID3D10Debug* This) {
+    return This->lpVtbl->Validate(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D10Debug_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D10SwitchToRef interface
+ */
+#ifndef __ID3D10SwitchToRef_INTERFACE_DEFINED__
+#define __ID3D10SwitchToRef_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D10SwitchToRef, 0x9b7e4e02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9b7e4e02-342c-4106-a19f-4f2704f689f0")
+ID3D10SwitchToRef : public IUnknown
+{
+    virtual WINBOOL STDMETHODCALLTYPE SetUseRef(
+        WINBOOL useref) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE GetUseRef(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D10SwitchToRef, 0x9b7e4e02, 0x342c, 0x4106, 0xa1,0x9f, 0x4f,0x27,0x04,0xf6,0x89,0xf0)
+#endif
+#else
+typedef struct ID3D10SwitchToRefVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D10SwitchToRef *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D10SwitchToRef *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D10SwitchToRef *This);
+
+    /*** ID3D10SwitchToRef methods ***/
+    WINBOOL (STDMETHODCALLTYPE *SetUseRef)(
+        ID3D10SwitchToRef *This,
+        WINBOOL useref);
+
+    WINBOOL (STDMETHODCALLTYPE *GetUseRef)(
+        ID3D10SwitchToRef *This);
+
+    END_INTERFACE
+} ID3D10SwitchToRefVtbl;
+
+interface ID3D10SwitchToRef {
+    CONST_VTBL ID3D10SwitchToRefVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D10SwitchToRef_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D10SwitchToRef_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D10SwitchToRef_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D10SwitchToRef methods ***/
+#define ID3D10SwitchToRef_SetUseRef(This,useref) (This)->lpVtbl->SetUseRef(This,useref)
+#define ID3D10SwitchToRef_GetUseRef(This) (This)->lpVtbl->GetUseRef(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D10SwitchToRef_QueryInterface(ID3D10SwitchToRef* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D10SwitchToRef_AddRef(ID3D10SwitchToRef* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D10SwitchToRef_Release(ID3D10SwitchToRef* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D10SwitchToRef methods ***/
+static FORCEINLINE WINBOOL ID3D10SwitchToRef_SetUseRef(ID3D10SwitchToRef* This,WINBOOL useref) {
+    return This->lpVtbl->SetUseRef(This,useref);
+}
+static FORCEINLINE WINBOOL ID3D10SwitchToRef_GetUseRef(ID3D10SwitchToRef* This) {
+    return This->lpVtbl->GetUseRef(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D10SwitchToRef_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
  * ID3D10InfoQueue interface
  */
 #ifndef __ID3D10InfoQueue_INTERFACE_DEFINED__
diff --git a/mingw-w64-headers/include/d3d10sdklayers.idl b/mingw-w64-headers/include/d3d10sdklayers.idl
index c6606d2..317f7c2 100644
--- a/mingw-w64-headers/include/d3d10sdklayers.idl
+++ b/mingw-w64-headers/include/d3d10sdklayers.idl
@@ -24,6 +24,10 @@
 cpp_quote("#undef GetMessage")
 cpp_quote("#endif")
 
+const UINT D3D10_DEBUG_FEATURE_FLUSH_PER_RENDER_OP = 0x1;
+const UINT D3D10_DEBUG_FEATURE_FINISH_PER_RENDER_OP = 0x2;
+const UINT D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP = 0x4;
+
 typedef enum D3D10_MESSAGE_CATEGORY
 {
     D3D10_MESSAGE_CATEGORY_APPLICATION_DEFINED,
@@ -588,6 +592,45 @@
 [
     local,
     object,
+    uuid(9b7e4e01-342c-4106-a19f-4f2704f689f0),
+    pointer_default(unique)
+]
+interface ID3D10Debug : IUnknown
+{
+    HRESULT SetFeatureMask(
+        [in] UINT mask
+    );
+    UINT GetFeatureMask();
+    HRESULT SetPresentPerRenderOpDelay(
+        [in] UINT milliseconds
+    );
+    UINT GetPresentPerRenderOpDelay();
+    HRESULT SetSwapChain(
+        [in] IDXGISwapChain *swapchain
+    );
+    HRESULT GetSwapChain(
+        [out] IDXGISwapChain **swapchain
+    );
+    HRESULT Validate();
+}
+
+[
+    local,
+    object,
+    uuid(9b7e4e02-342c-4106-a19f-4f2704f689f0),
+    pointer_default(unique)
+]
+interface ID3D10SwitchToRef : IUnknown
+{
+    BOOL SetUseRef(
+        [in] BOOL useref
+    );
+    BOOL GetUseRef();
+}
+
+[
+    local,
+    object,
     uuid(1b940b17-2642-4d1f-ab1f-b99bad0c395f),
     pointer_default(unique)
 ]
diff --git a/mingw-w64-headers/include/d3d11.h b/mingw-w64-headers/include/d3d11.h
index 26357df..cc945c5 100644
--- a/mingw-w64-headers/include/d3d11.h
+++ b/mingw-w64-headers/include/d3d11.h
@@ -1272,7 +1272,25 @@
     D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
     D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
     D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
-    D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5
+    D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
+    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
+    D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
+    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
+    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
+    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
+    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
+    D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
+    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
+    D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
+    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
+    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
+    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
+    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
+    D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
 } D3D11_FILTER;
 typedef enum D3D11_DSV_FLAG {
     D3D11_DSV_READ_ONLY_DEPTH = 0x1,
@@ -1358,7 +1376,10 @@
     D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000,
     D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000,
     D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000,
-    D3D11_RESOURCE_MISC_GUARDED = 0x8000
+    D3D11_RESOURCE_MISC_GUARDED = 0x8000,
+    D3D11_RESOURCE_MISC_TILE_POOL = 0x20000,
+    D3D11_RESOURCE_MISC_TILED = 0x40000,
+    D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000
 } D3D11_RESOURCE_MISC_FLAG;
 typedef struct D3D11_QUERY_DESC {
     D3D11_QUERY Query;
diff --git a/mingw-w64-headers/include/d3d11.idl b/mingw-w64-headers/include/d3d11.idl
index 24ecc31..43f8b55 100644
--- a/mingw-w64-headers/include/d3d11.idl
+++ b/mingw-w64-headers/include/d3d11.idl
@@ -875,7 +875,25 @@
     D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
     D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
     D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
-    D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5
+    D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
+    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
+    D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
+    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
+    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
+    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
+    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
+    D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
+    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
+    D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
+    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
+    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
+    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
+    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
+    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
+    D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
 } D3D11_FILTER;
 
 typedef enum D3D11_DSV_FLAG
@@ -987,7 +1005,10 @@
     D3D11_RESOURCE_MISC_RESTRICTED_CONTENT               = 0x00001000L,
     D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE         = 0x00002000L,
     D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER  = 0x00004000L,
-    D3D11_RESOURCE_MISC_GUARDED                          = 0x00008000L
+    D3D11_RESOURCE_MISC_GUARDED                          = 0x00008000L,
+    D3D11_RESOURCE_MISC_TILE_POOL                        = 0x00020000L,
+    D3D11_RESOURCE_MISC_TILED                            = 0x00040000L,
+    D3D11_RESOURCE_MISC_HW_PROTECTED                     = 0x00080000L
 } D3D11_RESOURCE_MISC_FLAG;
 
 typedef struct D3D11_QUERY_DESC
diff --git a/mingw-w64-headers/include/d3d11sdklayers.h b/mingw-w64-headers/include/d3d11sdklayers.h
index 93914fc..6edd03a 100644
--- a/mingw-w64-headers/include/d3d11sdklayers.h
+++ b/mingw-w64-headers/include/d3d11sdklayers.h
@@ -26,6 +26,14 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __ID3D11SwitchToRef_FWD_DEFINED__
+#define __ID3D11SwitchToRef_FWD_DEFINED__
+typedef interface ID3D11SwitchToRef ID3D11SwitchToRef;
+#ifdef __cplusplus
+interface ID3D11SwitchToRef;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __ID3D11InfoQueue_FWD_DEFINED__
 #define __ID3D11InfoQueue_FWD_DEFINED__
 typedef interface ID3D11InfoQueue ID3D11InfoQueue;
@@ -44,6 +52,20 @@
 extern "C" {
 #endif
 
+#define D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP (0x1)
+
+#define D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP (0x2)
+
+#define D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP (0x4)
+
+#define D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE (0x8)
+
+#define D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE (0x10)
+
+#define D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS (0x40)
+
+#define D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION (0x80)
+
 typedef enum D3D11_MESSAGE_CATEGORY {
     D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0,
     D3D11_MESSAGE_CATEGORY_MISCELLANEOUS = 1,
@@ -1390,6 +1412,93 @@
 #endif  /* __ID3D11Debug_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
+ * ID3D11SwitchToRef interface
+ */
+#ifndef __ID3D11SwitchToRef_INTERFACE_DEFINED__
+#define __ID3D11SwitchToRef_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11SwitchToRef, 0x1ef337e3, 0x58e7, 0x4f83, 0xa6,0x92, 0xdb,0x22,0x1f,0x5e,0xd4,0x7e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1ef337e3-58e7-4f83-a692-db221f5ed47e")
+ID3D11SwitchToRef : public IUnknown
+{
+    virtual WINBOOL STDMETHODCALLTYPE SetUseRef(
+        WINBOOL useref) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE GetUseRef(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11SwitchToRef, 0x1ef337e3, 0x58e7, 0x4f83, 0xa6,0x92, 0xdb,0x22,0x1f,0x5e,0xd4,0x7e)
+#endif
+#else
+typedef struct ID3D11SwitchToRefVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D11SwitchToRef *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D11SwitchToRef *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D11SwitchToRef *This);
+
+    /*** ID3D11SwitchToRef methods ***/
+    WINBOOL (STDMETHODCALLTYPE *SetUseRef)(
+        ID3D11SwitchToRef *This,
+        WINBOOL useref);
+
+    WINBOOL (STDMETHODCALLTYPE *GetUseRef)(
+        ID3D11SwitchToRef *This);
+
+    END_INTERFACE
+} ID3D11SwitchToRefVtbl;
+
+interface ID3D11SwitchToRef {
+    CONST_VTBL ID3D11SwitchToRefVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11SwitchToRef_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11SwitchToRef_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11SwitchToRef_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11SwitchToRef methods ***/
+#define ID3D11SwitchToRef_SetUseRef(This,useref) (This)->lpVtbl->SetUseRef(This,useref)
+#define ID3D11SwitchToRef_GetUseRef(This) (This)->lpVtbl->GetUseRef(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11SwitchToRef_QueryInterface(ID3D11SwitchToRef* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11SwitchToRef_AddRef(ID3D11SwitchToRef* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11SwitchToRef_Release(ID3D11SwitchToRef* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D11SwitchToRef methods ***/
+static FORCEINLINE WINBOOL ID3D11SwitchToRef_SetUseRef(ID3D11SwitchToRef* This,WINBOOL useref) {
+    return This->lpVtbl->SetUseRef(This,useref);
+}
+static FORCEINLINE WINBOOL ID3D11SwitchToRef_GetUseRef(ID3D11SwitchToRef* This) {
+    return This->lpVtbl->GetUseRef(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D11SwitchToRef_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
  * ID3D11InfoQueue interface
  */
 #ifndef __ID3D11InfoQueue_INTERFACE_DEFINED__
diff --git a/mingw-w64-headers/include/d3d11sdklayers.idl b/mingw-w64-headers/include/d3d11sdklayers.idl
index 638e53c..54236fc 100644
--- a/mingw-w64-headers/include/d3d11sdklayers.idl
+++ b/mingw-w64-headers/include/d3d11sdklayers.idl
@@ -20,6 +20,14 @@
 import "ocidl.idl";
 import "d3d11.idl";
 
+const UINT D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP = 0x1;
+const UINT D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP = 0x2;
+const UINT D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP = 0x4;
+const UINT D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE = 0x8;
+const UINT D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE = 0x10;
+const UINT D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x40;
+const UINT D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION = 0x80;
+
 typedef enum D3D11_MESSAGE_CATEGORY {
     D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED,
     D3D11_MESSAGE_CATEGORY_MISCELLANEOUS,
@@ -1233,6 +1241,19 @@
 
 [
     object,
+    uuid(1ef337e3-58e7-4f83-a692-db221f5ed47e),
+    local,
+    pointer_default(unique)
+]
+interface ID3D11SwitchToRef : IUnknown {
+    BOOL SetUseRef(
+        [in] BOOL useref
+    );
+    BOOL GetUseRef();
+}
+
+[
+    object,
     uuid(6543dbb6-1b48-42f5-ab82-e97ec74326f6),
     local,
     pointer_default(unique)
diff --git a/mingw-w64-headers/include/d3dcommon.h b/mingw-w64-headers/include/d3dcommon.h
index 6a6acb5..c7284f0 100644
--- a/mingw-w64-headers/include/d3dcommon.h
+++ b/mingw-w64-headers/include/d3dcommon.h
@@ -26,6 +26,14 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __ID3DDestructionNotifier_FWD_DEFINED__
+#define __ID3DDestructionNotifier_FWD_DEFINED__
+typedef interface ID3DDestructionNotifier ID3DDestructionNotifier;
+#ifdef __cplusplus
+interface ID3DDestructionNotifier;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __ID3DInclude_FWD_DEFINED__
 #define __ID3DInclude_FWD_DEFINED__
 typedef interface ID3DInclude ID3DInclude;
@@ -138,6 +146,99 @@
 typedef ID3D10Blob ID3DBlob;
 typedef ID3DBlob *LPD3DBLOB;
 #define IID_ID3DBlob IID_ID3D10Blob
+typedef void (__stdcall *PFN_DESTRUCTION_CALLBACK)(void *data);
+/*****************************************************************************
+ * ID3DDestructionNotifier interface
+ */
+#ifndef __ID3DDestructionNotifier_INTERFACE_DEFINED__
+#define __ID3DDestructionNotifier_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3DDestructionNotifier, 0xa06eb39a, 0x50da, 0x425b, 0x8c,0x31, 0x4e,0xec,0xd6,0xc2,0x70,0xf3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a06eb39a-50da-425b-8c31-4eecd6c270f3")
+ID3DDestructionNotifier : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE RegisterDestructionCallback(
+        PFN_DESTRUCTION_CALLBACK callback_func,
+        void *data,
+        UINT *callback_id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UnregisterDestructionCallback(
+        UINT callback_id) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3DDestructionNotifier, 0xa06eb39a, 0x50da, 0x425b, 0x8c,0x31, 0x4e,0xec,0xd6,0xc2,0x70,0xf3)
+#endif
+#else
+typedef struct ID3DDestructionNotifierVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3DDestructionNotifier *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3DDestructionNotifier *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3DDestructionNotifier *This);
+
+    /*** ID3DDestructionNotifier methods ***/
+    HRESULT (STDMETHODCALLTYPE *RegisterDestructionCallback)(
+        ID3DDestructionNotifier *This,
+        PFN_DESTRUCTION_CALLBACK callback_func,
+        void *data,
+        UINT *callback_id);
+
+    HRESULT (STDMETHODCALLTYPE *UnregisterDestructionCallback)(
+        ID3DDestructionNotifier *This,
+        UINT callback_id);
+
+    END_INTERFACE
+} ID3DDestructionNotifierVtbl;
+
+interface ID3DDestructionNotifier {
+    CONST_VTBL ID3DDestructionNotifierVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3DDestructionNotifier_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3DDestructionNotifier_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3DDestructionNotifier_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3DDestructionNotifier methods ***/
+#define ID3DDestructionNotifier_RegisterDestructionCallback(This,callback_func,data,callback_id) (This)->lpVtbl->RegisterDestructionCallback(This,callback_func,data,callback_id)
+#define ID3DDestructionNotifier_UnregisterDestructionCallback(This,callback_id) (This)->lpVtbl->UnregisterDestructionCallback(This,callback_id)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3DDestructionNotifier_QueryInterface(ID3DDestructionNotifier* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3DDestructionNotifier_AddRef(ID3DDestructionNotifier* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3DDestructionNotifier_Release(ID3DDestructionNotifier* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3DDestructionNotifier methods ***/
+static FORCEINLINE HRESULT ID3DDestructionNotifier_RegisterDestructionCallback(ID3DDestructionNotifier* This,PFN_DESTRUCTION_CALLBACK callback_func,void *data,UINT *callback_id) {
+    return This->lpVtbl->RegisterDestructionCallback(This,callback_func,data,callback_id);
+}
+static FORCEINLINE HRESULT ID3DDestructionNotifier_UnregisterDestructionCallback(ID3DDestructionNotifier* This,UINT callback_id) {
+    return This->lpVtbl->UnregisterDestructionCallback(This,callback_id);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3DDestructionNotifier_INTERFACE_DEFINED__ */
+
 typedef enum _D3D_INCLUDE_TYPE {
     D3D_INCLUDE_LOCAL = 0,
     D3D_INCLUDE_SYSTEM = 1,
@@ -333,6 +434,12 @@
     D3D_SVT_RWSTRUCTURED_BUFFER = 49,
     D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
     D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
+    D3D_SVT_MIN8FLOAT = 52,
+    D3D_SVT_MIN10FLOAT = 53,
+    D3D_SVT_MIN16FLOAT = 54,
+    D3D_SVT_MIN12INT = 55,
+    D3D_SVT_MIN16INT = 56,
+    D3D_SVT_MIN16UINT = 57,
     D3D10_SVT_VOID = 0,
     D3D10_SVT_BOOL = 1,
     D3D10_SVT_INT = 2,
@@ -736,6 +843,9 @@
     D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
     D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
     D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
+    D3D_NAME_BARYCENTRICS = 23,
+    D3D_NAME_SHADINGRATE = 24,
+    D3D_NAME_CULLPRIMITIVE = 25,
     D3D_NAME_TARGET = 64,
     D3D_NAME_DEPTH = 65,
     D3D_NAME_COVERAGE = 66,
@@ -777,6 +887,8 @@
     D3D_SIT_UAV_APPEND_STRUCTURED = 9,
     D3D_SIT_UAV_CONSUME_STRUCTURED = 10,
     D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = 11,
+    D3D_SIT_RTACCELERATIONSTRUCTURE = 12,
+    D3D_SIT_UAV_FEEDBACKTEXTURE = 13,
     D3D10_SIT_CBUFFER = 0,
     D3D10_SIT_TBUFFER = 1,
     D3D10_SIT_TEXTURE = 2,
diff --git a/mingw-w64-headers/include/d3dcommon.idl b/mingw-w64-headers/include/d3dcommon.idl
index 7d1c0d2..05577d3 100644
--- a/mingw-w64-headers/include/d3dcommon.idl
+++ b/mingw-w64-headers/include/d3dcommon.idl
@@ -43,6 +43,26 @@
 typedef ID3DBlob* LPD3DBLOB;
 cpp_quote("#define IID_ID3DBlob IID_ID3D10Blob")
 
+typedef void(__stdcall *PFN_DESTRUCTION_CALLBACK)(void *data);
+
+[
+    object,
+    local,
+    uuid(a06eb39a-50da-425b-8c31-4eecd6c270f3),
+    pointer_default(unique)
+]
+interface ID3DDestructionNotifier : IUnknown
+{
+    HRESULT RegisterDestructionCallback(
+        [in] PFN_DESTRUCTION_CALLBACK callback_func,
+        [in] void *data,
+        [out] UINT *callback_id
+    );
+    HRESULT UnregisterDestructionCallback(
+        [in] UINT callback_id
+    );
+}
+
 typedef enum _D3D_INCLUDE_TYPE
 {
     D3D_INCLUDE_LOCAL = 0,
@@ -195,6 +215,12 @@
     D3D_SVT_RWSTRUCTURED_BUFFER,
     D3D_SVT_APPEND_STRUCTURED_BUFFER,
     D3D_SVT_CONSUME_STRUCTURED_BUFFER,
+    D3D_SVT_MIN8FLOAT,
+    D3D_SVT_MIN10FLOAT,
+    D3D_SVT_MIN16FLOAT,
+    D3D_SVT_MIN12INT,
+    D3D_SVT_MIN16INT,
+    D3D_SVT_MIN16UINT,
     D3D10_SVT_VOID = 0,
     D3D10_SVT_BOOL,
     D3D10_SVT_INT,
@@ -622,6 +648,9 @@
     D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
     D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
     D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
+    D3D_NAME_BARYCENTRICS = 23,
+    D3D_NAME_SHADINGRATE,
+    D3D_NAME_CULLPRIMITIVE,
     D3D_NAME_TARGET = 64,
     D3D_NAME_DEPTH,
     D3D_NAME_COVERAGE,
@@ -665,6 +694,8 @@
     D3D_SIT_UAV_APPEND_STRUCTURED,
     D3D_SIT_UAV_CONSUME_STRUCTURED,
     D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
+    D3D_SIT_RTACCELERATIONSTRUCTURE,
+    D3D_SIT_UAV_FEEDBACKTEXTURE,
     D3D10_SIT_CBUFFER = 0,
     D3D10_SIT_TBUFFER,
     D3D10_SIT_TEXTURE,