diff --git a/patches/ntdll-NtQueryInformationProcess-ProcessCookie/0001-ntdll-Stub-for-ProcessCookie-in-NtQueryInformationPr.patch b/patches/ntdll-NtQueryInformationProcess-ProcessCookie/0001-ntdll-Stub-for-ProcessCookie-in-NtQueryInformationPr.patch
deleted file mode 100644
index e4851f8a..00000000
--- a/patches/ntdll-NtQueryInformationProcess-ProcessCookie/0001-ntdll-Stub-for-ProcessCookie-in-NtQueryInformationPr.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 66039784d648883d899f33278fd8e31f946edb05 Mon Sep 17 00:00:00 2001
-From: Andrew Wesie <awesie@gmail.com>
-Date: Thu, 26 Jul 2018 11:34:32 -0500
-Subject: [PATCH] ntdll: Stub for ProcessCookie in NtQueryInformationProcess.
-
----
- dlls/ntdll/process.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
-index b299287..4e08c62 100644
---- a/dlls/ntdll/process.c
-+++ b/dlls/ntdll/process.c
-@@ -572,6 +572,18 @@ NTSTATUS WINAPI NtQueryInformationProcess(
-         else
-             ret = STATUS_INFO_LENGTH_MISMATCH;
-         break;
-+    case ProcessCookie:
-+        FIXME("(%p,info_class=%d,%p,0x%08x,%p) stub\n",
-+              ProcessHandle,ProcessInformationClass,
-+              ProcessInformation,ProcessInformationLength,
-+              ReturnLength);
-+
-+        len = sizeof(ULONG);
-+        if (ProcessInformationLength == len)
-+            *(ULONG *)ProcessInformation = 0;
-+        else
-+            ret = STATUS_INFO_LENGTH_MISMATCH;
-+        break;
-     default:
-         FIXME("(%p,info_class=%d,%p,0x%08x,%p) Unknown information class\n",
-               ProcessHandle,ProcessInformationClass,
--- 
-1.9.1
-
diff --git a/patches/ntdll-NtQueryInformationProcess-ProcessCookie/definition b/patches/ntdll-NtQueryInformationProcess-ProcessCookie/definition
deleted file mode 100644
index 93203f06..00000000
--- a/patches/ntdll-NtQueryInformationProcess-ProcessCookie/definition
+++ /dev/null
@@ -1 +0,0 @@
-Fixes: [45569] League of Legends 8.12+ needs NtQueryInformationProcess(ProcessCookie) stub
diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh
index 105ed460..55d023af 100755
--- a/patches/patchinstall.sh
+++ b/patches/patchinstall.sh
@@ -52,7 +52,7 @@ usage()
 # Get the upstream commit sha
 upstream_commit()
 {
-	echo "64d9f309b7f74d4154e685c5d1d78c1b8335c0bc"
+	echo "8a985174ebc1b041d9a4f1abbdc184fe692d25bf"
 }
 
 # Show version information
@@ -217,7 +217,6 @@ patch_enable_all ()
 	enable_ntdll_NtContinue="$1"
 	enable_ntdll_NtDevicePath="$1"
 	enable_ntdll_NtQueryEaFile="$1"
-	enable_ntdll_NtQueryInformationProcess_ProcessCookie="$1"
 	enable_ntdll_NtQuerySection="$1"
 	enable_ntdll_NtQueryVirtualMemory="$1"
 	enable_ntdll_NtSetLdtEntries="$1"
@@ -818,9 +817,6 @@ patch_enable ()
 		ntdll-NtQueryEaFile)
 			enable_ntdll_NtQueryEaFile="$2"
 			;;
-		ntdll-NtQueryInformationProcess-ProcessCookie)
-			enable_ntdll_NtQueryInformationProcess_ProcessCookie="$2"
-			;;
 		ntdll-NtQuerySection)
 			enable_ntdll_NtQuerySection="$2"
 			;;
@@ -4994,21 +4990,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then
 	) >> "$patchlist"
 fi
 
