Bug 57737 - Texture sizes > 2048 result in system lockups with Nouveau
Summary: Texture sizes > 2048 result in system lockups with Nouveau
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/nouveau (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Ilia Mirkin
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-30 14:03 UTC by Benoit Jacob
Modified: 2019-11-19 08:58 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Benoit Jacob 2012-11-30 14:03:17 UTC
This is https://bugzilla.mozilla.org/show_bug.cgi?id=814716

Nouveau claims a max texture size of 16384. The WebGL conformance test on this topic,

  https://www.khronos.org/registry/webgl/sdk/tests/conformance/textures/texture-size-limit.html

was found to cause particularly bad crashes with the Nouveau driver, to the point that it had to be considered a significant denial-of-service attach vector in Firefox. The original reporter said it "locks up NVIDIA GPU to the point where the Xorg server can not be restarted if using the nouveau drivers" requiring a hard reboot.

The reporter had these GL strings:

        nouveau -- Gallium 0.4 on NVC1 -- 2.1 Mesa 8.0.4

The largest power-of-two size that was found to be save on Nouveau on this driver was 2048. Our work-around is to restrict texture sizes to 2048 on Nouveau.

Not attaching an apitrace as I can't reproduce as I don't have Nouveau here, and the above conformance test should allow to reproduce on any Firefox. Make sure to go to about:config and set gfx.work-around-driver-bugs=false so that the testcase keeps working when we deploy the work-around.
Comment 1 Marek Olšák 2014-02-03 12:57:43 UTC
This is a problem with Nouveau that I don't know how to fix, because I'm not a Nouveau developer. It looks like a memory allocation failure is not handled well and leads to a GPU hang later on. This bug should be assigned to a Nouveau developer.
Comment 2 Ilia Mirkin 2014-07-04 16:01:39 UTC
[hm, not sure why this is a "security" issue... it's a lot harder _not_ to crash nouveau from userspace than it is to crash it...]

The maximum texture size on nvc0+ is 16K. Nouveau reports the same limits as the blob driver:

http://people.freedesktop.org/~imirkin/glxinfo/glxinfo.html#b=version&g=NVIDIA%20GF1xx%20(GeForce%20400%2C%20500)

Anyways, looks like this bug is fairly old -- a bunch of changes have gone in since then. The max-texture-size piglit test regularly passes on both nv50 and nvc0 cards, so perhaps this issue is gone too with recent kernel/mesa drivers?
Comment 3 Ilia Mirkin 2014-08-22 05:49:51 UTC
The test passes on my NVC1 with Mesa 10.2.4 and kernel 3.15. Marking as fixed.

It does not, however, try to create a 16384x16384 texture. It only tries to create 16384x1 and 1x16384 textures.


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.