skylicht-lab / skylicht-engine

Skylicht Engine is C++ Game Engine based on Irrlicht 3D. And my goal is to create a high-performance and lightweight Game Framework that can seamlessly function on both web and mobile platforms. This framework will be available to everyone for free.
MIT License
630 stars 51 forks source link

Does skylicht only supports glsl 4.0 ? #142

Closed Joilnen closed 2 years ago

Joilnen commented 2 years ago

When I try to run in linux with intel gpu I got this, and black screen

[AtlasFrame] add light - 40x40 - [0] [AtlasFrame] add camera - 40x40 - [0] Warning: Low FPS: 1332.000000 tpf, 0.750751 fps Load shader: BuiltIn/Shader/Basic/VertexColor.xml GLSL GL_VERTEX_SHADER shader failed to compile 0:1(10): error: GLSL 4.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, 3.10 ES, and 3.20 ES

ducphamhong commented 2 years ago

Hello Joilnen. Do you use the SDL Backend? And can you tell me what Linux OS which you are using to run?

I tested and run well on Ubuntu - XWindow - glx (not yet test Editor). The Linux still supports OpenGL 4.6 https://github.com/skylicht-lab/skylicht-engine/blob/master/Projects/Irrlicht/Source/CIrrDeviceLinux.cpp

Can you test make sure the CMake Linux is ON (CMakeLists.txt line 71)

if (CMAKE_SYSTEM_NAME STREQUAL Linux)
    set(BUILD_LINUX ON)
    add_definitions(-DLINUX)
endif()

The engine still supports OpenGLES 3.0, but I just test this driver on Android and WebGL Emscripten. g_device = createDevice(video::EDT_OPENGLES, dimension2d<u32>(width, height), 32, false, false, false, g_mainApp); You can see: https://github.com/skylicht-lab/skylicht-engine/blob/master/Projects/Template/Platforms/Emscripten/MainWebGL.cpp

Joilnen commented 2 years ago

Yes SDL Backend and it's arch linux, only a embed intel GPU, but it is able to run irrlicht well. Tested forcing "set(BUILD_LINUX ON)" I guess this is not related with device creation, but with shaders, the window is created without crashes.

Joilnen commented 2 years ago

Ok I found an workaround setting MESA_GL_VERSION_OVERRIDE=3.3