Windows ASTC compression fine, linux has errors?

22 views
Skip to first unread message

cullenskink52

unread,
Sep 1, 2020, 2:25:37 PM9/1/20
to ispc-...@googlegroups.com

Hi!
I am using the IPSC ASTC compression code as-is in a project - v 1.13.0. The project builds and runs on both Windows and linux. Attached is side by side compression of an image, LHS is Windows, RHS is linux. 
The RHS clearly has a bunch of macro blocks that are erroneous (the pink ones) though I am not seeing an obvious pattern other than maybe where there are gradients.

Has anyone seen this issue before? I noticed that building with clang, the ispc cpp files will throw some runtime sanitize warnings too (non 0 or 1 values for bools, signed integer overflow) - I am assuming those are fine to just turn off. 

Any help much appreciated! Debugging the individual blocks on two plaftforms doesn't sound overly fun :-D 

Thanks!

Al
comparison.png

Dmitry Babokin

unread,
Sep 1, 2020, 2:56:51 PM9/1/20
to ispc-...@googlegroups.com
Do you have your code open sourced?

Are you using released binaries or build ISPC yourself? I also would encourage you to try the latest release - v1.14.1. We fixed some bugs related to handling bools and others that might affect your code.

But generally speaking observing differences between Windows and Linux is not something that you would experience frequently.

I would also check if -O0 produces correct results on Linux.

Dmitry.

--
You received this message because you are subscribed to the Google Groups "Intel SPMD Program Compiler Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispc-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ispc-users/CAAqMa_4iMD%3DbAbvY8%3DBecoT26_ifUK%3DAi4nokkX_%2Bvo4CAZVjg%40mail.gmail.com.

cullenskink52

unread,
Sep 1, 2020, 3:12:50 PM9/1/20
to ispc-...@googlegroups.com
Sadly I can't open source the code, belongs to my employer, but the code to output an ASTC (in amongst a lot of other code nothing to do with images) is literally a wrapper around enc_astc_file() as per the example source; the application it is in happily loads other formats (JPG, PNG, BMP) through an intermediate uncompressed representation and writes them again correctly (so intermediate format and loading other images not at fault); when I substitute enc_astc_file() in our app on Windows, I get a correct ASTC out as above, and on linux the same code unchanged produces the example with bad blocks.
Let me try the -O0, that's a good plan. I admit, I am surprised - I am pretty sure you wouldn't release code behaving that differently between the two OSs, so I am suspecting something in our build environment (it's on a back end server, so maybe I am missing something obvious). 

Let me investigate more. I can try upgrading too.

Al

Reply all
Reply to author
Forward
0 new messages