View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0015020ParaView(No Category)public2014-09-30 21:312015-01-13 22:05
ReporterAlan Scott 
Assigned ToUtkarsh Ayachit 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version4.2 
Target Version4.3Fixed in Version4.3 
Summary0015020: Mesa3d volume rendering incorrectly forces use of floating point frame buffer
DescriptionThere is a mistake in the way ParaView incorrectly forces Mesa3d to use floating point buffer when volume rendering. I can trivially test this, if anyone wants. The problem is in the following code:
../VTK/Rendering/VolumeOpenGL/vtkOpenGLProjectedTetrahedraMapper.cxx.

Around line 145 is the following code:
    if (!this->CanDoFloatingPointFrameBuffer)
      {
      vtkWarningMacro(
        "Missing FBO support. The algorithm may produce visual artifacts.");
      }
 
This forces ParaView to issue a warning, that is not needed, whenever we are rendering with an old version of Mesa3d (i.e., version 7.10.3).

The way I worked around the issue, at Utkarsh's suggestion, was to changed line
98,
  this->UseFloatingPointFrameBuffer = true;
to be
  this->UseFloatingPointFrameBuffer = false;


Please either change the this->UseFloatingPointFrameBuffer to be false in the constructor, or rework the logic of this if() test at line 147.
 
 
Alan - tested with Linux, local server, NX, disk_out_ref.exo. Just volume render. Error pops up.
TagsNo tags attached.
ProjectSandia
Topic Name15020_fix_OpenGL-1.2_issues
Typeincorrect functionality
Attached Files

 Relationships
related to 0015046closedUtkarsh Ayachit Windows volume rendering appears broken 

  Notes
(0033632)
Cory Quammen (developer)
2014-10-13 11:32

Hi Alan,

Do you have OSMesa enabled with the version of Mesa in question? I'm setting up a build to reproduce this warning and want to make sure I can replicate your Mesa build.

Thanks,
Cory
(0033637)
Burlen (developer)
2014-10-14 19:24

You may not want to see the warning but you definitely want to try to use floating point buffers if they are available.

You're seeing that warning because your Mesa build is missing floating point support. Some of the older releases didn't have it, however newer releases do. It's always been a build option that's off by default because of patent issues,
so you need to explicitly enable it when compiling mesa (add --enable-texture-float).

The intention behind that (in hindsight annoying) warning is to alert you are using an ancient version of mesa and or that you may have not built mesa with floating point support. At the time the warning seemed reasonable to me since without floating point support the projected tets algorithm *could produce precision related artifacts depending on data and rendering parameters and downloading and installing a newer mesa (or simply recompiling your existing mesa build with floating point support enabled) is a relatively easy fix. For me I'd rather know that there's potentially a problem and update mesa, rather than scratch my head about why there are artifacts in my rendering.
(0033638)
Alan Scott (manager)
2014-10-14 19:39

But, and this is a huge but, there are many platforms where the system provides a software frame buffer, making it look like we have a graphics card on the machine, and that software frame buffer is an old version of Mesa. An example is NX (google NX, by nomachine). I don't want my users to see the warning, and especially don't want volume rendering to fail! It is OK to put out warnings like this for debug builds, but not release builds.
(0033639)
Alan Scott (manager)
2014-10-14 19:43

You won't believe the version that I am having issues with. Here is a glxinfo:

libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
display: :1193 screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_EXT_import_context, GLX_OML_swap_method, GLX_SGI_make_current_read,
    GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier,
    GLX_SGIX_fbconfig
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_get_proc_address,
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_EXT_framebuffer_sRGB,
    GLX_EXT_create_context_es2_profile, GLX_MESA_copy_sub_buffer,
    GLX_MESA_multithread_makecurrent, GLX_MESA_swap_control,
    GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGI_make_current_read,
    GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample,
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
    GLX_EXT_texture_from_pixmap, GLX_INTEL_swap_event
GLX version: 1.2
GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_MESA_multithread_makecurrent, GLX_OML_swap_method,
    GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_fbconfig
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.4.1)
OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_imaging, GL_ARB_multitexture,
    GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow,
    GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp,
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
    GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_window_pos,
    GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_func_separate,
    GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
    GL_EXT_clip_volume_hint, GL_EXT_copy_texture, GL_EXT_draw_range_elements,
    GL_EXT_fog_coord, GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels,
    GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
    GL_EXT_secondary_color, GL_EXT_separate_specular_color,
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
    GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle,
    GL_EXT_vertex_array, GL_APPLE_packed_pixels, GL_ATI_texture_env_combine3,
    GL_ATI_texture_mirror_once, GL_ATIX_texture_env_combine3,
    GL_HP_occlusion_test, GL_IBM_texture_mirrored_repeat,
    GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture,
    GL_NV_blend_square, GL_NV_point_sprite, GL_NV_texgen_reflection,
    GL_NV_texture_rectangle, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
    GL_SGIS_texture_lod, GL_SGIX_depth_texture, GL_SGIX_shadow,
    GL_SGIX_shadow_ambient, GL_SUN_multi_draw_arrays

