Time Nick Message 01:30 hmmmm sapier, it seems like your state2Name() function is the primary cause of warnings for this build of minetest 01:30 hmmmm ClientState is already implicitly converted to an integer, and then upcasted to a size_t since it's being compared to an expression of type size_t 01:31 hmmmm but then if you get rid of that, it still give plenty of "comparison is always true due to limited range of data type" warnings - true, because you're using an enum there's no way for that to be out of range. so the check is sort of useless. not to mention that code will only ever be there with debug builds, so it's not very effective at error checking 01:32 hmmmm I recommend removing that assertion entirely 03:45 Megaf hmmmm; sapier is not here, is he? 04:20 RealBadAngel VanessaE, it was Mercury Rain 04:20 RealBadAngel and the others from Skaven 04:21 RealBadAngel theyre all used in technic_game 04:21 VanessaE yeah, I eventually figured it out 04:21 VanessaE at least I remembered the author :P 04:22 RealBadAngel https://www.youtube.com/watch?v=cjHNPzv9sGY 16:43 sapier 18:40:07: ERROR[main]: Texture size (I): 248x90 ( Total: 57076292 bytes Signs: 56603520 bytes ) that's amazing .... that damn signs mod composing texts from single textures causes about 99% of texture memory usage on vanessae's 30005 server 16:46 sapier only around spawn there are more then 600 signs on her server, each of them requires 90kb ram on pc ... it's even worse on android devices not supporting npot2 textures as those textures have to be scaled up there and require 128kb there 16:47 sapier additionally there seems to be a bug in that mod as there are plenty of abadoned, invisible sign textures there too 16:48 Calinou this is why you don't do stuff like that entirely in Lua 16:48 sapier Calinou can you give one single reason for this to be a lua issue? 16:49 Calinou this is just a typical “whale mod” :/ but the texture combining is not ideal anyway 16:49 sapier I'm still waiting for som explanation making your comment anything else as plain lua bashing 16:52 sapier imho it's more a example for something beeing completely independent of language. No matter what language you use, if you do silly things in a even more silly way you're gonna get bad results. 16:52 Calinou yeah, bad coding, not Lua in itself 16:52 Calinou disregard the first sentence I said 16:52 Calinou texture combining was not meant to combine dozens of textures 16:53 sapier the one writing that mod wasn't aware how expensive textures are 16:53 Megaf sapier: what mod? 16:53 sapier creating a single texture per sign is way to costly for hundreds of signs 16:53 Calinou I prefer having the text showing up on the GUI anyway… 16:54 sapier homedecor if I remember correct. What we're talking about is sign text beeing displayed on sign 16:55 Megaf sapier: could be the signs_lib 16:55 sapier basically that'd be a monochrome texture ... but it's created as full rgba texture ... 248x90x4bytes 16:55 Megaf VanessaE: What's the signs more you are using? 16:56 sapier signs_lib sounds good 16:56 Megaf sapier: I do great use of signs with texts on my server, you are scaring me... 16:56 sapier the issue is client side 16:56 sapier server doesn't even notice 16:57 sapier those numbers I posted are from moving around about 50 nodes around that server spawn 16:59 jin_xi guys im sorry, i made painting mod which started the technique 16:59 jin_xi imho dynamic content is needed and fun, so pls dont kill the feature 17:00 sapier I don't intend to kill it at all but ppl should realize how costly this things are ... at least we now know another location where a fix is required 17:01 sapier having 600 signs within a distance of 50 nodes seems abusive to me 17:01 jin_xi i also made a tetris mod using texture combining 17:01 * jin_xi hides 17:02 sapier the problem with signs is each sign is a separate texture as there's a different text on each 17:02 sapier I guess for tetris there's only a small number of different textures 17:03 sapier unless you did combine it pixel per pixel ;-) 17:03 celeron55 i'm fine with engine abuse, but nobody should expect full optimization for abuse cases 17:04 sapier actually that's what I mean :-) 17:05 jin_xi i agree 17:06 sapier For android I'm gonna try a quick hack ... almost no other texture is 248x90 pixels ... converting to 16 bit color format saves half of memory ... hope that's gonna work ... but that's a ugly hack not a solution 17:07 sapier suggestions are welcome 17:08 sapier does anyone know why we save the image in textureinfo cache? 17:08 celeron55 i'm trying to understand whether the midway textures of the sign text combination are left stored in irrlicht 17:09 celeron55 do they use a single [combine? 17:09 sapier for what I understood a texture is a copy of an image 17:09 sapier yes 17:09 sapier and we keep the image too 17:10 celeron55 in irrlicht a texture is an image that is stored in the graphics backend like opengl or directx 17:10 sapier name of those combined textures is about 4 lines on screen ... NOT 80 char lines ;-) 17:10 celeron55 an image is one that is in main memory 17:10 celeron55 (which can't be used for rendering) 17:10 sapier yes but for what is our local copy? 17:10 sapier that one in main memory 17:11 celeron55 ? 17:11 celeron55 "what is"? 17:11 celeron55 i don't understand what you are asking 17:11 sapier we need it to create the copy in gpu memory but do we need that main memory copy afterwards? 17:12 celeron55 they are stored for the case of more textures needing to be combined from the end results of some other combinations 17:13 celeron55 or, at least that is one reason 17:15 sapier hmmm 17:15 celeron55 it might make sense to not do that 17:15 celeron55 depends on how much memory actually gets used for that 17:16 sapier well 56.9mb of 57 mb 17:16 sapier in case of vanessae's server spawn with 600 sign 17:16 sapier s 17:16 celeron55 what are these meaningless numbers 17:17 sapier that's an example to show up the relations 17:17 sapier 100kb of regular textures : 56.9mb of sign textures 17:17 sapier she's using 16x16 textures for nodes 17:19 celeron55 so, what are all of those half a thousand signs doing? 17:20 sapier some of them seem to be just lost entities ... you only see them if you disable texture combining, others fill whole walls with text 17:20 celeron55 i guess some people just want to write novels in signs 17:20 celeron55 try throwing the images away and see how a game performs 17:21 jin_xi painting mod uses 1x1 textures for colors, but still, they're recombined every step of the drawing 17:22 sapier how many pixels do your images have? 17:22 celeron55 having an std::map with thousand character keys with at least 500 items is going to be slow 17:23 jin_xi 8x8, 16x16 and 32x32 17:23 sapier and how many colors? 17:23 celeron55 why do colors matter? 17:23 jin_xi ^ above are usable 64x64 is lagging hard, #colors is same as default dyes 17:24 celeron55 anyway, every time you paint one pixel in the painting mod, you leak one texture (and one raw image) in minetest 8) 17:24 celeron55 unless it's exactly the same as something you had already painted 17:25 jin_xi well, first version used one entity per painting pixel. but i think its fair to call it engine abuse 17:25 celeron55 they aren't technically leaked from the OS's standpoint, but nobody is going to free them because there is no backwards handling for references 17:25 sapier yes that's where color matters the more colors the more possible paintings ;-) 17:25 celeron55 jin_xi: that one got everything freed that you modified 17:26 celeron55 sapier: you're going to have 2^64 paintings with 8x8 already 8) 17:26 celeron55 even with black and white 17:27 celeron55 that is why the question is nonsense 17:27 sapier hmm ok ok ... guess the difference is only too much and way to much :) 17:28 celeron55 the difference is between "maybe storeable before the human race dies" and "more than there are atoms in this universe" 17:29 sapier I wonder if it'd be an option just to drop the images and reload on combining ... of course combining will be way more slow 17:29 celeron55 uh? 17:29 sapier that'd not solve the gpu memory overflow 17:30 celeron55 there's no reason to drop the source images, the client doesn't store them on disk anyway 17:30 sapier yes but in main memory ;-) 17:30 celeron55 are you going to redownload them from the server or what? 17:30 celeron55 the source images aren't our enemy 17:31 celeron55 it's the result images from combining 17:31 celeron55 which can be dropped and which i already suggested trying 17:31 sapier that's what I'm talking about 17:31 celeron55 just remove video::IImage *img from TextureInfo and kill a bunch of code 17:31 celeron55 and then fight all the memory leaks that you created in the process 17:32 sapier well I'm gonna free it immediatly so it's more likely to cause use after free issues ;-) 17:33 celeron55 you're lucky that ITextureSource doesn't provide any interface for reading the cached video::IImages 17:34 celeron55 because then this would be impossible 17:46 sapier ok seems to work without keeping the temporary images in ram