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

Crash on shader compilation: "GLSL 4.30 is not supported." #54

Closed
pirogronian opened this issue Jan 18, 2021 · 5 comments
Closed

Crash on shader compilation: "GLSL 4.30 is not supported." #54

pirogronian opened this issue Jan 18, 2021 · 5 comments

Comments

@pirogronian
Copy link

pirogronian commented Jan 18, 2021

As previous issue was fixed (or workarounded), I was able to get access to osp-magnum command line, but again - unable to play. Here is my console log:

Found 7 nodes
Found node: part_spamcan
PART!
Adding obj to Part: part_spamcan
Adding obj to Part: attach_bottom
Adding obj to Part: attach_top
Adding obj to Part: col_notacylinder
obj: col_notacylinder is a collider
Adding obj to Part: Cylinder
obj: Cylinder uses mesh: OSPData/adera/spamcan:Cylinder.001
Base Tex: spamcanhd
Metal/rough texture: Material Metallic
JSON machines!
test: UserControl
test: Rocket
test: FreeEnergyGenerator
Found node: Lamp
Found node: Camera
Mesh: OSPData/adera/spamcan:Cylinder.001
Loading image: spamcanhd
Loading image: Material Metallic
Found 7 nodes
Found node: part_stomper
PART!
Adding obj to Part: part_stomper
Adding obj to Part: col_capsule
obj: col_capsule is a collider
Adding obj to Part: col_engineCollider
obj: col_engineCollider is a collider
Adding obj to Part: col_fuselageCylinder
obj: col_fuselageCylinder is a collider
Adding obj to Part: col_xFinCollider
obj: col_xFinCollider is a collider
Adding obj to Part: col_zFinCollider
obj: col_zFinCollider is a collider
Adding obj to Part: Rocket
obj: Rocket uses mesh: OSPData/adera/stomper:Cylinder.002
Base Tex: stomper
Metal/rough texture: stomper_metal-stomper_rough
JSON machines!
test: UserControl
test: Rocket
test: FreeEnergyGenerator
Mesh: OSPData/adera/stomper:Cylinder.002
Loading image: stomper
Loading image: stomper_metal-stomper_rough
Found 4 nodes
Found node: part_phCapsule
PART!
Adding obj to Part: part_phCapsule
Adding obj to Part: attach_bottom_capsule
Adding obj to Part: capsule
obj: capsule uses mesh: OSPData/adera/ph_capsule:Cylinder.001
Base Tex: ph_base
No metal/rough texture found for capsule
Adding obj to Part: col_capsule
obj: col_capsule is a collider
JSON machines!
test: UserControl
test: FreeEnergyGenerator
Mesh: OSPData/adera/ph_capsule:Cylinder.001
Loading image: ph_base
Found 5 nodes
Found node: part_phFuselage
PART!
Adding obj to Part: part_phFuselage
Adding obj to Part: attach_bottom_fuselage
Adding obj to Part: attach_top_fuselage
Adding obj to Part: col_tank
obj: col_tank is a collider
Adding obj to Part: fuselage
obj: fuselage uses mesh: OSPData/adera/ph_fuselage:Cylinder
Base Tex: ph_base
No metal/rough texture found for fuselage
JSON machines!
test: FreeEnergyGenerator
Mesh: OSPData/adera/ph_fuselage:Cylinder
Loading image: ph_base
resource already exists
Found 5 nodes
Found node: part_phEngine
PART!
Adding obj to Part: part_phEngine
Adding obj to Part: attach_top_eng
Adding obj to Part: col_eng
obj: col_eng is a collider
Adding obj to Part: engine
obj: engine uses mesh: OSPData/adera/ph_engine:Cylinder.002
Base Tex: ph_base
No metal/rough texture found for engine
Adding obj to Part: fx_plume_phPlume
JSON machines!
test: Rocket
test: FreeEnergyGenerator
Mesh: OSPData/adera/ph_engine:Cylinder.002
Loading image: ph_base
resource already exists
Found 2 nodes
Found node: plume_phPlume
Plume! Node "plume_phPlume"
Mesh: OSPData/adera/ph_plume:Cylinder.003
Found 4 nodes
Found node: part_phLinRCS
PART!
Adding obj to Part: part_phLinRCS
Adding obj to Part: fx_plume_phRCSplume
Adding obj to Part: linrcsblk
obj: linrcsblk uses mesh: OSPData/adera/ph_rcs:Cube
Base Tex: ph_base
No metal/rough texture found for linrcsblk
Adding obj to Part: linrcsnozzle
obj: linrcsnozzle uses mesh: OSPData/adera/ph_rcs:Cylinder.004
Base Tex: ph_base
No metal/rough texture found for linrcsnozzle
JSON machines!
test: RCSController
test: Rocket
test: FreeEnergyGenerator
Mesh: OSPData/adera/ph_rcs:Cube
Mesh: OSPData/adera/ph_rcs:Cylinder.004
Loading image: ph_base
resource already exists
Found 2 nodes
Found node: plume_phRCSplume
Plume! Node "plume_phRCSplume"
Mesh: OSPData/adera/ph_rcs_plume:Cylinder.005
Resource loading complete

