Summary: | Mesa 10.5.7 implementation error: Trying to disable permanently enabled extensions | ||
---|---|---|---|
Product: | Mesa | Reporter: | Ruslan Kabatsayev <b7.10110111> |
Component: | Mesa core | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | medium | ||
Version: | 10.5 | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | glxinfo.{i915,haswell} files used in the command leading to the error |
Description
Ruslan Kabatsayev
2016-07-18 19:40:16 UTC
Created attachment 125133 [details]
glxinfo.{i915,haswell} files used in the command leading to the error
Here're the lists of OpenGL extensions on i915 and Haswell GPU.
This isn't something we want to support. We should probably use fprintf rather than _mesa_problem so it doesn't print "Mesa: <version> implementation error" as it isn't an implementation issue - it's a warning to the user that the debug options they requested won't take effect because it's unsupported. (In reply to Kenneth Graunke from comment #2) > This isn't something we want to support. > > We should probably use fprintf rather than _mesa_problem so it doesn't print > "Mesa: <version> implementation error" as it isn't an implementation issue - > it's a warning to the user that the debug options they requested won't take > effect because it's unsupported. Actually the issue is that glxinfo hits a segfault later. I guess glGetStringi() or GL_NUM_EXTENSIONS gets confused... As I recall, at some point Brian explicitly added support for disabling always-on exts. Not sure if that work was already in 10.5 or not... def worth checking a more recent version of mesa -- 10.5 is long out of support. Trying this with Mesa 11.0.2 doesn't crash glxinfo, but I still get the following discrepancy: $ glxinfo | grep GL_APPLE_texture_max_level $ MESA_EXTENSION_OVERRIDE=-GL_APPLE_texture_max_level glxinfo >/dev/null Mesa 11.0.2 implementation error: Trying to disable permanently enabled extensions: GL_APPLE_texture_max_level Please report at https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa I.e. despite the extension isn't listed by glxinfo, disabling it explicitly leads to error message saying that it's permanently enabled. It seems permanently enabled extensions should be present in glGetString(GL_EXTENSIONS) and similar API's results. With 12.0 (commit 21d43fe51ab5bcbc89ad5c61a51d3517c4243298) one should be able to disable permanently enabled extensions in a way that glGetString{,i} honours it. IIRC the above patch depends it depends on other extensions work by Nanley so picking it on top of 11.0.x might fare too well. Note that MESA_EXTENSION_OVERRIDE is aimed for development/workarounds and {en,dis}abling extension X does not magically {give,remove} all the functionality associated with it. (In reply to Emil Velikov from comment #5) > Note that MESA_EXTENSION_OVERRIDE is aimed for development/workarounds and > {en,dis}abling extension X does not magically {give,remove} all the > functionality associated with it. By developers do you mean Mesa developers? Or application developers too? I was trying to use it to test Wine fallback code for the case when it would run on i915, but without having to even use this hardware for this — by just disabling the extensions i915 driver doesn't support/expose (based on glxinfo output on i915 machine). Btw. If you're just testing whether Mesa would flip out on given HW and have an automated way of running your test-case (e.g. apitrace trace), you can override what PCI ID libdrm reports. When underlying HW is faked, batches are dropped, but Mesa still does its own part. As no rendering is then done, you cannot verify the results correctness though. (In reply to Eero Tamminen from comment #7) > Btw. If you're just testing whether Mesa would flip out on given HW and have > an automated way of running your test-case (e.g. apitrace trace), you can > override what PCI ID libdrm reports. When underlying HW is faked, batches > are dropped, but Mesa still does its own part. As no rendering is then > done, you cannot verify the results correctness though. Right... except he's trying to override to a different kind of hardware (i915 vs i965), so that won't work. (In reply to Ruslan Kabatsayev from comment #4) > Trying this with Mesa 11.0.2 doesn't crash glxinfo, but I still get the > following discrepancy: > > $ glxinfo | grep GL_APPLE_texture_max_level > $ MESA_EXTENSION_OVERRIDE=-GL_APPLE_texture_max_level glxinfo >/dev/null > Mesa 11.0.2 implementation error: Trying to disable permanently enabled > extensions: GL_APPLE_texture_max_level > Please report at https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa > > I.e. despite the extension isn't listed by glxinfo, disabling it explicitly > leads to error message saying that it's permanently enabled. It seems > permanently enabled extensions should be present in > glGetString(GL_EXTENSIONS) and similar API's results. In this particular case, GL_APPLE_texture_max_level is an OpenGL ES 1.x and 2.x extension. I suspect the version of glxinfo you're using only shows desktop OpenGL information, so it makes sense that it doesn't show the ES extension. It is confusing that Mesa gives an error message for disabling a extension that doesn't exist in the current API. The code could be smarter about that. (In reply to Emil Velikov from comment #5) > With 12.0 (commit 21d43fe51ab5bcbc89ad5c61a51d3517c4243298) one should be > able to disable permanently enabled extensions in a way that glGetString{,i} > honours it. > > IIRC the above patch depends it depends on other extensions work by Nanley > so picking it on top of 11.0.x might fare too well. > > Note that MESA_EXTENSION_OVERRIDE is aimed for development/workarounds and > {en,dis}abling extension X does not magically {give,remove} all the > functionality associated with it. Assuming this was fixed. Closing. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.