overte-org / overte

Overte open source virtual worlds platform.
https://overte.org/
Other
128 stars 47 forks source link

MToon not supported in GLES #1054

Open JulianGro opened 2 days ago

JulianGro commented 2 days ago

Trying to build Overte with GLES support (using the USE_GLES=true environment variable) fails with:

Processing file /home/juliangro/overte/libraries/gpu/src/gpu/DrawTexcoordRectTransformUnitQuad.slv dialect 310es variant mono defines 
Processing file /home/juliangro/overte/libraries/render-utils/src/model.slf dialect 310es variant mono defines mtoon
Processing file /home/juliangro/overte/libraries/render-utils/src/model.slf dialect 310es variant stereo defines mtoon
Traceback (most recent call last):
  File "/home/juliangro/overte/tools/shadergen.py", line 292, in <module>
    main()
  File "/home/juliangro/overte/tools/shadergen.py", line 255, in main
    for result in executor.map(processCommand, commands):
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 621, in result_iterator
    yield _result_or_cancel(fs.pop())
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 319, in _result_or_cancel
    return fut.result(timeout)
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 458, in result
    return self.__get_result()
  File "/usr/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
  File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/juliangro/overte/tools/shadergen.py", line 220, in processCommand
    executeSubprocess([glslangExec, '-V110', '-o', upoptSpirvFile, unoptGlslFile])
  File "/home/juliangro/overte/tools/shadergen.py", line 158, in executeSubprocess
    raise RuntimeError('Call to "{}" failed.\n\narguments:\n{}\n\nstdout:\n{}\n\nstderr:\n{}'.format(
RuntimeError: Call to "/home/juliangro/overte-files/vcpkg/d43de0ee/installed/arm64-linux/tools/glslangValidator" failed.

arguments:
-V110 -o /home/juliangro/overte/build/libraries/shaders/shaders/render-utils/310es/model_mtoon.frag.spv /home/juliangro/overte/build/libraries/shaders/shaders/render-utils/310es/model_mtoon.frag

stdout:
/home/juliangro/overte/build/libraries/shaders/shaders/render-utils/310es/model_mtoon.frag
ERROR: /home/juliangro/overte/build/libraries/shaders/shaders/render-utils/310es/model_mtoon.frag:1799: 'scalar swizzle' : not supported with this profile: es
ERROR: /home/juliangro/overte/build/libraries/shaders/shaders/render-utils/310es/model_mtoon.frag:1799: '' : compilation terminated 
ERROR: 2 compilation errors.  No code generated.

SPIR-V is not generated for failed compile or link

stderr:

make[2]: *** [libraries/shaders/CMakeFiles/shadergen.dir/build.make:2952: libraries/shaders/shaders/gpu/310es/DrawTexcoordRectTransformUnitQuad.vert] Error 1
make[2]: *** Deleting file 'libraries/shaders/shaders/gpu/310es/DrawTexcoordRectTransformUnitQuad.vert'
make[1]: *** [CMakeFiles/Makefile2:1874: libraries/shaders/CMakeFiles/shadergen.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

Running the make command again seems to just skip that step, even if I delete the build directory. I have no idea where they are cached/saved.

@HifiExperiments is this maybe just a small issue, or should we consider dropping GLES support? (I haven't seen any system where Overte properly worked on GLES yet.)

HifiExperiments commented 2 days ago

whoopsie, my bad! small fix, we gotta keep GLES support around for android, which works perfectly 😉