Skip to content

Shader compilation error on Ubuntu 20.04 LTS #205

@juozaspo

Description

@juozaspo

Describe the bug

Game does not run on Ubuntu 20.04 LTS, Fails with shader compilation error.

terminate called after throwing an instance of 'std::runtime_error'
  what():  Shader shaders/gui_vertex.glsl failed to compile:

Aborted (core dumped)

To Reproduce

Steps to reproduce the behavior:

  1. Build according to Linux build instruction using cmake (run scripts/build.sh after installing build dependencies)
  2. Run scripts/run.sh
  3. See crash

Expected behavior

Game runs w/o error, no crash

Desktop

  • OS: Ubuntu Linux 20.04 LTS

Additional context

Pentium(R) Dual-Core CPU E6300 @ 2.80GHz
NVIDIA GeForce 210/PCIe/SSE2, 512 MB video memory, NVIDIA Driver version 340.108

Build log
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found SFML .. in /usr/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/juozas/Darbastalis/open-builder/bin/debug
Scanning dependencies of target ob-common
[  1%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/util.cpp.o
/home/juozas/Darbastalis/open-builder/src/common/common/util.cpp:12:17: warning: ‘std::string {anonymous}::cleanString(const string&)’ defined but not used [-Wunused-function]
   12 |     std::string cleanString(const std::string& line)
      |                 ^~~~~~~~~~~
[  1%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/maths.cpp.o
[  2%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/debug.cpp.o
[  3%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/network/enet.cpp.o
[  4%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/network/packet.cpp.o
[  5%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/lua/script_engine.cpp.o
[  6%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/lua/util_api.cpp.o
[  7%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/world/chunk.cpp.o
[  8%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/world/chunk_manager.cpp.o
[  8%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/world/coordinate.cpp.o
[  9%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/world/voxel_data.cpp.o
[ 10%] Building CXX object src/common/common/CMakeFiles/ob-common.dir/world/biome.cpp.o
[ 11%] Linking CXX static library libob-common.a
[ 11%] Built target ob-common
Scanning dependencies of target glad
[ 12%] Building C object deps/CMakeFiles/glad.dir/glad/glad.c.o
[ 13%] Linking C static library libglad.a
[ 13%] Built target glad
Scanning dependencies of target lua
[ 14%] Building C object deps/lua/CMakeFiles/lua.dir/lstrlib.c.o
[ 15%] Building C object deps/lua/CMakeFiles/lua.dir/lundump.c.o
[ 16%] Building C object deps/lua/CMakeFiles/lua.dir/lmathlib.c.o
[ 17%] Building C object deps/lua/CMakeFiles/lua.dir/lopcodes.c.o
[ 17%] Building C object deps/lua/CMakeFiles/lua.dir/lcorolib.c.o
[ 18%] Building C object deps/lua/CMakeFiles/lua.dir/lfunc.c.o
[ 19%] Building C object deps/lua/CMakeFiles/lua.dir/lstate.c.o
[ 20%] Building C object deps/lua/CMakeFiles/lua.dir/lutf8lib.c.o
[ 21%] Building C object deps/lua/CMakeFiles/lua.dir/lbitlib.c.o
[ 22%] Building C object deps/lua/CMakeFiles/lua.dir/loslib.c.o
[ 23%] Building C object deps/lua/CMakeFiles/lua.dir/lobject.c.o
[ 24%] Building C object deps/lua/CMakeFiles/lua.dir/lapi.c.o
[ 24%] Building C object deps/lua/CMakeFiles/lua.dir/lbaselib.c.o
[ 25%] Building C object deps/lua/CMakeFiles/lua.dir/lzio.c.o
[ 26%] Building C object deps/lua/CMakeFiles/lua.dir/lcode.c.o
[ 27%] Building C object deps/lua/CMakeFiles/lua.dir/lparser.c.o
[ 28%] Building C object deps/lua/CMakeFiles/lua.dir/llex.c.o
[ 29%] Building C object deps/lua/CMakeFiles/lua.dir/liolib.c.o
[ 30%] Building C object deps/lua/CMakeFiles/lua.dir/linit.c.o
[ 31%] Building C object deps/lua/CMakeFiles/lua.dir/ldump.c.o
[ 31%] Building C object deps/lua/CMakeFiles/lua.dir/loadlib.c.o
[ 32%] Building C object deps/lua/CMakeFiles/lua.dir/ltablib.c.o
[ 33%] Building C object deps/lua/CMakeFiles/lua.dir/lmem.c.o
[ 34%] Building C object deps/lua/CMakeFiles/lua.dir/lgc.c.o
[ 35%] Building C object deps/lua/CMakeFiles/lua.dir/ldebug.c.o
[ 36%] Building C object deps/lua/CMakeFiles/lua.dir/ldblib.c.o
[ 37%] Building C object deps/lua/CMakeFiles/lua.dir/ldo.c.o
[ 38%] Building C object deps/lua/CMakeFiles/lua.dir/ltm.c.o
[ 38%] Building C object deps/lua/CMakeFiles/lua.dir/ltable.c.o
[ 39%] Building C object deps/lua/CMakeFiles/lua.dir/lctype.c.o
[ 40%] Building C object deps/lua/CMakeFiles/lua.dir/lvm.c.o
[ 41%] Building C object deps/lua/CMakeFiles/lua.dir/lstring.c.o
[ 42%] Building C object deps/lua/CMakeFiles/lua.dir/lua.c.o
[ 43%] Building C object deps/lua/CMakeFiles/lua.dir/lauxlib.c.o
[ 44%] Building C object deps/lua/CMakeFiles/lua.dir/luac.c.o
[ 45%] Linking C static library liblua.a
[ 45%] Built target lua
Scanning dependencies of target ob-server
[ 46%] Building CXX object src/server/CMakeFiles/ob-server.dir/server_engine.cpp.o
/home/juozas/Darbastalis/open-builder/src/server/server_engine.cpp: In constructor ‘ServerEngine::ServerEngine()’:
/home/juozas/Darbastalis/open-builder/src/server/server_engine.cpp:16:37: warning: missing initializer for member ‘_ENetAddress::sin6_scope_id’ [-Wmissing-field-initializers]
   16 |     , m_salt(createHandshakeRandom())
      |                                     ^
[ 47%] Building CXX object src/server/CMakeFiles/ob-server.dir/network/client_session.cpp.o
[ 48%] Building CXX object src/server/CMakeFiles/ob-server.dir/network/pending_client_session.cpp.o
[ 49%] Building CXX object src/server/CMakeFiles/ob-server.dir/world/terrain_generation.cpp.o
[ 49%] Building CXX object src/server/CMakeFiles/ob-server.dir/world/server_world.cpp.o
/home/juozas/Darbastalis/open-builder/src/server/world/server_world.cpp: In member function ‘glm::vec3 ServerWorld::getPlayerSpawnPosition(u32)’:
/home/juozas/Darbastalis/open-builder/src/server/world/server_world.cpp:125:51: warning: unused parameter ‘playerId’ [-Wunused-parameter]
  125 | glm::vec3 ServerWorld::getPlayerSpawnPosition(u32 playerId)
      |                                               ~~~~^~~~~~~~
[ 50%] Building CXX object src/server/CMakeFiles/ob-server.dir/lua/data_api.cpp.o
[ 51%] Building CXX object src/server/CMakeFiles/ob-server.dir/lua/world_api.cpp.o
[ 52%] Building CXX object src/server/CMakeFiles/ob-server.dir/lua/server_lua_callback.cpp.o
[ 53%] Linking CXX static library libob-server.a
[ 53%] Built target ob-server
Scanning dependencies of target enet
[ 53%] Building CXX object deps/CMakeFiles/enet.dir/enet/enet_impl.cpp.o
[ 54%] Linking CXX static library libenet.a
[ 54%] Built target enet
Scanning dependencies of target ob-client
[ 54%] Building CXX object src/client/CMakeFiles/ob-client.dir/input/keyboard.cpp.o
[ 55%] Building CXX object src/client/CMakeFiles/ob-client.dir/gl/textures.cpp.o
[ 56%] Building CXX object src/client/CMakeFiles/ob-client.dir/gl/shader.cpp.o
[ 57%] Building CXX object src/client/CMakeFiles/ob-client.dir/gl/font.cpp.o
[ 58%] Building CXX object src/client/CMakeFiles/ob-client.dir/gl/framebuffer.cpp.o
[ 59%] Building CXX object src/client/CMakeFiles/ob-client.dir/gl/vertex_array.cpp.o
[ 60%] Building CXX object src/client/CMakeFiles/ob-client.dir/gl/gl_errors.cpp.o
[ 61%] Building CXX object src/client/CMakeFiles/ob-client.dir/gl/primitive.cpp.o
[ 61%] Building CXX object src/client/CMakeFiles/ob-client.dir/client_state_controller.cpp.o
[ 62%] Building CXX object src/client/CMakeFiles/ob-client.dir/client_engine.cpp.o
[ 63%] Building CXX object src/client/CMakeFiles/ob-client.dir/game/chunk_mesh.cpp.o
[ 64%] Building CXX object src/client/CMakeFiles/ob-client.dir/game/chunk_mesh_generation.cpp.o
[ 65%] Building CXX object src/client/CMakeFiles/ob-client.dir/game/client_world.cpp.o
/home/juozas/Darbastalis/open-builder/src/client/game/client_world.cpp: In member function ‘void ClientWorld::setupData(int)’:
/home/juozas/Darbastalis/open-builder/src/client/game/client_world.cpp:33:33: warning: unused parameter ‘maxEntities’ [-Wunused-parameter]
   33 | void ClientWorld::setupData(int maxEntities)
      |                             ~~~~^~~~~~~~~~~
/home/juozas/Darbastalis/open-builder/src/client/game/client_world.cpp: In member function ‘void ClientWorld::tick(float)’:
/home/juozas/Darbastalis/open-builder/src/client/game/client_world.cpp:38:30: warning: unused parameter ‘dt’ [-Wunused-parameter]
   38 | void ClientWorld::tick(float dt)
      |                        ~~~~~~^~
[ 66%] Building CXX object src/client/CMakeFiles/ob-client.dir/game/game.cpp.o
[ 67%] Building CXX object src/client/CMakeFiles/ob-client.dir/game/game_def.cpp.o
/home/juozas/Darbastalis/open-builder/src/client/game/game_def.cpp: In member function ‘void ClientGameDef::handleInput(const Keyboard&, const InputState&)’:
/home/juozas/Darbastalis/open-builder/src/client/game/game_def.cpp:98:16: warning: declaration of ‘position’ shadows a previous local [-Wshadow]
   98 |     for (auto& position : voxels) {
      |                ^~~~~~~~
/home/juozas/Darbastalis/open-builder/src/client/game/game_def.cpp:93:11: note: shadowed declaration is here
   93 |     auto& position = m_player.m_state.position;
      |           ^~~~~~~~
[ 68%] Building CXX object src/client/CMakeFiles/ob-client.dir/game/game_type.cpp.o
[ 69%] Building CXX object src/client/CMakeFiles/ob-client.dir/game/player.cpp.o
/home/juozas/Darbastalis/open-builder/src/client/game/player.cpp: In member function ‘void Player::keyboardInput(const Keyboard&)’:
/home/juozas/Darbastalis/open-builder/src/client/game/player.cpp:92:16: warning: unused variable ‘velocity’ [-Wunused-variable]
   92 |     glm::vec3& velocity = m_state.velocity;
      |                ^~~~~~~~
[ 69%] Building CXX object src/client/CMakeFiles/ob-client.dir/lua/client_lua_callback.cpp.o
[ 70%] Building CXX object src/client/CMakeFiles/ob-client.dir/lua/gui_api.cpp.o
[ 71%] Building CXX object src/client/CMakeFiles/ob-client.dir/lua/gui_widget_api.cpp.o
[ 72%] Building CXX object src/client/CMakeFiles/ob-client.dir/lua/client_input_api.cpp.o
[ 73%] Building CXX object src/client/CMakeFiles/ob-client.dir/lua/client_control_api.cpp.o
[ 74%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/overlay.cpp.o
[ 75%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/overlay_factory.cpp.o
[ 76%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/gui_system.cpp.o
[ 76%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/component/rectangle_component.cpp.o
[ 77%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/component/text_component.cpp.o
[ 78%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/widget/widget.cpp.o
[ 79%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/widget/image_widget.cpp.o
[ 80%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/widget/label_widget.cpp.o
[ 81%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/widget/button_widget.cpp.o
[ 82%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/widget/text_box_widget.cpp.o
[ 83%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/widget/widget_helper.cpp.o
[ 83%] Building CXX object src/client/CMakeFiles/ob-client.dir/gui/widget/checkbox_widget.cpp.o
[ 84%] Building CXX object src/client/CMakeFiles/ob-client.dir/window.cpp.o
[ 85%] Building CXX object src/client/CMakeFiles/ob-client.dir/network/client.cpp.o
In file included from /home/juozas/Darbastalis/open-builder/src/client/network/client.cpp:1:
/home/juozas/Darbastalis/open-builder/src/client/network/client.h: In constructor ‘Client::Client(ClientWorld&, Player&)’:
/home/juozas/Darbastalis/open-builder/src/client/network/client.h:59:9: warning: ‘Client::m_salt’ will be initialized after [-Wreorder]
   59 |     u32 m_salt;
      |         ^~~~~~
/home/juozas/Darbastalis/open-builder/src/client/network/client.h:56:18: warning:   ‘ClientWorld* Client::mp_world’ [-Wreorder]
   56 |     ClientWorld* mp_world = nullptr;
      |                  ^~~~~~~~
/home/juozas/Darbastalis/open-builder/src/client/network/client.cpp:14:1: warning:   when initialized here [-Wreorder]
   14 | Client::Client(ClientWorld& world, Player& player)
      | ^~~~~~
[ 86%] Building CXX object src/client/CMakeFiles/ob-client.dir/renderer/camera.cpp.o
[ 87%] Building CXX object src/client/CMakeFiles/ob-client.dir/renderer/gui_renderer.cpp.o
[ 88%] Building CXX object src/client/CMakeFiles/ob-client.dir/renderer/chunk_renderer.cpp.o
[ 89%] Linking CXX static library libob-client.a
[ 89%] Built target ob-client
Scanning dependencies of target tests
[ 90%] Building CXX object CMakeFiles/tests.dir/tests/tests.cpp.o
[ 90%] Building CXX object CMakeFiles/tests.dir/tests/common/world/chunk_manager_test.cpp.o
[ 91%] Building CXX object CMakeFiles/tests.dir/tests/common/world/coordinate_test.cpp.o
[ 92%] Building CXX object CMakeFiles/tests.dir/tests/common/world/chunk_test.cpp.o
[ 93%] Building CXX object CMakeFiles/tests.dir/tests/common/util/obd_parser_test.cpp.o
[ 94%] Building CXX object CMakeFiles/tests.dir/tests/common/lua/script_engine_test.cpp.o
[ 95%] Building CXX object CMakeFiles/tests.dir/tests/client/lua/client_control_api_test.cpp.o
[ 96%] Building CXX object CMakeFiles/tests.dir/tests/client/lua/gui_widget_api_test.cpp.o
[ 97%] Building CXX object CMakeFiles/tests.dir/tests/client_server_tests.cpp.o
[ 98%] Linking CXX executable tests
/usr/bin/ld: deps/lua/liblua.a(loslib.c.o): in function `os_tmpname':
/home/juozas/Darbastalis/open-builder/deps/lua/loslib.c:169: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
[ 98%] Built target tests
Scanning dependencies of target open-builder
[ 99%] Building CXX object CMakeFiles/open-builder.dir/src/main.cpp.o
[100%] Linking CXX executable open-builder
/usr/bin/ld: deps/lua/liblua.a(loslib.c.o): in function `os_tmpname':
/home/juozas/Darbastalis/open-builder/deps/lua/loslib.c:169: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
[100%] Built target open-builder
Built target in bin/debug/

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugReporting or fixing something that is not working as intended

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions