diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index af0ae38..d81aedf 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -302,7 +302,6 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -395,6 +394,7 @@
 @HAVE_WIDL_TRUE@  include/d3d11on12.idl \
 @HAVE_WIDL_TRUE@  include/d3d11sdklayers.idl \
 @HAVE_WIDL_TRUE@  include/d3d12.idl \
+@HAVE_WIDL_TRUE@  include/d3d12sdklayers.idl \
 @HAVE_WIDL_TRUE@  include/d3d12shader.idl \
 @HAVE_WIDL_TRUE@  include/d3dcommon.idl \
 @HAVE_WIDL_TRUE@  include/dbgprop.idl \
diff --git a/mingw-w64-headers/include/d3d11shader.h b/mingw-w64-headers/include/d3d11shader.h
index 5264246..d0a06f8 100644
--- a/mingw-w64-headers/include/d3d11shader.h
+++ b/mingw-w64-headers/include/d3d11shader.h
@@ -22,6 +22,11 @@
 
 #include "d3dcommon.h"
 
+/* If not defined set d3dcompiler_47 by default. */
+#ifndef D3D_COMPILER_VERSION
+#define D3D_COMPILER_VERSION 47
+#endif
+
 /* These are defined as version-neutral in d3dcommon.h */
 typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE;
 
diff --git a/mingw-w64-headers/include/d3d12.h b/mingw-w64-headers/include/d3d12.h
index f9a1c7f..a484598 100644
--- a/mingw-w64-headers/include/d3d12.h
+++ b/mingw-w64-headers/include/d3d12.h
@@ -138,14 +138,6 @@
 #endif /* __cplusplus */
 #endif
 
-#ifndef __ID3D12Debug_FWD_DEFINED__
-#define __ID3D12Debug_FWD_DEFINED__
-typedef interface ID3D12Debug ID3D12Debug;
-#ifdef __cplusplus
-interface ID3D12Debug;
-#endif /* __cplusplus */
-#endif
-
 #ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__
 #define __ID3D12RootSignatureDeserializer_FWD_DEFINED__
 typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer;
@@ -5138,82 +5130,6 @@
 #endif  /* __ID3D12Device_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * ID3D12Debug interface