-# Patchset ntdll-NtQueryInformationProcess-ProcessCookie
-# |
-# | This patchset fixes the following Wine bugs:
-# |   *	[#45569] League of Legends 8.12+ needs NtQueryInformationProcess(ProcessCookie) stub
-# |
-# | Modified files:
-# |   *	dlls/ntdll/process.c
-# |
-if test "$enable_ntdll_NtQueryInformationProcess_ProcessCookie" -eq 1; then
-	patch_apply ntdll-NtQueryInformationProcess-ProcessCookie/0001-ntdll-Stub-for-ProcessCookie-in-NtQueryInformationPr.patch
-	(
-		printf '%s\n' '+    { "Andrew Wesie", "ntdll: Stub for ProcessCookie in NtQueryInformationProcess.", 1 },';
-	) >> "$patchlist"
-fi
-
 # Patchset ntdll-NtQuerySection
 # |
 # | Modified files:
diff --git a/patches/setupapi-Display_Device/0001-setupapi-Create-registry-keys-for-display-devices-an.patch b/patches/setupapi-Display_Device/0001-setupapi-Create-registry-keys-for-display-devices-an.patch
index 19e4a77c..da3980f7 100644
--- a/patches/setupapi-Display_Device/0001-setupapi-Create-registry-keys-for-display-devices-an.patch
+++ b/patches/setupapi-Display_Device/0001-setupapi-Create-registry-keys-for-display-devices-an.patch
@@ -1,4 +1,4 @@
-From 9fb320afdf57221eb32d51a03971ad3d13cf773e Mon Sep 17 00:00:00 2001
+From c182c26c828a589dce773bd365040ce7b1a8a943 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
 Date: Thu, 11 Feb 2016 03:17:09 +0100
 Subject: setupapi: Create registry keys for display devices and display
@@ -10,7 +10,7 @@ Subject: setupapi: Create registry keys for display devices and display
  2 files changed, 101 insertions(+), 12 deletions(-)
 
 diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
