Jump to content
The Dark Mod Forums

Recommended Posts

Posted (edited)

They (AMD) changed something in OpenGL compatibility profiles for sure 'cause now:

1) Quake 2 XP (2020 / lastest patched version) works (!)

2) ioRTCW with the new renderer runs @3x the old framerate (!)

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted (edited)

Addendum: if image_usePrecompressedTextures "0" -> BLACK SCREEN (game is working)

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted (edited)
13 minutes ago, cabalistic said:

Disable r_useBindlessTextures. I'm afraid this is probably some sort of AMD driver bug.

It's working, thanks!

Addendum: i've gained 4 FPS too! :D

 

Maybe it's not a severe bug but some issues with the selected (by the driver) compatibility profile for the application (TDM).

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted
17 hours ago, lowenz said:

Maybe it's not a severe bug but some issues with the selected (by the driver) compatibility profile for the application (TDM).

Could you be more precise with this "compatibility profile" term?

From OpenGL standpoint, TDM runs under "core profile" now, unless you changed it manually via cvar.

Posted (edited)

AMD uses its own "compatibility profiling" (for the driver) to avoid/solve problems with OpenGL extensions.

It's why you can run '90s OpenGL games (example: SiN) with no tweaking needed.

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted
2 minutes ago, lowenz said:

Example in ioQuake3

Classic Renderer (Opengl 1.x?)

https://i.postimg.cc/jq62xw0d/0.jpg
 

New Renderer

https://i.postimg.cc/xCDjYY6z/1.jpg

Well, in TDM you will see 3.3 Core Profile, like in ioQuake3's "New Renderer".
Regardless of which vendor, GPU, and driver you have.

UPDATE: And the profile reported by ioQuake in these screenshots is OpenGL profile, I'm pretty sure.

Posted (edited)

So maybe TDM is running in 3.3 mode but 3.3 mode is NOT compatible with BindlessTextures (only 4.x?)

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted (edited)
8 minutes ago, stgatilov said:

UPDATE: And the profile reported by ioQuake in these screenshots is OpenGL profile, I'm pretty sure.

OK, but the problem now is if "Bindless Textures" are 3.3 compliant in AMD implementation.

There's a RED cross in the console extensions list when you start TDM, about "GL_ARB_COMPATIBILITY", just right after "Bindless Texture" (GREEN CHECK!)

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted
Just now, lowenz said:

So maybe TDM is running in 3.3 mode but 3.3 mode is NOT compatible with BindlessTextures (only 4.x?)

Bindless textures are used as extension, which does not require GL version to go up --- it can stay at 3.3 (even at 1.1 probably😲)
In fact, bindless textures are not in core OpenGL yet: there is no GL version that provides them, extension is the only way.

By the way, you can try to enable compatibility profile: cvar "r_glCoreProfile 0" + fresh restart.
I'm pretty sure it will print "GL 4.6 compatibility profile" then.
But better return cvar back after you try.

Posted

If it were not compatible, you should be getting a black screen because nothing could be rendered without textures. But in practice, it does render, just with confused texture associations. It looks and feels very much like a bug, but unfortunately I don't (yet) have access to an AMD device myself, so it' very hard to debug...

Posted
2 minutes ago, stgatilov said:

Bindless textures are used as extension, which does not require GL version to go up --- it can stay at 3.3 (even at 1.1 probably😲)
In fact, bindless textures are not in core OpenGL yet: there is no GL version that provides them, extension is the only way.

By the way, you can try to enable compatibility profile: cvar "r_glCoreProfile 0" + fresh restart.
I'm pretty sure it will print "GL 4.6 compatibility profile" then.
But better return cvar back after you try.

It gives me "3.3" and with GL_ARB_COMPATIBILITY Green! No more red!

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted (edited)

r_glCoreProfile "0"

Here's the screenshot (with r_glCoreProfile "2" - 3.3 core profile - I *CAN'T* take a screenshot, the screenshot is all black! :D )

https://postimg.cc/fJ767nhV

 

Performance is pretty the same, still BindlessTextures NOT working right (if set to 1).

No need to vid_restart, just setting it to 0 solves the issue directly in game.

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted

To wrap up the behaviour:

r_glCoreProfile "0" -> 3.3 compatibility profile context

r_glCoreProfile "2" -> 3.3 core profile forward-compatible context

