Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows GCC error: Pixie doesn't work #528

Open
exitcas opened this issue Feb 3, 2023 · 1 comment
Open

Windows GCC error: Pixie doesn't work #528

exitcas opened this issue Feb 3, 2023 · 1 comment

Comments

@exitcas
Copy link

exitcas commented Feb 3, 2023

Hi,

I've been having this weird problem.

I've been testing a lightly modified version of the 'Text spans' example. It works fine on GNU/Linux systems, but on Windows is seems to be a problem at the compiling level that I couldn't find out. I've tested with other examples and I got a similar result. This only seems to affect Nim scripts that use the Pixie library for some reason.

I don't know if this is some kind of bug, or some king of configuration from my part, I'll leave below the script I used originally and the compiler logs I got.

Thank you,

@exitcas.

Script:

import pixie

let image = newImage(400, 300)
image.fill(rgba(255, 255, 255, 255))

let typeface = readTypeface("archivo.ttf")

proc newFont(typeface: Typeface, size: float32, color: Color): Font =
  result = newFont(typeface)
  result.size = size
  result.paint.color = color

let spans = @[
  newSpan("[Text]", newFont(typeface, 15, color(0, 0, 0, 1)))
]

image.fillText(typeset(spans, vec2(400, 280)), translate(vec2(10, 10)))
image.writeFile("text_spans.png")

Logs:

E:\[directory where the script is located]>nim c generateCard.nim
Hint: used config file 'E:\Program Files\nim\config\nim.cfg' [Conf]
Hint: used config file 'E:\Program Files\nim\config\config.nims' [Conf]
.............................................................................................................................................................................
CC: stdlib_digitsutils.nim
CC: stdlib_assertions.nim
CC: stdlib_dollars.nim
CC: stdlib_widestrs.nim
CC: stdlib_io.nim
CC: stdlib_system.nim
CC: stdlib_math.nim
CC: stdlib_parseutils.nim
CC: stdlib_unicode.nim
CC: stdlib_strutils.nim
CC: C:/Users/[User]/.nimble/pkgs/vmath-1.2.0/vmath.nim
CC: C:/Users/[User]/.nimble/pkgs/bumpy-1.1.1/bumpy.nim
CC: C:/Users/[User]/.nimble/pkgs/chroma-0.2.7/chroma/colortypes.nim
CC: C:/Users/[User]/.nimble/pkgs/chroma-0.2.7/chroma/blends.nim
CC: stdlib_hashes.nim
CC: C:/Users/[User]/.nimble/pkgs/chroma-0.2.7/chroma/transformations.nim
CC: C:/Users/[User]/.nimble/pkgs/chroma-0.2.7/chroma.nim
CC: stdlib_dynlib.nim
CC: stdlib_winlean.nim
CC: stdlib_times.nim
CC: stdlib_win_setenv.nim
CC: stdlib_os.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/common.nim
CC: C:/Users/[User]/.nimble/pkgs/flatty-0.3.4/flatty/encode.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/blends.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/simd/sse2.nim
CC: C:/Users/[User]/.nimble/pkgs/nimsimd-1.2.4/nimsimd/runtimecheck.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/simd/avx2.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/simd.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/internal.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/images.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/paints.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/paths.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fontformats/opentype.nim
CC: stdlib_streams.nim
CC: stdlib_lexbase.nim
CC: stdlib_parsexml.nim
CC: stdlib_strtabs.nim
CC: stdlib_xmltree.nim
CC: stdlib_xmlparser.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fontformats/svgfont.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fonts.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fileformats/bmp.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/common.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/internal.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/bitstreams.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/adler32_simd.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/adler32.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/crc32_simd.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/crc.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/lz77.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/snappy.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy/deflate.nim
CC: C:/Users/[User]/.nimble/pkgs/zippy-0.10.7/zippy.nim
CC: C:/Users/[User]/.nimble/pkgs/crunchy-0.1.8/crunchy/crc32_simd.nim
CC: C:/Users/[User]/.nimble/pkgs/crunchy-0.1.8/crunchy/crc32.nim
CC: C:/Users/[User]/.nimble/pkgs/crunchy-0.1.8/crunchy/sha256.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fileformats/png.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fileformats/ppm.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fileformats/qoi.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie.nim
CC: generateCard.nim
In file included from e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\immintrin.h:43,
                 from C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:9:
C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c: In function 'fillUnsafeAvx_generate67ard_16':
e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\avxintrin.h:1326:1: error: inlining failed in call to 'always_inline' '_mm256_set1_epi32': target specific option mismatch
 1326 | _mm256_set1_epi32 (int __A)
      | ^~~~~~~~~~~~~~~~~
C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:598:20: note: called from here
  598 |         colorVec = _mm256_set1_epi32(LOC5.dest);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\immintrin.h:43,
                 from C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:9:
e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\avxintrin.h:921:1: error: inlining failed in call to 'always_inline' '_mm256_store_si256': target specific option mismatch
  921 | _mm256_store_si256 (__m256i *__P, __m256i __A)
      | ^~~~~~~~~~~~~~~~~~
C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:618:33: note: called from here
  618 |                                 _mm256_store_si256(((void*) (p)), colorVec);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: execution of an external compiler program '"E:\Program Files\Nim\dist\mingw64\bin\gcc.exe" -c  -w -fmax-errors=3 -mno-ms-bitfields -DWIN32_LEAN_AND_MEAN   -I"E:\Program Files\nim\lib" -IE:\[directory where the script is located] -o C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c.o C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c' failed with exit code: 1



E:\[directory where the script is located]>nim c generateCard.nim
Hint: used config file 'E:\Program Files\nim\config\nim.cfg' [Conf]
Hint: used config file 'E:\Program Files\nim\config\config.nims' [Conf]
.............................................................................................................................................................................
CC: stdlib_system.nim
CC: C:/Users/[User]/.nimble/pkgs/pixie-5.0.6/pixie/fonts.nim
CC: generateCard.nim
In file included from e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\immintrin.h:43,
                 from C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:9:
C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c: In function 'fillUnsafeAvx_generate67ard_16':
e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\avxintrin.h:1326:1: error: inlining failed in call to 'always_inline' '_mm256_set1_epi32': target specific option mismatch
 1326 | _mm256_set1_epi32 (int __A)
      | ^~~~~~~~~~~~~~~~~
C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:599:20: note: called from here
  599 |         colorVec = _mm256_set1_epi32(LOC5.dest);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\immintrin.h:43,
                 from C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:9:
e:\program files\nim\dist\mingw64\lib\gcc\x86_64-w64-mingw32\11.1.0\include\avxintrin.h:921:1: error: inlining failed in call to 'always_inline' '_mm256_store_si256': target specific option mismatch
  921 | _mm256_store_si256 (__m256i *__P, __m256i __A)
      | ^~~~~~~~~~~~~~~~~~
C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c:619:33: note: called from here
  619 |                                 _mm256_store_si256(((void*) (p)), colorVec);
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: execution of an external compiler program '"E:\Program Files\Nim\dist\mingw64\bin\gcc.exe" -c  -w -fmax-errors=3 -mno-ms-bitfields -DWIN32_LEAN_AND_MEAN   -I"E:\Program Files\nim\lib" -IE:\[directory where the script is located] -o C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c.o C:\Users\[User]\nimcache\generateCard_d\@mgenerateCard.nim.c' failed with exit code: 1
@exitcas exitcas changed the title Windows error: inlining failed in call to 'always_inline' '_mm256_set1_epi32': target specific option mismatch Windows GCC error: Pixie doesn't work Feb 3, 2023
@treeform
Copy link
Owner

That is very strange we test on Windows with GCC on every commit.

inlining failed in call to 'always_inline' '_mm256_set1_epi32': target specific option mismatch

I would try compiling without --d:pixieNoSimd ? Maybe your computer does not support AVX simd or your gcc is very old?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants