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

No meshes are rendered in 3D samples, but GUI works [Arch Linux] #5422

Closed
UberLambda opened this issue Jan 21, 2017 · 16 comments
Closed

No meshes are rendered in 3D samples, but GUI works [Arch Linux] #5422

UberLambda opened this issue Jan 21, 2017 · 16 comments

Comments

@UberLambda
Copy link

When I try to run any sample in the 3d/ category the GUI is rendered correctly; any meshes, however, are not. This happens both from a freshly-compiled master build and v20170106_linux64gcc. The samples are run via make RunRelease.

Screenshot of 3DPrimitivesExample for reference:
screenshot


GPU: AMD RX480, managed by the amdgpu driver.

$ glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD POLARIS10 (DRM 3.3.0 / 4.8.13-1-ARCH, LLVM 3.9.1) (0x67df)
    Version: 13.0.3
    Accelerated: yes
    Video memory: 8150MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.3
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.3.0 / 4.8.13-1-ARCH, LLVM 3.9.1)
OpenGL core profile version string: 4.3 (Core Profile) Mesa 13.0.3
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 13.0.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 13.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Should be unrelated, but the samples all emit the following errors when run:

[notice ] ofGstVideoGrabber: Probing devices with udev...
[ error ] ofGstVideoGrabber: initGrabber(): no devices found, exiting without initializing
[warning] ofGstVideoUtils: update(): ofGstVideoUtils not loaded
@arturoc
Copy link
Member

arturoc commented Jan 22, 2017

can you post the output of glxinfo | grep direct_state_access

@UberLambda
Copy link
Author

UberLambda commented Jan 22, 2017

@arturoc

$ glxinfo | grep direct_state_access
    GL_ARB_derivative_control, GL_ARB_direct_state_access, 

@hamoid
Copy link
Contributor

hamoid commented Jan 23, 2017

Here's mine (Laptop with Intel Graphics 4600):

    GL_ARB_depth_clamp, GL_ARB_derivative_control, GL_ARB_direct_state_access, 

@arturoc
Copy link
Member

arturoc commented Jan 23, 2017

hey thanks, can you test if my latest commit to master fixes it for you?

@hamoid
Copy link
Contributor

hamoid commented Jan 23, 2017

It does work for me with c9f17bf 👍

@arturoc
Copy link
Member

arturoc commented Jan 23, 2017

can you test again? the last commit wasn't working on the test servers since they have an older version of some libraries

@UberLambda
Copy link
Author

UberLambda commented Jan 23, 2017

master is working fine, thanks! 😄

@arturoc
Copy link
Member

arturoc commented Jan 23, 2017

great thanks for testing!

@arturoc arturoc closed this as completed Jan 23, 2017
@hamoid
Copy link
Contributor

hamoid commented Mar 16, 2017

This seems to be happening again after a system update, as mentioned at https://forum.openframeworks.cc/t/my-vbos-are-invisible-probably-because-of-a-system-update/26176/1

$glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) Haswell Mobile  (0x416)
    Version: 17.0.1
    Accelerated: yes
    Video memory: 1536MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.0.1
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 17.0.1
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.0.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

GL_ARB_direct_state_access is still there. I can post the whole glxinfo output if useful.

@arturoc
Copy link
Member

arturoc commented Mar 16, 2017

what happens if you change all the if (GLEW_EXT_direct_state_access) { in ofBufferObject.cpp with if(false)?

@hamoid
Copy link
Contributor

hamoid commented Mar 16, 2017

In that case it works :)

@hamoid
Copy link
Contributor

hamoid commented May 22, 2017

Gee... the if(false) fix stopped working :(

I'm back at the blank screen as shown at the top. I tried ofBufferObject.cpp from December, from master, and modified as you suggested here. None of them produce triangles.

$glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) Haswell Mobile  (0x416)
    Version: 17.1.0
    Accelerated: yes
    Video memory: 1536MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.1.0
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 17.1.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.1.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

The only difference with my previous glxinfo seems to be 17.0.1 > 17.1.0.

@hamoid
Copy link
Contributor

hamoid commented May 22, 2017

Ok mesa-17.0.5 works, mesa-17.1.0 doesn't. I'll just keep 17.0.5 until there's an update.

@d-egan
Copy link
Contributor

d-egan commented Dec 20, 2017

I had the same problem on v20170714_linux64gcc6_nightly but I fixed it by using the ofGLProgrammableRenderer, with settings.setGLVersion(); Worked with 4.5 and 3.0.

$ glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) Haswell Mobile  (0x416)
    Version: 17.3.0
    Accelerated: yes
    Video memory: 1536MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.3.0
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 17.3.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.3.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

@arturoc
Copy link
Member

arturoc commented Dec 21, 2017

huh, that's interesting, thanks for reporting it. @hamoid can you test if that works for you too?

@hamoid
Copy link
Contributor

hamoid commented Dec 21, 2017

  1. Normally I have my ofBufferObject.cpp patched replacing 8 instances of
if (GLEW_ARB_direct_state_access) {

with

if (false && GLEW_ARB_direct_state_access) {

I just disabled that patch and faces and wireframe disappeared from the example, as it usually happens with my integrated Intel.

  1. Next I replaced
ofSetupOpenGL(1280, 720, OF_WINDOW);
ofRunApp(new ofApp());

with

ofGLWindowSettings settings;
settings.setGLVersion(4, 5);
ofCreateWindow(settings);
ofRunApp(new ofApp());

which made faces and triangles visible again! But notice the rendering difference:

Default:

2017-12-21-130156_1280x720_scrot

OpenGL 4.5:

2017-12-21-130021_1024x768_scrot

Much smoother, but notice the "glitch" on top-right highlight (there's a sharp cut).

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

4 participants