Created simple solar system
OSP-Magnum Temporary Debug CLI
Choose a test universe:

  • simple - Simple test planet and vehicles (default)
  • moon - Simulate size and gravity of real world moon

Start Application:

  • flight - Create an ActiveArea and start Magnum

Other things to type:

  • list_uni - List Satellites in the universe
  • list_ent - List Entities in active scene
  • list_upd - List Update order from active scene
  • help - Show this again
  • exit - Deallocate everything and return memory to OS

simple
explosion Universe destroyed!
Created simple solar system
list_uni
SATELLITE: ""

  • Type: Planet
  • Position: [0, -307200, 0]
    SATELLITE: "Placeholder Mk. I"
  • Type: Vehicle
  • Trajectory: N3osp8universe14TrajStationaryE
  • Position: [112640, 0, 0]

list_ent
Can't do that yet, start the magnum application first!
flight
Platform: can't get Xft.dpi property for virtual DPI scaling, falling back to physical DPI
Renderer: Mesa DRI Intel(R) HD Graphics 2000 (SNB GT1) by Intel Open Source Technology Center
OpenGL version: 3.3 (Core Profile) Mesa 20.3.3
Using optional features:
GL_ARB_ES2_compatibility
GL_ARB_direct_state_access
GL_ARB_get_texture_sub_image
GL_ARB_invalidate_subdata
GL_ARB_multi_bind
GL_ARB_robustness
GL_ARB_separate_shader_objects
GL_ARB_texture_filter_anisotropic
GL_ARB_texture_storage
GL_ARB_texture_storage_multisample
GL_ARB_vertex_array_object
GL_KHR_debug
Using driver workarounds:
no-layout-qualifiers-on-old-glsl
mesa-dsa-createquery-except-pipeline-stats
mesa-forward-compatible-line-width-range
GL::Shader::compile(): compilation of vertex shader 1 failed with the following message:
0:1(10): error: GLSL 4.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, 1.00 ES, and 3.00 ES
GL::Shader::compile(): compilation of fragment shader 2 failed with the following message:
0:1(10): error: GLSL 4.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, 1.00 ES, and 3.00 ES
Assertion GL::Shader::compile({vert, frag}) failed at /home/ja/Public/Programs/osp-magnum/src/adera/Shaders/PlumeShader.cpp:65

Is GLSL 4.30 not backward compatibile or so?
Edit: I checked glxinfo output, but I'm not sure what it really means, seems to be ambiguous:

(...)
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 2000 (SNB GT1)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 20.3.3
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
(...)
OpenGL version string: 3.0 Mesa 20.3.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
(...)
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 20.3.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
(...)

@Capital-Asterisk
Copy link
Contributor

Hmm, I think we should reconsider compatibility. Many computers are still on OpenGL 3.3 today.

There's a quick workaround here, but exhaust plumes will not work:

Comment out line 102 in src/test_application/flight.cpp

auto &sysExhaustPlume   = scene.dynamic_system_create<osp::active::SysExhaustPlume>();

This will disable exhaust plumes entirely.

@pirogronian
Copy link
Author

Ok, so it's says that MY CARD doesnt support GLSL 4.30, not the application. Now it's logical. Yes, my both GC are rather old.
But disabling exhaust plumes didnt help. Here is output from Gnu Debugger:

Thread 2 "osp-magnum" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff513d640 (LWP 2368)]
0x00007ffff7341615 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff7341615 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff732a862 in abort () from /usr/lib/libc.so.6
#2 0x000055555558e674 in osp::active::SysDebugRender::SysDebugRender(osp::active::ActiveScene&) ()
#3 0x00005555555b075d in testapp::test_flight(std::unique_ptr<testapp::OSPMagnum, std::default_deletetestapp::OSPMagnum >&, osp::OSPApplication&, Magnum::Platform::Sdl2Application::Arguments) ()
#4 0x00007ffff771ec24 in std::execute_native_thread_routine (__p=0x5555556b8ee0)
at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:80
#5 0x00007ffff74d63e9 in start_thread () from /usr/lib/libpthread.so.0
#6 0x00007ffff7404293 in clone () from /usr/lib/libc.so.6

It seems that main renderer is incompatibile with OpenGL 3.3.

@z-adams
Copy link
Contributor

z-adams commented Jan 18, 2021

Comment out SysDebugRender.cpp line 56:

glResources.add<PlumeShader>("plume_shader");

which is where shaders are currently (temporarily) initialized. My shader doesn't actually use any fancy features that aren't supported by 3.3, so I can introduce that backwards compatibility in the future.

@z-adams
Copy link
Contributor

z-adams commented Jan 18, 2021

Thanks for being our guinea pig by the way, we've not had an outsider build our codebase before so this is all very useful information.

@pirogronian
Copy link
Author

This works. Thank You again. But there is another few issues to come... 😉

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

3 participants