Jump to content


Photo

Missing GL implementation for Linux

linux

  • Please log in to reply
10 replies to this topic

#1 Hamlet

Hamlet

    Member

  • Member
  • PipPip
  • 24 posts

Posted 05 October 2017 - 01:15 AM

I am trying to compile The Dark Mod (r7203) under Linux.
It appears commit r7128 calls GLimp_DeactivateFrontendContext() (framework/Session.cpp line 3017), whose implementation is not provided for Linux (sys/linux/glimp.cpp), while it is provided for Windows (sys/win32/win_glimp.cpp).

 

Any solution to this?


Edited by Hamlet, 05 October 2017 - 09:06 PM.


#2 duzenko

duzenko

    Advanced Member

  • Active Developer
  • PipPipPip
  • 744 posts

Posted 05 October 2017 - 01:21 AM

I am trying to compile The Dark Mod (r7203) under Linux.
It appears commit r7128 calls GLimp_DeactivateFrontendContext() (framework/Session.cpp line 3107), whose implementation is not provided for Linux (sys/linux/glimp.cpp), while it is provided for Windows (sys/win32/win_glimp.cpp).

 

Any solution to this?

 

What is the Linux version of qwglMakeCurrent? The function is rather simple.

void GLimp_DeactivateFrontendContext() {
	qwglMakeCurrent( NULL, NULL );
}


#3 nbohr1more

nbohr1more

    Darkmod PR, Wordsmith

  • Development Role
  • PipPipPipPipPip
  • 8043 posts

Posted 05 October 2017 - 06:00 AM

That seems to be a rather tough question from a little searching.

It seems there's no pre-built function like this in Linux and different developers are rolling their own

or avoiding multi-threading on the Linux side.


Please visit TDM's IndieDB site and help promote the mod:

http://www.indiedb.c...ds/the-dark-mod

(Yeah, shameless promotion... but traffic is traffic folks...)

#4 duzenko

duzenko

    Advanced Member

  • Active Developer
  • PipPipPip
  • 744 posts

Posted 05 October 2017 - 06:28 AM

That seems to be a rather tough question from a little searching.

It seems there's no pre-built function like this in Linux and different developers are rolling their own

or avoiding multi-threading on the Linux side.

Then an empty function for now



#5 cabalistic

cabalistic

    Member

  • Member
  • PipPip
  • 83 posts

Posted 05 October 2017 - 10:43 AM

No, the equivalent is just qglXMakeCurrent. It's used in e.g. GLimp_DeactivateContext() or GLimp_ActivateFrontendContext().


  • duzenko and nbohr1more like this

#6 grayman

grayman

    Master Builder, Coder

  • Active Developer
  • PipPipPipPipPip
  • 11921 posts

Posted 05 October 2017 - 02:33 PM

So when I get set up to build linux binaries again, am I going to run into this, or does someone need to change the makefiles?

#7 Hamlet

Hamlet

    Member

  • Member
  • PipPip
  • 24 posts

Posted 05 October 2017 - 09:19 PM

What is the Linux version of qwglMakeCurrent? The function is rather simple.

void GLimp_DeactivateFrontendContext() {
	qwglMakeCurrent( NULL, NULL );
}

I can use either an empty function,

void GLimp_DeactivateFrontendContext() {}

or a function similar to what you suggest in the quote:

void GLimp_DeactivateFrontendContext() {
	assert( dpy );
	qglXMakeCurrent( dpy, None, NULL );
}

(this is actually the same as Linux implementation of GLimp_DeactivateContext())...
Where should I look for failure when testing? Just to be clear: I have no clue what I am doing, here.

Actually, I can't because I have another army of missing functions after this one... but that's for another thread, since it's from a different commit.



#8 stgatilov

stgatilov

    Member

  • Development Role
  • PipPip
  • 427 posts

Posted 06 October 2017 - 09:26 AM

I just committed the fix in SVN revision 7215.

Although I don't expect the multithreaded renderer to work under Linux.



#9 cabalistic

cabalistic

    Member

  • Member
  • PipPip
  • 83 posts

Posted 06 October 2017 - 10:20 AM

Why not? I do. Last I tried, it worked fine in the menu. I couldn't load any actual missions for some reason which had nothing to do with the renderer. But if the menu works, there's no fundamental reason why it wouldn't work ingame.


Edited by cabalistic, 06 October 2017 - 10:21 AM.


#10 nbohr1more

nbohr1more

    Darkmod PR, Wordsmith

  • Development Role
  • PipPipPipPipPip
  • 8043 posts

Posted 06 October 2017 - 01:01 PM

Try r_useGLSL 0

The GLSL renderer is probably using extensions that are too new for free drivers.

You'll need to set r_softShadows 0 before you change that because this setting forces GLSL on.
Please visit TDM's IndieDB site and help promote the mod:

http://www.indiedb.c...ds/the-dark-mod

(Yeah, shameless promotion... but traffic is traffic folks...)

#11 cabalistic

cabalistic

    Member

  • Member
  • PipPip
  • 83 posts

Posted 06 October 2017 - 01:21 PM

I used the NIVIDIA proprietary drivers, and enabling or disabling GLSL made no difference. Again, I'm not sure the problem was related to the renderer at all. But I don't really use Linux outside of work anymore, so I didn't have the chance to investigate further...







Also tagged with one or more of these keywords: linux

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users