i965: Don't enable reset notification support on Gen4-5.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 12 Mar 2014 08:43:40 +0000 (01:43 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 1 May 2014 06:08:22 +0000 (23:08 -0700)
arekm reported that using Chrome with GPU acceleration enabled on GM45
triggered the hw_ctx != NULL assertion in brw_get_graphics_reset_status.

We definitely do not want to advertise reset notification support on
Gen4-5 systems, since it needs hardware contexts, and we never even
request a hardware context on those systems.

Cc: "10.1" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75723
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/intel_screen.c

index 3b2e4e9c7653edf41aa77ad9734daae3f036b25d..2c8069d3c2dd0e7dff908490b0e5179a8e74648a 100644 (file)
@@ -1367,13 +1367,18 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
     * no error.  If the ioctl is not supported, it always generate EINVAL.
     * Use this to determine whether to advertise the __DRI2_ROBUSTNESS
     * extension to the loader.
+    *
+    * Don't even try on pre-Gen6, since we don't attempt to use contexts there.
     */
-   struct drm_i915_reset_stats stats;
-   memset(&stats, 0, sizeof(stats));
+   if (intelScreen->devinfo->gen >= 6) {
+      struct drm_i915_reset_stats stats;
+      memset(&stats, 0, sizeof(stats));
 
-   const int ret = drmIoctl(psp->fd, DRM_IOCTL_I915_GET_RESET_STATS, &stats);
+      const int ret = drmIoctl(psp->fd, DRM_IOCTL_I915_GET_RESET_STATS, &stats);
 
-   intelScreen->has_context_reset_notification = (ret != -1 || errno != EINVAL);
+      intelScreen->has_context_reset_notification =
+         (ret != -1 || errno != EINVAL);
+   }
 
    psp->extensions = !intelScreen->has_context_reset_notification
       ? intelScreenExtensions : intelRobustScreenExtensions;