- */
-#ifndef __ID3D12Debug_INTERFACE_DEFINED__
-#define __ID3D12Debug_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0")
-ID3D12Debug : public IUnknown
-{
-    virtual void STDMETHODCALLTYPE EnableDebugLayer(
-        ) = 0;
-
-};
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0)
-#endif
-#else
-typedef struct ID3D12DebugVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12Debug *This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12Debug *This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12Debug *This);
-
-    /*** ID3D12Debug methods ***/
-    void (STDMETHODCALLTYPE *EnableDebugLayer)(
-        ID3D12Debug *This);
-
-    END_INTERFACE
-} ID3D12DebugVtbl;
-
-interface ID3D12Debug {
-    CONST_VTBL ID3D12DebugVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define ID3D12Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12Debug_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D12Debug methods ***/
-#define ID3D12Debug_EnableDebugLayer(This) (This)->lpVtbl->EnableDebugLayer(This)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12Debug_QueryInterface(ID3D12Debug* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG ID3D12Debug_AddRef(ID3D12Debug* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG ID3D12Debug_Release(ID3D12Debug* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** ID3D12Debug methods ***/
-static FORCEINLINE void ID3D12Debug_EnableDebugLayer(ID3D12Debug* This) {
-    This->lpVtbl->EnableDebugLayer(This);
-}
-#endif
-#endif
-
-#endif
-
-
-#endif  /* __ID3D12Debug_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
  * ID3D12RootSignatureDeserializer interface
  */
 #ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
diff --git a/mingw-w64-headers/include/d3d12.idl b/mingw-w64-headers/include/d3d12.idl
index 201e01f..8b1e85f 100644
--- a/mingw-w64-headers/include/d3d12.idl
+++ b/mingw-w64-headers/include/d3d12.idl
@@ -2139,17 +2139,6 @@
 }
 
 [
-    uuid(344488b7-6846-474b-b989-f027448245e0),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12Debug : IUnknown
-{
-    void EnableDebugLayer();
-}
-
-[
     uuid(34ab647b-3cc8-46ac-841b-c0965645c046),
     object,
     local,
diff --git a/mingw-w64-headers/include/d3d12sdklayers.h b/mingw-w64-headers/include/d3d12sdklayers.h
new file mode 100644
index 0000000..e52e2eb
--- /dev/null
+++ b/mingw-w64-headers/include/d3d12sdklayers.h
@@ -0,0 +1,122 @@
+/*** Autogenerated by WIDL 5.16 from include/d3d12sdklayers.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d12sdklayers_h__
+#define __d3d12sdklayers_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D12Debug_FWD_DEFINED__
+#define __ID3D12Debug_FWD_DEFINED__
+typedef interface ID3D12Debug ID3D12Debug;
+#ifdef __cplusplus
+interface ID3D12Debug;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <d3d12.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * ID3D12Debug interface
+ */
+#ifndef __ID3D12Debug_INTERFACE_DEFINED__
+#define __ID3D12Debug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0")
+ID3D12Debug : public IUnknown
+{
+    virtual void STDMETHODCALLTYPE EnableDebugLayer(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0)
+#endif
+#else
+typedef struct ID3D12DebugVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12Debug *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12Debug *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12Debug *This);
+
+    /*** ID3D12Debug methods ***/
+    void (STDMETHODCALLTYPE *EnableDebugLayer)(
+        ID3D12Debug *This);
+
+    END_INTERFACE
+} ID3D12DebugVtbl;
+
+interface ID3D12Debug {
+    CONST_VTBL ID3D12DebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Debug_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Debug methods ***/
+#define ID3D12Debug_EnableDebugLayer(This) (This)->lpVtbl->EnableDebugLayer(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Debug_QueryInterface(ID3D12Debug* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Debug_AddRef(ID3D12Debug* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Debug_Release(ID3D12Debug* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Debug methods ***/
+static FORCEINLINE void ID3D12Debug_EnableDebugLayer(ID3D12Debug* This) {
+    This->lpVtbl->EnableDebugLayer(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12Debug_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d12sdklayers_h__ */
diff --git a/mingw-w64-headers/include/d3d12sdklayers.idl b/mingw-w64-headers/include/d3d12sdklayers.idl
new file mode 100644
index 0000000..dfbb738
--- /dev/null
+++ b/mingw-w64-headers/include/d3d12sdklayers.idl
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2016-2019 Józef Kucia for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "d3d12.idl";
+
+[
+    uuid(344488b7-6846-474b-b989-f027448245e0),
+    object,
+    local,
+    pointer_default(unique)
+]
+interface ID3D12Debug : IUnknown
+{
+    void EnableDebugLayer();
+}
diff --git a/mingw-w64-headers/include/d3d12shader.h b/mingw-w64-headers/include/d3d12shader.h
index 7da79e6..abcaf8e 100644
--- a/mingw-w64-headers/include/d3d12shader.h
+++ b/mingw-w64-headers/include/d3d12shader.h
@@ -84,6 +84,15 @@
 extern "C" {
 #endif
 
+typedef enum D3D12_SHADER_VERSION_TYPE {
+    D3D12_SHVER_PIXEL_SHADER = 0x0,
+    D3D12_SHVER_VERTEX_SHADER = 0x1,
+    D3D12_SHVER_GEOMETRY_SHADER = 0x2,
+    D3D12_SHVER_HULL_SHADER = 0x3,
+    D3D12_SHVER_DOMAIN_SHADER = 0x4,
+    D3D12_SHVER_COMPUTE_SHADER = 0x5,
+    D3D12_SHVER_RESERVED0 = 0xfff0
+} D3D12_SHADER_VERSION_TYPE;
 typedef struct _D3D12_SHADER_DESC {
     UINT Version;
     const char *Creator;
diff --git a/mingw-w64-headers/include/d3d12shader.idl b/mingw-w64-headers/include/d3d12shader.idl
index 9cf39c6..f6cc35a 100644
--- a/mingw-w64-headers/include/d3d12shader.idl
+++ b/mingw-w64-headers/include/d3d12shader.idl
@@ -20,6 +20,17 @@
 import "ocidl.idl";
 import "d3dcommon.idl";
 
+typedef enum D3D12_SHADER_VERSION_TYPE
+{
+    D3D12_SHVER_PIXEL_SHADER = 0x0,
+    D3D12_SHVER_VERTEX_SHADER = 0x1,
+    D3D12_SHVER_GEOMETRY_SHADER = 0x2,
+    D3D12_SHVER_HULL_SHADER = 0x3,
+    D3D12_SHVER_DOMAIN_SHADER = 0x4,
+    D3D12_SHVER_COMPUTE_SHADER = 0x5,
+    D3D12_SHVER_RESERVED0 = 0xfff0,
+} D3D12_SHADER_VERSION_TYPE;
+
 typedef struct _D3D12_SHADER_DESC
 {
     UINT Version;
diff --git a/mingw-w64-headers/include/dwrite_3.h b/mingw-w64-headers/include/dwrite_3.h
index 427c39e..524ca37 100644
--- a/mingw-w64-headers/include/dwrite_3.h
+++ b/mingw-w64-headers/include/dwrite_3.h
@@ -454,6 +454,11 @@
     const WCHAR *propertyValue;
     const WCHAR *localeName;
 } DWRITE_FONT_PROPERTY;
+#ifdef __cplusplus
+#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
+#else
+#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))
+#endif
 typedef enum DWRITE_FONT_AXIS_TAG {
     DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777,
     DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477,
diff --git a/mingw-w64-headers/include/dwrite_3.idl b/mingw-w64-headers/include/dwrite_3.idl
index f5ee615..1b10454 100644
--- a/mingw-w64-headers/include/dwrite_3.idl
+++ b/mingw-w64-headers/include/dwrite_3.idl
@@ -80,6 +80,12 @@
     WCHAR const *localeName;
 } DWRITE_FONT_PROPERTY;
 
+cpp_quote("#ifdef __cplusplus")
+cpp_quote("#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))")
+cpp_quote("#else")
+cpp_quote("#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))")
+cpp_quote("#endif")
+
 typedef enum DWRITE_FONT_AXIS_TAG
 {
     DWRITE_FONT_AXIS_TAG_WEIGHT       = 0x74686777, /* 'wght' */
