Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/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 2024-03-02 00:00:00Z and 2024-03-03 00:00:00Z
Avatar
Avatar
Learath2
Let me give you one last reason to use zero-terminated strings. They don't have a length limit
neither does size prefixed strings (in a real physical world)
Avatar
Avatar
Learath2
fwiw I only looked to spot the presence of 2 loops and I couldn't spot 2 loops
because you only need the inner core of the strlen function in the inner loop of strcpy
Avatar
Avatar
Chairn
neither does size prefixed strings (in a real physical world)
you mean in a real theoretical world, unless you want to introduce a branch, length is limited
Avatar
to detect the null character in the input string
00:03
how is it practically limited when no machine has enough memory to fill 2^64 bytes ?
00:04
anyway, on SIMD, in x86, the glibc function just checks for page boundary on 4kB page
00:04
then it fetches as much as it wants and detects if there's a null character in the data
Avatar
Avatar
Chairn
because you only need the inner core of the strlen function in the inner loop of strcpy
yes, after looking at it this was obvious
Avatar
Avatar
Chairn
how is it practically limited when no machine has enough memory to fill 2^64 bytes ?
it's not, I'm just being pedantic since they are being pedantic
00:05
my null delimited strings will work for my universe computer with 10 exobyte strings
Avatar
the first load is a special unaligned ones that performs less good than another instruction which requires an cache aligned (or 32B aligned) address, otherwise it generates a segfault (really not the best exception to generate though)
00:11
note that some ISA allows vector loads to fail in an elegant manner with not touching elements outside the allowed region (edited)
Avatar
We could add a SERVERCAPFLAG to let client know this server send broadcast with color, This is a useful way for players fast know the broadcast type (e.g, database error broadcast use red color)
Avatar
@Robyt3 i tested on windows ram changes, but it doesnt permanentaly increase
Avatar
chillerdragon BOT 2024-03-02 07:49:01Z
@furo: when fix #8039 (edited)
Avatar
@Robyt3 i did however indeed have a massive lag closing the console after a while 😄
07:55
@Robyt3 m_Elements defs increases the whole time 😄
07:56
maybe gcc has a different allocation strategy
07:56
so it takes much longer to notice with it
Avatar
chillerdragon: check dms aka offtopic
Avatar
chillerdragon: don't make fun of others
Avatar
chillerdragon BOT 2024-03-02 07:58:41Z
On da phone later
Replying to @MilkeeyCat chillerdragon: check dms aka offtopic
Avatar
ChillerDragon: feel free to DM me about rules, if you want anything clarified
Avatar
ws-client BOT 2024-03-02 08:11:31Z
<ChillerDragon> ye sure im actually curious @heinrich5991 where dm
Avatar
at your service, I'm currently monitoring irc, matrix and discord
Avatar
ws-client BOT 2024-03-02 08:12:32Z
<ChillerDragon> do you mind doing it in a public irc channel thats not bridged to ddnet?
08:13
<ChillerDragon> #ddnet-off-topic on quakenet
Avatar
prefer not to
08:18
sourcehut is a network of useful open source tools for software project maintainers and collaborators, including git repos, bug tracking, continuous integration, and mailing lists.
Avatar
@Robyt3 i think i understand the problem now... it's indeed not a leak, it's just a suboptimal way of doing small allocation if you'd wait long enough it would probably decrease memory again. I'll think about a solution
👍 1
Avatar
who is cpp pro? i need this: https://en.cppreference.com/w/cpp/container/multimap/lower_bound however in my case the multimap is sorted in a reversed order so i'd also need the reverse of lower_bound basically in other words: "the last element that is still greater (or equal) than key"
08:32
iterators in cpp are so hard
08:32
xd
Avatar
have you overloaded the operator< to sort in reverse order?
Avatar
std::multiset<SMemoryHeapQueueElement, std::greater<>>
08:34
this basically
Avatar
then lower_bound should do what you want, no?
Avatar
Avatar
heinrich5991
then lower_bound should do what you want, no?
that's not clear for me from the specs
08:34
xd
08:34
"This overload participates in overload resolution only if the qualified-id Compare::is_transparent is valid and denotes a type. It allows calling this function without constructing an instance of Key."
08:35
this is the hardest sentence i over read
Avatar
Avatar
heinrich5991
then lower_bound should do what you want, no?
but that would be the intuitive solution i guess
Avatar
I'm not sure what else it would return
08:36
it can't suddenly start using something other than your comparator, that would violate its internal guarantees, I guess
Avatar
i'll simply test it out i guess 😄
Avatar
seems not to work
08:46
do i need to use upper_bound then? but would it also allow equal compare?
08:47
ok upper also doesnt work
08:47
i don't want to manually quick sort xd
08:49
maybe i can use that
Avatar
you can't change the operators to sort with rbegin and rend?
Avatar
ws-client BOT 2024-03-02 09:21:25Z
<ChillerDragon> did my bugtrix msgs reach u @heinrich5991 ?
Avatar
added casts to edlang
Avatar
Avatar
cyberFighter
color picker is kind of jank
Odd, it used to work correctly with Vulkan and OpenGL when I tested it, but in 18.0.3 it doesn't work consistently with Vulkan anymore
Avatar
Avatar
Ewan
you can't change the operators to sort with rbegin and rend?
well i simply need a reversed lower bound, but the class function doesnt offer it 😄
09:51
but yeah with the std thing it's ez
Avatar
The picked color does not match the color under the cursor in most cases. Seems like coordinates are misplaced somehow. Example (the red color exists elsewhere on screen): !image I'm pretty sure I tested this feature with Vulkan and OpenGL, but apparently this is/was already broken with only the commit that adds this feature (f5e7fa24d6b8a87b6d4da89e2c4c9589cf361cd6).
Avatar
Avatar
Jupstar ✪
well i simply need a reversed lower bound, but the class function doesnt offer it 😄
I'm not entirely sure what you need. can you give an example with a couple of sample values?
10:17
c++ #include <cstdio> #include <map> int main() { std::multimap<int, int, std::greater<>> map; map.insert({1, 2}); map.insert({4, 3}); map.insert({9, 5}); printf("%d\n", map.lower_bound(8)->first); return 0; }
10:18
this prints 4 for me, which is the first element after 8, given that I have the std::greater ordering
Avatar
Avatar
Jupstar ✪
who is cpp pro? i need this: https://en.cppreference.com/w/cpp/container/multimap/lower_bound however in my case the multimap is sorted in a reversed order so i'd also need the reverse of lower_bound basically in other words: "the last element that is still greater (or equal) than key"
"the last element that is still greater (or equal) than key" so the last element >= 8 in your case it's 9
10:25
i basically need a reverse iterator
10:29
i already solved it btw
Avatar
nice
Avatar
with std::lower_bound tho
10:30
i don't think the class is built for my needs xd
Avatar
to me, it's not clear from your description, whether "greater" refers to the container ordering that is reversed or to the ordering outside the container
Avatar
Avatar
heinrich5991
to me, it's not clear from your description, whether "greater" refers to the container ordering that is reversed or to the ordering outside the container
the container is reverse bcs of the std::greater too, like in your example
10:33
i could probably also rewrite it to not use greater in the container already.. but honestly i'm too lazy xdd with rust iterators it would have been easier
10:33
just saiyan
Avatar
#include <cstdio> #include <map> int main() { std::multimap<int, int, std::greater<>> map; map.insert({1, 2}); map.insert({4, 3}); map.insert({9, 5}); auto it = map.lower_bound(8); it--; printf("%d\n", it->first); return 0; }
10:33
I think decrementing the iterator would work then
Avatar
Avatar
heinrich5991
I think decrementing the iterator would work then
yep, probably
10:33
but what if there is no fitting entry
10:33
then u decrement end
Avatar
eh 😦
Avatar
what even happens then xd
Avatar
yea
10:33
UB, probably (edited)
Avatar
my cpp brain really got removed
10:34
i forgot everything
Avatar
Avatar
heinrich5991
#include <cstdio> #include <map> int main() { std::multimap<int, int, std::greater<>> map; map.insert({1, 2}); map.insert({4, 3}); map.insert({9, 5}); auto it = map.lower_bound(8); it--; printf("%d\n", it->first); return 0; }
in my case this would actually even work
10:34
bcs i first check if there could be a fitting allocation anyway
10:34
to prevent the worst case of iterating through all entries
10:35
which is likely
10:39
i think i'll need quick_search anyway lol
10:39
i need to calculate the alignment too, which changes the size requirements
10:39
all discussion for nothing
10:40
but it's also not really correct
10:40
this is harder than expected
10:40
a lower_bound with a condition
10:47
clangd code insight also seems compltely broken
10:48
i think it's broken since our refactor for include what u need
10:48
why didnt the tool for example say: include <functional> here?
10:49
does it find some earlier include and then just stops? isn't that the opposite of include what you need lol
10:49
include what others need
10:49
xd
10:49
don't include what others already needed*
Avatar
log 2(last - first) + O(1) comparisons). However, for non-LegacyRandomAccessIterators, the number of iterator increments is linear. Notably, std::map, std::multimap, std::set, and std::multiset iterators are not random access, and so their member lower_bound functions should be preferred. MHHH
11:02
well that sucks lol
11:03
man when gpt 5 ngl i waste 1h for a problem where i know the solution, but struggle to apply it
Avatar
Avatar
Robyt3
Odd, it used to work correctly with Vulkan and OpenGL when I tested it, but in 18.0.3 it doesn't work consistently with Vulkan anymore
i have a curse or something that breaks every feature when i try to use it
Avatar
Avatar
cyberFighter
i have a curse or something that breaks every feature when i try to use it
Most likely explanation is that we updated our drivers, which causes the buggy code path in the Vulkan backend to be used instead
Avatar
fixes #8036 the linear search kinda sucks, but it cannot predict the alignment requirements. The only other possiblity is to be pessimistic and always overallocate by the whole alignment, but alignments for GPU allocations are really not comparable to what one used to know from CPUs

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 (esp...
11:33
When image blitting is supported by the Vulkan backend, the color picker was reading incorrect pixel values, because the offset positions for the blitting region are the positions of the top-left and bottom-right corners, but instead the top-left offset and size (width, height) were passed as arguments. Closes #8040.

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options...
Avatar
Avatar
heinrich5991
#include <cstdio> #include <map> int main() { std::multimap<int, int, std::greater<>> map; map.insert({1, 2}); map.insert({4, 3}); map.insert({9, 5}); auto it = map.lower_bound(8); it--; printf("%d\n", it->first); return 0; }
i think this generally does not work without reversing the iterator "Returns an iterator pointing to the first element that is not less than (i.e. greater or equal to) key" for greater it would mean smaller or equal but i need smaller (without equal) this really sucks xd
11:51
i dunno how i can make it work without O(1) lookup
11:53
i guess i'll simply rewrite the container to use std::less
11:54
well i could use greater_eq
11:54
i guess
Avatar
what was the name of repo which could count loc in project
Avatar
tokei
11:55
or snth
Avatar
oh ye, thx
Avatar
@MilkeeyCat Are you working on #8020?
Avatar
Go to editor Open envelope tab Click on "Color +" Set curve to bezier Rick click on point
Avatar
Avatar
Jupstar ✪
i think this generally does not work without reversing the iterator "Returns an iterator pointing to the first element that is not less than (i.e. greater or equal to) key" for greater it would mean smaller or equal but i need smaller (without equal) this really sucks xd
ah. and you potentially have a lot of elements with the same key?
Avatar
Avatar
Jupstar ✪
well i could use greater_eq
that's probably forbidden
Avatar
Avatar
Robyt3
@MilkeeyCat Are you working on #8020?
no, there's no way my little noodle can fix it, i just wanted to help as much as I could =]
Avatar
Avatar
heinrich5991
that's probably forbidden
well a multimap can store multiple equals, so i guess it's no problem here?
Avatar
Avatar
MilkeeyCat
no, there's no way my little noodle can fix it, i just wanted to help as much as I could =]
ok, thanks 🙂
Avatar
Avatar
heinrich5991
ah. and you potentially have a lot of elements with the same key?
i do indeed
Avatar
Avatar
Jupstar ✪
i do indeed
ah, so this relates to the main thread index or whatever is used for the one-time-use buffer objects?
Avatar
Avatar
Jupstar ✪
well a multimap can store multiple equals, so i guess it's no problem here?
yes, but equal is defined as !(a < b) && !(b < a)
11:58
that fails if you replace < with <=
Avatar
Avatar
heinrich5991
yes, but equal is defined as !(a < b) && !(b < a)
but why should it need eq
11:59
well maybe it matters, but it seems like in worst case it appends it to a later element?
11:59
when inserting
Avatar
for lookup, e.g.
12:00
probably UB, but you might get away with it for non-production code
Avatar
Avatar
Robyt3
ah, so this relates to the main thread index or whatever is used for the one-time-use buffer objects?
the problem is the allocations in that thread yeah 😄
12:00
but the real problem is a little bit harder to explain
12:00
if it always uses the biggest allocation => it grows the allocation heap
12:01
it cant merge it bcs of delayed cleanups
Avatar
yea, the comparator must suffice Compare
12:01
and Compare states that equality must be !(a < b) && !(b < a)
12:01
so AFAICT, passing <= is UB
Avatar
Avatar
Jupstar ✪
who is cpp pro? i need this: https://en.cppreference.com/w/cpp/container/multimap/lower_bound however in my case the multimap is sorted in a reversed order so i'd also need the reverse of lower_bound basically in other words: "the last element that is still greater (or equal) than key"
Hm, why not upper_bound - 1?
Avatar
Avatar
heinrich5991
for lookup, e.g.
even tho that makes sense, doesn't it depend on the lookup done? e.g. if i never use a "normal" find
12:03
i mean it's UB by spec
12:03
but logically
Avatar
logically, it might work
12:03
but then, you'd think the same applies to sort
12:04
and that causes actual segfaults for stuff that doesn't adhere to Compare
Avatar
Avatar
Learath2
Hm, why not upper_bound - 1?
yeah i tried that in the pr.. dunno where my thought mistake is
Avatar
Avatar
heinrich5991
yea, the comparator must suffice Compare
Not for lower and upper bound btw
Avatar
Avatar
Learath2
Not for lower and upper bound btw
but for lower_bound/upper_bound on multimap
12:05
because multimap requires it
12:05
(the member functions)
Avatar
esp upper_bound requires it
12:05
"Returns an iterator pointing to the first element that is greater than key." it could tell if it's greater
12:05
without knowing it's not equal
12:05
😄
12:05
couldn't *
Avatar
Me and a friend got timed out at the same time, can't connect to any server because "UDP seems to be filtered" what causes this
Avatar
that sounds like UDP isn't working for you, currently
12:07
teeworlds/ddnet run over UDP
Avatar
209a367 Fix editor color picker when Vulkan image blitting used - Robyt3 5ff25a9 Merge pull request #8042 from Robyt3/Vulkan-Blitting-Fix - Jupeyy
Avatar
Avatar
heinrich5991
but for lower_bound/upper_bound on multimap
Hm, I'm unsure whether the compare fn you use with the multimap itself has to be the same as the one you use in upper and lower bound as long as the data satisfies is_partitioned for both
Avatar
so linear search works to remove the linear search partially i tried to first find the upper bound for size (minus one) => then i reversed the returned iterator and did the linear search on the remaining values
12:08
what is wrong about this xd
Avatar
Avatar
Learath2
Hm, I'm unsure whether the compare fn you use with the multimap itself has to be the same as the one you use in upper and lower bound as long as the data satisfies is_partitioned for both
upper_bound/lower_bound member functions don't take another comparison function
Avatar
i guess make_reverse_iterator automatically does minus one?
Avatar
Bamboozled once again, why does multimap have member upper and lower bound? 😄
Avatar
" std::copy(std::make_reverse_iterator(v.end()), std::make_reverse_iterator(v.begin()), std::ostream_iterator<int>(std::cout, ", "));"
12:10
that's how i understand their example
12:10
xd
Avatar
Avatar
Learath2
Bamboozled once again, why does multimap have member upper and lower bound? 😄
to do the logarithmic complexity lower_bound/upper_bound
Avatar
so that was my mistake
12:11
the function doesnt reverse the order of the iteration, but literally changes the iterator
12:11
i swear i find cpp's iterator stuff way too complicated
Avatar
Avatar
heinrich5991
to do the logarithmic complexity lower_bound/upper_bound
Why not a template specialization for the non-member ones though? I guess there is no way to express the operations in terms of iterators?
Avatar
Avatar
Learath2
Why not a template specialization for the non-member ones though? I guess there is no way to express the operations in terms of iterators?
interesting. I don't know. I guess it should be possible in terms of iteratorss
Avatar
Avatar
Jupstar ✪
the function doesnt reverse the order of the iteration, but literally changes the iterator
I'm sure I'm missing something here. Why did you think it would reverse the order?
Avatar
Avatar
Learath2
I'm sure I'm missing something here. Why did you think it would reverse the order?
i am not used to not lazy evaluated iterators anymore
12:16
i simply didnt think about it dunno
12:16
there is no .next() call
12:16
it does that automatically xd
Avatar
The color selection should only be shown for normal envelope points but not for bezier control points, because it always changes the previously selected normal envelope point. This caused the client to crash when right-clicking a bezier control point when no normal envelope point was previously selected. Closes #8020.

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration option...
Avatar
So is your problem fixed btw?
Avatar
i guess so
12:19
upper bound was never the problem
12:19
but if u have a clever way to remove the O(1) search
12:19
u could help me with that
Avatar
O(n)?
Avatar
but i think it's not really possible
Avatar
What is the actual problem?
12:20
Like what are we solving?
Avatar
i need to calc alignment on fly
12:20
and add that to the required size
12:20
so the key i am searching for is literally changing xd
12:20
only thing guaranteed is that at least one exists
12:22
only real solution i see is overallocating the whole alignment
12:22
but you as vulkan expert know why i shouldnt
Avatar
I don't quite get it, why does alignment requirement of an object depend on other objects?
Avatar
[ RUN ] Jobs.AbortAbortable ../src/test/jobs.cpp:74: Failure Expected equality of these values: pJob->State() Which is: 1 IJob::STATE_ABORTED Which is: 3 [ FAILED ] Jobs.AbortAbortable (0 ms) Commit of #8041 but not the PR run. Failed run: https://github.com/Jupeyy/ddnet/actions/runs/8122654231/job/22202320763
Avatar
Why are your things in a multimap?
Avatar
Avatar
Learath2
I don't quite get it, why does alignment requirement of an object depend on other objects?
the allocation itself has alignment requirements
12:23
but how the allocations (the list of possible allocations) are aligned is not saved in some key value
Avatar
Avatar
GitHub
Click to see attachment 🖼️
spotted on my save before map change pr afair
Avatar
it's not possible @Learath2 just ignore my monologue
12:23
i just can't accept that it's linear
Avatar
Avatar
Jupstar ✪
but how the allocations (the list of possible allocations) are aligned is not saved in some key value
Sorry, I guess this is far too niche for me to understand from the outside. I was hoping it was more abstract
Avatar
Avatar
Jupstar ✪
i just can't accept that it's linear
Well a linear search in sorted data does sound like a bummer
Avatar
i'd need a data structure that somehow is categorized in certain alignment requirements already i guess
Avatar
Avatar
Learath2
Well a linear search in sorted data does sound like a bummer
in 99% of all cases it also doesnt matter
12:25
i already put similar alignments together, similar != equal in this case
Avatar
Avatar
Jupstar ✪
in 99% of all cases it also doesnt matter
Depends on how expensive a comparison is and how big your set is
Avatar
more like upper categories xD
Avatar
Avatar
Jupstar ✪
i'd need a data structure that somehow is categorized in certain alignment requirements already i guess
What are you making btw?
Avatar
Avatar
GitHub
Click to see attachment 🖼️
basically this
12:27
Search most fitting allocation, not first fitting
12:28
it's not very easy to explain, but since some stuff is lazy deallocated the allocation heap grows in an undesirable way
12:28
where it sometimes does not merge back similar allocations
12:32
now comes the rust version fix
12:32
let's see how much i struggle there. multimaps don't exist in rust
Avatar
I bet there is a crate for it
Avatar
back then i didnt find one
Avatar
There is one called multimap and another multi_map
12:34
Maybe one of them works for you
12:35
Or I guess you can have a naive multimap as a hashmap of key to vec.
Avatar
apparently i used this std::collections::BTreeMap<usize, LinkedHashMap<NonZeroUsize, MemoryHeapQueueElement>>
12:35
and rewrote the logic
Avatar
MemoryHeapQueueElement just says nothing to me 😄
Avatar
understandable xd
Avatar
why LinkedHashMap?
Avatar
Avatar
Ryozuki
why LinkedHashMap?
Linked lists are hot
Avatar
and why nonzero?
Avatar
Avatar
Learath2
MemoryHeapQueueElement just says nothing to me 😄
it's basically just the struct that stores the alloc size and alignment in buffer
Avatar
Avatar
Ryozuki
and why nonzero?
that's just some id
12:36
bcs i don't work with ptrs in rust
Avatar
why not
Avatar
in cpp multimap iterators stay valid
12:37
smth like that doesnt exist in rust
Avatar
Avatar
Jupstar ✪
it's basically just the struct that stores the alloc size and alignment in buffer
So this keeps track of your allocations in gpu memory?
Avatar
and would be some kind of ptr magic
Avatar
Avatar
Learath2
So this keeps track of your allocations in gpu memory?
well kind of i guess but not directly
Avatar
Avatar
Jupstar ✪
in cpp multimap iterators stay valid
is that safe
Avatar
it keeps track of sub allocations
Avatar
Why does the alignment need to be kept track of? Do you move objects around later?
Avatar
Avatar
Ryozuki
is that safe
it is safe, as long as they entry doesnt get invalid
Avatar
maybe u can achieve that with pin or smth
12:38
but ye sounds annoying
Avatar
Avatar
Learath2
Why does the alignment need to be kept track of? Do you move objects around later?
well for the allocator the offset in heap is interesting
12:38
but for user the offset + align
12:38
xd
12:38
apparently the user for simplicity simply gets a copy
12:38
of that element
12:39
so ignore the alignment stuff
12:40
std::multiset<SMemoryHeapQueueElement, std::greater<>>; cpp version btw SMemoryHeapQueueElement is the same here
12:41
i also use multiset not map.. but doesnt matter in this case xD
Avatar
Avatar
Jupstar ✪
well for the allocator the offset in heap is interesting
Hm, see I may be missing something but alignment should only be important when you allocate first, unless the allocations need to be relocatable without user intervention
Avatar
Avatar
Learath2
Hm, see I may be missing something but alignment should only be important when you allocate first, unless the allocations need to be relocatable without user intervention
it is
12:43
ignore the alignment part
12:43
i dont use it
12:43
it's only for the result value
12:44
but alignment is affected by the offset in the buffer
Avatar
Anyway, a map doesn't look like the best structure for this. I'll think about it over breakfast
Avatar
so exactly at allocation time it matters what the offset is
Avatar
Avatar
Learath2
Anyway, a map doesn't look like the best structure for this. I'll think about it over breakfast
note that i already group similar aligned stuff together
12:44
so it only sometimes doesn't fit
Avatar
You want to find the best fitting, so the smallest free block that's properly aligned with enough size, yes?
Avatar
Avatar
Learath2
You want to find the best fitting, so the smallest free block that's properly aligned with enough size, yes?
yes
Avatar
Ok, brb tea and fooding. It helps me think
greenthing 1
Avatar
xd
Avatar
lerato tea-powered
Avatar
and btw it should not only be the properly aligned one.. if the allocation is big enough, it should be allowed to align the memory inside the allocation
12:46
it's better to waste a few bytes than use a oversized chunk i guess
12:47
or in other words: if no alignment fits (without wasting bytes) the impl would need to allocate a completely new buffer
12:47
and that's super expensive
12:54
ec39742 Search most fitting allocation, not first fitting - Jupeyy 350acae Merge pull request #8041 from Jupeyy/pr_small_alloc_fix_vk - Robyt3
13:08
6895cdc Fix editor crash when right-clicking bezier control points - Robyt3 5d070ec Merge pull request #8043 from Robyt3/Editor-Envelope-Point-Color-Fix - def-
13:09

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 (especially base/) or added coverage to integration test
  • [ ] 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-ad...
13:12
66cc7b5 Update translations for upcoming 18.1 - def- b544c3e Add assertions to all thread and semaphore functions - Robyt3 1ced40d show countdown in player/tee settings for sv_info_change_delay - dobrykafe f7ea38e Version 18.1 - def-
13:13
DDNet 18.1 is supposed to release in 1 week, assuming no bad bugs are found. Please test the Release Candidate to prevent problems being only discovered after release. Report bugs in the #bugs channel on DDNet Discord or directly on Github:
Avatar
@deen can we also fix linux build xd
13:15
before release
13:16
oh lol u already commented on the pr
13:16
issue*
Avatar
4ceb376 Add assertions to all thread and semaphore functions - Robyt3 968d08c Merge pull request #8026 from Robyt3/Base-Threading-Error-Handling - def-
13:19
40329b7 show countdown in player/tee settings for sv_info_change_delay - dobrykafe c0e4a4c Merge pull request #8002 from dobrykafe/pr-change-info-countdown - def-
Avatar
@Jupstar ✪ how big are these buffers?
Avatar
Avatar
Learath2
@Jupstar ✪ how big are these buffers?
at least 20mb
Avatar
b7f30d5 Add static libcurl.a for Linux - def-
13:36
[ddnet/ddnet-libs] New branch created: pr-libcurl
Avatar
@Jupstar ✪ im getting a 30% rise pog
13:41
liking even more my job now xd
Avatar
same job?
Avatar
that's significant 😮
13:42
and then 20%
13:42
on top of that
Avatar
that's insane
Avatar
they value me
Avatar
deserved
Avatar
Avatar
Ryozuki
@Jupstar ✪ im getting a 30% rise pog
so it's > 40k now right?
13:43
then i think its like 52 or smth
justatest 1
Avatar
u have 43 niw=+
13:43
now?
Avatar
oh ok
Avatar
with the rise
13:43
yeah itsn ot same as germany kek
Avatar
wait but why the 52
Avatar
but my father gets 14k for reference
Avatar
u confuse me
Avatar
Avatar
Jupstar ✪
wait but why the 52
52 is the 20% rise
13:44
on top of the 30
13:44
they said will come if i keep doing good
Avatar
Avatar
Ryozuki
and then 20%
for what the 20%?
13:44
ah
13:44
xd
13:44
i get 33k, i got a 30% so now 43k
Avatar
52 is already senior level payment
Avatar
then 20% maybe in the future
Avatar
that would be good
13:45
ofc depends on region
13:45
in barcelona probably u should get more
Avatar
on spain
13:45
im like a living rich
13:45
or close
13:45
medium high
13:45
i only have 1 friend who is close
13:45
he gets 30k
13:45
he is devops
13:45
well he just got the rise to 30k
Avatar
Avatar
Jupstar ✪
52 is already senior level payment
Are you trying to say our ryozooki isn't senior level?
Avatar
Avatar
Learath2
Are you trying to say our ryozooki isn't senior level?
im not xD
Avatar
Avatar
Learath2
Are you trying to say our ryozooki isn't senior level?
does the payment reflect the skill ever? xd
13:46
well rarely
Avatar
Avatar
Jupstar ✪
does the payment reflect the skill ever? xd
Rarely indeed. It's all Reagan's fault
troll 1
Avatar
Avatar
Ryozuki
im not xD
You are now
Avatar
i consider myself skilled atp rogramming
13:47
but not enough yet at soft things
13:47
like managing
13:47
or considering decisions
13:47
i like too much interesting stuff
13:47
to choose the boring answers (edited)
Avatar
@Learath2 what salery do you aim for? i guess u could aim for 48k?
Avatar
and probs correct ones
Avatar
Who cares about managing. That's wht we have managers
Avatar
ok not manager, but tech lead
13:48
in this industry sadly u need to become more social
13:48
to go upwards
13:48
i think
Avatar
Avatar
Jupstar ✪
@Learath2 what salery do you aim for? i guess u could aim for 48k?
I honestly don't really care for now, I just need things to pad my CV so as long as I don't starve, it's fine
Avatar
Avatar
Learath2
I honestly don't really care for now, I just need things to pad my CV so as long as I don't starve, it's fine
it's not about salery anyway either ur job is cool or your job offers good opportunities for 1st money wont matter as much, second will give u money in long run xd
Avatar
I don't think I'd be worth that much tbf. I'm a generalist that is very well versed in a language that is on life support and a language that everyone can't wait to replace. With no professional experience whatsoever
Avatar
@Learath2 if u have a nice salary then what matters most is if ur job is interesting
13:51
it changes so much
Avatar
With a lackluster portfolio. I'm a very very risky hire
Avatar
ur life
13:51
i worked before in some nodejs pdf shit
Avatar
Not good for shareholder value
Avatar
Avatar
Learath2
I don't think I'd be worth that much tbf. I'm a generalist that is very well versed in a language that is on life support and a language that everyone can't wait to replace. With no professional experience whatsoever
were do u want to apply anyway?
Avatar
and now im doign compilers
Avatar
in germany only certs matter
Avatar
Avatar
Learath2
With a lackluster portfolio. I'm a very very risky hire
u will havemore luck with startups for a first job
Avatar
they dont pay after skill xd
13:51
murica only skill matters
Avatar
@Learath2 i already dmed u some time ago but if u ever want to apply i can recommend u
13:52
tbh i think u would get along with my coworker, the gdb wizard
13:52
x
13:52
xd
13:52
also he is obsessed with wanting to make his own cpu design
Avatar
Avatar
Ryozuki
also he is obsessed with wanting to make his own cpu design
understandable 😬
Avatar
his uni thesis was smth about making matrices rly perfomant or smth with assembly
13:53
i forgor
Avatar
Avatar
Jupstar ✪
were do u want to apply anyway?
I'm thinking europe, haven't thought more specifically than that for now. Maybe netherlands or germany. I could also consider japan while I'm still young enough to be able to endure the 12 hour japanese work day
Avatar
some cache analysis or smth
Avatar
Avatar
Ryozuki
@Learath2 i already dmed u some time ago but if u ever want to apply i can recommend u
I could actually. Barcelona isn't a half bad place to live in
Avatar
i love barcelona, its the city with the most city vibes i ever went
13:54
idk what that means but i know
Avatar
Understandable, vibes are hard to describe
Avatar
did u ever live in rome?
13:55
somehwo it smelled worse than barcelona in the center
Avatar
Avatar
Jupstar ✪
in germany only certs matter
What certs would a software engineer even get anyway? I thought those were more an IT thing
Avatar
a problem is tourists pissing on the small streets of the old city center
💀 1
Avatar
Cisco certified network engineer
Avatar
because there was a time where designers thought having close and not open spaces was better against deseases
13:55
but its the opposite XD
Avatar
Avatar
Ryozuki
did u ever live in rome?
Nope, but I did go there twice
Avatar
Avatar
Learath2
What certs would a software engineer even get anyway? I thought those were more an IT thing
i meant like bachelor and stuff
13:56
anything that qualifies u
Avatar
@Learath2 did u visit "el barrio gotico"
Avatar
Avatar
Jupstar ✪
i meant like bachelor and stuff
Oic
Avatar
in barcelona
Avatar
Avatar
Ryozuki
@Learath2 did u visit "el barrio gotico"
Nope. The gothic bar? 😄
13:56
its a neighbourhood
13:56
in the oldest part of the city
13:57
The Gothic Quarter (Catalan: Barri Gòtic [ˈbari ˈɣɔtik] or El Gòtic; Spanish: Barrio Gótico) is the historic centre of the old city of Barcelona. It stretches from La Rambla to Via Laietana, and from the Mediterranean seafront to the Ronda de Sant Pere. It is a part of Ciutat Vella district. The quarter encompasses the oldest parts of the city o...
Avatar
I may have. Idk it's been so long since I've been to Barcelona
Avatar
i wanted to show a pic of the views from the office b ut idk about google map lurkers
Avatar
Let me look at a couple landmarks and see if I remember any
Avatar
we have direct sight of sagrada familia
Avatar
Avatar
Ryozuki
i wanted to show a pic of the views from the office b ut idk about google map lurkers
Don't, konsti
Avatar
ill post it and delete
13:59
:p
Avatar
Avatar
Ryozuki
ill post it and delete
Irc never forgets
13:59
xD
Avatar
That is an amazing view though
Avatar
I'll now camp in front of your building and take your kidneys
Avatar
that seems like an easy job for geoguessr
Avatar
indeed
14:00
but well its not my house
Avatar
66cc7b5 Update translations for upcoming 18.1 - def- 9346aa9 Merge pull request #8045 from def-/pr-18.1-transl - Robyt3
Avatar
new bug
troll 2
14:01
take an image, name it something idk, then rename it to something that can be external and export will go out of the box
Avatar
Avatar
Learath2
I honestly don't really care for now, I just need things to pad my CV so as long as I don't starve, it's fine
I think @deen also indicated in the past that he could recommend people for some job, but maybe that's a thing of the past already
Avatar
vec3 p,q=vec3(-.1,.65,-.6);for(float j,i,e,v,u;i++<130.;o+=.007/exp(3e3/(vvec4(9,5,4,4)+e4e6))){p=q+=vec3((FC.xy-.5r)/r.y,1)e;for(j=e=v=7.;j++<21.;e=min(e,max(length(p.xz=abs(p.xz*rotate2D(j+sin(1./u+t)/v))-.53)-.02/u,p.y=1.8-p.y)/v))v/=u=dot(p,p),p/=u+.01;} #つぶやきGLSL
14:09
video
14:09
twigl.app is an online editor for One tweet shader, with gif or webm generator and sound shader.
poggers2 2
14:09
insane
Avatar
I love this sort of stuff. Such a small algorithm generating such beauty
Avatar
Reported by cyberFighter on Discord:
take an image, name it something idk, then rename it to something that can be external and export will go out of the box
!image The bug seems to be already present in 17.4, so it's not a regression in 18.1.
Avatar
😮 works way too good (edited)
Avatar
?
14:15
trying to replace grass_doodads and it does this
Avatar
Replace with itself?
14:18
Then use "Readd" instead
Avatar
well it was an embedded one so i thought to replace it
14:29
Avatar
Avatar
mind
Click to see attachment 🖼️
you only get every second tick from the server. maybe the tooltip could be reworded
Avatar
Avatar
heinrich5991
you only get every second tick from the server. maybe the tooltip could be reworded
Depends on sv_high_bandwidth value, which is 0 per default. Could be changed to "Go to next/previous tick" I guess.
Avatar
snapshot
Avatar
Avatar
Robyt3
Depends on sv_high_bandwidth value, which is 0 per default. Could be changed to "Go to next/previous tick" I guess.
yes
Avatar
but can't we also interpolate the tick
14:35
then the logic would always be the same
Avatar
it might work for skipping to the next tick, but I don't think skipping backwards works with interpolation
Avatar
how so
14:37
  • back to prev. snapshot
  • then interpolate
14:37
or let's call it prediction tick
14:37
that's more clear
14:38
but u could ofc also interpolate between both snapshots
Avatar
more ticks might be missing, though
14:38
at what point should we stop interpolating?
Avatar
Avatar
heinrich5991
more ticks might be missing, though
predict until tick count is equal
Avatar
for one tick, I can see that work. for more, I think that's a bad idea because it might show users things that didn't actually happen
Avatar
that's already the case now
14:40
how should the demo know if an entity spawned for 1 tick if it was never included in a snapshot
14:40
we know the current snapshot and the input of the next snapshot
14:40
that's all we need
Avatar
Avatar
Jupstar ✪
that's already the case now
what I was trying to say is: for one tick the effects of that are likely small. for more, they might show more discrepancies
14:42
(I'm not sure I completely understood your messages. interpreted them as: it might happen with just one tick as well)
Avatar
all i was saying it, that the demo is never smooth in that case anyway the demo already interpolates anyway
14:43
if it interpolates between two snapshots or between an imaginary inserted tick doesnt matter then anymore
Avatar
@heinrich5991 have u ever thought about logging without global variables? xd
Avatar
I have
15:11
when I looked at it, I thought it might have pretty bad performance implications though
15:11
because you have to pass the logging everywhere
Avatar
well a global logger might have one too.. e.g. a once_cell wrapper will always have to deref
Avatar
you effectively lose one register to that. it becomes worse if it gets spilled to the stack
15:13
you mean the if? ye, that's a performance concern, but at least it should be always predicted correctly
Avatar
passing stuff is prbably negatable also to make it clear. i mean global variables, not global state
15:13
if ur component clones the logger arc. i am fine with that
Avatar
Avatar
Jupstar ✪
passing stuff is prbably negatable also to make it clear. i mean global variables, not global state
I don't think that passing stuff is negligible, if it happens everywhere
15:14
ah, so without passing it every time. I haven't thought about that like that yet (edited)
Avatar
i think heinrich is right
15:14
if u pass it always*
15:15
a global is like knowing a constant address so u dont need a register or stack to hold it
Avatar
i dunno, it's ofc there, but to me it's on a level with index checks etc. it's negatable
Avatar
Avatar
Ryozuki
a global is like knowing a constant address so u dont need a register or stack to hold it
that's true, but how do you intialize that global?
15:16
a global lock also cannot have optimizations for runtime stuff easily
15:16
e.g. batching
15:16
a global variable which needs a lock*
15:16
well anyway, let's say it makes my programm 5% slower
15:17
i doubt that but ok
Avatar
Avatar
Jupstar ✪
well anyway, let's say it makes my programm 5% slower
is this real jupstar
Avatar
so back to the non global variable: how would you imagine it?
Avatar
currently i have a global state logger and from that u kinda allocate a local one, that has a unique id/name whatever
15:18
my goal is to have the possiblity to disable/filter logging of some stuff, without loosing it.
Avatar
Avatar
Ryozuki
is this real jupstar
let's say it like this: i can understand the appeal of global loggers, global allocators
15:19
it makes stuff easier to write
15:19
but i hate global variables
15:19
xd
15:20
if u'd have a 100% truely non global variable program, u could literally make every lib a .so load unload it at runtime and it will for ever work
15:20
ofc global state is also a problem
Avatar
tbh im at gym rn so hard to think xd
Avatar
for logging the global state would probably simply live in the most upper component, e.g. the client. so every component beneath can be reloaded
15:21
xd
Avatar
Avatar
Ryozuki
tbh im at gym rn so hard to think xd
xdd i talk shit anyway
Avatar
Avatar
Jupstar ✪
if u'd have a 100% truely non global variable program, u could literally make every lib a .so load unload it at runtime and it will for ever work
whats the problem with globals and dyn libs?
Avatar
but i want to consider some designs. logging to me is a rather boring topic but if it's epic future proof, who knows how a design would look like
15:22
is logging rly a overhead for u?
15:22
are u doing HFT
Avatar
Avatar
Ryozuki
whats the problem with globals and dyn libs?
well depends on the global var. but generally it might be a different global variable or do some shady memory stuff
Avatar
Avatar
Ryozuki
is logging rly a overhead for u?
no, not really, i don't have an huge amount of logging yet i often do log driven debugging
15:23
but dunno, it gets removed afterwards xD
15:24
@Jupstar ✪ do u think smth like compiler supported logging would be useful
15:24
i wonder how a compiler can help
15:24
to make logging better
15:24
less overhead (edited)
Avatar
well my naive view on logging is that it always has a lock either in your impl, or in the OS
15:25
so probably it cant help a lot
Avatar
will take a look later, currently afk
Avatar
why is it desirable to pass around an address everywhere if you aren't even avoiding global state?
Avatar
Avatar
Learath2
why is it desirable to pass around an address everywhere if you aren't even avoiding global state?
you could also make it the other way around. if you use a global variable in your lib, the variable is bound to your lifetime of the lib, so it's "shady" memory management. Additionally you will loose the state of your global variable if you unload and reload the lib. And this happens opaque to a coder
15:40
also global variables are kind of less explicit
Avatar
Avatar
Jupstar ✪
you could also make it the other way around. if you use a global variable in your lib, the variable is bound to your lifetime of the lib, so it's "shady" memory management. Additionally you will loose the state of your global variable if you unload and reload the lib. And this happens opaque to a coder
If you unload the logging library, wouldn't it make sense that the variable is now out of scope?
Avatar
Avatar
Learath2
If you unload the logging library, wouldn't it make sense that the variable is now out of scope?
maybe u passed a log item somewhere, which is also invalid now ofc this is kinda weird argument, bcs i doubt u'd program like that however, generally global variables could cause this
15:42
and it depends on how your global var looks like, e.g. if it is wrapped in an Arc or some heap object
Avatar
I don't really see how it's not possible if you are passing the pointer to global state around
15:43
You pass me a global state variable, unload yourself, now I have a dangling pointer
Avatar
Avatar
Learath2
I don't really see how it's not possible if you are passing the pointer to global state around
how should that happen with global state?
15:44
im in rust btw
15:44
then the allocator would need to be local too
Avatar
If there is global state that your logger must reference no matter what to do the logging. The unique local loggers you pass around have to contain some reference to that state, no?
Avatar
yes, here is the question how that ref looks like
Avatar
No matter what that ref looks like, can't it go out of scope the same way the entire global variable you avoided can go out of scope?
Avatar
Avatar
Learath2
No matter what that ref looks like, can't it go out of scope the same way the entire global variable you avoided can go out of scope?
well depends where your global state is allocated
15:47
maybe that was a bad example
Avatar
But couldnt the global variable also be allocated there to avoid scope issues in the same way?
Avatar
Avatar
Learath2
But couldnt the global variable also be allocated there to avoid scope issues in the same way?
it could yes
15:47
could
Avatar
Avatar
Learath2
Rarely indeed. It's all Reagan's fault
what ? what's the relation between Reagan and salary = skill ?
Avatar
Avatar
Ryozuki
in this industry sadly u need to become more social
everywhere you need to have social skills
Avatar
Avatar
Learath2
But couldnt the global variable also be allocated there to avoid scope issues in the same way?
ok my main problems are the one you already know:
  • modularity, a global var cannot be switched with a different instance (e.g. having 2 global states)
  • debugging. having to pass stuff makes it easy to replace it for debugging for a specifc area
  • performance (depends on the impl) you could™️ batch stuff etc in case of a local logger instance (you can probably do smth similar with globals too, the only difference is that with a global variable you'd most likely not want to pollute your function arguments/constructors in first place, bcs that defeats the argument about that)
15:53
actually i also didnt want a discussion about global vars xD
15:53
i just want to know if anyone here ever made a logger without global vars
15:53
and see the impl, or hear about challenges, ideas whatever
Avatar
Avatar
Chairn
what ? what's the relation between Reagan and salary = skill ?
Well I guess it depends on how you define "skill", neoliberalism ushered in the era of wages and profit being more dependent on how socially and economically savvy you are rather than how skilled you are at your craft
Avatar
Avatar
Jupstar ✪
ok my main problems are the one you already know:
  • modularity, a global var cannot be switched with a different instance (e.g. having 2 global states)
  • debugging. having to pass stuff makes it easy to replace it for debugging for a specifc area
  • performance (depends on the impl) you could™️ batch stuff etc in case of a local logger instance (you can probably do smth similar with globals too, the only difference is that with a global variable you'd most likely not want to pollute your function arguments/constructors in first place, bcs that defeats the argument about that)
  • You can have an extra level of indirection (which in your current design the local loggers provide) baked into the global variable to begin with (e.g. main component holds a global variable which contains a pointer to the logger component that is currently loaded, one could even have shared_ptrs/arcs to keep the old instance alive if two global loggers being alive at the same time is desired)
  • Debugging with globals is indeed rather annoying
  • Batching almost always has nasty looking api anyway, I can see why you might not want that in your global namespace, but I doubt you get any extra performance if you implement it on a local logger rather than a global one
Avatar
Avatar
Jupstar ✪
actually i also didnt want a discussion about global vars xD
me neither, I was curious why you thought avoiding one with a logger would help
Avatar
Avatar
Learath2
me neither, I was curious why you thought avoiding one with a logger would help
Well u could have a sync point per thread which writes to the logger. There are so many ideas, so why not try out and see how far I come
16:08
And if I fail, that's OK too
Avatar
If I were building such a logger I'd see if I could get rid of all global state as well, relying on some OS mechanism to make sure my lines don't get interleaved
Avatar
Avatar
Learath2
If I were building such a logger I'd see if I could get rid of all global state as well, relying on some OS mechanism to make sure my lines don't get interleaved
Under stable. My idea for the global state was to have some kind of fallback mechanism if u want a logger that can filter other loggers at runtime. So it could recollect all log even if expensive
16:10
But probably not worth it anyway xdd
16:11
But console logs also != client logs for me.. Client logs could contain ids to actually identify where the logs come from
16:11
That would probs require global state too
Avatar
Anyway, I'm a global state enjoyer, so I probably wouldn't bother messing around with it anyway. The way I see it a logger is a perfectly fine place to use global state and variables
16:13
I'm big on using features and paradigms that people with fancy degrees and articles don't like. It gives me some sort of primal pleasure
Avatar
Avatar
Learath2
Anyway, I'm a global state enjoyer, so I probably wouldn't bother messing around with it anyway. The way I see it a logger is a perfectly fine place to use global state and variables
Global state or var?
16:13
I'm impressed how much stuff just works if u don't use global variables anywhere
Avatar
Avatar
Jupstar ✪
Global state or var?
I think I'd implement one using both, with minimal locking preferably, would have to think about it and have requirements in front of me
Avatar
I can create 100 demo viewers and it just works xd
16:14
I also minimize global state
16:15
But don't avoid it
Avatar
The trick to using global state in a sane way is to make sure something is truly global, most issues arise when scopes of variables are extended beyond their useful life. This isn't just an issue for globals but for every scope IMO
Avatar
That's true
16:20
For logging i'm defs more open for using them than other stuff (edited)
Avatar
I guess the reason globals get the most flak is that it's usually the wrong scope since it's the largest scope 😄
Avatar
@Jupstar ✪ im thinking of getting a 7900x3d
16:33
the 3d is better for compile right?
16:33
more cache
Avatar
It's better in almost anything
16:35
I want it too but i wait for next gen
Avatar
Avatar
Ryozuki
@Jupstar ✪ im thinking of getting a 7900x3d
@meloƞ
Avatar
Avatar
Jupstar ✪
I want it too but i wait for next gen
got some spare mony xs
Avatar
im more than happy with it
Avatar
when is next gen?
16:38
they will share same socket anyway
Avatar
Avatar
Ryozuki
when is next gen?
Q3 I heard
16:40
And next year x3d
Avatar
i rly wanna see it compile
16:41
and higher mhz ram
16:41
also i need a better case
16:41
need to fuel ny rust addiction
Avatar
hey, it's stupid question saturday and here's my question. what mafs should i apply to draw things in ehh.. like on a map, not just on a screen xD i want to draw rectangle and when i go spec i want it go stay on map, u know justatest
Avatar
Avatar
MilkeeyCat
hey, it's stupid question saturday and here's my question. what mafs should i apply to draw things in ehh.. like on a map, not just on a screen xD i want to draw rectangle and when i go spec i want it go stay on map, u know justatest
i don't understand tf u want xdd
17:09
u want a rect that is fixed at a specific view?
17:09
independent of the map?
17:09
at a fixed position*
Avatar
yes
Avatar
graphics->mapscreen
17:09
u can also query the current mapped screen to restore it later
17:10
in case it happens during the map rendering
17:10
i am always impressed that discord never takes action for such obvious scams
17:11
it's the 20th time i saw that now
Avatar
I opened this chat and that link instantly appeared xD
Avatar
=> u are the scammer
17:11
😬
Avatar
ok maybe that's not waht i wanted justatest
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 (especially base/) or added coverage to integration test
  • [ ] 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-ad...
🇸🇪 1
Avatar
damn the spam lately is big
17:29
@Jupstar ✪ il lget it by 25 march
17:30
AMD Ryzen 9 7900X3D 4.4GHz/5.6GHz
Avatar
Avatar
Ryozuki
@Jupstar ✪ il lget it by 25 march
when will you get mine again?
Avatar
Avatar
Ryozuki
AMD Ryzen 9 7900X3D 4.4GHz/5.6GHz
why not 16 cores?
17:30
is it so much more expensive?
Avatar
i got it for 459
17:31
17:31
the 7950x3d is 656
Avatar
Avatar
Ryozuki
the 7950x3d is 656
u live in EU bro
17:32
AMD Desktop von AMD | AMD Ryzen 9 7950X3D 16x 4.20GHz So.AM5 WOF :: Lagernd :: über 7.060 verkauft :: 27 Jahre Kompetenz | Hier bestellen
17:32
569
Avatar
its ok
17:32
its already overkill xd
17:33
12 cores 24 threads at 5.6ghz
17:33
@Jupstar ✪ do u know if i can overclock it so it uses 6000mhz ram
17:33
it says it uses 5200 by def
Avatar
Avatar
Ryozuki
@Jupstar ✪ do u know if i can overclock it so it uses 6000mhz ram
depends on mb
17:47
ye it allows it
17:47
got the good chipset xd
Avatar
yeah
17:48
it supports up to 8000
17:48
with XMP
17:48
u have to manually enable it btw
17:48
i got 6000mhz ram
17:48
Corsair Vengeance RGB DDR5 6000MHz PC5-48000 32GB 2x16GB CL36 Negra
17:49
i hear cl32 is best but its double price
Avatar
yep
17:49
but with your cache size
17:49
it probably wont matter too much xd
20:10
tff
Avatar
ChillerDragon: I assume you know https://sdomi.pl/ already?
Avatar
ryo dont u have 5th gen ryzen already
Avatar
Avatar
Ewan
ryo dont u have 5th gen ryzen already
i got 5800x
Avatar
u just buying every new gen or what
Avatar
which is a good cpu
21:29
but yeah
21:29
im addicted to cpus i guess
21:29
2024 problems
Avatar
how come i only have the third fastest processor here now
21:29
no fair
Avatar
which u got?
Avatar
well technically i dont have it till 25
21:29
i think 7900x3d is faster by a small margin
21:30
but i heard the cache helps massively in some use cases
21:30
u have my cpu on steroids
21:30
will have at least
Avatar
for example 7900x3d works a lot better for factorio
21:30
factorio is limited by cache misses xd
21:33
@Ewan have u found a pcie 5 m2?
Avatar
crucial t700
21:33
$$ but fast
21:33
how fast is ram?
21:33
how fast is that m2
Avatar
i have 6000
Avatar
i wonder if drives are getting near (edited)
Avatar
m.2 is 12,400MBps read
21:33
idk about raw bandwidth on ram
21:34
probably tremendous
Avatar
DDR5 also has higher frequencies than DDR4, up to 8GT/s which translates into 64 GB/s (8000 MT/s * 64-bit width / 8 bits/byte = 64 GB/s) of bandwidth per DIMM.
21:34
ok not close yet
Avatar
but its not that far anymore
Avatar
gpus are past there tho
21:34
4090 is ~1TBps iirc
Avatar
912GB/s Running on the latest NVIDIA Ampere architecture, the 3080 Ti GPU comes with 12GB of GDDR6X memory and a 384-bit memory interface for 912GB/s of memory bandwidth.
21:34
for the 3080
Avatar
but gpu memory is more limited
21:35
in what u can use it for
21:35
unfair
21:35
we need to use the gpu for more than graphics and fodder
21:36
there are some desktop tasks that the gpu would probably be really good for
21:36
that they aren't being utilized for
21:36
like archive de/compression (edited)
Avatar
@Ewan do u know if browsers already use available gpu for audio decoding whathever?
21:38
or maybe its only encoding
Avatar
that's not a thing atm
Avatar
my mpv uses gpu
Avatar
gpus as far as audio goes are just usb or spdif equivalent input and output devices exposed by the driver
Avatar
❯ mpv \[SubsPlease\]\ Sousou\ no\ Frieren\ -\ 25\ \(1080p\)\ \[7423AE35\].mkv (+) Video --vid=1 (*) (h264 1920x1080 23.976fps) (+) Audio --aid=1 --alang=jpn (*) (aac 2ch 44100Hz) (+) Subs --sid=1 --slang=eng (*) 'English subs' (ass) Using hardware decoding (nvdec). AO: [pipewire] 44100Hz stereo 2ch floatp VO: [gpu] 1920x1080 cuda[nv12] Exiting... (Quit)
Avatar
they don't rly have audio encode or decode yet
21:39
nvdec is video decode
21:39
they might have added something that i dont know about
21:39
someone would need to write nvidia aac encoder
Avatar
btw is there a way to reset the clipboard colors to default
Avatar
clipboard colorsa
Avatar
yes its a ddnet feature
21:42
sorry
Avatar
what are clipboard colors? (edited)
Avatar
is it an editor thing
Avatar
like theres colors on the top right of the editor
Avatar
restarting the client seems to reset them @cyberFighter
Avatar
thats too much just to reset them
21:44
imo
Avatar
why do you want to reset them in the first place? ^^
Avatar
have u tried looking for color in f1
21:45
u can also flush ur entire config if u want
Avatar
it doesn't seem to be persisted anyway
Avatar
Avatar
heinrich5991
what are clipboard colors? (edited)
i called clipboard because of this btw
Avatar
ah 🙂
22:22
it was a new feature I didn't know yet
Avatar
ChillerDragon: continue checking out matrix DMs, not sure if you need a reminder for this
Avatar
6ab99c4 Update Swedish translations for 18.1 - furo321 e63cebf Merge pull request #8048 from furo321/swedish-18.1 - def-
Avatar
82b27c8 Update brazilian_portuguese.txt - rffontenelle 885ae7e Merge pull request #8049 from rffontenelle/patch-4 - def-
Avatar
wait why community filter is not filter menu only entry
23:04
i don't want to see it while checking the server info :/
Exported 727 message(s)