diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index 28a84f5f3df70e072de1daea2105ae70fc6b5c2f..208c300b4462fa886e2948e76ab86f4077fc1dbc 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -221,6 +221,14 @@ PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC             wglBlitContextFramebufferAMD = n
 PFNWGLSWAPINTERVALEXTPROC    wglSwapIntervalEXT = nullptr;
 PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT = nullptr;
 
+// WGL_NV_DX_interop2
+PFNWGLDXOPENDEVICENVPROC wglDXOpenDeviceNV = nullptr;
+PFNWGLDXCLOSEDEVICENVPROC wglDXCloseDeviceNV = nullptr;
+PFNWGLDXREGISTEROBJECTNVPROC wglDXRegisterObjectNV = nullptr;
+PFNWGLDXUNREGISTEROBJECTNVPROC wglDXUnregisterObjectNV = nullptr;
+PFNWGLDXLOCKOBJECTSNVPROC wglDXLockObjectsNV = nullptr;
+PFNWGLDXUNLOCKOBJECTSNVPROC wglDXUnlockObjectsNV = nullptr;
+
 #endif
 
 #if !LL_SDL
@@ -1465,6 +1473,14 @@ void LLGLManager::initExtensions()
 
     // WGL_ARB_create_context
     wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)GLH_EXT_GET_PROC_ADDRESS("wglCreateContextAttribsARB");
+
+    // WGL_NV_DX_interop2
+     wglDXOpenDeviceNV = (PFNWGLDXOPENDEVICENVPROC)GLH_EXT_GET_PROC_ADDRESS("wglDXOpenDeviceNV");
+     wglDXCloseDeviceNV = (PFNWGLDXCLOSEDEVICENVPROC)GLH_EXT_GET_PROC_ADDRESS("wglDXCloseDeviceNV");
+     wglDXRegisterObjectNV = (PFNWGLDXREGISTEROBJECTNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglDXRegisterObjectNV");
+     wglDXUnregisterObjectNV = (PFNWGLDXUNREGISTEROBJECTNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglDXUnregisterObjectNV");
+     wglDXLockObjectsNV = (PFNWGLDXLOCKOBJECTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglDXLockObjectsNV");
+     wglDXUnlockObjectsNV = (PFNWGLDXUNLOCKOBJECTSNVPROC)GLH_EXT_GET_PROC_ADDRESS("wglDXUnlockObjectsNV");
 #endif
 
 
diff --git a/indra/llrender/llglheaders.h b/indra/llrender/llglheaders.h
index 5f199c2a78f6e35ac13034f2c3bdbd8033f302ad..d9467644bcb7670e0acdb23177d6d50dbde90877 100644
--- a/indra/llrender/llglheaders.h
+++ b/indra/llrender/llglheaders.h
@@ -75,6 +75,14 @@ extern PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT;
 // WGL_ARB_create_context
 extern PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB;
 
+// WGL_NV_DX_interop2
+extern PFNWGLDXOPENDEVICENVPROC wglDXOpenDeviceNV;
+extern PFNWGLDXCLOSEDEVICENVPROC wglDXCloseDeviceNV;
+extern PFNWGLDXREGISTEROBJECTNVPROC wglDXRegisterObjectNV;
+extern PFNWGLDXUNREGISTEROBJECTNVPROC wglDXUnregisterObjectNV;
+extern PFNWGLDXLOCKOBJECTSNVPROC wglDXLockObjectsNV;
+extern PFNWGLDXUNLOCKOBJECTSNVPROC wglDXUnlockObjectsNV;
+
 // GL_VERSION_1_3
 extern PFNGLACTIVETEXTUREPROC               glActiveTexture;
 extern PFNGLSAMPLECOVERAGEPROC              glSampleCoverage;