4 GLX Visuals
    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
  id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat
----------------------------------------------------------------------------
0x039 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
0x03a 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 8 16 16 16 0 0 0 None
0x03b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 16 8 16 16 16 16 0 0 None
0x03c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 16 8 16 16 16 16 0 0 None

4 GLXFBConfigs:
    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
  id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat
----------------------------------------------------------------------------
0x039 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
0x03a 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 8 16 16 16 0 0 0 None
0x03b 24 tc 0 32 0 r y . 8 8 8 8 . . 0 16 8 16 16 16 16 0 0 None
0x03c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 16 8 16 16 16 16 0 0 None

As I stated in the previous note, I didn't build it, I don't build it, I would never use a Mesa build that is so old. However, it is what is available to me on that system. And no - building my own version of Mesa is not tivial - since the same version of ParaView is used for this software framebuffer systems and the hardware framebuffer systems.
(0033640)
Burlen (developer)
2014-10-14 21:29

> I don't want my users to see the warning, and especially
> don't want volume rendering to fail! It is OK to put out
> warnings like this for debug builds, but not release builds.

The warning is new, but the fact that the algorithm may have issues without floating point support is not. If your OpenGL doesn't have that support your users may have issues.

Your solution to only issue the warning in debug builds sounds OK.
(0033714)
Utkarsh Ayachit (administrator)
2014-11-04 14:38
edited on: 2014-11-04 14:39

I managed to reproduce the issue with Mesa 7.4. Alan, note that soon we'll stop supporting anything less than Open 2.1 in VTK. So systems where you're getting these volume mapper errors are indeed going to be unusable. Until then, however, here's a fix for this issue:

http://review.source.kitware.com/#/c/17878/1 [^]

Once reviewed, I'll merge this into ParaView.

(0033715)
Alan Scott (manager)
2014-11-04 14:51

Sounds good. We have a process in place here that will be supporting OpenGL 2.1 in the near future.
(0033725)
Utkarsh Ayachit (administrator)
2014-11-05 10:11

commit 031f7f63719e3dc34feaa970cf31f8de40fbe316
Author: Utkarsh Ayachit <utkarsh.ayachit@kitware.com>
Date: Tue Nov 4 14:33:20 2014 -0500

    BUG 0015046, BUG 0015020: Fix issues with OpenGL 1.2.
    
    Believe it or not, we have use-cases where people use OpenGL 1.2! Soon
    we won't support that. But until then, we should continue to support
    it. Based on discusson on BUG 0015020, making the missing FBO warning to
    be shown only in debug builds. Also use GL_ARB_multitexture explicitly
    when GL_VERSION_1_3 is not supported.
    
    Change-Id: Id8ec2e902536fb3165e03bc05c6a9bd1fcbc03e8
(0033745)
Utkarsh Ayachit (administrator)
2014-11-06 08:44

Topics merged into master:
        14845_reset_color_map
        15053_fix_coloring_with_missing_arrays
        15085_fix_install_rules_for_catalyst
        15107_catalyst_rendering_edition
        opengl2-backend
(VTK) vtk_master_20141105
(0033752)
Alan Scott (manager)
2014-11-06 16:03

Excellent.

Tested local server, Linux, NX, disk_out_ref.exo, Master.
(0034021)
Alan Scott (manager)
2015-01-07 16:27
edited on: 2015-01-07 16:27

This bug fix has an #ifdef that is reversed. This is making a debug print write in release code, but not debug code.

File /VTK/Rendering/VolumeOpenGL/vtkOpenGLProjectedTetrahedraMapper.cxx, line number 146 has a reversed #ifdef. Please fix it.

Current:
#ifdef NDEBUG
    if (!this->CanDoFloatingPointFrameBuffer)
      {
      vtkWarningMacro(
        "Missing FBO support. The algorithm may produce visual artifacts.");
      }
#endif


Suggested:
#ifndef NDEBUG
    if (!this->CanDoFloatingPointFrameBuffer)
      {
      vtkWarningMacro(
        "Missing FBO support. The algorithm may produce visual artifacts.");
      }
