Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories โ€” IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2021-01-12 00:00:00Z and 2021-01-13 00:00:00Z
Avatar
!screenshot-20210112@102255

Checklist

  • [x] Tested the change ingame
  • [x] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existi...
Avatar
complete reinstall couldnt solve the spike lags also. its sure now that the problem is in my pc
Avatar
i found the source of my subtly stuttering image
10:53
i capped cl_refresh_rate to 300 (for my 144 hz monitor)
10:53
i now have it at 500 and my image is smooth
10:53
dont think that this is how it should be though
10:54
https://github.com/ddnet/ddnet/issues/1921 wow i even already had an issue for this were i said that i have it at 500, apparently set it to 300 at some point o.o
10:54
#1921
Avatar
To have a smooth image I need to turn off vsync and up the cl_refresh_rate value. I have a 144hz monitor, and I keep the cl_refresh_rate at about 500 to fix this. Without any fps-limit I get at lea...
Avatar
for smooth gameplay make it 0
10:56
better only cap gfx_refresh_rate
Avatar
yeah, 0 is also the default because these slight stutterings are annoying and hard to track down
Avatar
ah yeah i meant gfx_refresh_rate
Avatar
gfx_asyncrenderold or smth like that on?
11:38
maybe ur GPU doesnt like swapping between throttling and fullspeed
Avatar
gfx_asyncrenderold was on for me, though switching it off didnt seem to do much
Avatar
that should be on
11:47
we only renamed it because the old gfx_asyncrender defaulted to 0, but setting it to 1 is better
Avatar
yeah true ๐Ÿ˜„
12:02
well if you want to find the issue, the best idea is probs to monitor clock speeds temperatures etc
Avatar
Can we document all the different ways of throttling and it's effects?
13:12
People ask me about this stuff all the time and I keep telling them I have no idea
13:12
A framerate cap that's well above the monitor refresh rate should never ever cause stutters
13:13
I think we have like 4 different settings that essentially throttle the game in some way
Avatar
I am interested in getting the game to run more smoothly on old underpowered hardware. Any specific settings that make a notable difference?
Avatar
KaipTataPasake 2021-01-12 13:18:57Z
a better pc
Avatar
What is the problem you see
13:20
@YupHio check your graphic settings
Avatar
@Learath2 depends heavily on what u call stutter, but stutter can also be caused by hardware even if u only have 10 fps
13:22
@YupHio what hardware
13:22
if it supports GL 3.3 already u can enable that
13:22
turn on entities
Avatar

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undef...
Avatar
Avatar
Learath2
A framerate cap that's well above the monitor refresh rate should never ever cause stutters
I disagree. If the internal framerate is not synced to the monitor framerate, then you will render some frames when they are quite old, others fresh, so it will stutter
Avatar
You should at most get a doubled frame every once in a while, not large stutters tho, no?
Avatar
Avatar
deen
I disagree. If the internal framerate is not synced to the monitor framerate, then you will render some frames when they are quite old, others fresh, so it will stutter
So, vsync on then?
Avatar
yeah, should be microstutters
13:33
Personally I've always played with vsync, yes. But some vsync implementations add lots of delay, which is even worse.
Avatar
on windows
13:33
linux doesnt have vsync
Avatar
well, I have a vsync setting on Linux and it does what it's supposed to
Avatar
@YupHio show us your graphic settings
Avatar
its still not the same
13:35
on linux its more a flush
13:35
on windows its actually waiting
Avatar
As an example of polling frequency way over the hz of the monitor mattering: https://youtu.be/gOQNRvJbpmk?t=537
13:54
13:54
13:54
13:55
cheap 9 years old laptop with no graphics card, 6gb of slow old RAM, and a slow asf HDD
13:55
I get minor stuttering on feature-rich maps, like that novice sunny-side map with all the moving quads and music etc
Avatar
@YupHio how many fps you get?
Avatar
let me baseline that real quick
Avatar
and try enabling OpenGL 3
Avatar
KaipTataPasake 2021-01-12 13:57:15Z
you could try turning of texts on maps just amke sure u read everyhting beforehand incase it explains how to do a step, you can turn it off with PageUp buton
Avatar
turn on entities turn off health and score hud
13:59
press "Page Up" on ur keyboard, or in ddnet settings make the overlay entities fully right or left
Avatar
Sunny Side Up map actually was 150+ FPS so that's not a good baseline, but also the server was empty which may have an effect. I tried turning on vsync but immediately noticed a slight delay when hooking stuff.
14:00
Sounds good, I will try all that. Thanks guys
Avatar
Don't use /showall
Avatar
Avatar
KaipTataPasake
you could try turning of texts on maps just amke sure u read everyhting beforehand incase it explains how to do a step, you can turn it off with PageUp buton
there is no text (except the chat) that is rendered as text(except gl 1.x)
Avatar
KaipTataPasake 2021-01-12 14:02:41Z
i mean the backgroudn goes dark and every text (name of map on start, little words) alll of that disapeasrs
Avatar
entities
14:03
u mean disabling the design or what ๐Ÿ˜„
Avatar
Ok I enabled OpenGL 3.3, unchecked "Use high DPI", turned off score and healthbar in the HUD, put overlay entities slider to off, and turned off text entities. Now I am getting 500-800 FPS depending on the map. Night and day difference
14:13
Also I turned off high detail
Avatar
Btw the slight delay with vsync is usually so very slight that it isnโ€™t much of a disadvantage, itโ€™s something you can get used to within a day or two
Avatar
well it makes the frames litteraly wait to e.g. 16ms per frame for 60hertz
14:15
+ all ur other input delays = rip
Avatar
You would be surprised at how much delay your brain can just delete
Avatar
delay is delay
14:16
doesnt matter if ur brain can recalculate it
Avatar
So? If you canโ€™t perceive it itโ€™s a non issue
Avatar
u cant predict the future
14:16
end of discussion
Avatar
Lol, I love discussing things with you, it makes me want to take a swig of bleach
Avatar
there is no discussion
14:17
its a fact
14:17
i dont discuss about facts
Avatar
Did you know that itโ€™s one of the greatest evolutionary advantages humans had over other competing species?
14:18
We are usually very good at predicting the future compared to fishes
Avatar
i bet any wild animal would be better in reflex based games than us
Avatar
I played quite fine at 90ms ping with vsync, itโ€™s just a matter of getting used to. Even 200ms you can tolerate as long as your partner isnโ€™t moving around in a stupid manner
Avatar
but u dont want to be the best, thats the difference
Avatar
Fine play with screen tearing, use a crt for all I care lol
Avatar
at 1000fps and high refresh rate monitor u almost dont see it
Avatar
95% of people are casuals, and as a member of the homo sapiens species they possess the ability to tolerate small delays in the order of miliseconds. Most people I know prefer playing without screen tearing and donโ€™t own high refresh rate monitors
Avatar
when somebody askes for best experience, i tell them how to get best experience
14:23
and not how to make ur laptop stay cool
Avatar
Lol, ok. Iโ€™ll be triple checking your every contribution from now on for performance hogs
Avatar
im fine with that
Avatar
This game is supposed to run on toasters, weโ€™ve already strayed so far from that and I have a feeling youโ€™d be okay with going even further
Avatar
i'd say the opposite
14:26
ddnet 10 runs like shit
Avatar
@YupHio wait, what made the large difference? Was it OpenGL 3 or High DPI? or something else?
Avatar
while 15 runs much better
Avatar
Tell that to all the people who get much worse performance like @noby (or anyone else on macOS)
Avatar
he gets better performance
Avatar
actually its not "much" worse anymore, but its still worse
14:28
ddnet 10 is my fav
Avatar
he just doesnt like his fans
14:28
so caps his fps
Avatar
Oh sorry, I forgot we should be using 100% of the cpu and gpu for or AAA title, lol
Avatar
its not my fault macos doesnt like anything
14:29
vulkan, opengl
Avatar
i use the same fps cap of 600 on cl refresh/gfx refresh
14:29
on both versions
Avatar
@noby i already told ya
Avatar
the highdpi fix really did remove 90% of the problem
Avatar
the calculation changed and its not the same
Avatar
but i still feel like version 10 is smoother
14:29
im not talking about teh fps in the corner
14:29
i know thats changed
Avatar
no
14:29
not only that
14:29
if u type cl_refresh_rate 480 on ddnet 10
14:29
its not <480 fps
Avatar
@noby if you disable highdpi the curved buttons look like shit
Avatar
bcs it was buggy
Avatar
Ofc reducing the resolution improves performance
Avatar
learath ik but my fps is noticeably higher and it feels better to play on and it makes the fans shutoff so id gladly take those 3 advantages over slightly worse looking buttons and text
14:31
plus it looks fine to me anyway, wouldnt describe it as looking like shit lol
Avatar
How was it with ddnet10? Atleast on my macbook that doesnโ€™t use 200% of my cpu and lets me render in full res
14:32
(though I do need to patch it a bit to get it to render at full res)
Avatar
im using an external monitor rn which decreases fps but its only using 20%cpu or less and its good fps
Avatar
For the record, I can run ddnet10 without throttling even. Without throttling (and out of the box on steam) the current patch makes my mac a toaster oven
14:34
But ofc, itโ€™s never our fault. Every other game runs just fine, but itโ€™s obviously not our fault
Avatar
aslong it outputs more fps i dont see something bad
14:35
>= fps
14:35
rest is just config
Avatar
I really love how console games handle this, there should always be a target fps
14:36
Just rendering a bajillion fps using the entire cpu and the gpu is just an insane proposition, doing it out of the box even more so
Avatar
well depends
14:37
best out of box experience sounds good to me
14:37
rest is config
Avatar
Anyway, as always, you know best. I donโ€™t even know why I ever talk about any subject as none of you here respect my opinion as much as a doormats opinion on any subject except maybe heinrich ๐Ÿ˜›
Avatar
there is no perfect default
14:38
we talked like 2 times
14:38
not my fault that i just think in facts these 2 times
Avatar
vsync off master race
Avatar
i have high refresh rate monitor and i can set it to 60hz with vsync
Avatar
Yeah you just present your opinion as fact and say facts need no discussion
Avatar
so can i judge on both
Avatar
Would definitely be best if we can get good performance without 100% CPU/GPU utilization by default
Avatar
also i play this game much more
14:38
so i can also judge there more
Avatar
it doesnt use 100% on mine
14:39
cuz 100% would mean using all cores i guess
Avatar
it doesnt use 100% cpu, it uses 1 core fully
14:39
and the graphic thread as much it gets
Avatar
thats how it hsould be
14:39
games are ur primary focus
14:39
when u play
Avatar
my gpu doesnt even reach 100%
14:39
bcs my cpu is too slow
Avatar
The burden of proof is on the one with extraordinary claims, so you need to show how you start from your claim and get to a fundamental truth. You canโ€™t just say itโ€™s fact without any support for it
14:40
Immigration is bad. Itโ€™s fact
14:40
There letโ€™s deport every immigrant, no discussion needed itโ€™s just fact
Avatar
well i just dont care, i played this game so much, i know what i like, and if somebody wants best experience, he wants atleast what i would say is best experience or better
Avatar
its a fact ppl disable vsync for any competitive game
Avatar
in csgo they also dont cap
14:42
bcs they want their 300fps
14:42
xD
Avatar
i use cl_refresh_rate 600; gfx_refresh_rate 600; gfx_vsync 0
14:42
and it works well for me on both clients i guess
14:42
ddnet 10 gives slightly hgiher fps
Avatar
i think the cap of 600 in ddnet10 is not the same in ddnet 11+
Avatar
ddnet 11-13 was fcky for me
Avatar
well u use mac
14:43
so its ur fault
Avatar
Avatar
Ryozuki
its a fact ppl disable vsync for any competitive game
I argued that it doesnโ€™t matter. Argumentum ad populum is just weak
14:43
Yes many people do it
Avatar
Avatar
Ryozuki
so its ur fault
no u
14:43
its not my fault if old versions work better than new versions
14:43
u might be able to say its my fault if no versions work correctly
Avatar
i dont think thats true
Avatar
Does that make it correct? Many people smear yoghurt on themselves in turkey as a cure to sunburns. Are they correct?
Avatar
the definition of vsync means delay
14:44
this is not a belief
Avatar
vsync is bad
Avatar
its math
Avatar
feels shitty to play with
Avatar
Delay is bad is a belief
Avatar
I think we can all agree that reducing delay is better ๐Ÿ˜„
Avatar
well before we destroy our teeworlds experience we could destroy bitcoin
14:45
thats more energy waste
Avatar
bitcoin will grow cuz now the big holders went in
14:45
they expect it to reach 150k
feelssurprized 1
Avatar
Itโ€™s almost imperceivable. Do you notice the text input delay introduced by the X Server?
Avatar
people notice it
Avatar
u can certainly feel the delay introduced by vsync
Avatar
and i do
Avatar
u cant see it
Avatar
specially on 3d games
Avatar
but u can feel it when u play
Avatar
on ddnet u notice the mouse delay
Avatar
i know for a fact because it feels like i accidentally toggled antiping off when i try to play after forgetting to disable vsync
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 14:47:03Z
oof almost forgot to backup etc/hosts and my ssh key any other places i could search files before wiping my harddrive?
Avatar
search .config/
14:47
and most importantly
14:47
ur vimrc
14:47
the sacred file
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 14:47:40Z
vimrc is on git :)
14:47
found 1 in .config/
Avatar
make sure to backup any gpg key u have
Avatar
Easy solution, back everything up, check what you needl ater
14:48
true
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 14:48:10Z
hmm
Avatar
it shouldnt take much space
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 14:48:15Z
smart
14:48
900gb of hentai
Avatar
i would ignore stuff like node_modules
14:48
that shit is always big and so many files
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 14:48:37Z
ye
14:48
i think ill risk it to not backup everything cuz its mostly trash and idk where to put it
14:49
i should have ervything now yikes
Avatar
wipe the hdd to clear all traces of chillerbot and other malicious software
Avatar
In the endless pursuit of more and more fps we have lost our sight of the real goal. You want the screen to render a new frame every single refresh, nothing more
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 14:49:33Z
oof ๐Ÿค–
Avatar
btw i dont care about much more than 1000 fps, my gpu can do around 10k
Avatar
u will definitly forget something
Avatar
i also capped it
14:50
but the CPU cap is killer
Avatar
also the fact that new copies of ddnet open like 3 random blank windows behind it
14:50
is very annoying
14:50
on a small screen
Avatar
i even notice it when i set it to 1000 or more
Avatar
@noby thats macos stuff
Avatar
i dont care
Avatar
on my linux its clean
Avatar
Avatar
noby
also the fact that new copies of ddnet open like 3 random blank windows behind it
Itโ€™s also an sdl bug iirc
Avatar
its new ddnet stuff
14:50
old ddnet never does that
Avatar
Oh, I guess. But itโ€™s definitely not our fault
14:51
You know how I know that? Because that would imply there is a mistake in something Jupstar wrote
Avatar
i could do the bisect thing if yall want
14:51
me to narrow down the commit that cuases the black windows to appear
Avatar
Thatโ€™s a fundamental contradiction
Avatar
You can try, I couldnโ€™t reproduce it reliably, so I didnโ€™t bother bisecting
Avatar
it happens everytime for me on new ddnet x_x
Avatar
when did i wrote sdl code? except ones
Avatar
the reason i havent bisected is because certain versions seem to not compile
Avatar
and that isnt released yet
Avatar
Then please do bisect for it
Avatar
will yall help me compile the ones that dont work
Avatar
also u cant really trigger me. I do bugs, thats normal, i just try to fix them
Avatar
im lazy to debug each error in each versin
Avatar
Oh yeah, you didnโ€™t touch SDL, I guess if you do find a bug we donโ€™t risk the universe collapsing into a blackhole
Avatar
i mean our sdl code
14:53
xD
Avatar
do u mind reminding me how to bisect pepeH
Avatar
Well first find a version it doesnโ€™t happen in
Avatar
seems to be fine in 12.7.2
14:54
ill try 13x
14:54
13.2 fine too
14:55
14.0 fin
14:55
e
14:55
15.1.3 not fine
Avatar
I guess thatโ€™s close enough. Bisect works in logn steps
14:55
Do git bisect good 14.0
14:55
git bisect bad master
Avatar
okok lemme pull
Avatar
Oh you might need to first do git bisect start
Avatar
ok i did these cmds now what
14:57
git bisect bad master Bisecting: 882 revisions left to test after this (roughly 10 steps) [2a3b254b4793930a0d19efaf8494a521d6668fca] Merge #2890
Avatar
Ok now test this revision
Avatar
oh it already updated ok
Avatar
If itโ€™s bad you do git bisect bad
14:58
If itโ€™s good you do git bisect good
Avatar
ok its compiling
14:58
prepare for errors
Avatar
Fingers very crossed ;P
Avatar
make sure to do a clean compilation
Avatar
fatal error: too many errors emitted, stopping now [-ferror-limit=]
14:58
lmao
Avatar
remove the build folder
Avatar
there was no build folder
14:59
i made it
14:59
[ 45%] Building CXX object CMakeFiles/DDNet.dir/src/engine/client/backend_sdl.cpp.o In file included from /Users/nobody1/ddnet/src/engine/client/backend_sdl.cpp:15: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:317:9: error: no member named 'signbit' in the global namespace using ::signbit; ~~^
14:59
should i call this bad or good
Avatar
Oh this garbage
14:59
Just clean it up do the cmake and wait
Avatar
Iโ€™ll send you the โ€œfixโ€ I found for it
Avatar
macos ๐Ÿ‘‰ monkalaugh
15:00
wheres the dlib
15:00
dylib
Avatar
I really would love to properly get this fixed but idk who to even annoy about it
15:00
You just need the sed command
15:01
In file included from /Users/nobody1/ddnet/src/base/system.h:18: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/stdlib.h:93:15: fatal error: 'stdlib.h' file not found #include_next <stdlib.h> ^~~~~~ uh? xd
Avatar
If that doesnโ€™t work you need to grep for sdk in cmakecache, it might be some other sdk overlap not the exact one I have
Avatar
id rather just download precompiled 14.5 or smth to narrow it down more broadly
15:03
ok 14.5.1 works fine
15:03
how do i quit the bisect and start over from that point
Avatar
Yeah this is what happens whenever I want someone to debug anything on macOS... I seem to be the only person patient enough to debug xcode internals
Avatar
git bisect reset
Avatar
ok nowwhat
Avatar
git bisect start && git bisect good 14.5 && git bisect bad master
Avatar
oh i just found
15:05
15.0.5 from site doesnt work
Avatar
I honestly am not sure how well you will be able to debug like this
15:05
The version from the site links to one sdl2, you link to another sdl2
15:06
easier to just use an old version right
Avatar
For you yes, but itโ€™s sad that we never get to find these bugs
Avatar
i narrowed down the problem is after 14.5.1 and before 15.0.5
Avatar
Even I with my almost infinite patience couldnโ€™t fix our cmakefile
Avatar
oh between
15:08
14.5.1 and 14.7.1
15:08
actually
15:08
since .7.1 makes balck windows
Avatar
On macOS I canโ€™t get it to link to libraries I want. It always wants to link to the bundled ones
Avatar
14.6.2 makes the error too
15:09
14.5.1 doesnt
15:09
i cant narrow it down anymore from precompiled
Avatar
On macOS two different versions of the sdks includedirs can end up in the compilation line. I even figured out why it happens. I just donโ€™t know how to fix it. Iโ€™ve decided cmake is just very meh on macOS
Avatar
bring back bam
Avatar
Avatar
noby
i cant narrow it down anymore from precompiled
Are these both precompiled?
Avatar
yes i went ddnet.tw/downloads
15:11
14.5.1 no black wndows
Avatar
Also what are your gfx settings?
Avatar
deen update the build stuff and libs
15:12
that is without the patch i think
Avatar
Avatar
noby
bring back bam
Bam is even more confused at this btw, it had 3 versions of the sdk in my linker line
15:13
@Deleted User bug
Avatar
have u tried without ffmpeg
15:14
that was probs the biggest change in 14.7
Avatar
Compile with the videorecorder option off
Avatar
cmake .. -DVIDEORECORDER=OFF
Avatar
compiling doent work
Avatar
too bad
Avatar
Can you paste your cmakecache somewhere?
15:16
Iโ€™m sure I can fix it for you
Avatar
have u tried gfx_opengl_major 1 in newest client @noby ?
15:17
maybe its the gl driver
15:17
or sdl trying to get gl 3.x context
15:17
and just openes alot of windows xD
15:18
it worked thx
Avatar
nice and sad :p
Avatar
no more black windows on any version
Avatar
Sadly you donโ€™t get the 3.3 benefits anymore :/
Avatar
i wonder if its SDL or the video driver
15:19
bcs SDL could be fixed
15:20
@noby what does GL 3.3 in version 14 or smth do?
Avatar
I could debug it if I could reliably reproduce it
Avatar
or better 12
Avatar
do in what sense
Avatar
does it also open black screens?
Avatar
gfx_opengl_major 1 no
Avatar
no
15:21
in ddnet 12 enable gl 3.3 in graphic settings tab
Avatar
no i have cl_svae_settings 0
Avatar
and see if u get these weird black screens
Avatar
how to do it in cfg
Avatar
wait gonna see
15:22
gfx_opengl3 1
15:23
no windows in 12
Avatar
alright
Avatar
not even in 15 or what?
15:23
i hope its in 15
15:23
else its no SDL bug xd
Avatar
gfx_opengl_major 1 fixed it for all versions
15:25
opengl3 made no difference
15:25
cus it was already fixed
Avatar
in 15.x u need to use gfx_opengl_major 3; gfx_opengl_minor 3
Avatar
bcs we allow different gl versions now
Avatar
i mean what is the diference ingame
Avatar
i mean for the windows
15:26
ingame it gives more fps if ur driver isnt bad
15:26
it lowers CPU time basically
15:26
it wont give more fps if ur GPU is the limiting factor ๐Ÿ˜„
Avatar
those settings on ddnet 15 actually make it better ๐Ÿ‘€
15:27
nice
Avatar
@Deleted User would it be possible to only start rendering like 3 frames before the screen is ready to accept one?
Avatar
accept what?
Avatar
a new frame, idk if you can get this info somehow
Avatar
ah
15:28
without vsync it will probs replace half of the buffer of ur monitor
15:28
(or any devisor)
15:28
it also sends chunks or smth and if u get new input it just sends that
15:29
offscreen it can theoretically render anything
15:29
double buffering is doing that basically, and the driver decides if it uses the content or not
Avatar
do we do double buffering?
Avatar
yeah
15:30
but probs the driver even does tripple buffering
15:30
so it can swap two offscreen buffers
15:30
and has one "ready" buffer
Avatar
can we somehow know when the driver uses the new buffer?
Avatar
not in release mode atleast xD
15:30
maybe there are extension for amd and nvidia dunno
Avatar
ah, too bad
Avatar
u can disable double buffering
15:31
and u can also always render on the main buffer directly, gut there is no garantuee the driver actually does it
15:31
or just lets u think that u do it
Avatar
this was just an idea to reduce the unlimited frame rate we have to something sane
15:32
without increasing input lag
Avatar
gpu isnt the problem
Avatar
but if we can't know when the driver will swap the buffers, that doesn't sound possible
Avatar
its the mouse input mostly
15:33
the main thread is too busy and has to create all rendercalls
15:33
there is no visualisation / simulation difference
15:33
the main thread has to create everything
15:33
it would be possible by rewritting teeworlds
Avatar
I don't follow. the problem is that we get a 16ms old mouse input with something like vsync because we render the frame 16ms early, right?
Avatar
example: cpu renders no frame goes into sleep but 1 nanosecond later it could have rendered the frame so it wakes up some point has todo the simulation has to prepare rendercalls => delay
15:36
you might be able to use the FPS (if its stable enough) to predict when to wake up
15:36
but its probs never 100% reliable
Avatar
yes, not 100% reliable
Avatar
(oh and maybe to get it right, it sleeps long)
15:37
bcs it had less todo in that frame without a rendercall
Avatar
but if you wake up 3 frames early, it should be quite reliable, no?
15:37
3 frame times early
Avatar
well depends on what ur target fps is probably ๐Ÿ˜„
Avatar
hm?
15:37
say I have a monitor with 60 or 144fps
Avatar
but there is more to it anyway, it also fetches the mouse relative state from SDL it doesnt use global mouse state
Avatar
then teeworlds would render 180fps or ~450fps
Avatar
i understand what u want
Avatar
but not 1800 or so, wasting energy, battery, etc.
15:38
kk
15:38
do you mean we could wake up more often to fetch mouse input but not render?
Avatar
it already does it if u dont limit gfx
15:39
or do u mean without any simulation?
15:39
just the mouse
Avatar
ye, just the mouse
Avatar
could work, but i dunno if it works ๐Ÿ˜„
15:39
in the end its more about semi state
15:40
wait
15:40
i mean like u are lucky to either hit the exact moment u want to draw a frame or not
15:40
if u wake up at some point u still have todo the simulation
Avatar
yes, but that's no different with unlimited fps
15:41
we just need to make sure we're continuously rendering frames around the point where it's important
Avatar
yes and no
15:41
180 can still be 1000/180 in worst case
15:42
+ 20ms of ur moniitor + 20ms of ur mouse or whatever
Avatar
I don't understand these numbers
15:42
180, 1000/180?
Avatar
u could go sleep right before it would allow a new frame
15:42
and then u probs sleep for 1000/180 ms
Avatar
you mean if we don't know when the frame gets drawn?
Avatar
yes we dont know that ๐Ÿ˜„
Avatar
ah yes, that's unlucky
15:43
then my method won't work
Avatar
as said, u can predict it, it might improve it over what we have now, but i dont think without a clean rewrite it would get much better
Avatar
how can you predict it?
15:44
if we have no insight whatsoever into when the frame gets put onto the screen, we have no data to predict it from, no?
Avatar
well we have the FPS
15:44
and know the last time we triggered a rendercall (edited)
Avatar
that only tells us the frequency with which the monitor accepts new frames(?)
15:45
not the exact moments
Avatar
well we know the exact moment we prepared the graphic buffer
15:45
when we kick it in
15:45
and from then it should (if the FPS are stable) 1000/fps ms to the next frame xD
15:45
thats what i mean with prediction
Avatar
okay, let me rephrase what I want to do, it seems to me that you're not quite saying the same thing as I do
15:47
the way "unlimited fps" helps reduce input lag is that it continuously renders new frames, so it also renders a new frame just before the graphics driver swaps the output buffer
15:47
we're wasting a lot of renders that we basically know won't get displayed anyway, namely right after that swap, we know that there won't be any more swaps for 16ms
15:48
so if we knew the moment of the swap, we could pause our rendering until just a couple of frame times before the next swap, rendering a couple of times until the swap comes and then pausing again
Avatar
thats not true tho
15:48
there are more swaps
15:48
else tearing wouldnt occour
Avatar
this would, in my understanding, lead to the exact same input lag as "unlimited fps"
15:49
tearing occurs when we render to a buffer that is swapped while we're rendering to it
Avatar
yes
Avatar
I'm not talking about tearing or solutions to tearing
15:50
I'm talking about the same setup we have for "unlimited fps" but reducing the amount of renders we do
Avatar
but for a non constant fps i already said the same as u
Avatar
Avatar
Deleted User
thats what i mean with prediction
here
Avatar
but that's wrong, no?
15:50
just because we gave the driver a new frame doesn't mean it will put it on the screen immediately
Avatar
well u could substrace the time it requires for the simulation part
15:51
a fps on simulation part basically
Avatar
there might still be time to render another frame
Avatar
it should without vsync
15:51
it just updates the current stream to monitor
15:51
ur hdmi cable doesnt have instant bandwidth xd
Avatar
yes, I understand that
15:52
maybe I need to draw pictures, I don't think we're on the same page
Avatar
u want to swait for the swap and then start the new frame?
Avatar
no
Avatar
but using 180fps on 60hz doesnt fix issues
Avatar
that's vsync, in my understanding
Avatar
bcs in worst case u have 1000/180 delay
Avatar
I think I really have not made myself clear enough
15:53
1000/180s delay would not happen in my understanding in my model
15:53
I'm not just doing 180fps
Avatar
well i can only tell ya u render the full rendercalls offscreen, and as soon as u swap the buffer it is probably updating internally to the monitor stream
15:54
so its never wasted
Avatar
say we have a 60hz monitor
15:55
then the monitor can only display 60 frames per second
Avatar
yes
15:55
but that doesnt mean u dont want half images too
15:55
that are "more" updated
Avatar
so every frame we render above that is wasted. we might not be able to eliminate that waste because we're not able to predict the future, but it's still wasted
Avatar
no
Avatar
if you're going to tell me something about input delay
Avatar
u are litteraly describing vsync xD
Avatar
no
15:56
I think we're just not talking about the same thing
15:56
you think about it in practical terms, with a specific algorithm in mind
15:56
namely vsync
Avatar
its not wasted, ever
Avatar
and then you say the extra frames aren't wasted because they help reduce input latency
Avatar

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--u...
Avatar
they are also displayed on screen
Avatar
are they?
Avatar
just "only" partially
15:57
yes, thats tearing
Avatar
a 60fps monitor can display more than 60fps?
Avatar
ofc there is no garantuee that absoluty none is wasted
Avatar
I thought tearing happens at a different level
Avatar
it can render half of the old frame and half of the new
15:59
in theory u could also say, ur eyes follow from top left to bottomr ight and it only updates a small potion and then u would have somthing that is more than 60hz on 60hz monitor xd
Avatar
7e169d9 Fix dummy not sending DDNet version - fokkonaut bf17072 Merge #3505 - bors[bot]
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 17:15:37Z
yikes so if my os crashes after fresh install its probably hardware right?
Avatar
you could try running memtest ๐Ÿ™‚
Avatar
yeah maybe its the memory
17:19
get a ECC card monkalaugh
Avatar
@heinrich5991 have u seen https://github.com/launchbadge/sqlx ?
๐Ÿงฐ The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL. - launchbadge/sqlx
17:42
features compile time checked sql instructions (if they are not dynamic)
Avatar
anyone up 4 an ATH 0.7 rewrite?
  • xush'
