Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Massive FPS drops during explosions with cl_lights 1 #147

Closed
iButane opened this issue Aug 2, 2016 · 46 comments
Closed

Massive FPS drops during explosions with cl_lights 1 #147

iButane opened this issue Aug 2, 2016 · 46 comments

Comments

@iButane
Copy link

iButane commented Aug 2, 2016

I get significant FPS drops during explosions with cl_lights 1. It's mostly noticeable during DM matches where you've got multiple rockets being fired etc. I know Yamagi is primarily a single player port but this issue is also in SP mode even though it's more of a concern in multiplayer.
Also, there have been some user maps I've played which also have massive drops in FPS without any explosions. I don't get these FPS drops in any other Q2 port I've used (q2pro and unofficial 3.24 patch for example).

Anyway, I'm currently running through the SP campaign and if I find a specific area where these FPS drops happen significantly without any action/explosions I'll post it here. So far I can show you the FPS drops at the very beginning of the game, base1 explosions:

cl_lights 1:
quake2 2016-08-01 21-34-40-07
quake2 2016-08-01 21-34-51-55
quake2 2016-08-01 21-35-48-56

and cl_lights 0:

quake2 2016-08-01 21-45-07-81
quake2 2016-08-01 21-45-08-51
quake2 2016-08-01 21-45-09-23

My system specs are: Windows 7 64 bit, i5-2500 3.3ghz, 12GB RAM, AMD r9 270x

@maraakate
Copy link
Contributor

I've had this problem with integrated video cards. Are you using an
intel integrated card? They seem to have massive slowdowns with dynamic
lighting and multitexturing.

Frank

On 8/1/2016 10:04 PM, iButane wrote:

I get significant FPS drops during explosions with cl_lights 1. It's
mostly noticeable during DM matches where you've got multiple rockets
being fired etc. I know Yamagi is primarily a single player port but
this issue is also in SP mode even though it's more of a concern in
multiplayer.
Also, there have been some user maps I've played which also have
massive drops in FPS without any explosions. I don't get these FPS
drops in any other Q2 port I've used (q2pro and unofficial 3.24 patch
for example).

Anyway, I'm currently running through the SP campaign and if I find a
specific area where these FPS drops happen significantly without any
action/explosions I'll post it here. So far I can show you the FPS
drops at the very beginning of the game, base1 explosions:

cl_lights 1:
quake2 2016-08-01 21-34-40-07
https://cloud.githubusercontent.com/assets/20784457/17314537/33728cdc-5833-11e6-8b05-c2099c15f7bf.jpg
quake2 2016-08-01 21-34-51-55
https://cloud.githubusercontent.com/assets/20784457/17314538/36207ade-5833-11e6-9496-51f565de5472.jpg
quake2 2016-08-01 21-35-48-56
https://cloud.githubusercontent.com/assets/20784457/17314539/3772d990-5833-11e6-9a2f-7e6997df24d7.jpg

and cl_lights 0:

quake2 2016-08-01 21-45-07-81
https://cloud.githubusercontent.com/assets/20784457/17314549/44020d34-5833-11e6-8833-3ae594d310ea.jpg
quake2 2016-08-01 21-45-08-51
https://cloud.githubusercontent.com/assets/20784457/17314552/4529d8d6-5833-11e6-98a1-5e70e7fa7b4e.jpg
quake2 2016-08-01 21-45-09-23
https://cloud.githubusercontent.com/assets/20784457/17314553/468a9440-5833-11e6-83e3-8da09cda1001.jpg

My system specs are: Windows 7 64 bit, i5-2500 3.3ghz, 12GB RAM, AMD
r9 270x


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#147, or mute the thread
https://github.com/notifications/unsubscribe-auth/AMvpuNvHafRf7Ou7Keib6hT41EOmrZahks5qbqWhgaJpZM4JaLA1.

@DanielGibson
Copy link
Member

Holy shit, 54fps instead of 250 is a massive drop.

