Bug 83862

Summary: [all Bisected]Piglit reports failure instead of skipping when indirect rendering is disabled in the X server
Product: xorg Reporter: lu hua <huax.lu>
Component: Server/GeneralAssignee: Eric Anholt <eric>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: high CC: christophe.prigent, idr, nroberts
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log
none
glxinfo none

Description lu hua 2014-09-15 02:57:41 UTC
System Environment:
--------------------------
Platform: IVB
Libdrm:		(master)libdrm-2.4.56-21-g8c2ae1695913990cbe6c6a8aa294f354eba33bd0
Mesa:		(master)ca29c4c3b0e779909467c0739fc176c64a829142
Xserver:	(master)xorg-server-1.16.0-176-gd3427717f2c6a473dc3d20631dff653e4e37228e
Xf86_video_intel:(master)2.99.916-39-g11444619457aa8121efc937291f1d944ac42265d
Libva:		(master)e0d25ece01e7aba819c910e98c4fb4706cdab055
Libva_intel_driver:(master)238d8077705711036d62a6d536311def3ef35035
Kernel:   (drm-intel-nightly)43df30da20447e2856b2761215ff274886a9f931

Bug detailed description:
---------------------------
It fails on all platforms with mesa master branch. It works well on 10.3 branch.
Following cases also fail with same bisect commit:
glx_GLX_EXT_import_context_free_context
glx_GLX_EXT_import_context_get_context_ID
glx_GLX_EXT_import_context_get_current_display
glx_GLX_EXT_import_context_imported_context_has_same_context_ID
glx_GLX_EXT_import_context_import_context,_multi_process
glx_GLX_EXT_import_context_import_context,_single_process
glx_GLX_EXT_import_context_make_current,_single_process
glx_GLX_EXT_import_context_query_context_info
glx_GLX_MESA_query_renderer_coverage

Bisect shows: d0da0e9c3bb8fe0cd4879ecb24d21715bfaa209b is the first bad commit(but i can't find this commit on latest master branch).
commit d0da0e9c3bb8fe0cd4879ecb24d21715bfaa209b
Author: Eric Anholt 
Date: Thu Sep 4 10:59:40 2014 -0700

glx: Disable indirect GLX contexts by default.

Almost every situation of someone running indirect GLX is a mistake
that results in X Server crashes. Indirect GLX is the cause of
regular security vulnerabilities, and rarely provides any capability
to the user. Just disable it unless someone wants to enable it for
their special use case (using +iglx on the command line).
output:
----------------------------------------------------------------------
This test sanity-checks the ability to use multiple rendering
contexts.  It creates several contexts with differing
characteristics (e.g., some are direct-rendering and some
are indirect-rendering, if the window system binding supports
that distinction).  Then it runs through all pairs of contexts,
making each one "current" in turn and verifying that simple
rendering succeeds.

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  38
  Current serial number in output stream:  39

Reproduce steps:
-------------------------
1. xinit
2. bin/glean -o -v -v -v -t +makeCurrent --quick
Comment 1 Tapani Pälli 2014-10-23 06:42:29 UTC
please re-test, for me this passes on IVB
Comment 2 lu hua 2014-10-24 03:17:39 UTC
Test on IVB with following system environment, it still fails.

system environment:
Libdrm:		(master)libdrm-2.4.58-4-g00847fa48b83a85b0cb882594a12ed1511f780db
Mesa:		(master)9ad80d1d1876493b45428b5f81b03add3ae8150e
Xserver:	(master)xorg-server-1.16.0-419-g942e18e17e334d7a25f8c1dcc6f5c3711eeb6a7d
Xf86_video_intel:(master)2.99.916-114-ga8d1eaf6ee1fed0aeff681d33864e17cb904ddd3
Libva:		(master)ccd93de5a707e92a629cccd595757c8d436fa3cc
Libva_intel_driver:(master)f11176415ec26eb5960ba6841d2d9c22f2cabc60
Kernel:   (drm-intel-nightly)77683b77aa4da6e1788838dad2d2a15b0dfc290b


output:
----------------------------------------------------------------------
This test sanity-checks the ability to use multiple rendering
contexts.  It creates several contexts with differing
characteristics (e.g., some are direct-rendering and some
are indirect-rendering, if the window system binding supports
that distinction).  Then it runs through all pairs of contexts,
making each one "current" in turn and verifying that simple
rendering succeeds.

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  38
  Current serial number in output stream:  39
Comment 3 Tapani Pälli 2014-10-24 06:46:56 UTC
Could you attach 'Xorg.0.log' and glxinfo output?
Comment 4 lu hua 2014-10-24 07:04:35 UTC
Created attachment 108338 [details]
Xorg.0.log
Comment 5 lu hua 2014-10-24 07:04:53 UTC
Created attachment 108339 [details]
glxinfo
Comment 6 Neil Roberts 2014-10-24 13:33:01 UTC
It's perhaps not very clear from the bug report but that bisected commit is for the X server, not for Mesa. If I run with a recent git checkout of the X server (d3d845ca9e92f0a2) then I can replicate the problem.
Comment 7 Neil Roberts 2014-10-24 14:05:11 UTC
All of the import_context tests create an indirect context so I guess it makes sense that they are failing with that commit. The commit just makes it so that indirect rendering is disabled by default. When it is disabled then glXCreateContext throws an X error if indirect rendering is requested. I guess we could potentially try to catch that error in the piglit tests and make the test skip in that case.

Alternatively we could just ask that the QA team always runs the X server with the +iglx option which makes the tests pass for me.

Either way I don't think this is a high priority issue so I've marked it as low.

I can't replicate the failure with the query_renderer_coverage and it doesn't seem to try to create an indirect context so perhaps that is a separate issue.
Comment 8 lu hua 2014-10-27 05:35:40 UTC
Sorry. It's xserver regression.
Comment 9 GitLab Migration User 2018-12-13 22:30:48 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/463.

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.