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

glsl lang validator #1

Open
Kuranes opened this issue Dec 14, 2017 · 2 comments
Open

glsl lang validator #1

Kuranes opened this issue Dec 14, 2017 · 2 comments

Comments

@Kuranes
Copy link

Kuranes commented Dec 14, 2017

Would there be a way to get info log from the compiler ?

Like the standalone glslvalidator does

@AlexAltea
Copy link
Owner

It's not implemented yet, but sounds like a good idea. I don't have much time at the moment so a pull request would be definitely appreciated.

@Kuranes
Copy link
Author

Kuranes commented Dec 20, 2017

Ok I'll have a go then.

( I'd like to check about implementing -D flag (preprocess glsl only, no compilation) too if possible, would allow to double check real code compiled)

For now, first try at compiliing on ubuntu 16 is a no go ( emcc 1.22.1, clang 3.8 )

npm install 
apt install build-essentials llvm clang emscripten
export EMSCRIPTEN=/usr/share/emscripten
grunt build 

gives me compilation errors
[ 2%] Building CXX object glslang/CMakeFiles/glslang.dir/MachineIndependent/ShaderLang.cpp.o In file included from /sources/experiments/glslang.js/externals/glslang/glslang/MachineIndependent/ShaderLang.cpp:44: In file included from /usr/share/emscripten/system/include/libcxx/iostream:38: In file included from /usr/share/emscripten/system/include/libcxx/ios:216: In file included from /usr/share/emscripten/system/include/libcxx/__locale:15: In file included from /usr/share/emscripten/system/include/libcxx/string:439: In file included from /usr/share/emscripten/system/include/libcxx/algorithm:624: /usr/share/emscripten/system/include/libcxx/type_traits:433:76: error: no matching function for call to '__source' : public integral_constant<bool, sizeof(__is_function_imp::__test<_Tp>(__is_function_imp::__source<_Tp>())) == 1> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/share/emscripten/system/include/libcxx/type_traits:438:14: note: in instantiation of template class 'std::__1::__is_function<int () const, false>' requested here : public __is_function<_Tp> {}; ^ /usr/share/emscripten/system/include/libcxx/type_traits:443:90: note: in instantiation of template class 'std::__1::is_function<int () const>' requested here template <class _Tp, class _Up> struct __is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp> {}; ^ /usr/share/emscripten/system/include/libcxx/type_traits:446:14: note: in instantiation of template class 'std::__1::__is_member_function_pointer<int (glslang::TInputScanner::*)() const>' requested here : public __is_member_function_pointer<typename remove_cv<_Tp>::type> {}; ^ /usr/share/emscripten/system/include/libcxx/type_traits:460:38: note: in instantiation of template class 'std::__1::is_member_function_pointer<int (glslang::TInputScanner::*)() const>' requested here !is_member_function_pointer<_Tp>::value> {}; ^ /usr/share/emscripten/system/include/libcxx/type_traits:3093:17: note: in instantiation of template class 'std::__1::is_member_object_pointer<int (glslang::TInputScanner::*)() const>' requested here is_member_object_pointer<typename remove_reference<_Fp>::type>::value && ^ /usr/share/emscripten/system/include/libcxx/type_traits:3100:1: note: (skipping 7 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all) __invoke(_Fp&& __f, _A0&& __a0) ^ /usr/share/emscripten/system/include/libcxx/type_traits:3118:13: note: while substituting deduced template arguments into function template '__invoke' [with _Fp = std::__1::__bind<int (glslang::TInputScanner::*)() const, glslang::TInputScanner *> &, _Args = <>] __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...) ^ /usr/share/emscripten/system/include/libcxx/type_traits:3126:11: note: in instantiation of template class 'std::__1::__invokable_imp<std::__1::__bind<int (glslang::TInputScanner::*)() const, glslang::TInputScanner *> &>' requested here __invokable_imp<_Fp, _Args...>::value> ^ /usr/share/emscripten/system/include/libcxx/functional:1427:33: note: in instantiation of template class 'std::__1::__invokable<std::__1::__bind<int (glslang::TInputScanner::*)() const, glslang::TInputScanner *> &>' requested here __invokable<_Fp&, _ArgTypes...>::value> ^ /usr/share/emscripten/system/include/libcxx/functional:1454:41: note: in instantiation of default argument for '__callable<std::__1::__bind<int (glslang::TInputScanner::*)() const, glslang::TInputScanner *> >' required here __callable<_Fp>::value && ^~~~~~~~~~~~~~~ /sources/experiments/glslang.js/externals/glslang/glslang/MachineIndependent/ShaderLang.cpp:702:13: note: while substituting deduced template arguments into function template 'function' [with _Fp = std::__1::__bind<int (glslang::TInputScanner::*)() const, glslang::TInputScanner *>] std::bind(&TInputScanner::getLastValidSourceIndex, &input), &outputStream); ^ /usr/share/emscripten/system/include/libcxx/type_traits:424:28: note: candidate template ignored: substitution failure [with _Tp = int () const]: reference to function type 'int () const' cannot have 'const' qualifier template <class _Tp> _Tp& __source(); ~~~ ^ /sources/experiments/glslang.js/externals/glslang/glslang/MachineIndependent/ShaderLang.cpp:701:32: error: no matching constructor for initialization of '(anonymous namespace)::SourceLineSynchronizer' SourceLineSynchronizer lineSync( ^ /sources/experiments/glslang.js/externals/glslang/glslang/MachineIndependent/ShaderLang.cpp:625:5: note: candidate constructor not viable: no known conversion from '__bind<int (glslang::TInputScanner::*)() const, glslang::TInputScanner *>' to 'const std::function<int ()>' for 1st argument SourceLineSynchronizer(const std::function<int()>& lastSourceIndex, ^ /sources/experiments/glslang.js/externals/glslang/glslang/MachineIndependent/ShaderLang.cpp:623:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided class SourceLineSynchronizer { ^ /sources/experiments/glslang.js/externals/glslang/glslang/MachineIndependent/ShaderLang.cpp:623:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided 2 errors generated. ERROR root: compiler frontend failed to generate LLVM bitcode, halting glslang/CMakeFiles/glslang.dir/build.make:309: recipe for target 'glslang/CMakeFiles/glslang.dir/MachineIndependent/ShaderLang.cpp.o' failed make[2]: *** [glslang/CMakeFiles/glslang.dir/MachineIndependent/ShaderLang.cpp.o] Error 1
Looks like maybe a problem with version between llvm/emscripten/glslang
Next time i'll try with latest emscripten "portable" tgz and see where it goes.

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