Bug 83748

Summary: Only black content on screen, in the Tokyo flashback of the game "The Secret World"
Product: Mesa Reporter: John <john.ettedgui>
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description John 2014-09-11 06:37:36 UTC
Hey,

I am trying to play the game "The Secret World" on my system.
It is a Windows game so I am using Wine to run it.

Initially the game runs, and I can see everything (cinematics and in-game stuff), but for some reason once I enter the Tokyo flashback, I cannot see the cinematic or anything in that dungeon.

In the cinematic my screen seems to be completely black.
Once back in-game, all content is dark/black, but I can kind of see where walls are or the overall shape of my character. Maybe that's what it would be with a null contrast and 0 brightness? Also the game is still running, I can interact with the npcs (if I manage to find them) etc...

I tried using stable mesa 10.2.7 instead of daily git but it was the same.

I then tried running the game on the same machine using the Catalyst drivers and all the visuals were there, both in the cinematic and in-game, so as far as I can see the issue shouldn't be in Wine.

I don't understand why I'm getting that problem only in that part of the game, I've passed it using Catalyst, and now I'm able to continue the game normally with the gallium driver after this strange part...

I am not sure what logs to add to this, since it is a visual issue and I don't see any kind of error message about it (although it could be hidden in the wine verbose logs I suppose).

My system:
Radeon 7970 running with Mesa, daily git or 10.2.7.
llvm either daily git or 3.5.0
Arch Linux 64b with Linux kernel 3.16.2
I've tried both wine and wine-csmt, both have the same issue.

Thanks!
Comment 1 Michel Dänzer 2014-09-11 09:16:53 UTC
If you could create an apitrace demonstrating the problem, that should be useful.
Comment 2 John 2014-09-11 10:53:51 UTC
Thank you for the prompt reply Michel.

This is my first time with apitrace so I may have made a mistake.

Here's the command line I've used:
apitrace32 trace --api=gl /usr/bin/wine "<game>.exe".

I've tried running apitrace in 64bit but it never worked, I suppose because the game is 32bit.

The result files are huge, is this expected?
5.3G, 327k, 236M

I can't see how I could share those with you. (well apart from the 327k one).
Comment 3 John 2014-09-11 19:31:56 UTC
Here is a trim frame I got running this command:
apitrace trim --exact --frames=1236 wine-preloader.1.trace

and then compressed.

The frame 1236 is the in-game blacked out case, seen in qapitrace.

https://mega.co.nz/#!s4RAAAhL!kjBFx0Yq-QgvQTtflnPoRsbOQpdYTBAwWDBTrlHuSLY

I've done the same with frame 1183, which I believe is in the cinematic but since that one is completely black it's hard to really say for sure.

https://mega.co.nz/#!49RySQhJ!jh6t2rDLrKDzcSNUKViWBwrpn10vNcuPGMu8QuDbXCw

I've used mega as the files are too big to attach to the bug report.
Thanks!
Comment 4 John 2014-09-16 21:49:28 UTC
I've tried using the nine state tracker and it doesn't fix this issue (but it does run the game quite faster)
Comment 5 Michel Dänzer 2014-09-17 06:45:16 UTC
I'm afraid these traces are trimmed down too much, I can't replay them:

0 @2 glBindBufferARB(target = GL_ARRAY_BUFFER, buffer = 17)
0: warning: no current context
1 @2 glMapBufferRange(target = GL_ELEMENT_ARRAY_BUFFER, offset = 0, length = 20480, access = GL_MAP_READ_BIT | GL_MAP_WRITE_BIT | GL_MAP_FLUSH_EXPLICIT_BIT) = 0xee18d000
1: warning: no current context
glretrace: ../retrace/retrace_swizzle.cpp:137: void retrace::addRegion(long long unsigned int, void*, long long unsigned int): Assertion `buffer' failed.
Comment 6 John 2014-09-17 06:52:23 UTC
How would I trim them less ?
Did I use a wrong command?

Thanks!
Comment 7 Michel Dänzer 2014-09-17 07:07:57 UTC
I don't have much experience with trimming apitraces, so I'm afraid I can't help you with that.
Comment 8 Michel Dänzer 2014-09-17 07:10:43 UTC
That said, if you can include the first frame in the trimmed apitrace, that might help.

However, this will leave some uncertainty about whether any issues demonstrated by the other frame aren't caused by the apitrace trimming working incorrectly...
Comment 9 John 2014-09-17 09:24:35 UTC
Well, I tried something else, I probably should have tried earlier:
Compressing the original trace with xz at its maximum compression level, and it is very acceptable. (more than 5 Gb before vs less than 200Mb after).

The link:
https://mega.co.nz/#!khgwBJRC!Xzk1fsNeKZgUS5aqdQ3cqDWkGQoynGj3TPYyr0XGdGE

Locating the issues in the trace:
1- After I load my character, you can see for just a little bit some sort of Zombie image with some text, then it switches to all black. I do not really care about that all back, though it probably means something as well. This is just the loading phase going all black. What I care about is right after, it is still all black, but now you can see the FPS counter of the left side. That is the in-game cinematic all black. If you pay careful attention, and have proper lighting in your room, you may be able to see characters moving and such (all black of course, you can only see them as shadows)

2- After the cinematic, you'll see a game UI but everything else is all black, that is the second scene with issue.

Please do not worry about the original weird stuff happening in the intro, when the trace begins, it is part of the game.

Thank you!
Comment 10 John 2014-09-18 03:49:19 UTC
Just in case, I tried with Alex's linux drm-next tree, but it didn't make a difference.
Comment 11 John 2014-09-25 02:00:01 UTC
I was hoping Marek's latest big patchset would help, but it didn't... (well maybe the game was a little faster but that is not what I am looking for here).
Comment 12 John 2014-10-27 23:35:10 UTC
I tried with latest git, but still the same.
Comment 13 Michel Dänzer 2015-01-29 06:07:42 UTC
This seems to work correctly with current Git of Mesa and LLVM.
Comment 14 John 2015-01-29 08:39:53 UTC
I have just tested it and you are correct, it works with latest git.
The performance and texture quality are not there yet, but that's a different issue (that could just be a wine one anyway...).

Thank you for fixing this, and remembering the bug!
How did you know it was fixed?
Comment 15 Michel Dänzer 2015-01-29 09:10:00 UTC
(In reply to John from comment #14)
> How did you know it was fixed?

I didn't know, I just guessed it might be fixed thanks to some fixes going in recently.
Comment 16 John 2015-01-29 09:16:48 UTC
Well, good guess!

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.