ioquake / ioq3

The ioquake3 community effort to continue supporting/developing id's Quake III Arena
https://www.ioquake3.org/
GNU General Public License v2.0
2.34k stars 523 forks source link

Performance Issue , FPS drop #241

Closed haxxus closed 7 years ago

haxxus commented 7 years ago

This is the first time I try on client side, always used server side playing with regular q3a client. I have compiled both 32/64 bit with Cygwin using windows 10 and using stock .cfg both have fps issues. Higher drops when looking at the enemy and more when more enemies are together. In dm17 14 bots on enemy team, Using 250 maxfps in spec mode without moving mouse No problems with regular q3a ioquake3-1.36-3.1.x86 222 fps With this new git version both 32/64 166 fps

Using excessiveplus mod.

NuclearMonster commented 7 years ago

What video card and driver version?

haxxus commented 7 years ago

AMD R9 , crossfire mode , Driver 16.11.5

Ive tried a bunch of maps and does the same , less performance from the git version, about 50-60 less fps. video > https://youtu.be/RRghwybpRDQ

ensiform commented 7 years ago

CPU? Config? Is the mod qvm based or DLL based? (probably not relevant but just curious)

haxxus commented 7 years ago

AMD FX-8350 Black Edition

the mod is qvm based

Here is a link download to the mod with my autoexec.cfg , but initially I tried without a cfg and you can still see the issue . Here is my e+ server running the new io git . 45.76.35.49:27960 ( rcon l74f4n ) Could you try it? I have tried from my sons pc and same thing .

haxxus commented 7 years ago

could it be a hardware compatibility issue ? I had someone else using NVidia join and reported no problem using the same compiled file I have.

SmileTheory commented 7 years ago

The latest releases default to using the OpenGL2 renderer, which uses significantly more resources by default for fancier effects. Try turning off the following options:

r_normalmapping 0 r_specularmapping 0 r_hdr 0 r_depthPrepass 0 r_postProcess 0

For me, this is the difference between ~660 fps and ~880 fps for timedemo 1;demo four.

haxxus commented 7 years ago

Same results, look at this Video for details , I also found that if I use oldrail 2 everytime I shoot fps drop to 40-60, and here is my updated cfg. I have tried with swap and finish , caps my fps regularly but you still notice the performance decrease and same fps issues . ( I have turned all my GPU software features off and on with same results. ) .

// settings
seta cl_renderer "opengl2"
seta color "ghjkl"
seta con_speed "999"
seta cg_centertime "0"
seta cg_shadows "0"
seta cg_gibs "0"
seta cg_noProjectileTrail "1" 
seta cg_oldplasma "0"
seta cg_marks "0"
seta cg_altPlasma "0"
seta cg_autoAction "7"
seta cg_damageDraw "0"
seta cg_deferPlayers "1" // prevents lag then someone is connecting
seta cg_drawTeamOverlay "2" // teammates locations on arena
seta cg_bobroll "0" 
seta cg_bobpitch "0"
seta cg_bobup "0" 
seta cg_deadBodyDarken "1"
seta cg_fallKick "0"
seta cg_nudge "0" 
seta cg_oldCTFSounds "0"
seta cg_predict "0" 
seta cg_predictItems "0"
seta cg_railCoreWidth "1"
seta cg_railRingWidth "0"
seta cg_railRingStep "32"
seta cg_railstyle "1"
seta cg_railTrailTime "100"
seta cg_oldrocket "0"
seta cg_oldrail "1"
seta cg_projectileNudge "150"
seta cg_fov "125"
seta cg_optimisebw "1"
seta cg_tracerchance "100"
seta cg_tracerlength "9999"
seta cg_tracerwidth "5"
seta cg_altLightning "03"
seta cg_itemFX "1"
seta cg_noTaunt "1"
seta cg_smoke_SG "0"
seta cg_smokeRadius_GL "1" 
seta cg_smokeRadius_RL "3"
seta cg_viewAdjustments "0" 
seta cg_xerpClients "0"
seta cg_lagHax "0"
seta cg_lightningImpact "1"
seta cg_muzzleFlash "0"
seta cg_noAmmoChange "0"
seta cg_trueLightning "1000000000000000000000000000000000000000000000000000000000000000000000000"
seta cg_brassTime "0"
seta cg_marks "0"
seta cg_simpleItems "1.1"
seta cg_nomip "959"
seta cg_showPlayerLean "0"

