Time |
Nick |
Message |
00:31 |
|
kaeza joined #minetest-dev |
00:53 |
|
Taoki joined #minetest-dev |
01:31 |
|
Eater4 joined #minetest-dev |
02:15 |
|
werwerwer_ joined #minetest-dev |
02:32 |
|
paramat joined #minetest-dev |
03:00 |
|
Piggybear87 joined #minetest-dev |
03:16 |
paramat |
celeron55, hi, i found a bug with custom skybox, causes segfault (core dumped) with no error message, when switching from "skybox" to "plain" or "regular", details and code are here https://gist.github.com/paramat/b93f0d78319a23f47815 the mod repo here https://github.com/paramat/stack |
04:33 |
|
Piggybear87 joined #minetest-dev |
05:28 |
|
nore joined #minetest-dev |
05:56 |
|
Hunterz joined #minetest-dev |
06:08 |
|
Miner_48er joined #minetest-dev |
07:14 |
|
darkrose joined #minetest-dev |
07:14 |
|
darkrose joined #minetest-dev |
07:53 |
|
raffahacks joined #minetest-dev |
07:54 |
raffahacks |
hello, why does mt crash with segmentation fault on armv7 allwinner a20? thanks |
07:58 |
raffahacks |
can anyone help? |
07:59 |
|
PenguinDad joined #minetest-dev |
08:13 |
raffahacks |
nobody? |
08:16 |
sfan5 |
raffahacks: make a debug build, run it with gdb, pastebin the output of 'bt full' after it crashes |
08:16 |
raffahacks |
ok thanks |
08:30 |
|
OldCoder joined #minetest-dev |
08:45 |
|
OldCoder joined #minetest-dev |
09:00 |
|
PilzAdam joined #minetest-dev |
09:08 |
|
LemonLake joined #minetest-dev |
09:33 |
|
EvergreenTree joined #minetest-dev |
09:34 |
celeron55 |
paramat: Fixed |
09:44 |
|
Jordach joined #minetest-dev |
09:48 |
|
Calinou joined #minetest-dev |
10:17 |
|
diemartin joined #minetest-dev |
10:19 |
|
lemonlake_ joined #minetest-dev |
10:45 |
|
Amaz_ joined #minetest-dev |
10:47 |
|
rdococ joined #minetest-dev |
10:57 |
|
pro joined #minetest-dev |
11:04 |
|
ImQ009 joined #minetest-dev |
11:32 |
|
CraigyDavi_ joined #minetest-dev |
11:33 |
|
CraigyDavi__ joined #minetest-dev |
11:45 |
|
vifino joined #minetest-dev |
12:09 |
|
ImQ009 joined #minetest-dev |
12:20 |
|
restcoser joined #minetest-dev |
12:21 |
|
asl joined #minetest-dev |
12:24 |
|
ShadowBot joined #minetest-dev |
12:35 |
|
smoke_fumus joined #minetest-dev |
12:44 |
|
PilzAdam joined #minetest-dev |
13:52 |
|
Megaf joined #minetest-dev |
14:08 |
|
Zeitgeist_ joined #minetest-dev |
14:08 |
|
Zeitgeist_ joined #minetest-dev |
14:13 |
|
sapier joined #minetest-dev |
14:13 |
sapier |
can someone tell me where we create the sign texture? the one with text in it |
14:34 |
|
LemonLake joined #minetest-dev |
14:39 |
sapier |
hmm doesn't seem to be a minetest feature does anyone know what mod is responsible for doing this? |
14:40 |
sfan5 |
'signs' mod |
14:40 |
PilzAdam |
sapier, there are 3 mods that do that |
14:40 |
PilzAdam |
they all use entities and [combine |
14:41 |
sapier |
I managed to track down vanessae's server spawn issues to this particular feature ... I'm at about 15fps till those texures are loaded ... then speed drops to 1fps |
14:42 |
sfan5 |
using multiple [combine 's is very inefficent |
14:42 |
sapier |
btw I've got a bunch of performance fixes that require review .. they manage to increase those 1fps to 5fps |
14:42 |
sfan5 |
(but the only thing possible) |
14:43 |
sapier |
usually I don't believe in "the only thing possible" if this only thing is crap ;-) |
14:43 |
VanessaE |
heh |
14:43 |
sfan5 |
[combine was not designed to run up to 100 times |
14:44 |
sapier |
what about adding some sort of caching mechanism? |
14:44 |
sapier |
we don't have to combine 100 times if nothing changed |
14:46 |
VanessaE |
are you saying the compositing is re-run every frame?O_o |
14:46 |
sapier |
sometimes replacing cpu by memory usage is more then worth it, e.g I managed to increase speed of some functions called multimilion times within 10 seconds by a factor 4 ... just by using 256k memory |
14:46 |
sapier |
of course 256k is a lot |
14:47 |
sapier |
but considering the amount of ram provided even by slow devices it's nothing |
14:47 |
sapier |
VanessaE there are even more quite stupid things in minetest |
14:47 |
VanessaE |
sapier: sure, but that doesn't answer my question ;) |
14:48 |
sapier |
true :-) ... I don't know if it's done every time but I'd not be surprised |
14:48 |
VanessaE |
with a proposal THAT stupid, I refuse to assume the affirmative here., |
14:49 |
VanessaE |
which means with the new full-color signs it's gonna get a little worse isn't it |
14:52 |
sapier |
well ... signs could be disabled ... compared to other things I've seen the last days those are minor issues |
14:52 |
sapier |
drawing code is full of things that called "endless loops" withing high performance code |
14:53 |
VanessaE |
seems like compositing is something that belongs strictly at startup |
14:53 |
VanessaE |
and perhaps even server-side |
14:53 |
VanessaE |
well maybe not |
14:53 |
sapier |
doing things like iterating through maps ot lists of unknown size to lookup a single value is just insane |
14:53 |
VanessaE |
but definitely NEVER in the render pipeline |
14:53 |
VanessaE |
(not the way minetest does it that is) |
14:55 |
VanessaE |
compositing should be done one time and one time only - at the moment the Lua code calls for it to be done. from then on the final composited image should be used, since that is the only image the client has a handle to anyway |
14:55 |
VanessaE |
(I would have assumed that's what was being done anyway) |
14:56 |
nore |
VanessaE, I would have said: when the client try to display the image for the first time |
14:56 |
VanessaE |
nore: perhaps, but that means the rendering pipeline has to call for it. |
14:56 |
nore |
put it in a cache, and delete images older than something like 10 mins in the cache |
14:57 |
VanessaE |
that's a good idea |
14:57 |
nore |
VanessaE, that's not a problem if it's only done once |
14:57 |
VanessaE |
hell even a few seconds is probably too old |
14:57 |
VanessaE |
(but your point stands0 |
14:57 |
VanessaE |
) |
14:58 |
nore |
a few seconds is perhaps not the best idea: see the spawn of your server (creative): the displays change with ~30s period |
14:58 |
VanessaE |
this is true |
14:59 |
VanessaE |
10 mins is fair |
15:05 |
|
hmmmm joined #minetest-dev |
15:12 |
sapier |
lol I never realized nodes "growing" on android by no but it's in there for quite some time |
15:14 |
sapier |
#1356 is a set of patches speeding up android port quite a lot, effect on pc is mesurable too (by gperf) but I didn't notice it on playing |
15:15 |
ShadowBot |
https://github.com/minetest/minetest/issues/1356 -- Perf fixes june 2014 by sapier |
15:15 |
sapier |
please really READ the code it might contain hidden bugs |
15:17 |
VanessaE |
inb4 proller claims 1000 lines of useless spacing changes ;) |
15:17 |
|
w00tc0d3 joined #minetest-dev |
15:17 |
VanessaE |
(I'll pass on reading it because I won't understand it anyway) |
15:18 |
sapier |
Most likely that one is to review by experienced coders only |
15:18 |
sapier |
of course there may be coding style issues too but the more critical ones will be issues I didn't realize on optimizing |
15:18 |
VanessaE |
*nod* |
15:19 |
VanessaE |
btw if the textures are all-white now it's because of the same issue as some others had - they would have been all-black before, |
15:19 |
proller |
sapier, how you test your changes? |
15:20 |
sapier |
I'm gonna provide a new android build soon for anyone to check ... as I said I managed to get 4-5 fps on your spawn instead of 0-1 ... even while the sign bug is still present |
15:20 |
VanessaE |
but kaeza inverted the font to make the coloring work (now it works like a stencil), which is probably why it whites-out instead of blacking-out,. |
15:20 |
sapier |
proller define test? |
15:21 |
VanessaE |
sapier: hit me with the new build when you get a chance and I'll try it out (for me, the signs' text worked fine in the last test). Also, did you already revise how you were making the inventory images? |
15:21 |
sapier |
last build did contain the screenshot hack but in it's new drastically faster version |
15:21 |
PilzAdam |
sapier, could you please pin a note next to your monitor that says: "Spaces after ," |
15:22 |
sapier |
next to which screen PilzAdam ? ;-) |
15:22 |
PilzAdam |
all of them |
15:23 |
sapier |
I'm gonna fix it but plz try to read the code and find cases I may have missed on doing my optimizations |
15:26 |
|
Exio4 joined #minetest-dev |
15:26 |
sapier |
Maybe someone even knows a better way of optimizing it, some of those locations are still bottlenecks |
15:30 |
sapier |
PilzAdam: I didn't find anything else except that memset in first commit ... any other space I missed? ;-P |
15:31 |
PilzAdam |
also add spaces around binary operators |
15:31 |
sapier |
where? |
15:32 |
PilzAdam |
in the same memset line |
15:32 |
sapier |
that's not a binary but a plain operator ... and yes I fixed that one too ;-P |
15:33 |
PilzAdam |
"plain operator"? |
15:33 |
|
Megaf_ joined #minetest-dev |
15:34 |
sapier |
binary operators are & | and things like that to me |
15:34 |
sapier |
but not * / + - |
15:34 |
PilzAdam |
binary operators are operators with 2 "sides", e.g. + - * / % |
15:35 |
sapier |
ok so your naming is the sides ... well I distinguish as of type of operation |
15:35 |
PilzAdam |
wikipedia: "Binary operation – Not to be confused with Bitwise operation." |
15:36 |
sapier |
& | ~ <<(c) >>(c) |
15:36 |
sapier |
are binary |
15:36 |
sapier |
ok bitwise .. obviously I got confused too ;-P |
15:37 |
PilzAdam |
I get about 4 FPS more with your branch in a "standard" minetest_game world |
15:37 |
PilzAdam |
maybe a bit more |
15:37 |
sapier |
what's your base fps rate? |
15:37 |
PilzAdam |
I fixed the view range |
15:38 |
sapier |
4 fps more would be great |
15:38 |
PilzAdam |
what do you mean by "base fps rate"? the conf setting? |
15:38 |
sapier |
no 4fps more starting from 100fps or 10fps |
15:39 |
PilzAdam |
30 FPS (+4 with your branch), view range is 100 |
15:40 |
sapier |
wow that's about 10% |
15:40 |
sapier |
I didn't expect it to be more then a few % on pc |
15:40 |
VanessaE |
PilzAdam: try it ay Vanilla spawn |
15:40 |
VanessaE |
at* |
15:41 |
VanessaE |
no fancy pipes there, just signs and regular nodes |
15:41 |
PilzAdam |
VanessaE, it would be 0 FPS vs. 0 FPS ;-) |
15:41 |
VanessaE |
there's literally nothing there that should theoretically slow the client down (sapier's discovery aside that is) |
15:41 |
PilzAdam |
oh, no pipes |
15:42 |
|
Exio4 joined #minetest-dev |
15:42 |
sapier |
PilzAdam: I managed to get from 0 to 4 ... wonder if it's not a percentual improvement but a fixed 4fps improvement ;-) |
15:44 |
PilzAdam |
VanessaE, the blocks load too slow |
15:45 |
VanessaE |
O_o |
15:45 |
PilzAdam |
sapier, also without your branch, it "started" at 26 FPS, and then slowly got faster, while youre branch started at about 36-38 and then dropped to 34 FPS |
15:45 |
VanessaE |
that server's quite well-tweaked to load super fast, wtf |
15:45 |
PilzAdam |
VanessaE, whats your block send distance? |
15:46 |
VanessaE |
whatever the default is. |
15:47 |
sapier |
well I replaced some dynamic things by fixed ones ... no idea what sideeffect on memory allocation this might trigger |
15:47 |
VanessaE |
server's disk, CPU, and network load look good, so unless it's another setting I have to change, it must just be the pipe between you and Canada where my server is |
15:48 |
PilzAdam |
I get about 30 sec lag on /status, and Im the only client on |
15:49 |
VanessaE |
it's instantaneous for me. |
15:49 |
PilzAdam |
don't you sit like 5 meters away from the server? |
15:49 |
VanessaE |
nope |
15:49 |
VanessaE |
I just said, the server's up in Canada |
15:50 |
VanessaE |
it's like 800km from me or some such |
15:50 |
VanessaE |
it's fast as hell for me here. blocks load fast, commands execute instantly |
15:50 |
PilzAdam |
maybe they send the data to europe over the mars or so |
15:50 |
VanessaE |
haha |
15:50 |
VanessaE |
you were on 30005 right? |
15:51 |
PilzAdam |
yes |
15:51 |
VanessaE |
weird. |
15:51 |
VanessaE |
sapier: sounds like a glitch in the network code? |
15:52 |
sapier |
hmm |
15:52 |
sapier |
30s is long ... very long |
15:52 |
PilzAdam |
rtt min/avg/max/mdev = 114.287/119.825/133.762/7.109 ms |
15:53 |
VanessaE |
PilzAdam: strike that, it's more like 1600km away. |
15:53 |
sapier |
those numbers don't hint at base network code to be involved |
15:53 |
sapier |
they'd be higher if there was a lower layer hang for that time |
15:53 |
PilzAdam |
hm, now its fast suddenly |
15:53 |
sapier |
strange |
15:54 |
VanessaE |
server stats do show a small spike in network transmission. maybe a media download? |
15:55 |
PilzAdam |
wtf, after ~ 30 seconds it starts to download something with 300 KiB/s (previously it was at ~ 60), and I dont recieve any new blocks |
15:56 |
PilzAdam |
any idea wtf its downloading? |
15:57 |
VanessaE |
no clue at all |
15:57 |
VanessaE |
unless it's just downloading more world? |
15:57 |
VanessaE |
(and you can't see it?) |
15:57 |
PilzAdam |
Im pretty sure it doesnt load mapblocks |
15:57 |
sapier |
what else? |
15:58 |
sapier |
entity data? |
15:58 |
PenguinDad |
The same thing happens to me on Vanilla |
15:59 |
|
kahrl joined #minetest-dev |
16:00 |
sapier |
if I remember correct I updated the wireshark dissector, you could have a look at what is downloaded ... you may need to change it a little bit to work for ports other then 30000 and 30001 |
16:00 |
PilzAdam |
umm, wtf, it keeps downloading even if I exit minetest |
16:00 |
sapier |
just replace the port numbers |
16:00 |
VanessaE |
I can't even begin to guess ..... |
16:00 |
VanessaE |
wtf? |
16:00 |
VanessaE |
ok that's clearly not minetest then. |
16:00 |
PilzAdam |
why does it start when I enter your world then? |
16:01 |
sapier |
or someone managed to abuse minetest for pushing a trojan ;-) |
16:01 |
VanessaE |
beats the hell out of me |
16:01 |
PilzAdam |
is Minetest distributing malware? ;-) |
16:01 |
VanessaE |
virus? :) |
16:01 |
sapier |
well as of code security I'd not be surprised |
16:01 |
sapier |
but I thought we'd not be important enough to be worth it |
16:01 |
VanessaE |
what are you running anyway? |
16:02 |
PilzAdam |
hm? |
16:02 |
VanessaE |
os. |
16:02 |
PilzAdam |
Kubuntu 12.04 |
16:02 |
VanessaE |
hm, ok |
16:02 |
VanessaE |
*shakes head* I just don't know wtf |
16:03 |
VanessaE |
unless there's some thread in minetest that doesn't "die" when it exits? |
16:03 |
PilzAdam |
maybe some threads keep running after the windows disappears? |
16:03 |
VanessaE |
ninja'd :) |
16:04 |
VanessaE |
I note that my network.....wait |
16:04 |
VanessaE |
are you using cURL? |
16:04 |
sapier |
possible but unlikely |
16:04 |
sapier |
wait |
16:04 |
PilzAdam |
yes, I use curl |
16:04 |
VanessaE |
something's zonking my CPU hard |
16:04 |
sapier |
what irrlicht version do you have? |
16:04 |
VanessaE |
and network too |
16:04 |
VanessaE |
look at the network grapj |
16:04 |
VanessaE |
graph |
16:04 |
VanessaE |
http://digitalaudioconcepts.com/vanessa/hobbies/minetest/stats.html |
16:04 |
PilzAdam |
sapier, 1.7.2 |
16:05 |
VanessaE |
blue is non-minetestserver stuff |
16:05 |
sapier |
hmm ok so wrong direction |
16:05 |
PilzAdam |
VanessaE, it doesnt happen on "German Landrush server" |
16:06 |
sapier |
pilzadam I guess best way to find out is using wireshark and that dissector in contrib |
16:06 |
VanessaE |
hm, whatever it was isn't showing up clearly in `top` now. |
16:06 |
VanessaE |
PilzAdam: that's fair, but there's really nothing I can do to *cause* it, let alone stop it so I don't even know wtf |
16:07 |
PilzAdam |
sapier, and how do I do that? |
16:08 |
sapier |
within util/wireshark there's a file minetest.lua |
16:08 |
sapier |
place it in /usr/share/wireshark/ (on debian) could be some different folder on your distribution |
16:09 |
sapier |
lua dissectors aren't run as root user so you need to record network traffic and view it with wireshark in non root mode later |
16:09 |
sapier |
and if server is not on port 30000 or 30001 you need to change minetest.lua to be used for that port too |
16:10 |
sapier |
it's next to bottom of file, just look for 30000 |
16:13 |
|
Tesseract joined #minetest-dev |
16:13 |
PilzAdam |
I dont get any interfaces to listen when not running as root |
16:13 |
sapier |
yes you need to record as root |
16:13 |
sapier |
and open the recorded file later as non root |
16:14 |
sapier |
that's ugly I know |
16:14 |
sapier |
maybe someone knows a better way to do it but I don't |
16:14 |
|
Anchakor_ joined #minetest-dev |
16:19 |
ShadowNinja |
sapier: I think there is, you have to give wireshark special permisions though. |
16:20 |
ShadowNinja |
I remember a wiki page being linked. |
16:20 |
sapier |
I see ... guess that'd not be a n issue if wireshark is already run as root |
16:21 |
PilzAdam |
sapier, ok, what do I do with the record now? |
16:22 |
|
LemonLake joined #minetest-dev |
16:22 |
sapier |
just open with wireshark started as regular user |
16:22 |
sapier |
if you did adjust the port number in minetest.lua to match the servers port number it's supposed to decode minetest protocol |
16:23 |
|
Calinou joined #minetest-dev |
16:25 |
PilzAdam |
is /usr/share/wireshark/minetest.lua automatically loaded, or do I need to set a setting for that? |
16:26 |
sapier |
if it's there it's loaded automaticaly |
16:26 |
sapier |
unless your distribution disables that by default ... debian doesn't |
16:29 |
sapier |
I'm a really lucky one seems like my android device is one of those very rare devices that are capable of doing render to texture |
16:30 |
celeron55 |
oh, related to android; i checked that it runs on nexus 5, if nobody's tested it on that yet |
16:30 |
PilzAdam |
doesn't seem to work |
16:32 |
celeron55 |
how about -X lua_script:/path/to/minetest.lua |
16:32 |
celeron55 |
i think that was how i used it when i did, but i can't remember anymore |
16:33 |
celeron55 |
at least that is how my current wireshark man page tells to do it |
16:33 |
PilzAdam |
ah, that works, celeron55 |
16:34 |
|
Piggybear87 joined #minetest-dev |
16:37 |
PilzAdam |
I have tons of "Server: Split message xxxxx chunk xxx/227" |
16:38 |
sapier |
that's fine |
16:39 |
sapier |
large files are split to sup 512 bytes packets |
16:39 |
sapier |
sub not sup |
16:40 |
PilzAdam |
but why do I even get these files? |
16:40 |
sapier |
entity listings are split too |
16:40 |
|
lemonlake_ joined #minetest-dev |
16:40 |
sapier |
everything being sent bigger then 5xx bytes is split |
16:41 |
sapier |
for what I know that's nodedef, entitydefs, detached inventories and inventories |
16:41 |
PilzAdam |
and how do I see what command is split? |
16:41 |
|
EvergreenTree joined #minetest-dev |
16:41 |
sapier |
If I remember correct it's show eiter on reception of first or last chunk |
16:41 |
ShadowNinja |
sapier: Why char zero = 0;? And use a vector for the attachments, just store ints in it instead of vector2ds. |
16:42 |
sapier |
I don't use the vector any longer |
16:42 |
sapier |
that's the optimization ... I don't know why a vector 2ds was used for id mapping anyway |
16:42 |
ShadowNinja |
sapier: I know, but you should. Just use indexing instead of scanning on the vector. |
16:42 |
sapier |
NO |
16:43 |
sapier |
that scan is done millions of times for each node just do find out for most of them that there is no mapping |
16:43 |
ShadowNinja |
sapier: That way it will be fast without taking up a bunch of memory or having a fixed size. |
16:43 |
ShadowNinja |
sapier: Don't scan it. |
16:43 |
ShadowNinja |
sapier: Use std::vector::operator[]() |
16:44 |
sapier |
if you use vector[] operator on non existent id it's gonna cause an exception |
16:44 |
sapier |
I haven't tried but I assume exception handling to be way more slow then even do scanning |
16:45 |
ShadowNinja |
No, vec[vec.size() + 1] extends the vector and returns a T&. |
16:46 |
sapier |
and what will vec[vec.size() +10000] do? |
16:47 |
ShadowNinja |
sapier: The same, until you run out of memory. |
16:47 |
sapier |
you can try it but for what I figured out memory operations are very slow on android |
16:47 |
ShadowNinja |
But obviously int arr[100]; arr[1000] is a even bigger issue. |
16:48 |
PilzAdam |
sapier, I think its entity data |
16:49 |
ShadowNinja |
sapier: Add that is a seperate commit. It should be a one line change and will save a lot of memory. |
16:49 |
sapier |
ShadowNinja: I don't believe using a vector will be faster then using preallocated memory ... in best case it's not very much slower |
16:49 |
VanessaE |
what entities could there be aside from a few dozen signs? |
16:49 |
ShadowNinja |
sapier: It will be slower, but it shouldn't be much slower. |
16:49 |
PilzAdam |
VanessaE, seem to be your signs that are being send |
16:49 |
PilzAdam |
the [combine texture strings seem to be rather huge |
16:50 |
sapier |
ShadowNinja: difference between old code (using a vector) and new is a factor of about 4 |
16:50 |
VanessaE |
PilzAdam: can't be helped I guess. :-/ |
16:50 |
sapier |
it's slightly different to what you suggest so I don't know the exact impact of your suggestion |
16:50 |
ShadowNinja |
sapier: Yes. Still use the indexing methon instead of vector2di, but start the ints in a vector. |
16:50 |
PilzAdam |
VanessaE, seems like the signs cause FPS drops and a lot of traffic |
16:50 |
PilzAdam |
2 reasons to not use them |
16:51 |
sapier |
yes shadow but what's the benefit of saving at best 200kb of ram to taking twice as much time for a function callend about 1 million times per second? |
16:52 |
VanessaE |
if they cause "a lot of traffic" that's clearly a bug in the engine |
16:52 |
ShadowNinja |
sapier: http://pastebin.ubuntu.com/7613834/ |
16:52 |
VanessaE |
the damn things are static |
16:52 |
ShadowNinja |
sapier: You still keep the rest of the diff and all or almost all of the performance increase. |
16:53 |
|
rubenwardy joined #minetest-dev |
16:53 |
VanessaE |
but wait |
16:54 |
sapier |
btw if you do a vec[20] to a vector beeing 10 elements only that's not gonna create a new element but throw a out of bounds exception |
16:54 |
VanessaE |
why is there any traffic at all? |
16:54 |
VanessaE |
you've already got all of the textures it takes to build them |
16:54 |
VanessaE |
and the compositing strings are sent to the client |
16:54 |
VanessaE |
they can't possibly be THAT big |
16:54 |
PilzAdam |
VanessaE, the texture string has 14 bytes per letter |
16:54 |
VanessaE |
yeah, so that's what, a couple kB per sign? |
16:54 |
sapier |
wait |
16:54 |
sapier |
even worse |
16:54 |
sapier |
it doesn't |
16:54 |
PilzAdam |
how much chars is the maximum for signs? |
16:54 |
sapier |
Portable programs should never call this function with an argument n that is out of range, since this causes undefined behavior. |
16:55 |
VanessaE |
PilzAdam: 6 or 7 rows by around 30 chars per row, give or take |
16:55 |
VanessaE |
so about 3k per sign, maximum |
16:55 |
PilzAdam |
and you have a lot of signs |
16:56 |
sapier |
ShadowNinja: please re-read wat I did I think you haven't fully understand what I really did there |
16:56 |
sapier |
I most likely wouldn't understand it on first read either |
16:56 |
VanessaE |
since most signs are no more than about half full, figure 100 signs around the spawn, that's 100 * 3 / 2 = 150 kB of sign data |
16:56 |
VanessaE |
that's nothing from nothing. |
16:56 |
ShadowNinja |
sapier: I do. It does seem that you'll have to use something like push_pack or extend there though... |
16:56 |
VanessaE |
you should have had that brought in in half a second |
16:57 |
VanessaE |
textures for the signs are only 496 k |
16:57 |
ShadowNinja |
sapier: Try it with resize(). |
16:57 |
sapier |
ShadowNinja: what I needed there was a way to lookup with constant access time |
16:58 |
ShadowNinja |
sapier: vector::operator[] is constant-time. |
16:58 |
sapier |
yes but only if you don't have to check and resize prior using it |
16:59 |
sapier |
and the only way to avoid this is creating it in it's max size ... well a vector with size USHRT_MAX*num_elements is in no way smaller then u16 m_attachements[USHRT_MAX] |
16:59 |
PilzAdam |
VanessaE, in wireshark I see 300 kB per sign, if Im not mistaken |
16:59 |
sapier |
PilzAdam: entities are sent cummulative |
16:59 |
sapier |
not one by one |
16:59 |
sapier |
decoding of those blocks isn't complete |
17:00 |
VanessaE |
PilzAdam: 7 lines * 30 chars per = 210 chars, * 14 byes per = 2800, that's not even 3k, so where's the other two orders of magnitude coming from? |
17:00 |
ShadowNinja |
sapier: What defines USHRT_MAX? |
17:00 |
sapier |
0xFFFF |
17:00 |
VanessaE |
is it all the discarded textures from the compositing? |
17:00 |
ShadowNinja |
sapier: No what defines it/where is it defined? |
17:00 |
sapier |
it's defined in limits.h |
17:01 |
sapier |
or climits on c++ syntax |
17:01 |
VanessaE |
(well 210*14 = 2940 but I was just estimating) |
17:01 |
ShadowNinja |
sapier: C guarantees that shorts will be at least 16-bit. But can shoorts be 32-bit? |
17:02 |
PilzAdam |
oh wait, it sends each split package about 18 times |
17:02 |
VanessaE |
wat |
17:02 |
VanessaE |
well that's one order of mag |
17:04 |
PilzAdam |
I have 4 or 5 split packets with ~540, 554 bytes each |
17:05 |
PilzAdam |
and some parts are send up to 18 times |
17:05 |
VanessaE |
how much of the data in those packets is, itself, composed of repeats as well? |
17:05 |
PilzAdam |
that makes 21 MiB if I can type correctly into my calculator |
17:05 |
VanessaE |
or put it a better way, how much of it is made of up data that signs_lib legitimately creates and how much of it is the engine being stupid? |
17:05 |
PilzAdam |
*~540 parts |
17:06 |
celeron55 |
sapier: i'm reading through the patchset |
17:06 |
celeron55 |
https://github.com/sapier/minetest/commit/f129dce3004babc5d92c7ecbc79bdea2085bb24e#diff-39ed02ccc671fe3b6931967be58c4ed6R165 |
17:07 |
celeron55 |
this has side effects? |
17:07 |
PilzAdam |
VanessaE, 496 bytes per part are from the texture string |
17:07 |
PilzAdam |
thats almost everything |
17:08 |
PilzAdam |
but I wonder why it sends each part 10 to 20 times |
17:08 |
celeron55 |
or is addArea called from anywhere else |
17:09 |
celeron55 |
yes it is |
17:09 |
celeron55 |
this is likely to screw up at least MapVoxelManipulator::emerge() |
17:09 |
VanessaE |
PilzAdam: I could *possibly* believe 20k per sign, that's in the realm of possibility given how complicated these signs are, but still.. |
17:10 |
celeron55 |
i don't remember what the details are about how that is supposed to work though |
17:10 |
PilzAdam |
VanessaE, all the signs are in the 4 split packets á 300 k |
17:12 |
celeron55 |
sapier: there is a clear distiction between these two and the commit breaks it: https://github.com/minetest/minetest/blob/master/src/voxel.h#L323 |
17:12 |
celeron55 |
also this comment https://github.com/sapier/minetest/commit/f129dce3004babc5d92c7ecbc79bdea2085bb24e#diff-e9d009d06bbf893e52773d13058e1f73R538 |
17:13 |
sapier |
well celeron55 the interesting thing is NOT doing it causes tests to fail |
17:14 |
sapier |
I thought about deleting that define but didn't do it yet because I wanted to know if this was used by anyone |
17:14 |
celeron55 |
i think we should be very careful with this because this code is from 2010 and hasn't ever caused known problems |
17:14 |
VanessaE |
PilzAdam: well at least it explains some of the download time, but it doesn't explain the FPS sagging |
17:14 |
sapier |
I didn't find any location where it's been used |
17:15 |
PilzAdam |
VanessaE, thats a different issue |
17:15 |
celeron55 |
sapier: addArea() is used in MapVoxelManipulator::emerge() |
17:15 |
sapier |
using it would be difficult too as it's almost immediatly replaced by emerge |
17:15 |
celeron55 |
which is not included in tests |
17:15 |
sapier |
ok so I need to do additional checks |
17:15 |
VanessaE |
PilzAdam: yep, I know. just pointing it out. |
17:16 |
VanessaE |
different issue, but related. |
17:16 |
VanessaE |
PilzAdam: can you give me a paste(bin) of one of the signs' composite strings? |
17:16 |
VanessaE |
like say something from the spawn that I would have some chance of recognizing |
17:16 |
sapier |
still removing that emerge loop is one of the most effective cpu improvements ... about 10-20% of total improvement |
17:17 |
sapier |
so if we don't need it we shouldn't have it in there |
17:18 |
PilzAdam |
VanessaE, do a print(texture) there: https://github.com/PilzAdam/signs/blob/master/init.lua#L261 |
17:19 |
sapier |
MapVoxelManipulator::emerge just calls VoxelManupulator::emerge? |
17:19 |
sapier |
ahh there's another implementation |
17:20 |
|
jin_xi joined #minetest-dev |
17:21 |
celeron55 |
i'm fairly sure MapVoxelManipulator hasn't been used anywhere since a long time; it's an automatically allocating and fetching version of the manual one |
17:21 |
celeron55 |
so it could be removed |
17:22 |
celeron55 |
if it *is* removed, then the interfaces related to VOXELFLAG_NOT_LOADED and VOXELFLAG_INEXISTENT must be respecified |
17:22 |
sapier |
maybe that's best option instead of keeping some slow compatibility mode for something not used at all, I'm gonna recheck it and do this later |
17:22 |
celeron55 |
because otherwise they will be left to a state where nothing matches each other (comments, code, old code) |
17:23 |
sapier |
ok that's why I asked for review, I had to fix some code I'm qite new to and was only pointed at by profiler |
17:25 |
celeron55 |
also |
17:25 |
celeron55 |
https://github.com/sapier/minetest/commit/37a7f928457ef58b33bc29612505f69d08ec20a1 |
17:25 |
celeron55 |
this like this should have a comment stating that it is simply an optimization with no other effect |
17:25 |
celeron55 |
also other things like this |
17:26 |
celeron55 |
because it takes time to figure out if it's actually doing something different logically |
17:26 |
celeron55 |
for anyone reading the code that is |
17:26 |
|
ImQ009 joined #minetest-dev |
17:27 |
celeron55 |
s/this like this should/thing like this should/ |
17:29 |
celeron55 |
otherwise i didn't find problems, but of course i didn't read it fully or test it at all |
17:31 |
|
ShadowBot joined #minetest-dev |
17:37 |
|
zat joined #minetest-dev |
17:37 |
|
pro joined #minetest-dev |
17:40 |
|
cg72 joined #minetest-dev |
17:46 |
sapier |
thanks celeron, I'm adding the requested comments and re-check the addArea thingy |
17:49 |
PilzAdam |
sapier, any idea why Minetest sends the parts up to 20 times? |
17:50 |
VanessaE |
trying it now, sapier... |
17:51 |
|
whiskers75 joined #minetest-dev |
17:52 |
sapier |
depends |
17:52 |
sapier |
if your ack is lost minetest will resend the data |
17:52 |
VanessaE |
sapier: 0 fps :) |
17:52 |
sapier |
if your ack is delayed for too long, same thing will happen |
17:53 |
sapier |
and if you usually have a fast connection and enter some stall state minetest will assume a ack to be lost after some ms in worst case |
17:53 |
VanessaE |
but it works and the item rendering is certainly faster |
17:54 |
PilzAdam |
sapier, its only the entity packets that are split, and 20 time per part, that sounds like bad tuning to me |
17:54 |
sapier |
to me too ... the tuning algorithm is quite simple there's way for improvement |
17:55 |
sapier |
-way + room |
17:55 |
VanessaE |
and...crash :) |
17:55 |
sapier |
I basically tested it for media transfer as there's a lot of traffic |
17:55 |
sapier |
I don't like crashes ;-) |
17:56 |
celeron55 |
is it confirmed in some way that this really is a protocol problem instead of something high-level? |
17:56 |
celeron55 |
seems like an easy misconclusion |
17:58 |
PilzAdam |
celeron55, does high level handle splitting of packets and resending when not getting an ack? |
17:58 |
celeron55 |
no |
17:58 |
celeron55 |
so it is confirmed then |
18:01 |
VanessaE |
sapier: ah, there it is. yep, OOM again :D |
18:01 |
sapier |
could you please upgrade your memory vanessae? ;-) |
18:02 |
VanessaE |
sapier: could you please send me about $200 for a nice tablet? ;) |
18:02 |
sapier |
or just use another game |
18:02 |
sapier |
or way less entities ;-) |
18:02 |
VanessaE |
:P |
18:03 |
sapier |
I used about half a megabyte to get that performance boost ... so either upgrade your cpu or your memory ;-) |
18:03 |
VanessaE |
or stop using that ugly screenshot hack :) |
18:03 |
VanessaE |
this time I was just walking casually down the street :) |
18:03 |
sapier |
that one doesn't use any more memory than before now |
18:04 |
sapier |
at least if I didn't add a bug |
18:05 |
sapier |
I don't do a full screenshot any longer but just cut a piece in the middle, basicaly same as render to texture but node beeing placed in middle instead of lower left corner |
18:05 |
ShadowNinja |
Comments on #1353? (Particularly the set/get_global thing) |
18:05 |
ShadowBot |
https://github.com/minetest/minetest/issues/1353 -- Add strict module by ShadowNinja |
18:06 |
sapier |
I'm against this |
18:06 |
ShadowNinja |
sapier: Against the strict module? If so, why? |
18:07 |
sapier |
I don't want to rewrite whole mobf just to add core.set_global and core.get_global for any part of mobf I splited to a separate mod |
18:07 |
ShadowNinja |
sapier: Ah, so only that part. |
18:08 |
sapier |
this is fine fas long as you have a single closed mod not having any dependencys to other mods but not if you have modpacks with closely linked code |
18:08 |
celeron55 |
umm |
18:08 |
ShadowNinja |
sapier: It is very clunky. |
18:08 |
sapier |
it's just slow |
18:09 |
ShadowNinja |
However you need something like that to avoid warnings when warn_init is set. |
18:09 |
celeron55 |
sapier: so how many global variables you have that you set from a function at the first time and not from the global scope? |
18:09 |
celeron55 |
hopefully none, because that is very bad coding style |
18:09 |
sapier |
setting most likely isn't a big change ... but always get it is crap |
18:10 |
ShadowNinja |
celeron55: That produces a error(). But setting globals from the main file scope produces warnings when warn_init is set. |
18:10 |
sapier |
I'm gonna have to add about 50-100 lines of header code to get all of my global data to local variables in about 50-100 files |
18:10 |
ShadowNinja |
Howefully you only export one or two globals though. |
18:10 |
ShadowNinja |
Hopefully* |
18:11 |
celeron55 |
you can't be having so many global variables because they're polluting the scope of other mods then |
18:11 |
celeron55 |
and if they are so long that they don't, what's the point of having them as separate variables instead of in a table |
18:12 |
sapier |
each of my components is a separate global namespace |
18:12 |
sapier |
so about 20-30 components by now |
18:12 |
celeron55 |
well then it's just better that you explicitly see what components each file uses? |
18:12 |
sapier |
but not all of them are there |
18:12 |
sapier |
so I have to check them for presence |
18:13 |
sapier |
of course this can be done ... it's like minetest-> core transition ... no big deal but a lot of typewriting |
18:14 |
sapier |
btw does this prevent global functions too? |
18:14 |
celeron55 |
minetest -> core is just `sed -i -e "s/minetest\\./core./g"`, don't compare to that |
18:14 |
sapier |
no it isn't celeorn |
18:14 |
sapier |
because you always have to check if that minetest isn't just some comment or part of something else |
18:15 |
sapier |
as I said not a big deal but some time |
18:15 |
celeron55 |
hmm |
18:15 |
celeron55 |
checking the precense of global things is actually a thing that is done sometimes in minetest mods |
18:15 |
celeron55 |
because global things is how everything exports interfaces |
18:15 |
celeron55 |
ShadowNinja: have you considered this? |
18:16 |
sapier |
yes I try to avoid globals too but I use them for things that should be available global |
18:16 |
sapier |
and as mobf has a lot of features that are used by different parts there are some global things in it |
18:16 |
ShadowNinja |
This only error()s on things that are either errors or very bad style, that being using uninitialized globals in functions. |
18:16 |
ShadowNinja |
celeron55: Yes, that's what get_global is for. |
18:16 |
sapier |
have you tried mobf? |
18:17 |
ShadowNinja |
You aren't warned about that by default though. |
18:17 |
celeron55 |
so if we enable only the error on setting a new global from a function, there should be no issues (nothing else giving even a warning), but a lot of help still |
18:17 |
ShadowNinja |
Also, mod namespaces (== minetest.get_current_modname()) are explictly ignored. |
18:17 |
celeron55 |
and full compatibility to everything that does anything that is even remotely sane |
18:17 |
celeron55 |
(i.e. anything except creating globals using functions) |
18:18 |
sapier |
ShadowNinja: is it possible you do bug me on purpos with any of you changes ;-) |
18:18 |
ShadowNinja |
celeron55: Getting a non-existent global in a function isn't allowed. I've only seen that done in the main file scope though. |
18:18 |
SoniEx2 |
make it so you can use raw PNG data in textures |
18:19 |
ShadowNinja |
celeron55: Do you think warn_init should be enabled? |
18:20 |
sapier |
wait ... get_global(name) on a non existent name HAS to work ... it's supposed to return nil without any error message or crash |
18:20 |
SoniEx2 |
as in, texture = io.open("your.png","rb"):read("*a") |
18:20 |
celeron55 |
SoniEx2: say this at some other time |
18:20 |
ShadowNinja |
Also a warning log level should be added, I looked at the log system but found it very ugly. |
18:20 |
SoniEx2 |
altho I wouldn't use it that way |
18:20 |
SoniEx2 |
celeron55, uhh ok... |
18:20 |
celeron55 |
ShadowNinja: i don't think any of this should be enabled by default except maybe errors on setting global variables inside functions |
18:21 |
celeron55 |
it's a modder's tool really |
18:22 |
celeron55 |
making it easily enableable is important though so that modders see it and use it |
18:23 |
celeron55 |
users are generally happier if buggy mods run despite of their bugs and don't flood their logs with warnings |
18:25 |
celeron55 |
also, it is intentional that there is no warning log level, because i personally found it useless; you can just log then as errors or info depending on their severity |
18:25 |
celeron55 |
them* |
18:26 |
celeron55 |
("warning" is really arbitrary because they can be completely ignoreable or very severe and almost everything will be a warning then, making it pointless) |
18:27 |
|
Eater4 joined #minetest-dev |
18:28 |
SoniEx2 |
celeron55, add "notice" and "warning" |
18:28 |
SoniEx2 |
then "notice" for the "good" warnings and "warning" for the "bad" warnings |
18:30 |
celeron55 |
then there will be some arbitrarily chosen default level, and everyone will just use that for their messages because otherwise nobody will see them |
18:30 |
celeron55 |
and all point was gone again |
18:30 |
celeron55 |
it's good to be minimalistic |
18:31 |
SoniEx2 |
ok make it so it has these levels: "debug", "info", "notice", "warning", "exception", "error" |
18:32 |
celeron55 |
maybe the levels will be a floating point number which is randomized a bit on each startup; then nobody can use the number that is exactly a bit above the default limit? 8) |
18:32 |
SoniEx2 |
most ppl'll use "warning" |
18:32 |
SoniEx2 |
good ppl'll use "notice" or "exception" |
18:32 |
ShadowNinja |
A lot of things should be moved from info, it's like debug. |
18:32 |
SoniEx2 |
then you can make "warning" crash |
18:32 |
ShadowNinja |
warning definitely shouldn't crash. |
18:32 |
ShadowNinja |
Not even error. |
18:32 |
celeron55 |
ShadowNinja: that's because for a long time it was the miminum level that was visible -> everything was put there |
18:33 |
celeron55 |
now the minimum default level is something elese |
18:33 |
SoniEx2 |
make "warning" crash because the modder is stupid for using "warning" |
18:33 |
celeron55 |
else* |
18:33 |
SoniEx2 |
not because of something else |
18:33 |
ShadowNinja |
I think the minimum is action or error now. |
18:33 |
SoniEx2 |
hmm |
18:33 |
SoniEx2 |
make levels a bit mask? |
18:34 |
SoniEx2 |
like PHP? |
18:34 |
ShadowNinja |
But I don't like how levels are graduated. You can't enable info without enabling action for example. |
18:34 |
celeron55 |
anyway this is mostly useless; a more useful thing would be a "subsystem" field in each log message |
18:34 |
celeron55 |
then people could filter out whatever they want to see |
18:34 |
SoniEx2 |
PHP is the answer |
18:34 |
celeron55 |
plain levels don't help because it's just a competition to be most important |
18:35 |
celeron55 |
you don't soolve that competition by adding more levels |
18:35 |
celeron55 |
but by adding a second filtering term |
18:35 |
SoniEx2 |
remove levels |
18:35 |
SoniEx2 |
use regex |
18:35 |
SoniEx2 |
or something |
18:35 |
|
sapier left #minetest-dev |
18:36 |
celeron55 |
ShadowNinja: yes, action is a bit weird |
18:36 |
SoniEx2 |
so log("[error] <stuff>") and then regex "\[err(or)?\]" |
18:36 |
SoniEx2 |
and then it gets [error] <something> and [err] <something> |
18:36 |
SoniEx2 |
etc |
18:36 |
SoniEx2 |
that could work |
18:36 |
celeron55 |
that would be just silly |
18:37 |
ShadowNinja |
FWIW, here's how I did it: https://github.com/ShadowNinja/LuaBot/blob/master/settings.lua.example#L8-L9 |
18:37 |
SoniEx2 |
celeron55, and convenient |
18:37 |
celeron55 |
inconvenient |
18:37 |
SoniEx2 |
because you can ignore mods |
18:37 |
SoniEx2 |
and stuff |
18:37 |
SoniEx2 |
and then you have infinite log levels |
18:38 |
ShadowNinja |
Definitely not regexes. Pipe minetest to grep if you want that. |
18:38 |
SoniEx2 |
the only drawback being speed/slowness |
18:38 |
celeron55 |
SoniEx2: maybe you should now say the actual thing you started talking about instead of this log bikeshedding |
18:38 |
SoniEx2 |
ok |
18:38 |
SoniEx2 |
let's talk about textures |
18:39 |
SoniEx2 |
can we shove raw PNG bytes in strings and use that as a texture? |
18:39 |
celeron55 |
currently, no; but making an implementation of that would be easy (it would be impossible to free the textures, but that's the case for every texture currently) |
18:41 |
SoniEx2 |
I would only use it during startup (even tho I can see stupid ppl not doing so...) |
18:41 |
SoniEx2 |
no idea how to handle that... |
18:41 |
celeron55 |
hmm... just adding a texture modifier called "png" would be a rather clean and trivial implementation |
18:42 |
celeron55 |
but it would need base64 encoding or something like that |
18:42 |
celeron55 |
that's how web browsers do it |
18:42 |
SoniEx2 |
uhh |
18:42 |
SoniEx2 |
what's the syntax for modifiers? |
18:42 |
celeron55 |
i tried to find documentation about them, but couldn't; it seems they are not mentioned in lua_api.txt... |
18:43 |
celeron55 |
i think there's something on dev.minetest.net |
18:43 |
SoniEx2 |
something like [png<stuff>? |
18:43 |
SoniEx2 |
if so, [png;<size>;<data> |
18:43 |
celeron55 |
can someone find this for me |
18:43 |
SoniEx2 |
needs buffer overflow check |
18:44 |
celeron55 |
here: http://dev.minetest.net/texture |
18:44 |
SoniEx2 |
yeah ok [png;<byte count>;<data> |
18:44 |
|
Garmine joined #minetest-dev |
18:45 |
celeron55 |
hmm, indeed it maybe could use raw data with size |
18:45 |
celeron55 |
that needs modification of the parser though which is not ideal |
18:45 |
celeron55 |
but a more important issue is, how large fields do we use over the network for these names |
18:45 |
SoniEx2 |
uhh damn :/ |
18:45 |
celeron55 |
i'm betting 16 bit unsigned |
18:46 |
celeron55 |
so they will be limited to 64kB |
18:46 |
SoniEx2 |
hmm... |
18:47 |
SoniEx2 |
make the server preprocess the string? |
18:48 |
celeron55 |
and what about formspecs |
18:48 |
celeron55 |
umm... i recall there was some weird escaping thing going on for the '['s there |
18:49 |
celeron55 |
hmm... not even sure, i need to check |
18:52 |
celeron55 |
wut, i don't even know for sure by looking at this code; we need to ask sapier |
18:52 |
SoniEx2 |
ouch |
18:52 |
celeron55 |
i guess the server probably should assign some kind of unique name for the texture and transmit the data some other way |
18:53 |
celeron55 |
the details get complicated that way though |
18:53 |
celeron55 |
and we need someone to actually figure it out |
18:55 |
celeron55 |
this is actually ending up maybe such way that it should be generic for all media files and maybe the mod has to assign the unqiue name |
18:56 |
celeron55 |
and use a special api for adding it |
18:56 |
celeron55 |
then there is the question of how does the server know which client needs the data |
18:57 |
celeron55 |
it doesn't really understand the concept of some client having a reference to a media file and some not (the references can be from multiple different kind of places) |
18:58 |
celeron55 |
this is what i mean when i would like to just have them base64 encoded in the texture name, at least as an initial implementation for simple things 8) |
18:59 |
celeron55 |
then again, if the use case is such that the media should be transferred to all clients anyway, it makes sense to go the special api route first |
18:59 |
celeron55 |
which is the case for eg. a global map |
19:00 |
celeron55 |
anyway, this is what the thing boils down to |
19:00 |
SoniEx2 |
I see |
19:00 |
SoniEx2 |
so it would need a minor rewrite |
19:01 |
SoniEx2 |
well add a function that turns raw PNG data into an identifier |
19:01 |
SoniEx2 |
then add a filesystem hack thingy |
19:01 |
SoniEx2 |
then you can use that identifier as a texture path |
19:02 |
celeron55 |
shoveling the media to the client is actually somewhat easy; it's already done in a highly custom way anyway; it's just inflexible from the modder's standpoint |
19:02 |
celeron55 |
maybe it needs a new protocol packet distinct from the initial media transfer but that's minor |
19:03 |
celeron55 |
you can basically just slap a name for a bunch of data and insert it into the client |
19:04 |
VanessaE |
celeron55: btw, you said earlier that ^[ compositing strings seem to be limited to 64kB, yes? |
19:04 |
VanessaE |
is that in all cases in which they're used? |
19:26 |
celeron55 |
most |
19:27 |
VanessaE |
ok |
19:27 |
celeron55 |
or, well, that is the minimum; but sometimes it is 32bit (4GB) too, or sometimes it is a combined maximum of 4GB |
19:28 |
celeron55 |
there's no easy way to scan through all occurrences of these |
19:28 |
celeron55 |
for all i can know, there could be some that is maxed out at 256B |
19:28 |
celeron55 |
but haven't seen one yet |
19:28 |
VanessaE |
no worries, I was just thinking back to PilzAdam's comments about the size of those signs' texture strings. |
19:37 |
|
restcoser joined #minetest-dev |
19:59 |
|
ligeti joined #minetest-dev |
20:01 |
ligeti |
Hello... can anyone please help me to figure out what is the (seems to be) random u16 number and 0x01 that comes after the channel number in the packet? I can't see anything that manipulate that in the source code but yet it is there... is it a bug? |
20:02 |
ligeti |
I am testing the chat packets by the way ... |
20:02 |
ligeti |
if anyone interested to investigate this please let me know... thanks |
20:03 |
celeron55 |
you're certainly wrong about it being a bug |
20:03 |
celeron55 |
but nobody can remember low-level protocol details like that from the top of their heads |
20:05 |
celeron55 |
it's probably a RELIABLE-type packet: https://github.com/minetest/minetest/blob/master/src/connection.h#L294 |
20:05 |
ligeti |
thanks... checking |
20:05 |
celeron55 |
which will contain either ORIGINAL or SPLIT |
20:06 |
celeron55 |
which contains the actual high-level data |
20:06 |
ligeti |
it is just a u16 ... so I think it is a check or something (I didn't check the response... checking now) |
20:07 |
celeron55 |
just paste the packet data here but don't expect us to decode more than one packet for you |
20:09 |
ligeti |
celeron55, so kind of you, but I am afraid that I figured it out already :) it was some sort of a sequence number ... that the server sends back (as a confirmation I guess) |
20:10 |
celeron55 |
how far do you intend to implement the protocol yourself? |
20:10 |
celeron55 |
and in which language |
20:10 |
ligeti |
and by the way (I know this is not the place but...) great job, I don't usually see such a clean and clear code in the open source community |
20:11 |
celeron55 |
i don't know if you can believe this but i have seen absolutely every possible kinds of comments about the code |
20:11 |
ligeti |
well... I am testing the security :P and making a python bot to ... copy the chat from IRC to the clients (using the server) |
20:11 |
celeron55 |
but thanks in this case, i guess 8) |
20:13 |
celeron55 |
if you intend to make it not look horrible, you may want to release the protocol part or even the whole thing on the forums; i bet many people would like to mess around with it |
20:13 |
ligeti |
well of course I will |
20:13 |
ligeti |
:) |
20:15 |
celeron55 |
i'm looking at the dates of our open pull requests and i can see a structure there: there are like 1.5 pages of recent not ancient ones, and the rest 1.5 pages are almost or more than a year old |
20:15 |
celeron55 |
i think we should just close the other half of them as being too old to make any sense to consider |
20:16 |
celeron55 |
nobody can expect them to be merged anyway |
20:17 |
celeron55 |
and also set up a policy of closing PRs that are older than one year, because those make zero sense at all and unnecessary make the list look bad |
20:17 |
ligeti |
I agree |
20:17 |
celeron55 |
unnecessarily* |
20:18 |
ligeti |
true |
20:20 |
celeron55 |
ehm, altough, some of these are actually still very worth considering |
20:22 |
sfan5 |
it could be helpful too see which ones a need a rebase |
20:23 |
sfan5 |
I added the 'rebase needed' tag a while ago and went through all pulls. |
20:26 |
celeron55 |
for example, this still needs discussion: https://github.com/minetest/minetest/pull/490 |
20:27 |
celeron55 |
i would propose that this would be added, but disabled by default |
20:27 |
celeron55 |
so that server owners can use it if they want to do special things |
20:28 |
celeron55 |
but it's utterly outdated to the extent that a rewrite is easier than a rebase |
20:28 |
sfan5 |
yeah, that'd be nice |
20:28 |
sfan5 |
but mods should be able to detect whether it is disabled |
20:28 |
sfan5 |
it would make sense to just omit an automated upadate check instead of generating a warning every time |
20:29 |
celeron55 |
mod updates are probably one of the most guestionable uses for that |
20:30 |
celeron55 |
so i don't like it that you gave that as the first example |
20:32 |
celeron55 |
what happened to this? https://github.com/minetest/minetest/pull/804 |
20:32 |
celeron55 |
it's just mysteriously forgotten without any comment explaining anything |
20:35 |
|
Ghant__ibn_Itd joined #minetest-dev |
20:37 |
celeron55 |
https://github.com/minetest/minetest/pull/683 |
20:37 |
celeron55 |
what was up with this? PilzAdam? |
20:37 |
sfan5 |
celeron55: not mod updated, but only mod update _checks_ |
20:37 |
celeron55 |
it's totally rebaseable with like no effort at all |
20:38 |
sfan5 |
updates* |
20:38 |
celeron55 |
i want that to be either merged or closed, is there a reason to not merge it? |
20:39 |
celeron55 |
it seems to be doing a roughly right thing, but i haven't been involved with that issue |
20:40 |
PilzAdam |
celeron55, maybe it breaks existing mods/games |
20:41 |
sfan5 |
if we follow that principle we can put minetest into the same state as minetest_game |
20:42 |
celeron55 |
can someone go and figure out if it breaks them or not? |
20:43 |
celeron55 |
i certainly don't have time for that |
20:43 |
PilzAdam |
it generally seems to good to remove special handling for certain things |
20:43 |
celeron55 |
if nobody has, i'm going to close this and that part of minetest will be broken until infinity |
20:43 |
celeron55 |
which will be sad |
20:43 |
sfan5 |
celeron55: the ARM I have is not big endian: http://ix.io/cS6 |
20:43 |
sfan5 |
IIRC only arm64 can optionally be big endian |
20:44 |
celeron55 |
what? is ARM little endian? |
20:44 |
sfan5 |
gcc says so |
20:44 |
celeron55 |
i've always thought it's big endian |
20:45 |
sfan5 |
arm is little endian, armeb is big endian |
20:45 |
sfan5 |
arm64 can be both |
20:46 |
celeron55 |
whatever, changed my comment |
20:46 |
celeron55 |
or should we even close these? |
20:46 |
PilzAdam |
sfan5, a |
20:46 |
sfan5 |
PilzAdam, b |
20:46 |
celeron55 |
what sense does it make to have these hanging there when nobody is going to ever handle them |
20:46 |
PilzAdam |
*32bit arm can be big endian too |
20:46 |
PilzAdam |
and why is the enter key so damn close to delete? |
20:47 |
sfan5 |
arm is little endian, armeb is the same as arm but big endian |
20:54 |
sfan5 |
https://github.com/minetest/minetest/pull/1357 |
20:55 |
sfan5 |
Allow custom liquids to have drops - basically the same as #683 |
20:55 |
ShadowBot |
https://github.com/minetest/minetest/issues/683 -- Allow custom liquids to have drops by 0gb-us |
20:56 |
Piggybear87 |
<OldCoder> Tell #minetest-dev media is slow |
20:57 |
sfan5 |
^ PilzAdam |
20:57 |
sfan5 |
(the thing above what Piggybear87 said) |
20:59 |
celeron55 |
is this important? https://github.com/minetest/minetest/pull/641 |
21:00 |
celeron55 |
well, if it is, rebase and make a new pull request |
21:01 |
sfan5 |
probably not 'important' but it definitely a good addition |
21:01 |
sfan5 |
would someone care to ack to #1357? |
21:01 |
ShadowBot |
https://github.com/minetest/minetest/issues/1357 -- Allow custom liquids to have drops by sfan5 |
21:01 |
OldCoder |
sfan5, is this a known issue? Hi BTW |
21:02 |
sfan5 |
depends on your setup |
21:02 |
OldCoder |
It didn't seem to happen until yesterday |
21:02 |
sfan5 |
we know that media w/o remote_media is horribly slow |
21:02 |
celeron55 |
sfan5: maybe it could be just added and then we'll keep our ears open for whether something breaks somewhere? 8) |
21:02 |
OldCoder |
Yes. But what changed? |
21:02 |
sfan5 |
celeron55: sounds good :P if anything breaks it is most likely the subgame devs fault anyway |
21:03 |
sfan5 |
OldCoder: from which ver did you update? |
21:03 |
OldCoder |
sfan5, I had a git that was a month or two old. Rebuilt from latest circa a day ago. Connected fine but nobody could connect to some worlds this morning. Then all evinced the issue. People in-game were fine. |
21:04 |
OldCoder |
Restart corrected the problem. But it does seem to be media. |
21:04 |
sfan5 |
IIRC there were no big changes to media stuff in the last month |
21:04 |
OldCoder |
Checked with my colocation host; he says the network is fine today. |
21:04 |
OldCoder |
And *all* people connecting from anywhere seemed to have the problem. |
21:04 |
Piggybear87 |
OldCoder, I didn't connect. It hanged for about 5 minutes at media and I gave up. |
21:05 |
sfan5 |
were you using remote_media? |
21:05 |
OldCoder |
No; the point is, it worked for a while and stopped. Is the game no longer usable without curl? |
21:05 |
OldCoder |
If so, that is the way it is; but useful to know |
21:05 |
Amaz |
<OldCoder> And *all* people connecting from anywhere seemed to have the problem. I can connect. |
21:05 |
OldCoder |
Amaz, I have restarted |
21:05 |
celeron55 |
https://github.com/minetest/minetest/pull/583 |
21:05 |
sfan5 |
it would be interesting to see the debug output |
21:05 |
OldCoder |
It seemed to happen after worlds had been running for a while |
21:06 |
OldCoder |
sfan5, I shall review now. Excuse me. |
21:06 |
Amaz |
I can still connect. |
21:06 |
OldCoder |
Amaz, I have restarted; thanks. |
21:06 |
celeron55 |
do i have to make a decision on this? or does someone have some kind of comments |
21:07 |
celeron55 |
the comments there seem to be saying that that key should be added to lua too, but it doesn't really matter whether it's added at the same time |
21:07 |
OldCoder |
sfan5, the debug.txt looks fine. Should we simply assume that all servers and clients should turn on curl? Do most clients have this now? |
21:07 |
sfan5 |
there does not seem to be a consent on whether the server owner should be able to disable this |
21:08 |
OldCoder |
sfan5, are you addressing C55 or me? |
21:08 |
celeron55 |
why does it matter |
21:08 |
celeron55 |
the user could just use a magnifying glass on the screen for the same effect |
21:08 |
sfan5 |
OldCoder: c55; almost almost all windows build have cURL, for the linux builds you can never know because many are self-compiled |
21:09 |
OldCoder |
sfan5, I think we'd better assume that non-curl is not guaranteed to be usable at all. Until evidence of other problems shows up. May I PM for a reminder of how to set up curl? |
21:09 |
* Piggybear87 |
isn't self compiling anymore, the ppa is faster and easier... Lol. |
21:09 |
sfan5 |
even if #583 does not get added, https://github.com/minetest/minetest/pull/583#issuecomment-15694987 should be considered |
21:09 |
ShadowBot |
https://github.com/minetest/minetest/issues/583 -- Add zoom (a la optifine) by EXio4 |
21:10 |
celeron55 |
but that hasn't been implemented, this has been |
21:10 |
OldCoder |
sfan5, I have PMd regarding curl |
21:10 |
sfan5 |
ok |
21:10 |
celeron55 |
and also they conflict with each other unless a clear scheme to make them work together is designed |
21:11 |
sfan5 |
you mean 'client-side zoom' vs. 'zoom effect triggered by mod'? |
21:11 |
celeron55 |
maybe it could simply be OR or something |
21:12 |
celeron55 |
this is probably very easily rebaseable |
21:12 |
celeron55 |
but... what is the actual use for this |
21:12 |
|
paramat joined #minetest-dev |
21:12 |
celeron55 |
this seems almost completely useless except for the first minute of playing around with it |
21:13 |
celeron55 |
whatever, closing |
21:14 |
celeron55 |
https://github.com/minetest/minetest/pull/546 |
21:15 |
celeron55 |
can this be done easily now that the menu uses Lua? |
21:15 |
celeron55 |
~tell sapier look at 546 |
21:15 |
ShadowBot |
celeron55: O.K. |
21:17 |
sfan5 |
so.. can I merge #1357 now? |
21:17 |
ShadowBot |
https://github.com/minetest/minetest/issues/1357 -- Allow custom liquids to have drops by sfan5 |
21:19 |
celeron55 |
i haven't looked at any games so i can't say |
21:19 |
celeron55 |
take ten minutes to look at the most popular ones? |
21:19 |
sfan5 |
ok |
21:19 |
celeron55 |
if they don't seem to be broken, then just go ahead |
21:20 |
sfan5 |
I think this was change in mt_game before the most games were forked from it |
21:20 |
sfan5 |
changed* |
21:20 |
sfan5 |
but I'll check |
21:22 |
|
NakedFury joined #minetest-dev |
21:24 |
sfan5 |
seems to be fine, merge incoming |
21:34 |
|
Miner_48er joined #minetest-dev |
21:35 |
celeron55 |
i am playing around with the doxygen pull request... oh god: http://i.imgur.com/vO1auYd.png |
21:35 |
celeron55 |
what is this |
21:36 |
celeron55 |
this is actually pretty fun... but i have yet to try to find out if this is useful at all |
21:36 |
ligeti |
celeron55, this is exactly... a headache! |
21:38 |
celeron55 |
this graph tries to explain how the scripting api implementation interfaces with other code |
21:39 |
celeron55 |
it's basically saying "it's a clusterfuck that mostly goes through the Server class to absolutely everywhere" |
21:39 |
ligeti |
lol |
21:40 |
ligeti |
I see |
21:47 |
celeron55 |
okay, i have decided that this is useful |
21:47 |
celeron55 |
the reason is... |
21:47 |
celeron55 |
this graph that it generated: http://i.imgur.com/PsoQC48.png |
21:48 |
celeron55 |
you can actually directly see from this what i had to dig from the code earlier today to sapier |
21:48 |
celeron55 |
and i didn't even see everything that it shows |
21:50 |
celeron55 |
you directly see which things use VoxelManipulator::addArea(), and you also see which of them are actually used by anything |
21:50 |
celeron55 |
and i didn't notice those MeshMakeData ones at all previously |
21:51 |
celeron55 |
it's beautiful! |
21:55 |
paramat |
ive found an undocumented bug in latest 049dev, can anyone reproduce this?: the clouds disappear when camera pitch dips below roughly -30deg. occurs when player is above y=208 and comes and goes every 100-200n of altitude. bug also comes and goes with time. i discovered the required camera pitch is exactly that needed for the cloud layer to be out of view when player is at y=1, so perhaps this is caused by code that t |
21:55 |
paramat |
urns off clouds when they are 'out of view' |
21:55 |
paramat |
oh and thanks for fixing custom skybox =) |
21:55 |
celeron55 |
i fixed it immediately because i made the bug in the first place 8) |
21:57 |
celeron55 |
paramat: does the sky change color when the clouds disappear? |
21:58 |
celeron55 |
hmm, apparently no |
21:59 |
PilzAdam |
200 sounds suspicious |
22:00 |
paramat |
yeah perhaps its nore's fix for 'rendering glitches near edge of map'? |
22:01 |
celeron55 |
i am fairly sure it's irrlicht that is messing things up because i am not aware of anything in minetest that would switch clouds on or off |
22:01 |
celeron55 |
but maybe MT is giving some kind of wrong values to irrlicht, or isn't updating something in irrlicht |
22:01 |
celeron55 |
it's not anything new if irrlicht simply has a bug though |
22:02 |
celeron55 |
it's obviously some kind of frustum culling |
22:02 |
paramat |
that's what i thought |
22:02 |
celeron55 |
with a wrong camera position or something |
22:03 |
celeron55 |
hmm, yes, it certainly is due to the "rendering glitches near edge of map" thing |
22:04 |
celeron55 |
the harder question is, where should the fix go |
22:04 |
celeron55 |
-space |
22:04 |
paramat |
ah cool i guessed right |
22:06 |
celeron55 |
i didn't test, but it seems very certain that it couldn't possibly have been broken before that |
22:06 |
celeron55 |
someone would have complained about it |
22:07 |
paramat |
yes i was surprised no-one noticed this, a recent bug ... shaders? i was going to ask RBA too |
22:08 |
paramat |
if i see nore about i'll ask him if his commit causes this |
22:08 |
celeron55 |
i will try that now |
22:09 |
celeron55 |
yes, it works before commit 062de11b4cff30861dd4e9eb56f131d821f34b51 |
22:14 |
RealBadAngel |
camera offset is not my code |
22:14 |
RealBadAngel |
my waypoint were suffering that also |
22:14 |
paramat |
i've just switched from 048 stable to 049 dev of june 4th, so have no experience of when this bug first appeared |
22:14 |
RealBadAngel |
i think thats nore's code |
22:16 |
RealBadAngel |
oh, you already figured out that was nore ;) |
22:17 |
paramat |
heh yeas nore's commit was my gut feeling =) |
22:17 |
paramat |
(yeah) |
22:21 |
PilzAdam |
paramat, is your good feeling reliable? please go through all issues marked as "bug" ;-) |
22:22 |
paramat |
:D |
22:25 |
celeron55 |
~tell nore fix 062de1 or find someone to fix it! |
22:25 |
ShadowBot |
celeron55: O.K. |
22:26 |
PilzAdam |
has someone counted the bugs that nore produced with his commit? |
22:26 |
celeron55 |
it's going to cause bugs indefinitely into the future because it breaks the simplicity of just drawing something on the screen in an irrlicht-standard way |
22:27 |
celeron55 |
it's a maintenance nightmare |
22:27 |
celeron55 |
i hope nore will continue maintaining it... but at least it's easy to remove |
22:27 |
celeron55 |
just replace all the weird additions with 0 |
22:28 |
paramat |
is it because clouds are a different scene-node? |
22:29 |
celeron55 |
almost everything is, why is that even a question |
22:30 |
* paramat |
doesnt know what he's talking about :) |
22:39 |
|
dsimon joined #minetest-dev |
22:43 |
|
Fresh_me_ joined #minetest-dev |
22:44 |
|
Fresh_me_ joined #minetest-dev |
22:47 |
ligeti |
to view the error messages (derr_con for example) is it enough to run the server from terminal? |
22:51 |
kahrl |
ligeti: for most error messages, yes (they should also be in debug.txt), but not for derr_con specifically |
22:52 |
kahrl |
since derr_con is verbosestream, you have to run minetest with the --verbose parameter |
22:52 |
ligeti |
yes thanks |
22:52 |
ligeti |
thank you, this will help my testing a lot!!! |
22:53 |
kahrl |
if you want to send verbosestream to debug.txt as well, set debug_log_level = 4 in minetest.conf |
22:54 |
kahrl |
and then also make sure to delete debug.txt once in a while ;) |
22:55 |
ligeti |
I am just running: ./minetestserver --trace --logfile ~/debug.txt |
22:55 |
ligeti |
I don't want to use the default debug.txt |
22:56 |
kahrl |
yeah, that works, you'll see derr_con on the terminal |
22:56 |
ligeti |
I do now :) |
22:56 |
ligeti |
thanks again |
22:57 |
|
PilzAdam joined #minetest-dev |
23:08 |
|
sapier1 joined #minetest-dev |
23:14 |
sapier1 |
to do 546 in lua we'd need to implement a slider formspec element, but I don't think that'd ne a big deal |
23:19 |
|
cg72 joined #minetest-dev |
23:19 |
cg72 |
** |
23:20 |
|
kaeza joined #minetest-dev |
23:22 |
ligeti |
OK guys... goodnight, and thanks for all the help :) |
23:22 |
ligeti |
bye! |
23:22 |
|
ligeti left #minetest-dev |
23:42 |
|
EvergreenTree joined #minetest-dev |
23:55 |
VanessaE |
kaeza: see this channel's logs from today 10:41 am to ~2 pm EST.... summary: signs_lib's image compositing appears to be the cause of the FPS sagging at spawns on my servers, and the length of the strings used to do it causes a lot of network traffic for PilzAdam. Both issues imho are engine/client problems. |