Jump to content
The Dark Mod Forums

TDM 2.09: black menu with music playing


stgatilov
 Share

Recommended Posts

Is a 11 years old card with supposed support for D3D 11 (11.2) and OGL 4.4, so on the API front should be more than enough to play TDM but it apparently only has 512MB of VRAM and that can be a big limitation on the bigger missions.

Edited by HMart
Link to comment
Share on other sites

6 hours ago, Alberto Salvia Novella said:

Setting "r_glCoreProfile" to "0" prevents the game from launching.

Mmm... probably some Mesa-based open-source Linux drivers?
Until recently, they did not support GL3+ with deprecated profile.

Link to comment
Share on other sites

23 hours ago, Alberto Salvia Novella said:

AMD CYPRESS (DRM 2.50.0 / 5.10.63-1-MANJARO, LLVM 12.0.1)
OpenGL 3.1
Mesa 21.2.1

As far as I remember, TDM 2.09 requires OpenGL 3.3 to start.

So either your OpenGL does not fit the requirement, or (as I guessed above) it has separate GL versions for core and deprecated profile. Perhaps version in core profile is newer than 3.3, but the version in deprecated profile is only 3.1

By the way, do you also have the problem with black screen in main menu and sound playing?

Link to comment
Share on other sites

3 hours ago, Alberto Salvia Novella said:

Yes.

We never found what was the reason behind this issue.
It broke after we started asking for GL 3.3 instead of GL 3.1, and it does not break in compatibility mode.

I don't think it is easy to revert back to the old version, and not sure how to debug it either.

Link to comment
Share on other sites

18 minutes ago, stgatilov said:

We never found what was the reason behind this issue.
It broke after we started asking for GL 3.3 instead of GL 3.1, and it does not break in compatibility mode.

I wonder if it's related to index buffers. Menu elements are (afaik) the last elements that are drawn from a CPU-provided index list instead of a GPU index buffer. Far as I know, the spec doesn't require one, or at least I couldn't find anything to the contrary, but it's possible some drivers expect them, anyway?

  • Like 2
Link to comment
Share on other sites

26 minutes ago, cabalistic said:

I wonder if it's related to index buffers. Menu elements are (afaik) the last elements that are drawn from a CPU-provided index list instead of a GPU index buffer. Far as I know, the spec doesn't require one, or at least I couldn't find anything to the contrary, but it's possible some drivers expect them, anyway?

Maybe this?

image.png.2a01906bbcbf934fa55d54539d0d9f4e.png

And it seems that vertex attributes can only be specified with glVertexAttribPointer, which also seems to require offset into bound buffer object.

  • Like 1
Link to comment
Share on other sites

4 minutes ago, cabalistic said:

Well, that'd be that, then. Unfortunately, fixing the menu elements to use an index buffer isn't an entirely trivial fix, or I'd have done it sooner, but I guess we'll have to put it on the agenda somewhere :)

I think this should fix it:

image.thumb.png.ed084b6271db71bb6752532a8794407f.png

But I still get draw surfaces with invalid indexCache durign gameplay as soon as "objective complete" text pops up.

Link to comment
Share on other sites

It seems that the easiest approach is going through all R_AddDrawSurf calls and adding the same thing everywhere.

I wonder why R_AddDrawSurf does not create caches automatically inside... but I guess not the best time to refactor it.

Link to comment
Share on other sites

1 hour ago, stgatilov said:

I think I fixed all calls in svn rev 9595.

Here are executables from the latest SVN, most likely compatible with the latest dev build.
It would be great if someone can verify that everything works properly now even with "r_glCoreProfile 2" (default).

What is it supposed to fix? Core profile on pre-GCN Radeons? Why did all other drivers work if it's about the removed legacy stuff? I can test tomorrow, but I'm skeptical.

Link to comment
Share on other sites

7 hours ago, duzenko said:

Why did all other drivers work if it's about the removed legacy stuff?

Because they are more permissive.
Maybe some popular game used CPU pointers in core profile, so drivers decided to support it.