banhammer 3
sendhelp 1
think_bot 2
17:58
no api features for accessing player input this time around >.>
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 19:06:53Z
@GutZuFuss you can start by helping to update ddnet client to 0.7 :)
Avatar
k lets go
19:07
where are the whitespaces i should delete
Avatar
[quakenet] ChillerDragon BOT 2021-01-12 19:07:26Z
haha
19:07
the skin system is probably a nasty one
Avatar
Would someone mind to approve my refactoring backport from 0.7? https://github.com/ddnet/ddnet/pull/3502
Avatar
@Kaffeine we don't always review same-day, you'll need some patience
20:01
but we still appreciate cleanups and other contributions
Avatar
Avatar
deen
but we still appreciate cleanups and other contributions
I don't force anyone ๐Ÿ™‚ The ask for "0.7 refactoring" CR supposed to be in the context of "anyone up 4 an ATH 0.7 rewrite?" and "you can start by helping to update ddnet client to 0.7 ๐Ÿ™‚" I consider "helping to update ddnet client to 0.7" to include "review 0.7 backports".
Avatar
Or update 0.7 to our skin system @ChillerDragon
Avatar
so no whitespaces i can remove? bummer
Avatar
Decentralized certificate authority and naming
22:56
๐Ÿ™‚
Avatar
5d01af0 Add map statistics post - def-
Exported 562 message(s)