-index 4d53bd7..6415298 100644
+index 771fc70..d9517bd 100644
 --- a/dlls/setupapi/devinst.c
 +++ b/dlls/setupapi/devinst.c
 @@ -94,6 +94,15 @@ static const WCHAR SymbolicLink[] = {'S','y','m','b','o','l','i','c','L','i','n'
@@ -149,7 +149,7 @@ index 4d53bd7..6415298 100644
 +    l = open_enum_key(&enumKey);
      for (i = 0; !l; i++)
      {
-         len = sizeof(subKeyName) / sizeof(subKeyName[0]);
+         len = ARRAY_SIZE(subKeyName);
 @@ -2269,8 +2359,7 @@ static void SETUPDI_EnumerateDevices(HDEVINFO DeviceInfoSet, const GUID *class,
      TRACE("%p, %s, %s, %08x\n", DeviceInfoSet, debugstr_guid(class),
              debugstr_w(enumstr), flags);
@@ -160,7 +160,7 @@ index 4d53bd7..6415298 100644
      if (enumKey != INVALID_HANDLE_VALUE)
      {
          if (enumstr)
-@@ -3609,8 +3698,7 @@ static HKEY SETUPDI_OpenDevKey(struct device *device, REGSAM samDesired)
+@@ -3606,8 +3695,7 @@ static HKEY SETUPDI_OpenDevKey(struct device *device, REGSAM samDesired)
      HKEY enumKey, key = INVALID_HANDLE_VALUE;
      LONG l;
  
@@ -170,7 +170,7 @@ index 4d53bd7..6415298 100644
      if (!l)
      {
          RegOpenKeyExW(enumKey, device->instanceId, 0, samDesired, &key);
-@@ -3726,8 +3814,7 @@ static BOOL SETUPDI_DeleteDevKey(struct device *device)
+@@ -3723,8 +3811,7 @@ static BOOL SETUPDI_DeleteDevKey(struct device *device)
      BOOL ret = FALSE;
      LONG l;
  
@@ -181,7 +181,7 @@ index 4d53bd7..6415298 100644
      {
          ret = RegDeleteTreeW(enumKey, device->instanceId);
 diff --git a/loader/wine.inf.in b/loader/wine.inf.in
-index 79ac6c5..2a2313e 100644
+index 5767b29..07d4c5f 100644
 --- a/loader/wine.inf.in
 +++ b/loader/wine.inf.in
 @@ -465,6 +465,8 @@ HKLM,System\CurrentControlSet\Control\ContentIndex\Language\Neutral,"Locale",0x1
diff --git a/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch b/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch
index a437dbb4..69248dbf 100644
--- a/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch
+++ b/patches/wined3d-Indexed_Vertex_Blending/0003-d3d9-tests-Test-normal-calculation-when-indexed-vert.patch
@@ -1,18 +1,37 @@
-From 63321a59b4769c96ad2a1e852c363e7a5cd2b1c2 Mon Sep 17 00:00:00 2001
+From 0a10d9871b0a6fe7bda8cca3b6f2c93ecf359f50 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
 Date: Thu, 31 Aug 2017 00:23:43 +0200
-Subject: [PATCH] d3d9/tests: Test normal calculation when indexed vertex
- blending is enabled.
+Subject: d3d9/tests: Test normal calculation when indexed vertex blending is
+ enabled.
 
 ---
- dlls/d3d9/tests/visual.c | 115 +++++++++++++++++++++++++++++++--------
- 1 file changed, 93 insertions(+), 22 deletions(-)
+ dlls/d3d9/tests/visual.c | 117 ++++++++++++++++++++++++++++++++++++++---------
+ 1 file changed, 95 insertions(+), 22 deletions(-)
 
 diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
-index dbf2a22d94..5af2c23769 100644
+index dbf2a22..f9473ba 100644
 --- a/dlls/d3d9/tests/visual.c
 +++ b/dlls/d3d9/tests/visual.c
-@@ -20203,28 +20203,28 @@ static void test_vertex_blending(void)
+@@ -20446,47 +20446,68 @@ done:
+ 
+ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char *test_id_str)
+ {
++    IDirect3DPixelShader9 *ps;
+     D3DCAPS9 caps;
+     D3DCOLOR color;
+     HRESULT hr;
+     unsigned int i;
+ 
++    /* This comment exists so that this hunk doesn't get applied to the wrong function, again. */
+     static const D3DMATRIX view_mat =
+     {{{
+         2.0f / 10.0f, 0.0f,         0.0f, 0.0f,
+         0.0f,         2.0f / 10.0f, 0.0f, 0.0f,
+         0.0f,         0.0f,         1.0f, 0.0f,
+         0.0f,         0.0f,         0.0f, 1.0f
++    /* This comment exists so that this hunk doesn't get applied to the wrong function, again. */
+     }}},
+     upper_left =
      {{{
           1.0f, 0.0f, 0.0f, 0.0f,
           0.0f, 1.0f, 0.0f, 0.0f,
@@ -43,20 +62,6 @@ index dbf2a22d94..5af2c23769 100644
 -        0.0f,  0.0f, 1.0f, 0.0f,
 +        0.0f,  0.0f, 2.0f, 0.0f,
          4.0f, -4.0f, 0.0f, 1.0f
-     }}};
- 
-@@ -20446,6 +20446,7 @@ done:
- 
- static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char *test_id_str)
- {
-+    IDirect3DPixelShader9 *ps;
-     D3DCAPS9 caps;
-     D3DCOLOR color;
-     HRESULT hr;
-@@ -20485,8 +20486,26 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
-         0.0f,  1.0f, 0.0f, 0.0f,
-         0.0f,  0.0f, 1.0f, 0.0f,
-         4.0f, -4.0f, 0.0f, 1.0f
 +    }}},
 +    identity =
 +    {{{
@@ -80,7 +85,7 @@ index dbf2a22d94..5af2c23769 100644
      static const POINT quad_upper_right_points[] =
      {
          {576, 48}, {-1, -1},
-@@ -20527,6 +20546,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
+@@ -20527,6 +20548,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
              struct vec3 position;
              struct vec3 blendweights;
              DWORD matrixIndices;
@@ -88,7 +93,7 @@ index dbf2a22d94..5af2c23769 100644
          }
          vertex_data[4];
          const POINT *quad_points;
-@@ -20536,34 +20556,34 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
+@@ -20536,34 +20558,34 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
      {
          /* upper right */
          {
@@ -139,7 +144,7 @@ index dbf2a22d94..5af2c23769 100644
              quad_fullscreen_points, quad_fullscreen_empty_points
          }
      };
-@@ -20598,21 +20618,32 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
+@@ -20598,21 +20620,32 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
      ok(hr == D3D_OK, "(%s) IDirect3DDevice9_SetRenderState D3DRS_INDEXEDVERTEXBLENDENABLE failed %08x.\n",
              test_id_str, hr);
  
@@ -174,7 +179,7 @@ index dbf2a22d94..5af2c23769 100644
          ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
  
          hr = IDirect3DDevice9_EndScene(device);
-@@ -20636,7 +20667,47 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
+@@ -20636,7 +20669,47 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
  
          hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
          ok(SUCCEEDED(hr), "Failed to present, hr %#x.\n", hr);
@@ -223,5 +228,5 @@ index dbf2a22d94..5af2c23769 100644
  
  static void test_indexed_vertex_blending(void)
 -- 
-2.18.0
+2.7.4
 
diff --git a/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Move-matrix-inversion-functions-into-utils.c.patch b/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Move-matrix-inversion-functions-into-utils.c.patch
index 351df804..25560413 100644
--- a/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Move-matrix-inversion-functions-into-utils.c.patch
+++ b/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Move-matrix-inversion-functions-into-utils.c.patch
@@ -1,4 +1,4 @@
-From 2c5b6d42fa11db7fb80f91a3343bb27876b697b6 Mon Sep 17 00:00:00 2001
+From f8d05e2411769d61a7120f426b51e48a4a4a945c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
 Date: Thu, 31 Aug 2017 01:07:25 +0200
 Subject: wined3d: Move matrix inversion functions into utils.c
@@ -10,10 +10,10 @@ Subject: wined3d: Move matrix inversion functions into utils.c
  3 files changed, 290 insertions(+), 287 deletions(-)
 
 diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
-index bb3b1c2..d53ad70 100644
+index 302c64b..cfe316b 100644
 --- a/dlls/wined3d/glsl_shader.c
 +++ b/dlls/wined3d/glsl_shader.c
-@@ -1236,293 +1236,6 @@ static void shader_glsl_load_np2fixup_constants(const struct glsl_ps_program *ps
+@@ -1260,293 +1260,6 @@ static void shader_glsl_load_np2fixup_constants(const struct glsl_ps_program *ps
      GL_EXTCALL(glUniform4fv(ps->np2_fixup_location, ps->np2_fixup_info->num_consts, &np2fixup_constants[0].sx));
  }
  
@@ -308,10 +308,10 @@ index bb3b1c2..d53ad70 100644
          const struct wined3d_state *state, unsigned int tex, struct glsl_shader_prog_link *prog)
  {
 diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
-index 60a9ee0..8a07b3e 100644
+index 95fcd81..3a8f567 100644
 --- a/dlls/wined3d/utils.c
 +++ b/dlls/wined3d/utils.c
-@@ -5409,6 +5409,293 @@ void multiply_matrix(struct wined3d_matrix *dst, const struct wined3d_matrix *sr
+@@ -5568,6 +5568,293 @@ void multiply_matrix(struct wined3d_matrix *dst, const struct wined3d_matrix *sr
      *dst = tmp;
  }
  
@@ -602,14 +602,14 @@ index 60a9ee0..8a07b3e 100644
 +    *out = temp;
 +}
 +
- DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) {
-     DWORD size = 0;
-     int i;
+ unsigned int wined3d_max_compat_varyings(const struct wined3d_gl_info *gl_info)
+ {
+     /* On core profile we have to also count diffuse and specular colors and the
 diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
-index 64dad01..92a5ef1 100644
+index 7e5502e..baba9ec 100644
 --- a/dlls/wined3d/wined3d_private.h
 +++ b/dlls/wined3d/wined3d_private.h
-@@ -3911,6 +3911,9 @@ GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type) DE
+@@ -3958,6 +3958,9 @@ enum wined3d_primitive_type d3d_primitive_type_from_gl(GLenum primitive_type) DE
  /* Math utils */
  void multiply_matrix(struct wined3d_matrix *dest, const struct wined3d_matrix *src1,
          const struct wined3d_matrix *src2) DECLSPEC_HIDDEN;