// sound
seta s_alCapture "1"
seta s_alDevice "DirectSound Software"
seta s_alDriver "OpenAL32.dll"
seta s_alDopplerSpeed "2200"
seta s_alDopplerFactor "1.0"
seta s_alSources "96"
seta s_alGain "1.0"
seta s_alPrecache "1"
seta s_useOpenAL "1"
seta s_muteWhenMinimized "0"
seta s_compression "0"
seta s_ambient "0"
seta s_announcer ""
seta s_mixSame "2"
seta s_timescale "1"
seta s_doppler "0"
seta s_dopplerFactor "1"
seta s_dopplerSpeed "4000"
seta s_loadas8bit "1"
seta s_rolloff "0"
seta s_distance "100.0"
seta s_min_distance "3.0"
seta s_max_distance "1000.0"
seta s_leafnum "0"
seta s_refgain "0.45"
seta s_refdelay "2.0"
seta s_polykeep "1000000000"
seta s_polysize "10000000"
seta s_polyreflectsize "10000000"
seta s_numpolys "400"
seta s_bloat "2.0"
seta s_occfactor "0.5"
seta s_occ_eq "0.75"
seta s_mixahead "0.120"
seta s_mixPreStep "0.06"
seta s_khz "22"
seta s_separation "0.5"
seta s_musicvolume "0"
seta s_volume "1"

// screen
seta cg_drawfps "1" // shows your fps
seta com_blood "0"
seta com_introplayed "0" // off intro, faster startup
seta r_texturebits "32"
seta r_noportals "1"
seta r_ext_max_anisotropy "32"
seta r_ext_multisample "4"
seta r_customaspect "1" 
seta r_swapinterval "1"
seta r_smp "0"
seta r_displayrefresh "144"
seta r_customheight "1440" //1024
seta r_customwidth "2560" //1600
seta r_mode "-1" 
seta r_lodbias "0"
seta r_depthbits "32"
seta r_detailtextures "1"
seta r_dlightBacks "1"
seta r_railcorewidth "0"
seta r_drawSun "1"
seta r_dynamiclight "2"
seta r_texturemode "GL_LINEAR_MIPMAP_LINEAR"
seta r_ext_compiled_vertex_array "1"
seta r_ext_compressed_textures "0"
seta r_ext_gamma_control "1"
seta r_ext_multitexture "1"
seta r_ext_texture_env_add "1"
seta r_fastsky "0"
seta r_flares "1"
seta r_ignoreFastPath "1"
seta r_lodCurveError "250"
seta r_primitives "0"
seta r_roundImagesDown "0"
seta r_simpleMipMaps "0"
seta r_subdivisions "4" 
seta r_stencilbits "32"
seta r_finish "1" // sync ev.frame 
seta r_picmip "0" // textures
seta r_vertexlight "0"
seta r_mapOverbrightbits "3"
seta r_overbrightbits "1"
seta r_intensity "1"

 // connection and stability
seta rate "25000" // depends on server and your connection
seta snaps "40" // depends on server
seta net_noipx "0" // off we do not need that
seta cl_maxpackets "125"
seta cl_nodelta "0" // can't remember, but you dont need it
seta cl_packetdup "0" // ensure s twice that you will get packet
seta cl_punkbuster "1" // enable punkbuster for security reasons
seta cl_allowDownload "0" // forbid download
seta cl_aviFrameRate "30"
seta cl_timenudge "0"
seta com_zoneMegs "24"
seta com_soundMegs "16"
seta com_hunkMegs "256" // preserve more ram to quake
seta com_maxfps "125" // set average stable number of your fps

// mouse fix
seta in_dgamouse "1"
seta in_mouse "-1"
seta m_limit "0"
seta sensitivity "0.450"
seta in_subframe "1"
seta m_filter "0" //0-2, m_smooth 1
seta m_smooth "0" //0-2, most Game responsive 1, 2
seta m_yaw "0.030"
seta cg_crosshairsize "38"
seta cg_crosshairhealth "0"
seta cg_drawcrosshair "15"

// e+
seta xp_Crosshaircolor "3"
seta xp_onexit ""
seta xp_country "gg"
seta xp_ambient "0"
seta xp_nobobbing "3" 
seta xp_drawweaponselect "0"
seta xp_drawconsole "0"
seta xp_delagWeapons "15"
seta xp_hud "hud3" // available huds from hud0 to hud7
seta xp_noChatBeep "1" // disable console chat beep
seta xp_screenshotDefault "$(rdate)_$(time)_$(map)" 

