It doesn't even play in Windows to be honest.
Brian Paul is taking a look at it, he is a developer of apitrace I believe.

Anyway, a couple of clues that you might find useful:

 * Brian found these calls (these are the ones that make apitrace crash):
   3158346 glViewport(x = 0, y = -32, width = 8, height = -1)
   3158364 glViewport(x = 80, y = 22730, width = 640, height = 480)
   3159395 glViewport(x = 0, y = 768, width = 12624, height = 22502)
   They look suspicious as hell. I tried modifying
   src/mesa/main/viewport.c to clamp them to more reasonable values. It
   didn't fix the crashing in kotor, but I'm not an expert in how mesa
   works internally so maybe there are other source files involved and
   you can do something better
 * The crash is related to pbuffers, and it's an access violation. I
   took a look at src/gallium/state_trackers/wgl/stw_ext_pbuffer.c and
   from what I understand, it is implemented by drawing to an invisible
   window, right? Looking back at those strange values in glViewport,
   it makes me wonder if those seemingly random numbers could be some
   properties taken from those invisible windows (height, width, ...).
   Again, I'm no expert so I'll leave that to you to decide.
   And speaking of strange window manipulations, I noticed that when
   the game starts, the nvidia driver destroys and recreates the
   window, but mesa does not. Weird stuff, but it might be a clue.

I can give you a link to a copy of kotor with mesa if you want. I can't post it publicly here for obvious copyright reasons, but it's only 1.8gb if you want to give it a try.

Let me know what you think.

Thanks :)


Il 2017-10-07 14:46, Nicolai Hähnle ha scritto:
Hi Federico,

I finally got a chance to look at your trace. Unfortunately, it's not easily usable: the trace basically fails to replay because it uses WGL (the Windows GL system interface) instead of GLX.

I can't really justify spending time on it because of that, sorry.

If you do have time and interest to investigate, you could probably do a lot of people a huge favor if you could modify apitrace in a way that allows it to play WGL traces natively under Linux (e.g. by translating the WGL functions into GLX ones).

Cheers,
Nicolai

On 27.09.2017 11:21, Federico Dossena wrote:
Hi, did you get my previous email with the trace?


On 2017-09-26 14:11, Nicolai Hähnle wrote:
On 26.09.2017 12:59, Federico Dossena wrote:
The crash is in GLU, and I'm 99% sure that it has to do with the format of that texture.

So how about a backtrace?

It would be really valuable to have a simple stand-alone reproduction.

Cheers,
Nicolai


I saw a patch from Miklòs Màté a while ago that changed something in src/mesa/state_tracker/st_atom_sampler.c to fix this (link: https://patchwork.freedesktop.org/patch/68298/). It never made it to master, and that function has changed quite a bit since his patch. I don't really understand what it does since I don't know mesa very well, do you know how I could do the same thing in the new st_convert_sampler function?

Thanks


Il 2017-09-26 12:56, Nicolai Hähnle ha scritto:
On 25.09.2017 18:50, Federico Dossena wrote:
Hello everyone,
you may remember that a few months ago I was trying to fix KOTOR to work with Mesa to use the Gallium llvmpipe software renderer.

Well, it's been a while and I'm happy to see that things are a bit better with Mesa 17.2. The game still crashes, but we're closer to fixing it.

Here's what I found using 17.2.1:
With frame buffer effects and soft shadows the game crashes at the end of loading; the crash is inside a function that amongst other things, generates mipmaps for a texture used in a pbuffer (function at offset 2FB37D in my exe). The crash happens when gluBuild2DMipmaps is called, however doesn't seem to be a null pointer like it was back in march: it's an access violation alright but no longer a null pointer. So I think it's a different, hopefully simpler, problem.

So is it a crash in KOTOR, in glu, or in Mesa? If it's in one of the last two, then you should be able to compile both glu and Mesa from source with debugging info to help you narrow things down. A backtrace would be a good start.

If it's in KOTOR itself, then I'm afraid we're probably not going to be a lot of help here...

Cheers,
Nicolai


Back in march, Miklòs Màté suggested that changing the checks for the pixel format could fix the problem, and he was right; without those checks we definitely got a step closer to fixing it.

My first thought was to just NOP the entire section that generates mipmaps and a bit of code later that uses it. The game no longer crashes, however it displays nothing, but I can hear it running in background. So this is the last issue! We're almost there!

Now, I'm bothering you again because I think that at this point it's just a problem with the texture format used there. The call to gluBuild2DMipmaps uses LuminanceAlpha' as texture format as well as internal format (0x190a). I tried changing it to RGB and RGBA just to try something, but that didn't work because I guess the texture was already generated with another format.

What could I do to investigate this further? And where should I look inside Mesa if I wanted to say... force a specific texture format for pbuffers?

I feel that we're very close to fixing this. Your help would mean the world to me and the whole KOTOR community.

Thank you ;)

P.S.
This has nothing to do with mesa, but you should know that KOTOR is slowly dieing. It is currently unplayable on Intel and AMD graphics, and recent nVidia driver updates have introduced a glitch with transparencies (it can be fixed, but still, no one can play KOTOR on modern hardware properly and we have to keep old computers as dedicated "shrines" for KOTOR, that's why I insist so much on Mesa)



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev










_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to