I thought maybe I've never noticed because I always use vsync so I never have more than 60fps anyway, but without vsync and cl_maxfps 300 I have stable 250fps, also in that scene.
(For some reason it's always exactly 250fps)

But I'm using a nvidia Geforce 770 on Linux, so /maybe/ the AMD driver handles YQ2's ancient OpenGL code worse than nvidias driver.

Frank: he said he uses an AMD R9 270x, so probably not integrated.. but maybe make double sure and check the startup messages (open console after startup and scroll up to "OpenGL settings:" - what GL_VENDOR and GL_RENDERER does it use?).

@maraakate
Copy link
Contributor

cl_maxfps is wrong. I never reported this as a bug to any Quake related
engine, but I noticed that setting cl_maxfps to say 125 will actually
give you 120 fps according to the counter and so on. It always seems to
be off by like 5-15. Maybe the higher the value it is the more it drifts.

Frank

On 8/1/2016 10:32 PM, Daniel Gibson wrote:

Holy shit, 54fps instead of 250 is a massive drop.

I thought maybe I've never noticed because I always use vsync so I
never have more than 60fps anyway, but without vsync and cl_maxfps 300
I have stable 250fps, also in that scene.
(For some reason it's always exactly 250fps)

But I'm using a nvidia Geforce 770 on Linux, so /maybe/ the AMD driver
handles YQ2's ancient OpenGL code worse than nvidias driver.

Frank: he said he uses an AMD R9 270x, so probably not integrated..
but maybe make double sure and check the startup messages (open
console after startup and scroll up to "OpenGL settings:" - what
GL_VENDOR and GL_RENDERER does it use?).


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMvpuH4Av2HEQh-ho-sHmzN-flcS7ihsks5qbqxJgaJpZM4JaLA1.

@DanielGibson
Copy link
Member

For some reason it seems that with cl_maxfps at high values I get 250fps or 500 or 1000, no idea whose fault that is, maybe nvidia linux driver or something?
Anyway, with cl_maxfps 1100 I have 1000fps but it seams to drop to 500 during the explosion - but no idea how much it'd drop if it didn't lock to 500 or 1000 but also used values inbetween..

I'll test on Win7 with a Radeon HD 6950 tomorrow.

@iButane
Copy link
Author

iButane commented Aug 2, 2016

GL_VENDOR: ATI Technologies Inc.
GL_RENDERER: AMD R9 200 Series

Sounds like an AMD issue...

I usually have my cl_maxfps set to 144 (got a 144hz monitor). I just maxed it out to 999 or whatever for those screenshots.

@DanielGibson
Copy link
Member

Ok, on Win7 with AMD Radeon HD 6950 I get about the same FPS numbers as you, including drops during those first explosions. Not sure what exactly makes it go slow there and what the other Quake2 ports changed in the renderer so you don't have the same issues there.

@DanielGibson
Copy link
Member

@iButane Can you try setting the gl_ext_multitexture cvar to 0 (afterwards vid_restart or restart the game)? Does it change anything? (I didn't try yet, might do so tomorrow)

@DanielGibson
Copy link
Member

on my Win7/AMD machine, setting gl_ext_multitexture to 0 increases the framerate a lot - >400fps instead of around 250 without explosions, and even with explosions (at the beginning of the SP game) it stays above 300, probably even above 350.
Does this work for you, too?

I think we already set gl_ext_multitexture to 0 by default in the last release, but if you have an older config it might still be set to 1 there.

@DanielGibson
Copy link
Member

Funny, multitexturing in q2 being slow, especially with explosions, has been known at least since 2002: http://icculus.org/pipermail/quake2/2002-August/000431.html http://icculus.org/pipermail/quake2/2002-August/000433.html

@iButane
Copy link
Author

iButane commented Aug 4, 2016

Ah! yes! That was the culprit! Everything works smoothly now; no drops in FPS whatsoever! I though it was set to 0 as well but nope, was 1.

I installed Yamagi on my son's PC yesterday (prebuilt windows binaries) and it also had the same issue (AMD card as well) so I'm guessing gl_ext_multitexture was also still set to 1.

Just d/led the prebuilt binaries and the generated CFG file now has it set to 0.

Damn, I notice quite a big different with multitexture on and off though. The game looks much darker now. It was so much more vibrant (the colors/detailts) and upping the vid_gamma doesn't help very much. it does brighten it up but looks a bit dull. Dang! Might just have to suck it up with the slower FPS.

@DanielGibson
Copy link
Member

Not sure.. it somehow handles textures differently, which was supposed to be faster on some ancient hardware. Or something like that.
While multitexturing in theory allows things like having two textures, one blended with the other, on the same polygon-face, this is not used in Quake2. There are no visual differences (apart from at least one rendering bug only happening with multitexturing enabled, which is why we disabled it by default recently).

Also, pretty cool you introduce your son to Quake2! I hope you'll have some fun playing coop :-)

@iButane
Copy link
Author

iButane commented Aug 4, 2016

Just edited my above post. Did some testing and I noticed a difference =/

Yeah, he wasn't really into at first but now all of the sudden he is for some reason. hehe.. Will be fin co-oping, that's for sure.

@DanielGibson
Copy link
Member

DanielGibson commented Aug 4, 2016

WTF, that is strange, I don't think gl_ext_multitexture should make any difference regarding brightness.. can you make screenshots for comparison?
Also, it might help to not only change gamma but also the intensity cvar (might need vid_restart).

@iButane
Copy link
Author

iButane commented Aug 4, 2016

Yup.. Some screen's showing it on and off:

20160803223638_1
20160803223649_1
20160803223919_1
20160803223927_1
20160803223720_1
20160803223711_1

20160803223800_1
20160803223816_1

Not very accurate since they are BOTH darker than what it actually is. I'll try playing with intensity a bit.. I know i've spent hours in the past in other ports trying to find the perfect balance for intensity, gl_modulate and vid_gamma.. hopefully that doesn't happen here, lol..

@iButane
Copy link
Author

iButane commented Aug 4, 2016

Sweeeeeet! Played with intensity.. default was 1.75, Bringing it up to 3 makes it almost identical to before with multitexturing on. Thank you very much for the tip.

Those screenshots are horrible btw. The game looks much better (brighter) than that. Could also be my 144hz monitor (notorious for making colors look off/washed out) but only Q2, regardless of port, has this issue of non accurate screenshots. Then again I haven't compared SiN's screenshots. Could be the engine.

@maraakate
Copy link
Contributor

Yeah, I noticed that with the DK 1.3 port we work on that the screenshots themselves always seem a lot darker for some reason. But in most of my q2 engine games I set intensity to 2 or 3 typically.

@DanielGibson
Copy link
Member

I think the reason is Gamma: if the brightness is increased with gamma, and "hardware gamma" is used like Daikatana 1.3 and YQ2 do by default, then the brightness of the whole screen is changed, but that doesn't change the pixel values in the game. The gamma is applied afterwards by the OS/GPU/whatever.

@iButane
Copy link
Author

iButane commented Aug 4, 2016

While multitexturing in theory allows things like having two textures, one blended with the other, on the same polygon-face, this is not used in Quake2.

Isn't that what this would be? Notice the little lamp/light on the ceiling:

20160803230237_1

^ that's using: gl_ext_multitexture 1, intensity 1.75

20160803230215_1

^ this is using gl_ext_multitexture 0, intensity 3.5

@maraakate
Copy link
Contributor

i think it just looks different because of the intensity values and that
multitexturing may be using a different lighting code path.

On 8/3/2016 11:08 PM, Butane wrote:

While multitexturing in theory allows things like having two
textures, one blended with the other, on the same polygon-face,
this is not used in Quake2.

Isn't that what this would be? Notice the little lamp/light on the
ceiling:

20160803230237_1
https://cloud.githubusercontent.com/assets/20784457/17389068/d5dbb72c-59ce-11e6-88ea-248a34ee2960.jpg

^ that's using: gl_ext_multitexture 1, intensity 1.75

20160803230215_1
https://cloud.githubusercontent.com/assets/20784457/17389085/f61a6664-59ce-11e6-9b9e-c12adbcd9c97.jpg

^ this is using gl_ext_multitexture 0, intensity 3.5


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMvpuPIFmCaL_FQgaL6CObTHEo_xG3j6ks5qcVeqgaJpZM4JaLA1.

@iButane
Copy link
Author

iButane commented Aug 4, 2016

Yeah.. Probably..

Damn, I noticed with increased intensity my lava looks green.. hah.. What a pain! Will have to play around more with this tomorrow.. But as it stands I think I'm willing to suck it up and play with the fps drops/ multitexturing on. I can only imagine the difference in more detailed, more colourful environments like the city1+ etc maps.
20160803232123_1
20160803232056_1
20160803231400_1
20160803231325_1

@maraakate
Copy link
Contributor

Before you dismiss... can you try my Quake 2 port and see if the same
problem persists? It uses yamagi's gamex86.dll code for increased
stability. I just want to verify that the same problem exists in my
ref_gl (which is KM's Q2 3.24 patch with a few bug fixes and DJGPP
specific changes).

https://bitbucket.org/neozeed/q2dos/downloads/q2dos_20160205_win32.7z

This will overwrite your ref_gl and gamex86.dlls so youll need to
reinstall yq2 again, but it uses it's own config file so you don't have
to worry about it clashing with other ports.

On 8/3/2016 11:26 PM, Butane wrote:

Yeah.. Probably..

Damn, I noticed with increased intensity my lava looks green.. hah..
What a pain! Will have to play around more with this tomorrow.. But as
it stands I think I'm willing to suck it up and play with the fps
drops/ multitexturing on. I can only imagine the difference in more
detailed, more colourful environments like the city1+ etc maps.
20160803232123_1
https://cloud.githubusercontent.com/assets/20784457/17389363/a180b178-59d1-11e6-817a-b320f14b325b.jpg
20160803232056_1
https://cloud.githubusercontent.com/assets/20784457/17389364/a2dc4fbe-59d1-11e6-90b7-2adc936948e7.jpg
20160803231400_1
https://cloud.githubusercontent.com/assets/20784457/17389365/a48deffc-59d1-11e6-865c-e3e49a9d8db0.jpg
20160803231325_1
https://cloud.githubusercontent.com/assets/20784457/17389366/a58236de-59d1-11e6-8385-510a77a63576.jpg


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMvpuJFjMRU1y0axo9Xekel4rRhRDWhkks5qcVvvgaJpZM4JaLA1.

@Pickle
Copy link
Contributor

Pickle commented Aug 4, 2016

hi all,
the multitexture enabled will use that API to enable drawing 2 textures in
one pass. Otherwise the engine uses 2 passes. Typically decreasing the API
calls and passes makes things faster, but it really comes down the driver
supplier.
the opengles port i worked on has some optimizations that might improve
performance on older cards, it at least helped with the powervr i developed
it on. I have an updated take on the multitexture api maybe it works better.

On Wed, Aug 3, 2016 at 11:29 PM, Frank Sapone notifications@github.com
wrote:

Before you dismiss... can you try my Quake 2 port and see if the same
problem persists? It uses yamagi's gamex86.dll code for increased
stability. I just want to verify that the same problem exists in my
ref_gl (which is KM's Q2 3.24 patch with a few bug fixes and DJGPP
specific changes).

https://bitbucket.org/neozeed/q2dos/downloads/q2dos_20160205_win32.7z

This will overwrite your ref_gl and gamex86.dlls so youll need to
reinstall yq2 again, but it uses it's own config file so you don't have
to worry about it clashing with other ports.

On 8/3/2016 11:26 PM, Butane wrote:

Yeah.. Probably..

Damn, I noticed with increased intensity my lava looks green.. hah..
What a pain! Will have to play around more with this tomorrow.. But as
it stands I think I'm willing to suck it up and play with the fps
drops/ multitexturing on. I can only imagine the difference in more
detailed, more colourful environments like the city1+ etc maps.
20160803232123_1
<
https://cloud.githubusercontent.com/assets/20784457/17389363/a180b178-59d1-11e6-817a-b320f14b325b.jpg

20160803232056_1
<
https://cloud.githubusercontent.com/assets/20784457/17389364/a2dc4fbe-59d1-11e6-90b7-2adc936948e7.jpg

20160803231400_1
<
https://cloud.githubusercontent.com/assets/20784457/17389365/a48deffc-59d1-11e6-865c-e3e49a9d8db0.jpg

20160803231325_1
<
https://cloud.githubusercontent.com/assets/20784457/17389366/a58236de-59d1-11e6-8385-510a77a63576.jpg


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AMvpuJFjMRU1y0axo9Xekel4rRhRDWhkks5qcVvvgaJpZM4JaLA1
.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZdrPzWOg7g5hC-LtFOiutqHHqVXsks5qcVx-gaJpZM4JaLA1
.

@iButane
Copy link
Author

iButane commented Aug 4, 2016

maraakate, appears exactly the same/no difference with multitexturing on and off.. Fresh Q2 install with your files, multitexturing on:

20160803234534_1

and now multitexturing off:

20160803234507_1

intensity (2) and gamma (1) are all defaults and I did a vid_restart on both.

I used the unofficial 3.24 patch for along time. Was my fav until I discovered Yamagi. I wasn't a big fan of the dull, dark contrast look of 3.24's GL render but I did like how it make Q2 look a bit more "realistic" coz of that. I tried to make the colours more vibrant but I don't think there is anything (settings) that can do that on that gl render.

EDIT: Oh yeah, and no FPS drops at all in the base1 intro with the explosion, multitexturing on or off.

@Yamagi
Copy link
Member

Yamagi commented Aug 4, 2016

@Pickle: I've created a new branch version6 with all generic parts of your OpenGL ES patch (the vertex arrays and the texture stuff) and my asynchronous client stuff. We may that use as a base for a slightly incompatible version 6.0 sometime in the future. The details have to be decided yet.

@Pickle
Copy link
Contributor

Pickle commented Aug 4, 2016

@Yamagi, glad to hear that.

On Thu, Aug 4, 2016 at 3:35 PM, Yamagi notifications@github.com wrote:

@Pickle https://github.com/Pickle: I've created a new branch version6
with all generic parts of your OpenGL ES patch (the vertex arrays and the
texture stuff) and my asynchronous client stuff. We may that use as a base
for a slightly incompatible version 6.0 sometime in the future. The details
have to be decided yet.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZUYYaUkSHeMg-GEHtaMCx2zJPxIwks5qcj8DgaJpZM4JaLA1
.

@iButane
Copy link
Author

iButane commented Aug 5, 2016

On 06/25/2016 Quake II 5.34 was released. Changes since 5.33 are:

  • Disable gl_ext_multitexturing by default.

Out of curiosity, why was multitexturing disabled by default after this release?

--nevermind, found my answer: 6f64efb -- Curious now about that render glitch on city3; guess I'll see it when I get there on my campaign run.

I guess multitexturing is not really important today.. but just because I did notice visual and performance differences in Yamagi, I did some more comparisons and testing. This time on the very last official release, 3.21. gl_ext_multitexturing on or off here does absolutely NOTHING visually and also there are no frame rate drops whatosever when it is on with cl_lights 1.

Anyway, I guess I could play with it off to avoid the FPS drops, but my question is, how come the colors/brightness darken when I set it to 0? Can you guys fix that so it doesn't? and if not, is there a way I can increase my intensity without making the lava greenish looking?

Sorry.. I know, so many questions and shit over something so small and irrelevant in today's rigs. I just like having my Q2 looking the best it can in its vanilla form 😃

@Yamagi
Copy link
Member

Yamagi commented Aug 5, 2016

After some code reading I'm quite sure that I understand what's wrong:

  • Even when gl_ext_multitexturing is enabled, multitexturing is not used to actually draw the textures, just for some blending. This was broken by Icculus Q2. I guess that at least a part of the performance degeneration seen with multitexturing can be explained by this. I've got an very experimental patch to correct this.
  • The difference in brightness is caused by gl_overbrightbits, by default set to 2. gl_overbrightbits is only used when GL_ARB_texture_env_combine is available and (that is Quake IIs fault) gl_ext_multitexturing is set to 1. When multitexturing is disabled, gl_overbrightbits is ignored and the game is darker. To get the darker look with multitexturing, set gl_overbrightbits to 1. I have an idea how gl_overbrightbits can be decoubled from multitexturing but I still need to come up with a patch.

Yamagi added a commit that referenced this issue Aug 5, 2016
This is a slighty revised version of id Software original code. Icculus
code may have some advantages on broken drivers or underpowered GPUs.
Today it's just a performance hook. This is a first step in fixing #147.
@iButane
Copy link
Author

iButane commented Aug 5, 2016

This was broken by Icculus Q2. I guess that at least a part of the performance degeneration seen with
multitexturing can be explained by this.

That would explain why there's no issues or frame rate drops with gl_ext_multitexture 1 on Q2 version 3.20 and why issues only started being reported in 2002 with Icculus.

@Pickle
Copy link
Contributor

Pickle commented Aug 5, 2016

@butane: multitexture is still relevant, its part of the standard API now.
Heres a good description: https://www.opengl.org/wiki/Texture_Combiners

@Yamagi: Have you thought to replace the old
glPolygon/qglMultiTexCoord2fARB code with the vertex array code?

On Fri, Aug 5, 2016 at 2:52 PM, Butane notifications@github.com wrote:

This was broken by Icculus Q2. I guess that at least a part of the
performance degeneration seen with
multitexturing can be explained by this.

That would explain why there's no issues or frame rate drops with
gl_ext_multitexture 1 on Q2 version 3.20 and why issues only started being
reported in 2002 with Icculus.

So I'm guessing there's no way to make gl_overbrightbits work without
multitexturing?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZa9aPE9fQsCqgA2xZgObX2UtyXbrks5qc4ZngaJpZM4JaLA1
.

Yamagi added a commit that referenced this issue Aug 6, 2016
I think / guess / *fingers crossed* that this fixes the different
brightness levels between normal and multitexturing mode reported
in #147.
@Yamagi
Copy link
Member

Yamagi commented Aug 7, 2016

Okay. I think that the version6 branch fixes all theses problems. It would be nice if you could test it. Windows binaries can be found here: http://deponie.yamagi.org/quake2/windows/quake2-6.00-test1.zip

Changes to the 'master' branch are:

  • Make the client asynchronous. This is something that I wanted to do for a long time and that was requested by many users. Network frames and renderer frames are no longer tight together, allowing much higher frame rates during network play. As a nice side effect the famous 125hz bug is somewhat mitigated. cl_maxfps specifies the number of network frames, 30 is all you' ll ever need. gl_maxfps controls the render frames, it's still set to 95 by default.
  • Integrate @pickles vertex array work. This gives a nice performance boot on some GPUs, especially older ones or rather slow mobile GPUs.
  • Try to fix multitexturing, implement it through vertex arrays. This gives a performance boost with multitexturing enabled, but it's still noticeable slower than the normal render path. The render glitch in city3 is still there and gl_showtris is still not working. In fact multitexturing looks like a quick hack to get better performance on some verly early GPUs with 2 texture units. The Voodoo II for example. It's implemented through a special code path, nearly complete orthogonal to normal rendering. A real fix would require a lot of work and rather invasive refactoring. Hence we may remove multitexturing completely, no support is better then broken support.
  • Implement gl_overbrightbits in the non multitexturing case.
  • Rename some cvar:
    • gl_ext_multitexturing -> gl_multitexturing
    • gl_ext_mtextcombine -> gl_mtexcombine

@Yamagi
Copy link
Member

Yamagi commented Aug 7, 2016

I've pushed some more fixes to gl_overbrightbits and rebuild the Windows binaries. Please redownload them before you test. I think that overbright bits now look exactly the same in both code paths.

@iButane
Copy link
Author

iButane commented Aug 7, 2016

Ok.. I tested this very briefly.

The default gl_overbrightbits 2 looks a bit broken:
20160807130243_1
20160807130250_1
20160807130326_1
20160807130329_1

But with gl_overbrightbits 1:

20160807130310_1
20160807130341_1
20160807130342_1

And then the default gl_multitexture 0:

20160807130417_1

And with it on, still makes a huge difference:

20160807130433_1

Also gl_overbrightbits 1 gives these dark squares (only 1 seen here on the right):
20160807130508_1

But with gl_overbrightbits 2 it's fine:

20160807130517_1

@Pickle
Copy link
Contributor

Pickle commented Aug 7, 2016

I did some tests on linux 64 bits on Intel graphics:
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) Pineview
GL_VERSION: 2.1 Mesa 11.0.8

Running timedemo resulted in 30 +/- 1 fps for both render paths. So really
no difference.

I took 2 screenshots
gl_ext_multitexture is ON
http://imgur.com/yAycZBQ
gl_ext_multitexture is OFF
http://imgur.com/bsaIoSB

I think im seeing the same thing as Butane, with multitex on make a big
difference.

On Sun, Aug 7, 2016 at 1:20 PM, Butane notifications@github.com wrote:

Ok.. I tested this very briefly. All fresh installs of Q2, new configs etc.

The default gl_overbrightbits 2 looks a bit broken:
[image: 20160807130243_1]
https://cloud.githubusercontent.com/assets/20784457/17463938/c52cedcc-5ca0-11e6-8e37-2592c46236f0.jpg
[image: 20160807130250_1]
https://cloud.githubusercontent.com/assets/20784457/17463939/c94a1812-5ca0-11e6-8120-1a0862b49941.jpg
[image: 20160807130326_1]
https://cloud.githubusercontent.com/assets/20784457/17463944/d9e3e626-5ca0-11e6-9cd3-6994a135936d.jpg
[image: 20160807130329_1]
https://cloud.githubusercontent.com/assets/20784457/17463946/dfd82e52-5ca0-11e6-83da-ab60af83929d.jpg

But with gl_overbrightbits 1:

[image: 20160807130310_1]
https://cloud.githubusercontent.com/assets/20784457/17463947/ef4b5bde-5ca0-11e6-81e5-a507db5abfdc.jpg
[image: 20160807130341_1]
https://cloud.githubusercontent.com/assets/20784457/17463948/f53fb594-5ca0-11e6-9777-cb7a2ee52cb2.jpg
[image: 20160807130342_1]
https://cloud.githubusercontent.com/assets/20784457/17463949/f7cd488a-5ca0-11e6-82dd-ebcf25494e5f.jpg

And then the default gl_multitexture 0:

[image: 20160807130417_1]
https://cloud.githubusercontent.com/assets/20784457/17463950/04970ae2-5ca1-11e6-89a6-658ffbff8efb.jpg

And with it on, still makes a huge difference:

[image: 20160807130433_1]
https://cloud.githubusercontent.com/assets/20784457/17463951/103a38b0-5ca1-11e6-808b-04da4ba4a904.jpg

Also gl_overbrightbits 1 gives these dark squares (only 1 seen here on the
right):
[image: 20160807130508_1]
https://cloud.githubusercontent.com/assets/20784457/17463966/6e9fb790-5ca1-11e6-8831-869bf423aadc.jpg

But with gl_overbrightbits 2 it's fine:

[image: 20160807130517_1]
https://cloud.githubusercontent.com/assets/20784457/17463975/90aeb9d0-5ca1-11e6-9aa5-518e8a42d0f7.jpg


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZcMZu2oCLocsnoya7_DGAyHkThSWks5qdhPZgaJpZM4JaLA1
.

@Pickle
Copy link
Contributor

Pickle commented Aug 7, 2016

ignore my results i tested master by mistake

On Sun, Aug 7, 2016 at 2:17 PM, Pickle136 . pickle136@gmail.com wrote:

I did some tests on linux 64 bits on Intel graphics:
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) Pineview
GL_VERSION: 2.1 Mesa 11.0.8

Running timedemo resulted in 30 +/- 1 fps for both render paths. So really
no difference.

I took 2 screenshots
gl_ext_multitexture is ON
http://imgur.com/yAycZBQ
gl_ext_multitexture is OFF
http://imgur.com/bsaIoSB

I think im seeing the same thing as Butane, with multitex on make a big
difference.

On Sun, Aug 7, 2016 at 1:20 PM, Butane notifications@github.com wrote:

Ok.. I tested this very briefly. All fresh installs of Q2, new configs
etc.

The default gl_overbrightbits 2 looks a bit broken:
[image: 20160807130243_1]
https://cloud.githubusercontent.com/assets/20784457/17463938/c52cedcc-5ca0-11e6-8e37-2592c46236f0.jpg
[image: 20160807130250_1]
https://cloud.githubusercontent.com/assets/20784457/17463939/c94a1812-5ca0-11e6-8120-1a0862b49941.jpg
[image: 20160807130326_1]
https://cloud.githubusercontent.com/assets/20784457/17463944/d9e3e626-5ca0-11e6-9cd3-6994a135936d.jpg
[image: 20160807130329_1]
https://cloud.githubusercontent.com/assets/20784457/17463946/dfd82e52-5ca0-11e6-83da-ab60af83929d.jpg

But with gl_overbrightbits 1:

[image: 20160807130310_1]
https://cloud.githubusercontent.com/assets/20784457/17463947/ef4b5bde-5ca0-11e6-81e5-a507db5abfdc.jpg
[image: 20160807130341_1]
https://cloud.githubusercontent.com/assets/20784457/17463948/f53fb594-5ca0-11e6-9777-cb7a2ee52cb2.jpg
[image: 20160807130342_1]
https://cloud.githubusercontent.com/assets/20784457/17463949/f7cd488a-5ca0-11e6-82dd-ebcf25494e5f.jpg

And then the default gl_multitexture 0:

[image: 20160807130417_1]
https://cloud.githubusercontent.com/assets/20784457/17463950/04970ae2-5ca1-11e6-89a6-658ffbff8efb.jpg

And with it on, still makes a huge difference:

[image: 20160807130433_1]
https://cloud.githubusercontent.com/assets/20784457/17463951/103a38b0-5ca1-11e6-808b-04da4ba4a904.jpg

Also gl_overbrightbits 1 gives these dark squares (only 1 seen here on
the right):
[image: 20160807130508_1]
https://cloud.githubusercontent.com/assets/20784457/17463966/6e9fb790-5ca1-11e6-8831-869bf423aadc.jpg

But with gl_overbrightbits 2 it's fine:

[image: 20160807130517_1]
https://cloud.githubusercontent.com/assets/20784457/17463975/90aeb9d0-5ca1-11e6-9aa5-518e8a42d0f7.jpg


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZcMZu2oCLocsnoya7_DGAyHkThSWks5qdhPZgaJpZM4JaLA1
.

@Pickle
Copy link
Contributor

Pickle commented Aug 8, 2016

I reran on the correct branch the rendering issue i saw before is
gone. gl_ext_multitexture
set to ON was a little slower. About 28 fps set to 0 and 25 fps set to 1.

On Sun, Aug 7, 2016 at 4:44 PM, Pickle136 . pickle136@gmail.com wrote:

ignore my results i tested master by mistake

On Sun, Aug 7, 2016 at 2:17 PM, Pickle136 . pickle136@gmail.com wrote:

I did some tests on linux 64 bits on Intel graphics:
GL_VENDOR: Intel Open Source Technology Center
GL_RENDERER: Mesa DRI Intel(R) Pineview
GL_VERSION: 2.1 Mesa 11.0.8

Running timedemo resulted in 30 +/- 1 fps for both render paths. So
really no difference.

I took 2 screenshots
gl_ext_multitexture is ON
http://imgur.com/yAycZBQ
gl_ext_multitexture is OFF
http://imgur.com/bsaIoSB

I think im seeing the same thing as Butane, with multitex on make a big
difference.

On Sun, Aug 7, 2016 at 1:20 PM, Butane notifications@github.com wrote:

Ok.. I tested this very briefly. All fresh installs of Q2, new configs
etc.

The default gl_overbrightbits 2 looks a bit broken:
[image: 20160807130243_1]
https://cloud.githubusercontent.com/assets/20784457/17463938/c52cedcc-5ca0-11e6-8e37-2592c46236f0.jpg
[image: 20160807130250_1]
https://cloud.githubusercontent.com/assets/20784457/17463939/c94a1812-5ca0-11e6-8120-1a0862b49941.jpg
[image: 20160807130326_1]
https://cloud.githubusercontent.com/assets/20784457/17463944/d9e3e626-5ca0-11e6-9cd3-6994a135936d.jpg
[image: 20160807130329_1]
https://cloud.githubusercontent.com/assets/20784457/17463946/dfd82e52-5ca0-11e6-83da-ab60af83929d.jpg

But with gl_overbrightbits 1:

[image: 20160807130310_1]
https://cloud.githubusercontent.com/assets/20784457/17463947/ef4b5bde-5ca0-11e6-81e5-a507db5abfdc.jpg
[image: 20160807130341_1]
https://cloud.githubusercontent.com/assets/20784457/17463948/f53fb594-5ca0-11e6-9777-cb7a2ee52cb2.jpg
[image: 20160807130342_1]
https://cloud.githubusercontent.com/assets/20784457/17463949/f7cd488a-5ca0-11e6-82dd-ebcf25494e5f.jpg

And then the default gl_multitexture 0:

[image: 20160807130417_1]
https://cloud.githubusercontent.com/assets/20784457/17463950/04970ae2-5ca1-11e6-89a6-658ffbff8efb.jpg

And with it on, still makes a huge difference:

[image: 20160807130433_1]
https://cloud.githubusercontent.com/assets/20784457/17463951/103a38b0-5ca1-11e6-808b-04da4ba4a904.jpg

Also gl_overbrightbits 1 gives these dark squares (only 1 seen here on
the right):
[image: 20160807130508_1]
https://cloud.githubusercontent.com/assets/20784457/17463966/6e9fb790-5ca1-11e6-8831-869bf423aadc.jpg

But with gl_overbrightbits 2 it's fine:

[image: 20160807130517_1]
https://cloud.githubusercontent.com/assets/20784457/17463975/90aeb9d0-5ca1-11e6-9aa5-518e8a42d0f7.jpg


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZcMZu2oCLocsnoya7_DGAyHkThSWks5qdhPZgaJpZM4JaLA1
.

@iButane
Copy link
Author

iButane commented Aug 8, 2016

@Pickle You sure you tested on the right one? Because gl_ext_multitexture is now gl_multitexture.

@Pickle
Copy link
Contributor

Pickle commented Aug 9, 2016

yeah is was gl_multitexture, i just copied it from the last email, but i
just looked at the config file.

On Mon, Aug 8, 2016 at 5:45 PM, Butane notifications@github.com wrote:

You sure you tested on the right one? Because gl_ext_multitexture is now
gl_multitexture.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZSeobi8BNST_jcCgWC4526OmYIxWks5qd6OIgaJpZM4JaLA1
.

@Yamagi
Copy link
Member

Yamagi commented Aug 9, 2016

Okay, another test version. Again the version6 branch or these Windows binaries: http://deponie.yamagi.org/quake2/misc/quake2-6.00-overbright2.zip

Daniel and I had a long discussion last night if this is really okay, because there are some differences between gl_overbrightbits with and without multitexturing:

  • In the multitexturing case gl_overbrightbits aren't applied to some surfaces like for example the sky. The higher gl_overbrightbits is set, the darker the sky gets in contrast to the rest of the scene. I think that it's a bug. Without multitexturing gl_overbrightbits are applied to all surfaces.
  • With multitexturing enabled gl_overbrightbits are applied to the combined texture and lightmap. Without multitexturing that's impossible, because normal textures are rendered first and lightmaps as a second step. That leads to some minor divergences in coloring, good to see at the two lamps next to next landing pod in base1. I've experimented with several way of applying gl_overbrightbits and this is as near as I can get to the coloring with multitexturing enabled.

@Yamagi
Copy link
Member

Yamagi commented Aug 9, 2016

@Pickle: 30 FPS seems much to low. This may be caused by wrong cvar settings. With the version6 Branch cl_maxfps limits the client / network framerate and should be set to 30. gl_maxfps determines the render framerate. Is that cvar set 30 by chance?

@Pickle
Copy link
Contributor

Pickle commented Aug 9, 2016

@Yamagi both cl_maxfps and gl_maxfps ar set to 95. I turned it off but the
other thing i wonder is if vsync is being forced.

On Tue, Aug 9, 2016 at 3:18 AM, Yamagi notifications@github.com wrote:

@Pickle https://github.com/Pickle: 30 FPS seems much to low. This may
be caused by wrong cvar settings. With the version6 Branch cl_maxfps limits
the client / network framerate and should be set to 30. gl_maxfps
determines the render framerate. Is that cvar set 30 by chance?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#147 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAaOZV6IlD2m-Fic8GXxk7-8S_Xn06U9ks5qeCnKgaJpZM4JaLA1
.

@iButane
Copy link
Author

iButane commented Aug 13, 2016

Hrmm.. tested the windows binaries.. I think gl_overbrightbits 2 makes the colors too bright and greenish:
20160812221109_1
20160812221118_1
20160812221153_1
20160812221250_1
20160812221300_1

But with gl_overbrightbits 1 it looks decent, just a little too dark:

20160812221202_1
20160812221239_1
20160812221307_1

Still, nothing beats the look of gl_multitexture 1 look with gl_overbrightbits 1 if it weren't for the fps drops. At the moment, the current 5.34 windows build looks best with gl_overbrightbits 2 and gl_multitexture 0:
20160812223717_1

@Yamagi
Copy link
Member

Yamagi commented Aug 16, 2016

Since gl_overbrightbits is working now for the non multitexturing path (even if the look is slightly different) and a full fix for the multitexturing performance problems requires refactoring the whole render path I'm considering this as solved. Maybe we'll come back at the renderer and implement a modern OpenGL or even Vulkan render path.

@Yamagi Yamagi closed this as completed Aug 16, 2016
@Jarvik7
Copy link
Contributor

Jarvik7 commented Aug 17, 2016

A modern GL renderer implementation is something I'd be interested in helping on, assuming I had time (I wish). However, at this point it would really make more sense just to go directly for Vulkan.

@Yamagi
Copy link
Member

Yamagi commented Aug 17, 2016

@DanielGibson has some plans for a new renderer. I don't know what exactly and if there's a time schedule.

@DanielGibson
Copy link
Member

My rough idea is to first put the renderer in a lib (dll) again and then starting to create an alternative renderer using OpenGL3, mainly as an exercise for me to learn OpenGL.
I have no time schedule whatsoever, because I don't even have much time anyway.

Vulkan doesn't make that much sense IMHO, because it's totally overkill for Quake2 and Apple doesn't support it. Of course, once we support renderer libs, we could have a Vulkan renderer as an alternative too, if anyone wants to write one - but I personally don't plan on writing one in the foreseeable future.

@shoober420
Copy link

shoober420 commented Sep 28, 2016

I'm on Arch Linux with an Nvidia card and the latest proprietary drivers. There's seems to be no difference between gl_overbrightbits "0" and "1". Using a value of "2" makes everything way too bright and does have that greenish tint iButane was talking about. I have multitexturing disabled and overbrightbits disable and im pleased with how it looks. I do use max digital vibrance because it makes everything look more colorful, so that may give a similar effect to overbrightbits.

I'm using the latest git build by the way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants