diff --git a/doc/make_constants.py b/doc/make_constants.py
index 245898d9a2b1b23af950ff33d01f280c0d53e603..3e92d05ef48c029a2b04a739166e9dd74d15102e 100644
--- a/doc/make_constants.py
+++ b/doc/make_constants.py
@@ -43,6 +43,20 @@ const_ext_lookup = {
             getattr(devi, "NATIVE_VECTOR_WIDTH_DOUBLE", None): ("CL_1.1", "0.92"),
             getattr(devi, "NATIVE_VECTOR_WIDTH_HALF", None): ("CL_1.1", "0.92"),
             getattr(devi, "OPENCL_C_VERSION", None): ("CL_1.1", "0.92"),
+            getattr(devi, "COMPUTE_CAPABILITY_MAJOR_NV", None):
+            ("cl_nv_device_attribute_query", "0.92"),
+            getattr(devi, "COMPUTE_CAPABILITY_MINOR_NV", None):
+            ("cl_nv_device_attribute_query", "0.92"),
+            getattr(devi, "REGISTERS_PER_BLOCK_NV", None):
+            ("cl_nv_device_attribute_query", "0.92"),
+            getattr(devi, "WARP_SIZE_NV", None):
+            ("cl_nv_device_attribute_query", "0.92"),
+            getattr(devi, "GPU_OVERLAP_NV", None):
+            ("cl_nv_device_attribute_query", "0.92"),
+            getattr(devi, "KERNEL_EXEC_TIMEOUT_NV", None):
+            ("cl_nv_device_attribute_query", "0.92"),
+            getattr(devi, "INTEGRATED_MEMORY_NV", None):
+            ("cl_nv_device_attribute_query", "0.92"),
             },
 
         ctxp: {
diff --git a/doc/source/misc.rst b/doc/source/misc.rst
index e75fe7a0b80ad88f13f050af413fe11abc23c8a8..56ce060cfe66582880e2821afd71a90f72d7ef55 100644
--- a/doc/source/misc.rst
+++ b/doc/source/misc.rst
@@ -81,6 +81,10 @@ Version 0.92
 * The call signature of :meth:`pyopencl.Kernel.__call__` changed to
   emphasize the importance of *loccal_size*.
 * Add :meth:`pyopencl.Kernel.set_scalar_arg_dtypes`.
+* Add support for the
+  `cl_nv_device_attribute_query <ghttp://www.khronos.org/registry/cl/extensions/khr/cl_nv_device_attribute_query.txt>`_
+  extension.
+
 
 Version 0.91.5
 --------------
diff --git a/src/wrapper/wrap_cl.cpp b/src/wrapper/wrap_cl.cpp
index 55d855dce78f055e4179b28a741ec292e9d97abc..7604e3c3a9e992dc311e18a77d278af0ac78a831 100644
--- a/src/wrapper/wrap_cl.cpp
+++ b/src/wrapper/wrap_cl.cpp
@@ -183,6 +183,16 @@ BOOST_PYTHON_MODULE(_cl)
     ADD_ATTR(DEVICE_, NATIVE_VECTOR_WIDTH_DOUBLE);
     ADD_ATTR(DEVICE_, NATIVE_VECTOR_WIDTH_HALF);
     ADD_ATTR(DEVICE_, OPENCL_C_VERSION);
+#endif
+// support for cl_nv_device_attribute_query
+#ifdef CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV
+    ADD_ATTR(DEVICE_, COMPUTE_CAPABILITY_MAJOR_NV);
+    ADD_ATTR(DEVICE_, COMPUTE_CAPABILITY_MINOR_NV);
+    ADD_ATTR(DEVICE_, REGISTERS_PER_BLOCK_NV);
+    ADD_ATTR(DEVICE_, WARP_SIZE_NV);
+    ADD_ATTR(DEVICE_, GPU_OVERLAP_NV);
+    ADD_ATTR(DEVICE_, KERNEL_EXEC_TIMEOUT_NV);
+    ADD_ATTR(DEVICE_, INTEGRATED_MEMORY_NV);
 #endif
   }
 
diff --git a/src/wrapper/wrap_cl.hpp b/src/wrapper/wrap_cl.hpp
index 5567c02e5775c8160a2de70b90bcec91d072012a..7ae60dd51727c167ef4e59af5013abdc5ed01b72 100644
--- a/src/wrapper/wrap_cl.hpp
+++ b/src/wrapper/wrap_cl.hpp
@@ -17,6 +17,8 @@
 
 // elsewhere ------------------------------------------------------------------
 #include <CL/cl.h>
+// FIXME: Nvidia doesn't install cl_ext.h by default. Grr.
+// #include <CL/cl_ext.h>
 #ifdef HAVE_GL
 #include <GL/gl.h>
 #include <CL/cl_gl.h>