Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2,884
    • Issues 2,884
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 906
    • Merge requests 906
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Mesa
  • mesamesa
  • Issues
  • #1125

Closed
Open
Created Sep 18, 2019 by Bugzilla Migration User@bugzilla-migration

openmw - Segfault with the nouveau ddx + DRI3

Submitted by orb..@..lev.dk

Assigned to Nouveau Project

Link to original bug (#99464)

Description

Created attachment 129055 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@yahoo.com Signed-off-by: Tobias Klausmann tobias.johannes.klausmann@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"

Attachment 129055, "Apitrace.":
openmw_nouveau_dri3.trace.xz

Version: git

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking