armory icon indicating copy to clipboard operation
armory copied to clipboard

[Krom | Windows] Shader compiler error while exporting skinned meshes

Open knowledgenude opened this issue 3 years ago • 6 comments

While trying to export an .exe for the open jam, i faced this error.

The error doesn't happens while exporting for Linux (Krom).

Info: Publishing project, check console for details.

Compiling shader 1 of 28 (Ch32_body_armskin_mesh.frag.glsl) failed: Shader compiler error. (node:5687) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Shader compiler error. (node:5687) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. Compiling shader 3 of 28 (Ch32_body_armskin_shadowmap.vert.glsl) failed: Shader compiler error. Compiling shader 2 of 28 (Ch32_body_armskin_mesh.vert.glsl) failed: Shader compiler error. Compiling shader 4 of 28 (Checker_mesh.frag.glsl) failed: Shader compiler error. Finished in 44.450s

knowledgenude avatar Apr 22 '21 19:04 knowledgenude

Are you trying to export from Windows or Linux?

If it's the latter, I think this issue may be because https://github.com/Kode/krafix might not support cross-compiling from linux for directx, though I'm not sure

Update

RobDangerous confirmed it that isn't possible to cross-compile from linux to directx bytecode because of libraries not available.

As a side note, maybe a check could be added to the exporter to detect this and halt the process with a pretty message instead of that error :sweat_smile:

N8n5h avatar Apr 23 '21 01:04 N8n5h

@N8n5h , thanks for the answer! Do you think that would be possible to export to DirectX trough WineHQ? In my test another error appeared:

Screenshot from 2021-04-23 11-36-28

Also i've tried to export to OpenGL from Linux and after the project is successfully exported, an exception is throw and the folder with .exe is not generated at all:

Finished in 52.289s
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/home/henrique/Documents/Armory/blender-2.83.13-linux64/2.83/python/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/home/henrique/Documents/Armory/blender-2.83.13-linux64/2.83/python/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/home/henrique/Documents/Armory/ArmorySDK//armory/blender/arm/make.py", line 35, in fn
    done()
  File "/home/henrique/Documents/Armory/ArmorySDK//armory/blender/arm/make.py", line 444, in build_done
    build_success()
  File "/home/henrique/Documents/Armory/ArmorySDK//armory/blender/arm/make.py", line 583, in build_success
    shutil.copy(krom_location, files_path + '/Krom.exe')
  File "/home/henrique/Documents/Armory/blender-2.83.13-linux64/2.83/python/lib/python3.7/shutil.py", line 248, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/home/henrique/Documents/Armory/blender-2.83.13-linux64/2.83/python/lib/python3.7/shutil.py", line 120, in copyfile
    with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: '/home/henrique/Documents/Armory/ArmorySDK/Krom/Krom_opengl.exe'

knowledgenude avatar Apr 23 '21 14:04 knowledgenude

Do you think that would be possible to export to DirectX trough WineHQ?

By briefly investigating this popped up: https://github.com/samhocevar/d3d4linux, so it seems doable that way if done in a similar fashion.

Also i've tried to export to OpenGL from Linux and after the project is successfully exported, an exception is throw and the folder with .exe is not generated at all

The issue occurs because there is no opengl krom binary by default included in the sdk, just for directX https://github.com/armory3d/kromx_bin. Maybe compiling https://github.com/armory3d/armorcore with -g opengl on Windows could work, but haven't tested it...

N8n5h avatar Apr 25 '21 00:04 N8n5h

I've configured a workflow to build a opengl windows executeable in armorcore which stores the binary for download: https://github.com/tong/armorcore/actions/runs/3743141811

Any windows users who can confirm it works?

Note: Since only users with write permissions to the repository can access artifacts you have to add the workflow config to your fork of armory3d/armorcore and build the binary in your own repo/workflow (by checking out my branch).

tong avatar Dec 20 '22 19:12 tong

I got a report that the exe is working.

tong avatar Dec 21 '22 13:12 tong

Any windows users who can confirm it works?

Works for me as well (I could download the artifact btw, without write permissions I guess).

MoritzBrueckner avatar Dec 23 '22 00:12 MoritzBrueckner