//Model
seta xp_colors "17870" // rail1 head body legs rail2 (needs 
seta xp_enemyColors "iiiii"
seta xp_enemyModel "tankjr" // force opponents to use one model
seta xp_enemySound "keel"
seta model "uriel/xp"
seta headmodel "uriel/xp"
seta team_model "uriel/xp"
seta team_headmodel "uriel/xp"

//binds ( plase your binds under here )

// other game releated
seta scr_conspeed "999" // console more speed ;D
seta ui_browserGameType "0" 
seta ui_browserMaster "2" 
seta ui_browserShowEmpty "1"
seta ui_browserShowFull "1" 
seta console "1"
seta ui_browserSortKey "0"
ensiform commented 7 years ago

And if you set cl_renderer to opengl1 ? Idk why you need a separate config besides the q3config to use your settings. Also some of those mouse fixes are ancient and not relevant anymore.

haxxus commented 7 years ago

Same thing with gl1 or 2, no change at all.

ensiform commented 7 years ago

start with +set com_busyWait 1 ?

haxxus commented 7 years ago

same thing

ensiform commented 7 years ago

Sounds like your mod/computer have some sort of conflicts then :shrug:

I wouldn't keep busywait set to 1 then.

Have you considered using the official test builds instead of compiling yourself with cygwin (or use regular mingw-w64)?

haxxus commented 7 years ago

I just tried https://ioquake3.org/get-it/test-builds/ and the same only different is with 1.36 ioq3 , performance is better ( but still flaky ) , fps drops only about 20-40 when I shoot, I remember 4-5 years ago with my older pc I had no problem with ioq3 , but this pc plays other games fine..

ensiform commented 7 years ago

"Other games" are irrelevant. Chances are they are directx based etc. 1.36 is also ancient and SDL1 so its hard to compare. Have you tried forcing to a single processor in windows?

ghost commented 7 years ago

Hehe, i never saw a crazier config than yours! Were those values intentionally set? seta r_subdivisions "80" ? seta r_ext_max_anisotropy "32" ? I once had a similar issue of drastic frame drop caused by weird values, probably start with default setting, and without any mod... Iirc I somwhere read that some have (driver) problems with seta r_texturebits "32" (e.g.: https://dev.etlegacy.com/issues/769) etc. So probably you'll find the 'responsible' cvar by toggle them one after another. Just an idea!

haxxus commented 7 years ago

Yes like I mentioned before I started with default settings , and is exactly the same performance and same fps drops on both 32/64 versions, i haven't tried a non mod server , ill give it a shot.

haxxus commented 7 years ago

just tried a io unmoded based server , the oldrail 2 is an e+ mod feature so couldn't test that, using default config only added max fps 250 , snaps 40 and 125 packets fps were around 140-166 wile aiming around enemy and same as in videos I posted, goes up to 250 when I look away at the sky.

ghost commented 7 years ago

So the drastic frame drop to around 20-40 fps is gone?

The other frame drop from "140-166 wile aiming around enemy and same as in videos I posted, goes up to 250 when I look away at the sky". seems normal too me. I get even worse results (125fps / 250fps). What makes me wonder is that I have the same frame drop with regular Q3a, so there is no difference to ioquake3 on my machine. I don't know why regular Q3 is not affected on your machine.

Note, I'm no expert but a few things should be mentioned here: For a lot of players I know it doesn't really matter how many frames they have, the 'magic' is to have the frame rate as constant as possible. As long as your Frame rate does not go below 60! For example if you have your frame rate constantly at 60 fps it feels more comfortable than having 250 fps without enemies in front of you, but a framerate of e.g.: 80 when a firefight becomes serious. This is because of the human eye will notice lower frame rates than 60-70 fps, higher frame rates will only get noticed while you move through the level (jump heights etc.), this explains why the framrate should be as constant as possible. In other words, I bet no one will be able to recognize if your frame rate currently is 120, 160, or even 250 (well, except those who always say the more the better..., normally I'm a pro but my fram rate is too bad..., etc.) You can try this for your self. Set r_swapinterval to 1, you will notice your framerate would decrease to the half (of your monitors framerate or so). In my case this is 60 fps! But even with only 60 fps it feels so smooth, and steady I will never go for any higher framerate. Though, It is probably a question of taste and habit.

haxxus commented 7 years ago

the drop to 40-60 is using the cg_oldrail 2 cmd for e+ mod , goes away when I use oldrail1 ( and this is in dm17 ) other maps like overkill It gets even worse, as for fps, I understand what your saying but that's the thing I cant find a medium , even if I cap it at 125 every few seconds it fluctuates and I feel big performance drop , mouse gets difficult, everything slows down etc. In regular q3a don't matter if I set it to 125 or 250 , it stays there , in io is never steady when I'm around enemy.

ghost commented 7 years ago

And what happens if you set r_swapinterval to 1? Do you get a constant framerate then? In any case, an interesting problem. As already said, what really makes me wonder is why regular Q3a is not affected on your system, on mine (Win 7, Nvidia GTX 770, i5) Q3a behaves (more or less) the same as ioquake3. So probably as you have already said it's an AMD issue? Especially if the one you mentioned using Nvidia didn't have the problem.

haxxus commented 7 years ago

yep, he had steady 250 fps, and swap caps the fps to my monitor refresh but it fluctuates the same when I'm around enemy .

haxxus commented 7 years ago

Using that autoexec.cfg ( cmd's posted above ) I get OpenGL 2.0 Required error at launch on a nvida 540M gpu laptop. Runs fine without the autoexec. Same setup runs on AMD gpu, suggestions?

ensiform commented 7 years ago

Sounds like a command on the auto exec is too powerful for that little mobile GPU then? And maybe it doesn't properly support the necessary GL extensions needed by opengl2 renderer either.

haxxus commented 7 years ago

here is the log

ioq3 1.36_GIT_2941096-2016-12-12 win_mingw64-x86_64 Dec 27 2016
Have SSE support
----- FS_Startup -----
We are looking in the current search path:
C:\Users\ion\AppData\Roaming\Quake3\excessiveplus
C:\Users\ion\Desktop\New folder\Quake III Arena\excessiveplus
C:\Users\ion\Desktop\New folder\Quake III Arena\excessiveplus\z-xp-2_3.pk3 (20 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\excessiveplus\z-xp-2_2b.pk3 (64 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\excessiveplus\z-xp-2_1.pk3 (85 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\excessiveplus\z-xp-2_0a.pk3 (900 files)
c:/program files (x86)/steam\SteamApps\common\Quake 3 Arena\excessiveplus
C:\Users\ion\AppData\Roaming\Quake3\baseq3
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\xcsv_bq3hi-res.pk3 (1204 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak8.pk3 (9 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak7.pk3 (4 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak6.pk3 (64 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak5.pk3 (7 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak4.pk3 (272 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak3.pk3 (4 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak2.pk3 (148 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak1.pk3 (26 files)
C:\Users\ion\Desktop\New folder\Quake III Arena\baseq3\pak0.pk3 (3539 files)
c:/program files (x86)/steam\SteamApps\common\Quake 3 Arena\baseq3
----------------------
6346 files in pk3 files
execing default.cfg
execing q3config.cfg
execing autoexec.cfg
com_zoneMegs will be changed upon restarting.
Hunk_Clear: reset the hunk ok
----- Client Initialization -----
----- Initializing Renderer ----
Trying to load "renderer_opengl2_x86_64.dll" from "C:\Users\ion\Desktop\New folder\Quake III Arena"...

QKEY found.
----- Client Initialization Complete -----
----- R_Init -----
SDL using driver "windows"
Initializing OpenGL display
Display aspect: 1.778
...setting mode -1: 1920 1080
Using 24 color bits, 32 depth, 0 stencil display.
Available modes: '1280x720 1366x768 1920x1080 1360x768 1280x768 1280x800 1440x900 1680x1050 720x480 640x480 800x600 1024x768 1400x1050 720x576 1280x1024'
GL_RENDERER: GDI Generic
Initializing OpenGL extensions
...GL_EXT_texture_compression_s3tc not found
...GL_S3_s3tc not found
...GL_EXT_texture_env_add not found
...GL_ARB_multitexture not found
...GL_EXT_compiled_vertex_array not found
...GL_EXT_texture_filter_anisotropic not found
----- Client Shutdown (Client fatal crashed: OpenGL 2.0 required!) -----
RE_Shutdown( 1 )
Hunk_Clear: reset the hunk ok

Without the autoexec it loads opengl 2 by default fine.

ensiform commented 7 years ago

FYI as pointed out in that log, you can't actually set com_zoneMegs from the config file. It must be set earlier (via a shortcut, batch file, or directly invoked in command line with +set)

The autoexec contains seta to cl_renderer opengl2.

One of the main issues here is that it appears to be using the Windows OpenGL driver as opposed to the nvidia one. Hence why OpenGL 2 isn't detected at all.

EDIT: I just looked at your autoexec.cfg : The real issue is your using r_depthbits 32 which is not valid! See: https://github.com/JACoders/OpenJK/issues/864#issuecomment-241881842.

I think idq3 gracefully handles this because it manually takes care of the pixelformat stuff (with fallback support) but now with SDL its handled internally in SDL and no fallback for failure.

@zturtleman @timangus ^ perhaps this could be investigated why the ioq3 sdl_glimp code doesn't fallback gracefully on invalid bits.

haxxus commented 7 years ago

Depthtbits changed to 24 and problem fixed, as to my main pc and performance issues , seems if I keep the appstore file clean it remain stable 9 saves everything to: C:\Users\right\AppData\Roaming\Quake3 ) if I download a few maps usually problem starts at 4+ maps.

ensiform commented 7 years ago

Sounds like a conflict with some of the maps maybe then.

haxxus commented 7 years ago

Left it fine yesterday , and this morning first launch boom same crappy performance as I was getting in the beginning, I thought I had fixed it by moving all the pk3's from AppData to the original game folder baseq3, all my pk3's and was working fine all day yesterday. Tried moving them out but doesn't help it , even ran my last working backup and same thing . Before when I started trying the git as explained before here I always had crappy fps but at some point after the continues tries of recompiling somehow I noticed that it would start fine and after a few pk3's or even just restarting the game it would go back to its crappy performance and I somehow boiled it down to the amount of pk3's on the appdata folder. Yesterday I moved all the pk3's to the game baseq3 so nothing would go to appdata and worked fine all day but now for unknown reason it just started to act up again ...I really can't figure it out what is making this behavior

timangus commented 7 years ago

Is it possible that as it's a laptop, running on battery puts the hardware in a power saving mode and that's what's causing your poor performance? Or something along those lines anyway.

haxxus commented 7 years ago

nono this is on my main desktop machine, the laptop is running fine so it seems still, the hardware info on my desktop if very good and runs other games without probs, and as I mentioned before seems to be with the git and my hardware somehow because is ok on laptop and the friends ive shared it with have not reported any problems.

ghost commented 7 years ago

haxxus, unfortunately I can't help you for the moment, but at least I can confirm that something is wrong when compiling latest ioquake3 with Cygwin both32/64 and play on a modern PC on Win 10!. I did as you said and build the exes and game modules with Cygwin, put the exes on the PC with Win10 (also Nvidia) on it and started ioquake3, result: really terrible FPS drops! Using exactly the same compiled files on my own PC (Win7) I have very high and steady FPS. Sp probably it's not an AMD issue, maybe it's a Win10 issue? Can you test your compiled ioquake3 exe on a Win 7 system? Probably with an AMD Card? For the rendering experts: to me it seems Win10 doesn't save/read the settings of some rendering cvars. I noticed that I once set r_swapinterval to 1 and than I was not able to change it back to 0 Everytime I started ioquake3 (renderer2) I had to do a r_swapinterval 0;vid_restart. Some rendering cvars behaves correct, others are ignored ? WTF? Is there any information that r_swapinterval (OpenGL 2.0) causes problems on Win10?

timangus commented 7 years ago

Perhaps you could try git bisect until you find a build where the performance goes bad? Or at least try building a much older copy of the same age as your baseline test. At least then you could see if it's related to your tooling; i.e. if your old build also has poor performance then you may have some bad combination of compiler/build settings/something else.

ensiform commented 7 years ago

Are you sure your CPU isn't being throttled?

Cygwin is also not the recommended toolset. Try using the mingw-w64 with msys2 on the wiki.

Also, that's not really a rendering expert question about cvars. More likely is that that particular one isn't marked as CVAR_ARCHIVE thus it will get reset on next launch? (Not looking at the source at the moment to verify).

haxxus commented 7 years ago

Not with me no, even ran two at the same time , one lags other ( regular ) doesn't.

ensiform commented 7 years ago

@KuehnhammerTobias whats the output of startup when you get the lag? Did you use the broken autoexec.cfg from above?

haxxus commented 7 years ago

again is same with autoexec or no autoexec/default q3config

ensiform commented 7 years ago

Once you've used the autoexec once, you've merged the settings to your q3config.cfg anyway. Plus that was quoted to @KuehnhammerTobias not you @haxxus .

What does the log of your main desktop look like when performance is bad and when performance is good?

ghost commented 7 years ago

@ensiform it doesn't matter if I use autoexec.cf from above, use default settings, or the cfg from my Win7 machine, in principle the result is that unmodified ioquake3 on Win10 runs unsteady (from 10 (!) up to 30 FPS, and even more FPS but only for the first run (without any cfg in App/ folder). This unsteady 30 FPS issue occurs as soon as r_sapinterval is set to 1. It seems it doesn't matter what I do, as soon as I set r_swapinterval to 1, the cvar will never change back (only via vid_restart ingame). And ioquake3 runs similar to how haxxus explained,. That is why I first thought the issue haxxus is showing here is related to r_swapinterval. BUT (and this is a big but), I am no longer safe to myself, because

  1. after exe restart the console says r_swapinterval is 0, the default (and not latched), but still 30 FPS.
  2. Just now I've read a few articles that Win10 has vsync forced on? (e.g._ https://www.reddit.com/r/pcgaming/comments/3cpbqr/windows_10_forced_vsync/?st=iy3a4t35&sh=4443a874) Is this the case? Probably ioquake3's SDL/GL/SetSwapInterval additionally sets vsync again (twice), this would expalin why the FPS mainly is at 30 FPS (120Hz => 60 FPS via Win 10 Vsync => 30 FPS due ioquake3 setting?)
  3. I will inspect this more, but I'm no longer sure if this is related to haxxus problem at all! Although FPS are unsteady as how haxxus said!
ensiform commented 7 years ago

Its forced at 30 fps because your graphics driver is doing it potentially. Newer Linux NVidia drivers started doing it by default, so I would assume Mac and maybe Windows would be the same. I had that issue with W:ET on Linux where it was stuck to vsync being turned on in the nvidia display server settings.

No idea why it is half the value of your refresh though. But still is likely related to the fact that its being forced on by the Driver.

ghost commented 7 years ago

BANG! I didn't know that ensiform! So does this explain haxxus' problem? Is it a gfx driver or OS issue than?

haxxus commented 7 years ago

swap to 0 as Tobias explained makes my fps steady again, but game performance feels exactly the same , Choppy, as if the fps is not showing its true value , fps might be higher because I have a 144hz monitor

ensiform commented 7 years ago

Are you measuring FPS ingame or with some external tool? Like I said above, vsync is possibly being set by your graphics driver (through nvidia control panel) which is irrespective of whatever cvar setting you use in-game. What com_maxFPS are you using?

haxxus commented 7 years ago

I got maxfps 125, not using NVidia on desktop is AMD, and using in game draw fps

ensiform commented 7 years ago

So then check your AMD control panel and see if its setting the vsync by default.

haxxus commented 7 years ago

is off, and nothing , even menu seems lagged
screenshot 161

ensiform commented 7 years ago

And what is the renderer information from /gfxinfo when its like this?

haxxus commented 7 years ago
\gfxinfo

GL_VENDOR: ATI Technologies Inc.
GL_RENDERER: AMD Radeon (TM) R9 390 Series
GL_VERSION: 4.5.13464 Compatibility Profile Context 21.19.407.0
GL_EXTENSIONS: GL_AMDX_debug_output GL_AMD_blend_minmax_factor
GL_AMD_conservative_depth GL_AMD_debug_output GL_AMD_depth_clamp_separate
GL_AMD_draw_buffers_blend GL_AMD_framebuffer_sample_positions
GL_AMD_gcn_shader GL_AMD_gpu_shader_int64 GL_AMD_interleaved_elements
GL_AMD_multi_draw_indirect GL_AMD_name_gen_delete
GL_AMD_occlusion_query_event GL_AMD_performance_monitor GL_AMD_pinned_memory
GL_AMD_query_buffer_object GL_AMD_sample_positions
GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_atomic_counter_ops
GL_AMD_shader_stencil_export GL_AMD_shader_stencil_value_export
GL_AMD_shader_trace GL_AMD_shader_trinary_minmax GL_AMD_sparse_texture
GL_AMD_sparse_texture_pool GL_AMD_stencil_operation_extended
GL_AMD_texture_cube_map_array GL_AMD_texture_texture4
GL_AMD_transform_feedback3_lines_triangles GL_AMD_transform_feedback4
GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index
GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_compatibility
GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture
GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object
GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float
GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage
GL_ARB_compute_shader GL_ARB_conditional_render_inverted
GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image
GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float
GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control
GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend
GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced
GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location
GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions
GL_ARB_fragment_layer_viewport GL_ARB_fragment_program
GL_ARB_fragment_program_shadow GL_ARB_fragment_shader
GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object
GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary
GL_ARB_get_texture_sub_image GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64
GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging
GL_ARB_indirect_parameters GL_ARB_instanced_arrays
GL_ARB_internalformat_query GL_ARB_internalformat_query2
GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range
GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample
GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2
GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object
GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_program_interface_query
GL_ARB_provoking_vertex GL_ARB_query_buffer_object
GL_ARB_robust_buffer_access_behavior GL_ARB_sample_shading
GL_ARB_sampler_objects GL_ARB_seamless_cube_map
GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects
GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding
GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote
GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects
GL_ARB_shader_precision GL_ARB_shader_stencil_export
GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine
GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod
GL_ARB_shading_language_100 GL_ARB_shading_language_420pack
GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_shadow_ambient
GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_stencil_texturing
GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier
GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object
GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range
GL_ARB_texture_compression GL_ARB_texture_compression_bptc
GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map
GL_ARB_texture_cube_map_array GL_ARB_texture_env_add
GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar
GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_gather
GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat
GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two
GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle
GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_snorm
GL_ARB_texture_stencil8 GL_ARB_texture_storage
GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view
GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3
GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query
GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra
GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit
GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object
GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev
GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos
GL_ATI_draw_buffers GL_ATI_envmap_bumpmap GL_ATI_fragment_shader
GL_ATI_separate_stencil GL_ATI_texture_compression_3dc
GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once
GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color
GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax
GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_copy_buffer
GL_EXT_copy_texture GL_EXT_depth_bounds_test GL_EXT_direct_state_access
GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements
GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample
GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4
GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_histogram
GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float
GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters
GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_rescale_normal
GL_EXT_secondary_color GL_EXT_separate_specular_color
GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs
GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texgen_reflection
GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object
GL_EXT_texture_compression_bptc GL_EXT_texture_compression_latc
GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_text
ure_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add
GL_EXT_texture_env_combine GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod
GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object
GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode
GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_storage
GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback
GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit
GL_IBM_texture_mirrored_repeat GL_INTEL_fragment_shader_ordering
GL_KHR_context_flush_control GL_KHR_debug
GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KTX_buffer_region
GL_NV_blend_square GL_NV_conditional_render GL_NV_copy_depth_to_color
GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_explicit_multisample
GL_NV_float_buffer GL_NV_half_float GL_NV_primitive_restart
GL_NV_texgen_reflection GL_NV_texture_barrier GL_OES_EGL_image
GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod
GL_SUN_multi_draw_arrays GL_WIN_swap_hint WGL_EXT_swap_control
GL_MAX_TEXTURE_SIZE: 16384
GL_MAX_TEXTURE_UNITS_ARB: 8

PIXELFORMAT: color(24-bits) Z(24-bit) stencil(0-bits)
MODE: -1, 2560 x 1440 windowed hz:N/A
GAMMA: hardware w/ 1 overbright bits
texturemode: GL_LINEAR_MIPMAP_LINEAR
picmip: 0
texture bits: 32
multitexture: enabled
compiled vertex arrays: enabled
texenv add: disabled
compressed textures: disabled
Forcing glFinish
haxxus commented 7 years ago

@ensiform Once you've used the autoexec once, you've merged the settings to your q3config.cfg

I removed the q3config from appdata and now is working again, so that is why it worked randomly last time. But I closed the game a bunch of times now and is still running fine ( as it did the day before yesterday ) . Will inform once I restart pc if is still working.

Edit: Ok is still working after restart . ( could turning off vsync from gpu driver fixed it? )

haxxus commented 7 years ago

So far so good , aside from a few fps drops on different areas of regular maps like q3dm14, maybe due to my .cfg , could someone send me a well configured .cfg possible with all the good HD graphic related goodies . Thanks!

NuclearMonster commented 7 years ago

so it sounds like we have determined that there is not an ioquake3 issue? Please discuss configs on our forums at http://discourse.ioquake.org