Anyway, it is a big error for core profile, and it must be fixed.

Link to comment
Share on other sites

4 hours ago, stgatilov said:

Because they are more permissive.
Maybe some popular game used CPU pointers in core profile, so drivers decided to support it.

Anyway, it is a big error for core profile, and it must be fixed.

Agree about fixing the error

I just can’t imagine a game requiring a core profile and then doing client arrays. Oh, wait…

Link to comment
Share on other sites

Probably since OpenGL <=3.1 allowed to use Client-Side Vertex Arrays, instead of Vertex Buffer Objects, drivers just followed the same capability. Even if it didn't make sense programmatically.

For instance they removed that possibility in OpenGL 3.2, likely just to make it explicit that you should not program that shitty, 80s graphics style.

Link to comment
Share on other sites

17 minutes ago, Alberto Salvia Novella said:

Probably since OpenGL <=3.1 allowed to use Client-Side Vertex Arrays, instead of Vertex Buffer Objects, drivers just followed the same capability. Even if it didn't make sense programmatically.
For instance they removed that possibility in OpenGL 3.2, likely just to make it explicit that you should not program that shitty, 80s graphics style.

Yes, there was some bureaucratic mess related to deprecation during GL 3.0 and 3.1, which was finally resolved in GL 3.2. Like "deprecated but not removed yet" which later turned into "removed in core". It can easily explain it worked before version bump, but stopped working after it.

Link to comment
Share on other sites

On 9/21/2021 at 9:02 PM, stgatilov said:

I think I fixed all calls in svn rev 9595.

Here are executables from the latest SVN, most likely compatible with the latest dev build.
It would be great if someone can verify that everything works properly now even with "r_glCoreProfile 2" (default).

You did

Spoiler

image.png

  

On 5/15/2021 at 5:04 PM, nbohr1more said:

@cabalistic it sounds like the GUI is using legacy GL somewhere?

You were right all along

It's still frustrating as heck that it didn't raise any GL errors

And I'm not sure what we're left with in the end - half-core profiles that do something specifically forbidden by specification? Crazy

  • Like 1
Link to comment
Share on other sites

On 9/19/2021 at 10:39 AM, stgatilov said:

Then the same workaround should work: seta r_glCoreProfile "0" in darkmod.cfg

It is a rather old graphics card, right?

Yes it is and its second hand. My PC needs a serious overhaul/rebuild.

On 9/19/2021 at 12:44 PM, HMart said:

Is a 11 years old card with supposed support for D3D 11 (11.2) and OGL 4.4, so on the API front should be more than enough to play TDM but it apparently only has 512MB of VRAM and that can be a big limitation on the bigger missions.

It can be, my computer does struggle with the larger missions. I do have it in mind to upgrade at some point but for the time being its still alive and working. I do have other games I can't run at all on my computer so likely in the near future I will have to get on and upgrade things in it. Its just the issue of time, money and getting the right parts.

Ps. If you think that is an old computer part my screen is an old LG from I think 2004.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


  • Recent Status Updates

    • jaxa

      Alder Lake has arrived:
      https://forums.thedarkmod.com/index.php?/topic/18055-2016-cpugpu-news/page/15/&tab=comments#comment-466190
       
      · 0 replies
    • irg

      Watching warmly for The Black Parade, The Broken Goddess and Blood Death Wish Ep.4. Sometimes the best things in life actually are free.
      · 1 reply
    • STiFU

      We are taking our son on his very first holiday trip to see the sea for the first time. 🙂 Will be back in a week.
      · 2 replies
    • Gilkar

      When I was a young man my father was so ignorant I could hardly stand to have him around. As I grew older I was amazed at how much the old man had learned in such a short time.
      · 2 replies
    • jaxa

      RTX 3090 Super, RTX 3070 Ti 16 GB, RTX 2060 12 GB
      https://wccftech.com/nvidia-launching-rtx-3090-super-rtx-3070-ti-16gb-and-rtx-2060-12gb-by-january-2022/
      · 0 replies
×
×
  • Create New...