[Nouveau] [Bug 99464] New: openmw - Segfault with the nouveau ddx + DRI3

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jan 19 23:45:53 UTC 2017


https://bugs.freedesktop.org/show_bug.cgi?id=99464

            Bug ID: 99464
           Summary: openmw - Segfault with the nouveau ddx + DRI3
           Product: Mesa
           Version: git
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/nouveau
          Assignee: nouveau at lists.freedesktop.org
          Reporter: ovariegata at yahoo.com
        QA Contact: nouveau at lists.freedesktop.org

Created attachment 129055
  --> https://bugs.freedesktop.org/attachment.cgi?id=129055&action=edit
Apitrace.

When starting openmw which is the free engine re-implementation of the game
morrowind it will segfault. This may be a mesa core bug, but it will only
happen with the nouveau DDX + DRI3. It will not crash with modesetting + DRI3,
DRI2 or the llvmpipe.

Here is a backtrace.
http://pastebin.com/HMdv4iWb

Apitrace log.
http://pastebin.com/FzZVyGqW

Here is a workaround as reported to the the mesa mailing list by Tobias
Klausmann. It successfully hides the crash, but potentially breaking the
hardware cursor used by openmw which works correctly with DRI2, modesetting or
the llvmpipe. It also was not intended as a real fix.

"OpenMW tries to upload a new surface (mouse pointer) which fails in the now
guarded update_framebuffer_size() as the surface is NULL.

This is not inteded as a real "fix", as it would just hide the immediate crash.

So if somebody could take a look at this...

Reported-by: <ovariegata at yahoo.com>
Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
---
src/mesa/state_tracker/st_atom_framebuffer.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_framebuffer.c
b/src/mesa/state_tracker/st_atom_framebuffer.c
index ea41d9d..3ee4ea5 100644
--- a/src/mesa/state_tracker/st_atom_framebuffer.c
+++ b/src/mesa/state_tracker/st_atom_framebuffer.c
@@ -177,8 +177,10 @@ update_framebuffer_state( struct st_context *st )
          /* rendering to a GL texture, may have to update surface */
          st_update_renderbuffer_surface(st, strb);
      }
-      pipe_surface_reference(&framebuffer->zsbuf, strb->surface);
-      update_framebuffer_size(framebuffer, strb->surface);
+      if (strb->surface) {
+        pipe_surface_reference(&framebuffer->zsbuf, strb->surface);
+        update_framebuffer_size(framebuffer, strb->surface);
+      }
    }
    else {
      strb = st_renderbuffer(fb->Attachment[BUFFER_STENCIL].Renderbuffer);
-- 
2.9.2"

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20170119/dab1651d/attachment.html>


More information about the Nouveau mailing list