Bug 108848

Summary: 3d image broken in Dragon age: origins
Product: Mesa Reporter: ilia <inferrna>
Component: Gallium/StateTracker/galliumnineAssignee: mesa-dev
Status: RESOLVED MOVED QA Contact: mesa-dev
Severity: normal    
Priority: medium    
Version: 18.2   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Game main menu
Log with nine enabled
Log with nine disabled
Wine backtrace of game segfault
Better bakctrace

Description ilia 2018-11-23 09:47:18 UTC
Created attachment 142586 [details]
Game main menu

Picture is bad with nine enabled and good when nine disabled.
Intro video displays correct, also gallium HUD displays correct to.
Comment 1 ilia 2018-11-23 09:48:54 UTC
Created attachment 142587 [details]
Log with nine enabled

Game running with
GALLIUM_HUD="fps,requested-VRAM" LIBGL_DEBUG=verbose GALLIUM_PRINT_OPTIONS=all ST_DEBUG=constants EGL_LOG_LEVEL=debug MESA_DEBUG=3 NINE_DEBUG=all WINEDEBUG=d3d9nine,d3d9
Comment 2 ilia 2018-11-23 09:51:02 UTC
Created attachment 142588 [details]
Log with nine disabled

Same env variables as with nine enabled.
Comment 3 ilia 2018-11-23 10:03:06 UTC
Created attachment 142590 [details]
Wine backtrace of game segfault

In doubt is this relevant, but game also segfaults with this backtrace when pressing "New game".
Comment 4 ilia 2018-11-23 13:49:32 UTC
Created attachment 142594 [details]
Better bakctrace

Rerun with dbg version of libd3dadapter9-mesa
Comment 5 Axel Davy 2018-11-24 10:38:28 UTC
Mesa needs to be built with --enable-debug to have NINE_DEBUG=all do anything.

I can see though that two mmaps are failing on the log with nine.

Getting a new log with NINE_DEBUG=all would help find what causes the failed mmap, and what arguments were used for the crashing call.
Comment 6 Axel Davy 2018-11-24 10:43:43 UTC
Is the game 32 bits ?

One thing you may want to try is to use a tool to make the exe large space aware.
Possibly you run out of virtual space (wine restricts available space without large space aware, and some linux libs take more space than on windows)
Comment 7 Axel Davy 2018-11-24 11:43:49 UTC
After looking further, the crash observed seems to be NineVolumeTexture9 missing checks to properly exit on memory allocation failures.
I'll send a fix for this, but it won't help the game work. I suspect the problem is as suggested not enough memory available.
Comment 8 Andre Heider 2018-11-24 15:00:36 UTC
Game works for me with nine, but only after setting LARGE_ADDRESS_AWARE manually on DAOrigins.exe. (It seems to work without on low texture details, but I guess it'll crash at some point eventually).
Comment 9 Axel Davy 2018-11-24 16:45:38 UTC
You can also try to reduce the memory footprint of pulseaudio, see the trick described here:
https://www.winehq.org/pipermail/wine-devel/2018-November/134954.html
Comment 10 GitLab Migration User 2019-09-18 17:53:17 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/mesa/mesa/issues/125.

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.