What's everyone working on this week (39/2021)?

New week, new Rust! What are you folks up to?

Besides the Rust I write in my day work, I'm writing a couple articles based on the common mistakes and bad habits mentioned in this thread:

Check out the PR for a sneak preview.

2 Likes

I added SIMD to my lossless video encoder. On a single image, it now performs faster than image-png (which does not have SIMD). C libpng was a source of inspiration for SIMD tricks. (but core_simd is unstable and packed_simd_2 is incomplete)

With avx2 I could in theory speed up to 32×, but each pixel depends on the precedent one, so only 4× or 3× can be achieved (depending on the bytes per pixel). I wonder if dividing the image into slices and then SIMD across slices would be efficient. (because accessed pixels would be very distant from each other in memory)

Next step is to improve the screen sharing example into a usable videoconferencing tool.

I don't have a professional outlet, nor a useful idea for a personal project, so I'm just coding for fun. I've been revisiting my childhood and attempting to implement DOOM in Rust. I want to see if I can get it running in a web browser with WASM using pure software rendering.

I tell you what, it's incredible how little error checking there is in id's source code. Rust does not let me read a file directly into an array of structs while ignoring memory safety issues and throwing all the error codes in the trash.

1 Like