#endif

(0034035)
Utkarsh Ayachit (administrator)
2015-01-09 12:06

commit 5fa4f8c363ea599247f5a483c0327ca0744ebb31
Author: Utkarsh Ayachit <utkarsh.ayachit@kitware.com>
Date: Fri Jan 9 12:02:33 2015 -0500

    Fixed typo in commit 031f7f6371.
    
    Incorrect ifdef. We were ending up skipping error in debug mode, not
    release.
    
    Change-Id: I1ce35c6d1bb2c759ab3d4eaf32cbeb612f21dccb
(0034052)
Utkarsh Ayachit (administrator)
2015-01-10 08:20

Topics merged into master (v4.3.0-RC1-46-g4b7a696):
(VTK) 15020_fix_OpenGL-1.2_issues
        fix_showinmenu_hints
        help-15203
        visit-gl2
(0034080)
Alan Scott (manager)
2015-01-13 22:05

Tested 4.3.0, Linux, remote server. Volume rendered with NX. Also, tested local server, volume rendering, with NX.

 Issue History
Date Modified Username Field Change
2014-09-30 21:31 Alan Scott New Issue
2014-09-30 21:32 Alan Scott Target Version => 4.2.1
2014-10-13 11:32 Cory Quammen Note Added: 0033632
2014-10-14 19:24 Burlen Note Added: 0033637
2014-10-14 19:39 Alan Scott Note Added: 0033638
2014-10-14 19:43 Alan Scott Note Added: 0033639
2014-10-14 21:29 Burlen Note Added: 0033640
2014-11-04 09:53 Utkarsh Ayachit Target Version 4.2.1 => bug_fix
2014-11-04 14:38 Utkarsh Ayachit Note Added: 0033714
2014-11-04 14:38 Utkarsh Ayachit Assigned To => Utkarsh Ayachit
2014-11-04 14:39 Utkarsh Ayachit Note Edited: 0033714
2014-11-04 14:51 Alan Scott Note Added: 0033715
2014-11-04 15:24 Utkarsh Ayachit Relationship added related to 0015046
2014-11-05 10:11 Utkarsh Ayachit Note Added: 0033725
2014-11-05 10:12 Utkarsh Ayachit Topic Name => vtk_master_20141105
2014-11-05 10:12 Utkarsh Ayachit Status backlog => gatekeeper review
2014-11-05 10:12 Utkarsh Ayachit Fixed in Version => git-next
2014-11-05 10:12 Utkarsh Ayachit Resolution open => fixed
2014-11-06 08:44 Utkarsh Ayachit Fixed in Version git-next => git-master
2014-11-06 08:44 Utkarsh Ayachit Status gatekeeper review => customer review
2014-11-06 08:44 Utkarsh Ayachit Note Added: 0033745
2014-11-06 16:03 Alan Scott Note Added: 0033752
2014-11-06 16:03 Alan Scott Status customer review => closed
2014-11-14 22:56 Utkarsh Ayachit Target Version bug_fix => 4.3
2015-01-02 10:45 Utkarsh Ayachit Fixed in Version git-master => 4.3
2015-01-07 16:27 Alan Scott Note Added: 0034021
2015-01-07 16:27 Alan Scott Status closed => backlog
2015-01-07 16:27 Alan Scott Resolution fixed => reopened
2015-01-07 16:27 Alan Scott Note Edited: 0034021
2015-01-09 12:06 Utkarsh Ayachit Topic Name vtk_master_20141105 => 15020_fix_OpenGL-1.2_issues
2015-01-09 12:06 Utkarsh Ayachit Note Added: 0034035
2015-01-09 12:06 Utkarsh Ayachit Status backlog => gatekeeper review
2015-01-09 12:06 Utkarsh Ayachit Resolution reopened => fixed
2015-01-09 13:33 Utkarsh Ayachit Source_changeset_attached => VTK master 2bc4c6cc
2015-01-09 13:34 Utkarsh Ayachit Source_changeset_attached => VTK master b9f40617
2015-01-09 13:34 Utkarsh Ayachit Source_changeset_attached => VTK master 031f7f63
2015-01-10 08:20 Utkarsh Ayachit Note Added: 0034052
2015-01-10 08:20 Utkarsh Ayachit Status gatekeeper review => customer review
2015-01-13 22:05 Alan Scott Note Added: 0034080
2015-01-13 22:05 Alan Scott Status customer review => closed


Copyright © 2000 - 2018 MantisBT Team