Either way r_useBindlessTextures is not working (so maybe it's a bug and not a compatibility issue)

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted

Compatibility profiles are an aspect of standard OpenGL initialisation. They are not related specifically to AMD or enabling support for particular games.

In a Core profile, certain deprecated features (like immediate mode, glBegin/glEnd etc) are removed, whereas in Compatibility profiles they remain available to support legacy applications.

The driver is allowed to offer different GL versions for each profile, for example on macOS if you request a Compatibility profile you will never get anything more recent than 2.1. Neither the Core not the Compatibility profile should vary its behaviour based on the game, although it wouldn't surprise me if nasty things like Catalyst AI (if it still exists) interfere with this.

Posted (edited)

I know but the implementation of AMD enable some kinds of automatic extension compatibility, 'cause ID2 Tech based games need manual extension override control on Nvidia GPU systems.

MESA  too needs to set it manually (via environment variables)

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted
18 hours ago, lowenz said:

I know but the implementation of AMD enable some kinds of automatic extension compatibility, 'cause ID2 Tech based games need manual extension override control on Nvidia GPU systems.

It is pretty hard to believe it.

Posted
9 hours ago, lowenz said:

Don't see anything there.

  • ref_gl.dll is Quake renderer, it prints version 0.01, which has no relation to OpenGL.
  • OpenGL has version 4.6 Compatibility profile --- that's what any OpenGL application will get unless it specifically asks for Core profile.
  • Version 3.20 is one of the latest versions of quake, and I find it plausible that it was released in 1998.

Where is "special compatibility mode", where is "extensions override" ?

Posted

I guess the screenshot proves that the legacy Quake binary can work with a modern OpenGL 4.6 driver, but this in itself does not prove that the driver is doing something special to make Quake work. The whole idea of OpenGL is that it is backwards compatible (except in Core profiles which you don't get by default), which means that a 1998 game designed against OpenGL 1.2 or whatever should continue to work perfectly fine on an OpenGL 4.6 Compatibility profile.

All we can see in that screenshot is that OpenGL's generic backwards compatibility is working exactly as it should.

Posted (edited)

It shows that the AMD driver is compliant when the Nvidia one (or MESA) needs extensions override mechanism to run IDTech 2 based engines.

Edited by lowenz

Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Posted
16 hours ago, lowenz said:

It shows that the AMD driver is compliant when the Nvidia one (or MESA) needs extensions override mechanism to run IDTech 2 based engines.

Ok, you are probably right here.

Although I downloaded the same Q2 version and it works fine with OpenGL renderer without any additional actions, it might be some tweak on driver side. On the other hand, I think your extension string is reduced too: do you see ARB_bindless_texture in the list? I don't see it in my list on NVIDIA either.

One possible explanation about it is that old games were written in C, and they often copied OpenGL extension string into a fixed-size C string. At that time number of extensions was very low, so the programmers didn't think about how long it will grow in 20+ years. I guess NVIDIA supports more extensions in raw number, meaning that they faced this problem earlier than AMD.

Curiously, GL3 introduced a different mechanism for querying extensions in order to force programmers not doing this mistake. The new mechanism is somewhat less comfortable...

Posted (edited)
On 3/22/2021 at 8:10 PM, cabalistic said:

Disable r_useBindlessTextures. I'm afraid this is probably some sort of AMD driver bug.

Was reading about bindless textures to know what they are and saw this:

Quote

Bindless textures are not safe. The API is given fewer opportunities to ensure sane behavior; it is up to the programmer to maintain integrity. Furthermore, the consequences for mistakes are much more severe. Usually with OpenGL, if you do something wrong, you get either an OpenGL Error or undefined behavior. With bindless textures, if you do something wrong, the GPU can crash or your program can terminate. It might even bring down the whole OS.

Is that really that unsafe? 

Edited by HMart

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.

  • Recent Status Updates

    • The Black Arrow

      Things have been so bad these days for me...
      Just a year ago, I've been feeling dizzy, I thought it was nothing, today's stress, that type of thing, went to sleep...Still dizzy! 9 more days dizzy, went to doctor (I would have gone on the first day if NOT for the long appointment time)
      Said it may be Neck Dizziness...I did exercises for 6 months, no changes.
      Went to a Physical Therapist, went to another, no changes.
      I've asked my doctor for a full check this time.
      I hated yesteryear so much due to personal reasons, this year might be the same.
      To be brutally honest, I'd rather have cancer or/and chronic pain than suffer dizziness any second longer, especially when nothing helps.
      Hard to enjoy Thief when you're dizzy so I was hoping this year, Winter will be best for me.
      · 1 reply
    • JackFarmer

      Hello mappers and taffers! 

      Are you still out there? It is so calm here these days and I am afraid this is no good sign.
      Proof me wrong, tell your best friend (=me), that you are still here and that you will not go away!
      · 4 replies
    • JackFarmer

      Happy Labour Day, my taffing taffers & hard working mapping friends!
      And remember the poor souls who, within the Inventors’ organization, labor under Jonus’s yoke to ensure the success of that very guild! Always remember the hard workers!
      · 2 replies
    • datiswous

      Is there a script command to make a screenshot?
      I just though it could be interesting to be able to create a screenshot at a certain point in time. Then use that screenshot possibly in a debrief.
      I guess the second question is: Can you use a (in-game made) screenshot in a (debrief) gui?
      · 1 reply
    • Bikerdude  »  Display Cement

      So what type, and what ratio of portland to sand 😏
      · 1 reply
×
×
  • Create New...