How to have both auxiliary bitplanes and antialiasing

When I try to create a buffer having one auxiliary bitplane with properties constructed as:

fbp = FrameBufferProperties(base.win.getFbProperties())
fbp.setAuxRgba(1)
wp = WindowProperties()
buf = base.graphicsEngine.makeOutput(base.win.getPipe(), "world", -10,
                                     fbp, wp, GraphicsPipe.BFRefuseWindow,
                                     base.win.getGsg(), base.win)

I get the error:

:display(error): Could not get requested FrameBufferProperties; abandoning window.
  requested: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 aux_rgba=1 force_hardware=1 force_software=1
  got: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1 

When I create frame buffer properties from scratch:

fbp = FrameBufferProperties()
fbp.setAuxRgba(1)
...

then I do get the auxiliary bitplane, but no matter what else I set, I can’t get antialiasing. (Some combinations of flags again result in an error of the above kind.)

Is this a bug/lack of capability in something (e.g. driver), or can I try something more?

It is up to the driver to decide whether or not a particular framebuffer configuration is possible. Perhaps you can disable some other attributes you don’t need, maybe the stencil buffer, to make your GPU give you a more appropriate buffer?

Alternatively, it could be a bug in Panda, if your GPU is able to provide you the appropriate framebuffer but Panda isn’t. Which OS are you using? On Linux, you can use “glxinfo” to get driver information including a table with supported framebuffer formats.

Thanks for the quick response!

Now I see that this I pasted with stencil buffer was a leftover from randomly trying combinations. The “normal” setup, where only framebuffer-multisample 1 is specifically set in config, has this output:

:display(error): Could not get requested FrameBufferProperties; abandoning window.
  requested: depth_bits=24 color_bits=24 alpha_bits=8 aux_rgba=1 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 
  got: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 

I’m not sure how to interpret output of glxinfo :slight_smile: It shows this:

name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: ATI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method, 
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGIS_multisample, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group
client glx vendor string: ATI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_MESA_allocate_memory, GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control, 
    GLX_MESA_swap_frame_usage, GLX_NV_swap_group, GLX_OML_swap_method, 
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group, 
    GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB, 
    GLX_ARB_fbconfig_float, GLX_AMD_gpu_association
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_EXT_swap_control, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_MESA_swap_control, GLX_NV_swap_group, GLX_OML_swap_method, 
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group, 
    GLX_EXT_texture_from_pixmap
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon HD 7700 Series
OpenGL version string: 4.2.12217 Compatibility Profile Context 9.012
OpenGL shading language version string: 4.20
OpenGL extensions:
    GL_AMDX_debug_output, GL_AMD_blend_minmax_factor, 
    GL_AMD_conservative_depth, GL_AMD_debug_output, 
    GL_AMD_depth_clamp_separate, GL_AMD_draw_buffers_blend, 
    GL_AMD_interleaved_elements, GL_AMD_multi_draw_indirect, 
    GL_AMD_name_gen_delete, GL_AMD_performance_monitor, GL_AMD_pinned_memory, 
    GL_AMD_query_buffer_object, GL_AMD_sample_positions, 
    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export, 
    GL_AMD_shader_stencil_value_export, GL_AMD_shader_trinary_minmax, 
    GL_AMD_sparse_texture, GL_AMD_stencil_operation_extended, 
    GL_AMD_texture_cube_map_array, GL_AMD_texture_texture4, 
    GL_AMD_transform_feedback3_lines_triangles, GL_AMD_transform_feedback4, 
    GL_AMD_vertex_shader_layer, GL_AMD_vertex_shader_viewport_index, 
    GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, 
    GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_blend_func_extended, 
    GL_ARB_clear_buffer_object, GL_ARB_color_buffer_float, 
    GL_ARB_compatibility, GL_ARB_compressed_texture_pixel_storage, 
    GL_ARB_compute_shader, GL_ARB_conservative_depth, GL_ARB_copy_buffer, 
    GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, 
    GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, 
    GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect, 
    GL_ARB_draw_instanced, GL_ARB_explicit_attrib_location, 
    GL_ARB_explicit_uniform_location, GL_ARB_fragment_coord_conventions, 
    GL_ARB_fragment_layer_viewport, GL_ARB_fragment_program, 
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, 
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, 
    GL_ARB_geometry_shader4, GL_ARB_get_program_binary, GL_ARB_gpu_shader5, 
    GL_ARB_gpu_shader_fp64, GL_ARB_half_float_pixel, GL_ARB_half_float_vertex, 
    GL_ARB_imaging, GL_ARB_instanced_arrays, GL_ARB_internalformat_query, 
    GL_ARB_invalidate_subdata, GL_ARB_map_buffer_alignment, 
    GL_ARB_map_buffer_range, GL_ARB_multi_draw_indirect, GL_ARB_multisample, 
    GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_occlusion_query2, 
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite, 
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex, 
    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map, 
    GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counters, 
    GL_ARB_shader_bit_encoding, GL_ARB_shader_image_load_store, 
    GL_ARB_shader_image_size, GL_ARB_shader_objects, GL_ARB_shader_precision, 
    GL_ARB_shader_stencil_export, GL_ARB_shader_storage_buffer_object, 
    GL_ARB_shader_subroutine, GL_ARB_shader_texture_lod, 
    GL_ARB_shading_language_100, GL_ARB_shading_language_420pack, 
    GL_ARB_shading_language_packing, GL_ARB_shadow, GL_ARB_shadow_ambient, 
    GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_tessellation_shader, 
    GL_ARB_texture_border_clamp, GL_ARB_texture_buffer_object, 
    GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range, 
    GL_ARB_texture_compression, GL_ARB_texture_compression_bptc, 
    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, 
    GL_ARB_texture_cube_map_array, GL_ARB_texture_env_add, 
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, 
    GL_ARB_texture_env_dot3, GL_ARB_texture_float, GL_ARB_texture_gather, 
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_multisample, 
    GL_ARB_texture_non_power_of_two, GL_ARB_texture_query_levels, 
    GL_ARB_texture_query_lod, GL_ARB_texture_rectangle, GL_ARB_texture_rg, 
    GL_ARB_texture_rgb10_a2ui, GL_ARB_texture_snorm, GL_ARB_texture_storage, 
    GL_ARB_texture_storage_multisample, GL_ARB_timer_query, 
    GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, 
    GL_ARB_transform_feedback_instanced, GL_ARB_transpose_matrix, 
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra, 
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit, 
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, 
    GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_viewport_array, 
    GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_envmap_bumpmap, 
    GL_ATI_fragment_shader, GL_ATI_meminfo, GL_ATI_separate_stencil, 
    GL_ATI_texture_compression_3dc, GL_ATI_texture_env_combine3, 
    GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_EXT_abgr, 
    GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color, 
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, 
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, 
    GL_EXT_copy_buffer, GL_EXT_copy_texture, GL_EXT_depth_bounds_test, 
    GL_EXT_direct_state_access, GL_EXT_draw_buffers2, GL_EXT_draw_instanced, 
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_framebuffer_blit, 
    GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_object, 
    GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4, 
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, GL_EXT_histogram, 
    GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil, 
    GL_EXT_packed_float, GL_EXT_packed_pixels, GL_EXT_pixel_buffer_object, 
    GL_EXT_point_parameters, GL_EXT_provoking_vertex, GL_EXT_rescale_normal, 
    GL_EXT_secondary_color, GL_EXT_separate_specular_color, 
    GL_EXT_shader_image_load_store, GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, 
    GL_EXT_subtexture, GL_EXT_texgen_reflection, GL_EXT_texture3D, 
    GL_EXT_texture_array, GL_EXT_texture_buffer_object, 
    GL_EXT_texture_compression_bptc, GL_EXT_texture_compression_latc, 
    GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc, 
    GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp, 
    GL_EXT_texture_env_add, GL_EXT_texture_env_combine, 
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic, 
    GL_EXT_texture_integer, GL_EXT_texture_lod, GL_EXT_texture_lod_bias, 
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, 
    GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_sRGB_decode, 
    GL_EXT_texture_shared_exponent, GL_EXT_texture_snorm, 
    GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query, 
    GL_EXT_transform_feedback, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra, 
    GL_EXT_vertex_attrib_64bit, GL_IBM_texture_mirrored_repeat, 
    GL_KTX_buffer_region, GL_NV_blend_square, GL_NV_conditional_render, 
    GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_explicit_multisample, 
    GL_NV_float_buffer, GL_NV_half_float, GL_NV_primitive_restart, 
    GL_NV_texgen_reflection, GL_NV_texture_barrier, GL_SGIS_generate_mipmap, 
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays, 
    GL_WIN_swap_hint

81 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
----------------------------------------------------------------------------
0x023 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x024 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x025 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x026 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x027 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x028 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x029 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x02a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x02b 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x02c 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x02d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x02e 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x02f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x030 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x031 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x032 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x033 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x034 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x035 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x036 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x037 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x038 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x039 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x03a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x03b 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x03c 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x03d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x03e 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x03f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x040 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x041 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x042 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x043 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x044 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x045 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x046 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x047 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x048 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x049 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x04a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x04b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x04c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x04d 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x04e 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x04f 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x050 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x051 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x052 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x053 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x054 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x055 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x056 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x057 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x058 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x059 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x05a 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x05b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x05c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x05d 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x05e 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x05f 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x060 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x061 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x062 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x063 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x064 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x065 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x066 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x067 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x068 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x069 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x06a 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x06b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x06c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x06d 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x06e 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x06f 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x070 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x071 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x072 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x0b4 32 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 Ncon

91 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
----------------------------------------------------------------------------
0x023 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x024 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x025 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x026 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x027 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x028 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x029 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x02a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x02b 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x02c 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x02d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x02e 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x02f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x030 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x031 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x032 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x033 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x034 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x035 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x036 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x037 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x038 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x039 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x03a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x03b 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x03c 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x03d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x03e 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x03f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x040 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x041 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x042 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x043 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x044 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x045 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x046 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x047 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x048 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x049 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x04a 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x04b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x04c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x04d 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x04e 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x04f 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x050 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x051 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x052 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x053 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x054 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x055 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x056 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x057 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x058 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  2 1 None
0x059 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x05a 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  2 1 None
0x05b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x05c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x05d 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x05e 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x05f 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x060 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  4 1 None
0x061 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x062 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 None
0x063 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x064 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x065 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x066 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x067 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x068 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  6 1 None
0x069 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x06a 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  6 1 None
0x06b 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x06c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x06d 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x06e 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0 16 16 16 16  0 0 None
0x06f 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x070 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x071 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x072 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x0b4 32 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  4 1 Ncon
0x0b4 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 Ncon
0x0b4 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 Ncon
0x0b4 32 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 Ncon
0x0b4 32 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 Ncon
0x0b4  0 tc  0 128  0    y .  32 32 32 32 .  .  0 24  0  0  0  0  0  0 0 None
0x0b4  0 tc  0 128  0    . .  32 32 32 32 .  .  0 24  0  0  0  0  0  0 0 None
0x0b4  0 tc  0  64  0    y .  16 16 16 16 .  .  0 24  0  0  0  0  0  0 0 None
0x0b4  0 tc  0  64  0    . .  16 16 16 16 .  .  0 24  0  0  0  0  0  0 0 None
0x0b4  0 tc  0  32  0    y .  11 11 10  0 .  .  0 24  0  0  0  0  0  0 0 None
0x0b4  0 tc  0  32  0    . .  11 11 10  0 .  .  0 24  0  0  0  0  0  0 0 None

Hmm, that is a bit cryptic indeed, I’m not sure what they mean by those abbreviations. Putting “notify-level-glxdisplay debug” in Config.prc and running Panda will cause Panda to print out all the supported framebuffer configurations in a more friendly listing, perhaps you could look in the list and check which attribute you’re requesting is not available in that particular configuration.

That is assuming that you are using the X11 renderer, of course, and that you are on Linux, otherwise you’ll have to enable the notify level from the appropriate display module.

Indeed notify-level-glxdisplay debug gives a nice listing, and none of the lines contain aux_rgba:

:display:glxdisplay(debug): supports_swap_control = 1
:display:glxdisplay(debug): supports_fbconfig = 1
:display:glxdisplay(debug): supports_pbuffer = 1 sgix = 0
:display:glxdisplay(debug): 0:  quality=0 (pbuffer)
:display:glxdisplay(debug): 1:  quality=0 (pbuffer)
:display:glxdisplay(debug): 2:  quality=0 (pbuffer)
:display:glxdisplay(debug): 3:  quality=0 (pbuffer)
:display:glxdisplay(debug): 4: depth_bits=24 color_bits=24 alpha_bits=8 force_hardware=1 force_software=1  quality=99700080 (pbuffer) (pixmap)
:display:glxdisplay(debug): 5: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 force_hardware=1 force_software=1  quality=99799084 (pbuffer) (pixmap)
:display:glxdisplay(debug): 6: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1  quality=99799088 (pbuffer) (pixmap)
:display:glxdisplay(debug): 7: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 force_hardware=1 force_software=1  quality=99799092 (pbuffer) (pixmap)
:display:glxdisplay(debug): 8: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1  quality=99800096 (pbuffer) (pixmap)
:display:glxdisplay(debug): 9: depth_bits=24 color_bits=24 alpha_bits=8 force_hardware=1 force_software=1  quality=99700080 (pbuffer) (pixmap)
:display:glxdisplay(debug): 10: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 force_hardware=1 force_software=1  quality=99799084 (pbuffer) (pixmap)
:display:glxdisplay(debug): 11: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1  quality=99799088 (pbuffer) (pixmap)
:display:glxdisplay(debug): 12: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 force_hardware=1 force_software=1  quality=99799092 (pbuffer) (pixmap)
:display:glxdisplay(debug): 13: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1  quality=99800096 (pbuffer) (pixmap)
:display:glxdisplay(debug): 14: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 15: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 16: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 17: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 18: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 19: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 20: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 21: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 22: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 23: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 24: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 25: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 force_hardware=1 force_software=1  quality=99799034 (pbuffer) (pixmap)
:display:glxdisplay(debug): 26: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 force_hardware=1 force_software=1  quality=99799038 (pbuffer) (pixmap)
:display:glxdisplay(debug): 27: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 force_hardware=1 force_software=1  quality=99799042 (pbuffer) (pixmap)
:display:glxdisplay(debug): 28: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 force_hardware=1 force_software=1  quality=99800046 (pbuffer) (pixmap)
:display:glxdisplay(debug): 29: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 30: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 force_hardware=1 force_software=1  quality=99799034 (pbuffer) (pixmap)
:display:glxdisplay(debug): 31: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 force_hardware=1 force_software=1  quality=99799038 (pbuffer) (pixmap)
:display:glxdisplay(debug): 32: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 force_hardware=1 force_software=1  quality=99799042 (pbuffer) (pixmap)
:display:glxdisplay(debug): 33: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 force_hardware=1 force_software=1  quality=99800046 (pbuffer) (pixmap)
:display:glxdisplay(debug): 34: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 35: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 36: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 37: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 38: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 39: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 40: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 41: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 42: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 43: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1  quality=99699980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 44: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1  quality=99800080 (pbuffer) (pixmap)
:display:glxdisplay(debug): 45: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1  quality=99899084 (pbuffer) (pixmap)
:display:glxdisplay(debug): 46: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1  quality=99899088 (pbuffer) (pixmap)
:display:glxdisplay(debug): 47: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1  quality=99899092 (pbuffer) (pixmap)
:display:glxdisplay(debug): 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1  quality=99900096 (pbuffer) (pixmap)
:display:glxdisplay(debug): 49: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1  quality=99800080 (pbuffer) (pixmap)
:display:glxdisplay(debug): 50: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1  quality=99899084 (pbuffer) (pixmap)
:display:glxdisplay(debug): 51: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1  quality=99899088 (pbuffer) (pixmap)
:display:glxdisplay(debug): 52: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1  quality=99899092 (pbuffer) (pixmap)
:display:glxdisplay(debug): 53: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1  quality=99900096 (pbuffer) (pixmap)
:display:glxdisplay(debug): 54: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 55: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 56: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 57: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 58: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 59: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 60: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 61: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 62: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 63: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 64: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 65: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1  quality=99899034 (pbuffer) (pixmap)
:display:glxdisplay(debug): 66: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1  quality=99899038 (pbuffer) (pixmap)
:display:glxdisplay(debug): 67: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1  quality=99899042 (pbuffer) (pixmap)
:display:glxdisplay(debug): 68: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1  quality=99900046 (pbuffer) (pixmap)
:display:glxdisplay(debug): 69: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 70: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1  quality=99899034 (pbuffer) (pixmap)
:display:glxdisplay(debug): 71: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1  quality=99899038 (pbuffer) (pixmap)
:display:glxdisplay(debug): 72: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1  quality=99899042 (pbuffer) (pixmap)
:display:glxdisplay(debug): 73: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1  quality=99900046 (pbuffer) (pixmap)
:display:glxdisplay(debug): 74: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 75: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 76: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 77: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 78: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 79: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 80: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 81: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 82: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 83: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1  quality=99799980 (pbuffer) (pixmap)
:display:glxdisplay(debug): 84: color_bits=24 alpha_bits=8 force_hardware=1 force_software=1  quality=98700032 (pbuffer) (pixmap)
:display:glxdisplay(debug): 85: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1  quality=99799088 (pbuffer) (pixmap)
:display:glxdisplay(debug): 86: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1  quality=99700030 (pbuffer) (pixmap)
:display:glxdisplay(debug): 87: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1  quality=99800080 (pbuffer) (pixmap)
:display:glxdisplay(debug): 88: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1  quality=99800030 (pbuffer) (pixmap)
:display:glxdisplay(debug): Selected context 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 
:display:glxdisplay(debug): context_has_pbuffer = 1, context_has_pixmap = 1
:display(error): Could not get requested FrameBufferProperties; abandoning window.
  requested: depth_bits=24 color_bits=24 alpha_bits=8 aux_rgba=1 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 
  got: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 

Funny thing then, that when doing fbp = FrameBufferProperties(); fbp.setAuxRgba(1) I do get the auxiliary bitplane… well, or at lest something that can be used in a shader as such (writing to texture set with buf.addRenderTexture(auxtex, GraphicsOutput.RTMBindOrCopy, GraphicsOutput.RTPAuxRgba0) works).

Ok, then I guess I’ll either need to live without antialiasing, or setup a camera to render-to-texture this that I wanted to have in the main camera with aux texture.

Could it simply be that your graphics card doesn’t support more than one colour render target? Have you made sure to update your graphics card drivers to the latest version? What GPU model do you have?

The fact that you can request a framebuffer with one aux render target makes sense if you’re not requesting a colour buffer as well; to OpenGL, there’s no difference between the initial colour target and any auxiliary colour targets.

When I do supposedly get this auxiliary buffer, I use it alongside the color buffer in a shader. As in there are two outputs from Cg fragment shader, one COLOR0 other COLOR1, and base.bufferViewer.toggleEnable() shows both being rendered as expected.

The GPU is a Radeon 7770, the driver is AMD proprietary fglrx 13.4, the OS is Debian.

What is the type of the buffer that makeOutput returns? Just do “print type(buf)” or “print buf.getType()”.

When I run this:

fbp = FrameBufferProperties(base.win.getFbProperties())
#fbp.setAuxRgba(1) # crashes if set
wp = WindowProperties()
wp.setSize(base.win.getXSize(), base.win.getYSize())
buf = base.graphicsEngine.makeOutput(base.win.getPipe(), "world", -100,
                                     fbp, wp, GraphicsPipe.BFRefuseWindow
                                     base.win.getGsg(), base.win)
buf.addRenderTexture(maintex, GraphicsOutput.RTMBindOrCopy)
buf.addRenderTexture(aux0tex, GraphicsOutput.RTMBindOrCopy, GraphicsOutput.RTPAuxRgba0)
print "buf.getType()=%s  type(buf)=%s" % (buf.getType(), type(buf))

the output is:

...
:display:glxdisplay(debug): Selected context 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 
:display:glxdisplay(debug): context_has_pbuffer = 1, context_has_pixmap = 1
:prc(warning): changing type for ConfigVariable model-cache-dir from string to filename.
buf.getType()=glxGraphicsBuffer  type(buf)=<type 'libpanda.GraphicsBuffer'>

and base.bufferViewer.toggleEnable() shows two frames with same content, that with the COLOR0 output in fragment shader.

And when I run it like this:

fbp = FrameBufferProperties()
fbp.setAuxRgba(1)
wp = WindowProperties()
wp.setSize(base.win.getXSize(), base.win.getYSize())
buf = base.graphicsEngine.makeOutput(base.win.getPipe(), "world", -100,
                                     fbp, wp, GraphicsPipe.BFRefuseWindow
                                     base.win.getGsg(), base.win)
buf.addRenderTexture(maintex, GraphicsOutput.RTMBindOrCopy)
buf.addRenderTexture(aux0tex, GraphicsOutput.RTMBindOrCopy, GraphicsOutput.RTPAuxRgba0)
print "buf.getType()=%s  type(buf)=%s" % (buf.getType(), type(buf))

I see in the output:

...
:display:glxdisplay(debug): Selected context 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 
:display:glxdisplay(debug): context_has_pbuffer = 1, context_has_pixmap = 1
:prc(warning): changing type for ConfigVariable model-cache-dir from string to filename.
buf.getType()=GLGraphicsBuffer  type(buf)=<type 'libpanda.GraphicsBuffer'>

and base.bufferViewer.toggleEnable() shows two frames with proper content, one with COLOR0 and the other with COLOR1 shader output.

So one curious thing is that in both cases it reports “Selected context 48”, as if it is the same buffer setup (?), and another curious thing is the difference in printed value of buf.getType() but no difference in type(buf).

Ah, it makes sense to me now. In the first case, you’re getting a glxGraphicsBuffer, which is a pbuffer. The pbuffer does not support auxiliary render targets, though, you need an FBO for that. So when you request a framebuffer with MRT, Panda is forced to give you an FBO (GLGraphicsBuffer).

However, it appears that support for multisampling in FBOs in Panda is still a bit experimental, and it is disabled by default on GLX. It appears that you need to set the Config.prc variable “framebuffer-object-multisample” to 1 in order for Panda to give you an FBO with multisampling enabled.

So… after setting framebuffer-object-multisample to 1, what else should I do? I tried in the first case uncommenting fbp.setAuxRgba(1), and get same crash as before. I tried in the second case adding fbp.setMultisamples(4), and get same crash.

Edit: And if I leave the second case is it were, just with fbp.setAuxRgba(1), I still get the auxiliary buffer but without antialiasing.

Are there no additional error messages accompanying the crash?

Just so that there is no misunderstanding from my side, here is a minimal test:

[code]#!/usr/bin/env python

-- coding: UTF-8 --

import sys

if len(sys.argv) != 2:
print “usage: %s 1|2” % sys.argv[0]
exit(1)
fbp_setup_type = int(sys.argv[1])

from pandac.PandaModules import *
from direct.filter.CommonFilters import *
config = {
“win-size”: “800x800”,
“framebuffer-multisample”: “1”,
“multisamples”: “4”,
“framebuffer-object-multisample”: “1”,
“notify-level-glxdisplay”: “debug”,
}
for k, v in config.items():
ConfigVariableString(k).setValue(v)

ConfigVariableString(“framebuffer-object-multisample”).setValue(“1”)

import direct.directbase.DirectStart

if fbp_setup_type == 1:
fbp = FrameBufferProperties(base.win.getFbProperties())
fbp.setAuxRgba(1) # comment out to avoid crash

elif fbp_setup_type == 2:
fbp = FrameBufferProperties()
fbp.setAuxRgba(1)
fbp.setMultisamples(4) # comment out to avoid crash

else:
raise StandardError(“Unknown setup type: %s” % fbp_setup_type)

wp = WindowProperties()
wp.setSize(base.win.getXSize(), base.win.getYSize())

buf = base.graphicsEngine.makeOutput(base.win.getPipe(), “buffer”, -10,
fbp, wp, GraphicsPipe.BFRefuseWindow,
base.win.getGsg(), base.win)
if buf is None:
sys.stderr.write("*** Cannot create buffer, exiting.\n")
exit(1)
print “===== buf.getType()=%s type(buf)=%s” % (buf.getType(), type(buf))
maintex = Texture()
buf.addRenderTexture(maintex, GraphicsOutput.RTMBindOrCopy)
aux0tex = Texture()
buf.addRenderTexture(aux0tex, GraphicsOutput.RTMBindOrCopy,
GraphicsOutput.RTPAuxRgba0)

scene = NodePath(“scene”)
clcol = Vec4(0.0, 0.0, 0.0, 1.0)
cam = base.makeCamera(win=buf, clearDepth=True, clearColor=clcol)
cam.reparentTo(scene)
dr = cam.node().getDisplayRegion(0)
dr.setClearActive(GraphicsOutput.RTPAuxRgba0, True)
dr.setClearValue(GraphicsOutput.RTPAuxRgba0, clcol)
lens = PerspectiveLens()
lens.setFov(50)
cam.node().setLens(lens)

model = loader.loadModel(“misc/rgbCube”)
model.reparentTo(scene)
model.setPos(0.0, 3.0, 0.0)
model.setHpr(0.0, 0.0, 5.0)
shader = Shader.make("""
void vshader (uniform float4x4 mat_modelproj,
float4 vtx_position : POSITION,
out float4 l_position : POSITION)
{
l_position = mul(mat_modelproj, vtx_position);
}

void fshader (out float4 o_color : COLOR0,
out float4 o_aux : COLOR1)
{

o_color = float4(1.0, 0.0, 0.0, 0.0);
o_aux = float4(0.0, 0.0, 1.0, 0.0);

}
“”", Shader.SLCg)
model.setShader(shader)

base.bufferViewer.toggleEnable()

run()[/code]
The box model is one from Panda distribution, and I slanted it a bit in the view so that it can be easily seen when there is and when there isn’t antialiasing. When the buffer viewer is showing one red and one blue box, that means it is rendering properly into the auxiliary plane (which is the blue one).

When I run it with ./test-aux-buffer.py 1 (copying frame buffer properties from base.win), the stderr output is:

:prc(warning): value queried before default value set for notify-level-glxdisplay. :prc(warning): value queried before default value set for framebuffer-object-multisample. :prc(warning): Invalid integer value for ConfigVariable win-size: 800x800 :prc(warning): changing type for ConfigVariable notify-level-glxdisplay from string to enum. :prc(warning): changing flags for ConfigVariable notify-level-glxdisplay from 0 to 4000. :prc(warning): changing default value for ConfigVariable notify-level-glxdisplay from '' to 'unspecified'. Known pipe types: glxGraphicsPipe (all display modules loaded.) :display:glxdisplay(debug): supports_swap_control = 1 :display:glxdisplay(debug): supports_fbconfig = 1 :display:glxdisplay(debug): supports_pbuffer = 1 sgix = 0 :display:glxdisplay(debug): 0: quality=0 (pbuffer) :display:glxdisplay(debug): 1: quality=0 (pbuffer) :display:glxdisplay(debug): 2: quality=0 (pbuffer) :display:glxdisplay(debug): 3: quality=0 (pbuffer) :display:glxdisplay(debug): 4: depth_bits=24 color_bits=24 alpha_bits=8 force_hardware=1 force_software=1 quality=99800080 (pbuffer) (pixmap) :display:glxdisplay(debug): 5: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99899084 (pbuffer) (pixmap) :display:glxdisplay(debug): 6: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99900088 (pbuffer) (pixmap) :display:glxdisplay(debug): 7: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99900092 (pbuffer) (pixmap) :display:glxdisplay(debug): 8: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99900096 (pbuffer) (pixmap) :display:glxdisplay(debug): 9: depth_bits=24 color_bits=24 alpha_bits=8 force_hardware=1 force_software=1 quality=99800080 (pbuffer) (pixmap) :display:glxdisplay(debug): 10: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99899084 (pbuffer) (pixmap) :display:glxdisplay(debug): 11: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99900088 (pbuffer) (pixmap) :display:glxdisplay(debug): 12: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99900092 (pbuffer) (pixmap) :display:glxdisplay(debug): 13: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99900096 (pbuffer) (pixmap) :display:glxdisplay(debug): 14: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 15: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 16: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 17: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 18: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 19: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 20: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 21: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 22: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 23: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 24: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 25: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99899034 (pbuffer) (pixmap) :display:glxdisplay(debug): 26: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99900038 (pbuffer) (pixmap) :display:glxdisplay(debug): 27: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99900042 (pbuffer) (pixmap) :display:glxdisplay(debug): 28: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99900046 (pbuffer) (pixmap) :display:glxdisplay(debug): 29: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 30: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99899034 (pbuffer) (pixmap) :display:glxdisplay(debug): 31: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99900038 (pbuffer) (pixmap) :display:glxdisplay(debug): 32: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99900042 (pbuffer) (pixmap) :display:glxdisplay(debug): 33: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99900046 (pbuffer) (pixmap) :display:glxdisplay(debug): 34: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 35: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 36: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 37: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 38: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 39: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 40: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 41: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 42: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 43: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 44: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900080 (pbuffer) (pixmap) :display:glxdisplay(debug): 45: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99999084 (pbuffer) (pixmap) :display:glxdisplay(debug): 46: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=100000088 (pbuffer) (pixmap) :display:glxdisplay(debug): 47: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=100000092 (pbuffer) (pixmap) :display:glxdisplay(debug): 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=100000096 (pbuffer) (pixmap) :display:glxdisplay(debug): 49: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900080 (pbuffer) (pixmap) :display:glxdisplay(debug): 50: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99999084 (pbuffer) (pixmap) :display:glxdisplay(debug): 51: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=100000088 (pbuffer) (pixmap) :display:glxdisplay(debug): 52: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=100000092 (pbuffer) (pixmap) :display:glxdisplay(debug): 53: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=100000096 (pbuffer) (pixmap) :display:glxdisplay(debug): 54: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 55: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 56: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 57: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 58: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 59: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 60: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 61: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 62: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 63: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 64: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 65: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99999034 (pbuffer) (pixmap) :display:glxdisplay(debug): 66: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=100000038 (pbuffer) (pixmap) :display:glxdisplay(debug): 67: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=100000042 (pbuffer) (pixmap) :display:glxdisplay(debug): 68: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=100000046 (pbuffer) (pixmap) :display:glxdisplay(debug): 69: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): 70: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99999034 (pbuffer) (pixmap) :display:glxdisplay(debug): 71: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=100000038 (pbuffer) (pixmap) :display:glxdisplay(debug): 72: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=100000042 (pbuffer) (pixmap) :display:glxdisplay(debug): 73: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=100000046 (pbuffer) (pixmap) :display:glxdisplay(debug): 74: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 75: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 76: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 77: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 78: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 79: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 80: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 81: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 82: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 83: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99899980 (pbuffer) (pixmap) :display:glxdisplay(debug): 84: color_bits=24 alpha_bits=8 force_hardware=1 force_software=1 quality=98800032 (pbuffer) (pixmap) :display:glxdisplay(debug): 85: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99900088 (pbuffer) (pixmap) :display:glxdisplay(debug): 86: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 87: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900080 (pbuffer) (pixmap) :display:glxdisplay(debug): 88: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900030 (pbuffer) (pixmap) :display:glxdisplay(debug): Selected context 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 :display:glxdisplay(debug): context_has_pbuffer = 1, context_has_pixmap = 1 :prc(warning): changing type for ConfigVariable framebuffer-object-multisample from string to bool. :prc(warning): changing default value for ConfigVariable framebuffer-object-multisample from '' to '0'. :display:glxdisplay(debug): supports_swap_control = 1 :display:glxdisplay(debug): supports_fbconfig = 1 :display:glxdisplay(debug): supports_pbuffer = 1 sgix = 0 :display:glxdisplay(debug): 0: quality=0 (pbuffer) :display:glxdisplay(debug): 1: quality=0 (pbuffer) :display:glxdisplay(debug): 2: quality=0 (pbuffer) :display:glxdisplay(debug): 3: quality=0 (pbuffer) :display:glxdisplay(debug): 4: depth_bits=24 color_bits=24 alpha_bits=8 force_hardware=1 force_software=1 quality=99700080 (pbuffer) (pixmap) :display:glxdisplay(debug): 5: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99799084 (pbuffer) (pixmap) :display:glxdisplay(debug): 6: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99799088 (pbuffer) (pixmap) :display:glxdisplay(debug): 7: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99799092 (pbuffer) (pixmap) :display:glxdisplay(debug): 8: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99800096 (pbuffer) (pixmap) :display:glxdisplay(debug): 9: depth_bits=24 color_bits=24 alpha_bits=8 force_hardware=1 force_software=1 quality=99700080 (pbuffer) (pixmap) :display:glxdisplay(debug): 10: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99799084 (pbuffer) (pixmap) :display:glxdisplay(debug): 11: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99799088 (pbuffer) (pixmap) :display:glxdisplay(debug): 12: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99799092 (pbuffer) (pixmap) :display:glxdisplay(debug): 13: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99800096 (pbuffer) (pixmap) :display:glxdisplay(debug): 14: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 15: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 16: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 17: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 18: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 19: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 20: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 21: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 22: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 23: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 24: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 25: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99799034 (pbuffer) (pixmap) :display:glxdisplay(debug): 26: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99799038 (pbuffer) (pixmap) :display:glxdisplay(debug): 27: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99799042 (pbuffer) (pixmap) :display:glxdisplay(debug): 28: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99800046 (pbuffer) (pixmap) :display:glxdisplay(debug): 29: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 30: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 force_hardware=1 force_software=1 quality=99799034 (pbuffer) (pixmap) :display:glxdisplay(debug): 31: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99799038 (pbuffer) (pixmap) :display:glxdisplay(debug): 32: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 force_hardware=1 force_software=1 quality=99799042 (pbuffer) (pixmap) :display:glxdisplay(debug): 33: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 force_hardware=1 force_software=1 quality=99800046 (pbuffer) (pixmap) :display:glxdisplay(debug): 34: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 35: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 36: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 37: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 38: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 39: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 40: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 41: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 42: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 43: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 force_hardware=1 force_software=1 quality=99699980 (pbuffer) (pixmap) :display:glxdisplay(debug): 44: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99800080 (pbuffer) (pixmap) :display:glxdisplay(debug): 45: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99899084 (pbuffer) (pixmap) :display:glxdisplay(debug): 46: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=99899088 (pbuffer) (pixmap) :display:glxdisplay(debug): 47: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=99899092 (pbuffer) (pixmap) :display:glxdisplay(debug): 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900096 (pbuffer) (pixmap) :display:glxdisplay(debug): 49: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99800080 (pbuffer) (pixmap) :display:glxdisplay(debug): 50: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99899084 (pbuffer) (pixmap) :display:glxdisplay(debug): 51: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=99899088 (pbuffer) (pixmap) :display:glxdisplay(debug): 52: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=99899092 (pbuffer) (pixmap) :display:glxdisplay(debug): 53: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900096 (pbuffer) (pixmap) :display:glxdisplay(debug): 54: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 55: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 56: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 57: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 58: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 59: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 60: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 61: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 62: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 63: depth_bits=24 color_bits=24 alpha_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 64: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 65: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99899034 (pbuffer) (pixmap) :display:glxdisplay(debug): 66: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=99899038 (pbuffer) (pixmap) :display:glxdisplay(debug): 67: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=99899042 (pbuffer) (pixmap) :display:glxdisplay(debug): 68: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900046 (pbuffer) (pixmap) :display:glxdisplay(debug): 69: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): 70: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=2 back_buffers=1 force_hardware=1 force_software=1 quality=99899034 (pbuffer) (pixmap) :display:glxdisplay(debug): 71: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=4 back_buffers=1 force_hardware=1 force_software=1 quality=99899038 (pbuffer) (pixmap) :display:glxdisplay(debug): 72: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=6 back_buffers=1 force_hardware=1 force_software=1 quality=99899042 (pbuffer) (pixmap) :display:glxdisplay(debug): 73: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 quality=99900046 (pbuffer) (pixmap) :display:glxdisplay(debug): 74: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 75: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 76: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 77: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 78: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 79: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 80: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 81: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 82: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 83: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 accum_bits=64 back_buffers=1 force_hardware=1 force_software=1 quality=99799980 (pbuffer) (pixmap) :display:glxdisplay(debug): 84: color_bits=24 alpha_bits=8 force_hardware=1 force_software=1 quality=98700032 (pbuffer) (pixmap) :display:glxdisplay(debug): 85: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=4 force_hardware=1 force_software=1 quality=99799088 (pbuffer) (pixmap) :display:glxdisplay(debug): 86: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 force_hardware=1 force_software=1 quality=99700030 (pbuffer) (pixmap) :display:glxdisplay(debug): 87: depth_bits=24 color_bits=24 alpha_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99800080 (pbuffer) (pixmap) :display:glxdisplay(debug): 88: depth_bits=24 color_bits=24 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 force_software=1 quality=99800030 (pbuffer) (pixmap) :display:glxdisplay(debug): Selected context 48: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 :display:glxdisplay(debug): context_has_pbuffer = 1, context_has_pixmap = 1 :display(error): Could not get requested FrameBufferProperties; abandoning window. requested: depth_bits=24 color_bits=24 alpha_bits=8 aux_rgba=1 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 got: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 back_buffers=1 force_hardware=1 force_software=1 *** Cannot create buffer, exiting.

When I run it with ./test-aux-buffer.py 2 (making frame buffer properties from scratch), the stderr output is:

[[...removed this part due to message size limit...]] [[...it same as above (as shown by diff), except for quality= fields...]] :display:glxdisplay(debug): Selected context 8: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1 :display:glxdisplay(debug): context_has_pbuffer = 1, context_has_pixmap = 1 :display(error): Could not get requested FrameBufferProperties; abandoning window. requested: aux_rgba=1 multisamples=4 got: depth_bits=24 color_bits=24 alpha_bits=8 multisamples=8 force_hardware=1 force_software=1 *** Cannot create buffer, exiting.

When I comment out lines marked “comment out to avoid crash”, then for the case 1 I get both red boxes in buffer viewer (meaning auxiliary not working) but with antialiasing, and for case 2 I get the red and blue box but without antialiasing.

Maybe there is another one of these notify-level-* settings that would be helpful for diagnostics here?

I’ve now had the test code above run on Windows, again with an AMD card, and the behavior is the same.

The only (somewhat unrelated) difference was that in the code above there was no setAntialias call, and that still produced antialiasing under Linux in case 1, while on Windows it needed this call explicitly:

scene.setAntialias(AntialiasAttrib.MAuto)

Also, on Windows there was no debug output using notify-level-glxdisplay. You did mention “[if not on Linux] you’ll have to enable the notify level from the appropriate display module” but I don’t know where is this done?

That would be notify-level-windisplay and notify-level-wgldisplay.

Thanks, setting these two variables to “debug” produces more terse debug output than on Linux, albeit seemingly with similar information. I nevertheless provide it just in case:

:prc(warning): value queried before default value set for notify-level-wgldisplay.
:prc(warning): value queried before default value set for notify-level-windisplay.
:prc(warning): value queried before default value set for load-display.
:prc(warning): value queried before default value set for framebuffer-object-multisample.
:prc(warning): Invalid integer value for ConfigVariable win-size: 800x800
:prc(warning): changing default value for ConfigVariable load-display from '' to '*'.
:prc(warning): changing type for ConfigVariable notify-level-windisplay from string to enum.
:prc(warning): changing flags for ConfigVariable notify-level-windisplay from 0 to 4000.
:prc(warning): changing default value for ConfigVariable notify-level-windisplay from '' to 'unspecified'.
:prc(warning): changing type for ConfigVariable notify-level-wgldisplay from string to enum.
:prc(warning): changing flags for ConfigVariable notify-level-wgldisplay from 0 to 4000.
:prc(warning): changing default value for ConfigVariable notify-level-wgldisplay from '' to 'unspecified'.
Known pipe types:
  wglGraphicsPipe
(all display modules loaded.)
:display:windisplay: OS version: 6.1.2.7601 
:display:windisplay:   Service Pack 1
:display:windisplay: max Mhz 2660000000, current Mhz 2660000000 
:display:windisplay(debug): ClearToBlack(00070410, origin=(440, 125) size=(800, 800) title="Panda" !undecorated !fixed_size !fullscreen !minimized open !cursor_hidden absolute )
:display:windisplay(debug): WM_SIZE: 00070410, 0
:display:windisplay(debug): WM_ACTIVATE: 00070410, 1, 0
:display:windisplay(debug): setfocus
:display:wgldisplay(debug): Preliminary pixfmt #2 = depth_bits=24 color_bits=32 alpha_bits=8 stencil_bits=8 back_buffers=1 force_hardware=1 
:display:wgldisplay(debug): Found 56 advanced formats: [ 1 2 3 4 9 10 11 12 13 14 15 16 17 18 19 20 5 6 7 8 21 22 23 24 25 26 27 28 29 30 31 32 64 63 58 57 66 65 52 51 60 59 54 53 46 45 34 36 33 35 48 47 38 40 37 39 ]
:display:wgldisplay(debug): Selected advanced pixfmt #19 = depth_bits=24 color_bits=32 alpha_bits=8 stencil_bits=8 multisamples=8 back_buffers=1 force_hardware=1 
:display:wgldisplay(debug): ================================
:display:wgldisplay(debug): Selected GL PixelFormat is #19, ICD driver
PFD flags: 0x00008005 ( PFD_DOUBLEBUFFER| PFD_DRAW_TO_WINDOW|)
PFD iPixelType: PFD_TYPE_RGBA
PFD cColorBits: 32  R: 8 G: 8 B: 8
PFD cAlphaBits: 8  DepthBits: 24 StencilBits: 8 AccumBits: 0
:display:windisplay(debug): Got reshape request (-2, -2, 1, 800, 800)
:prc(warning): changing type for ConfigVariable framebuffer-object-multisample from string to bool.
:prc(warning): changing default value for ConfigVariable framebuffer-object-multisample from '' to '0'.
*** Cannot create buffer, exiting.
:display:windisplay(debug): WM_ACTIVATE: 00070410, 0, 0
:display:windisplay(debug): killfocus

(This is the output for case 1, for case 2 it differs only in string 00070410 becoming 00090410.)

I did a bit more investigation, looking and inserting print statements through Panda’s code.

First, I saw this bit in glxGraphicsPipe.cxx:

    int _fbo_multisample = 0;
    if (!ConfigVariableBool("framebuffer-object-multisample", false, PRC_DESC("Enabled Multisample."))) {
        _fbo_multisample = 16;
    }

So when I set framebuffer-object-multisample to 0 instead of to 1, I did get a buffer with both multisamples and auxiliary plane. The code above (actually the slightly modified code pasted at the end of this post), when run with ./test-aux-buffer.py 2, outputs this:

===== buf.getType()=GLGraphicsBuffer  type(buf)=<type 'libpanda.GraphicsBuffer'>
===== fbprops: depth_bits=1 color_bits=1 alpha_bits=8 stencil_bits=1 aux_rgba=1 multisamples=8 force_hardware=1 force_software=1

and I can see both the blue and the red box, and antialiasing on them. However, after showing this first image, the display stops updating, with about 20 of the following messages in the terminal:

:display:gsg:glgsg(error): at 1159 of panda/src/glstuff/glGraphicsBuffer_src.cxx : invalid operation

The game loop as such is still running, as evidenced by a print statement inserted into the loop function below. Just the display is not updating. (Again, the same thing happens under Windows.)

Then I looked at glGraphicsBuffer_src.cxx and the reported line, and inserted more of report_my_gl_errors() statements throughout the resolve_multisamples function, to find that this is the call that causes the error:

  if (do_depth_blit) {
    glgsg->_glBlitFramebuffer(0, 0, _rb_size_x, _rb_size_y, 0, 0, _rb_size_x, _rb_size_y,
                              GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT,
                              GL_NEAREST);
  } else ...

If I understood correctly, this is now a raw OpenGL call, and I had no more ideas what to look at. Any idea what else I could trace or test?

Here is the current version of the test code:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys

if len(sys.argv) != 2:
    print "usage: %s 1|2" % sys.argv[0]
    exit(1)
fbp_setup_type = int(sys.argv[1])

from pandac.PandaModules import *
from direct.filter.CommonFilters import *
config = {
    "load-display": "pandagl",
    "win-size": "800x800",
    "framebuffer-multisample": "1",
    "multisamples": "4",
    "framebuffer-object-multisample": "0",
    "notify-level-glxdisplay": "debug",
    "notify-level-display": "debug",
}
for k, v in config.items():
    ConfigVariableString(k).setValue(v)

import direct.directbase.DirectStart

if fbp_setup_type == 1:
    fbp = FrameBufferProperties(base.win.getFbProperties())
    #fbp.setAuxRgba(1) # comment out to avoid crash

elif fbp_setup_type == 2:
    fbp = FrameBufferProperties()
    fbp.setAuxRgba(1)
    fbp.setMultisamples(4)

else:
    raise StandardError("Unknown setup type: %s" % fbp_setup_type)

wp = WindowProperties()
wp.setSize(base.win.getXSize(), base.win.getYSize())

flags = GraphicsPipe.BFRefuseWindow

buf = base.graphicsEngine.makeOutput(base.win.getPipe(), "buffer", -10,
                                     fbp, wp, flags,
                                     base.win.getGsg(), base.win)
if buf is None:
    sys.stderr.write("*** Cannot create buffer, exiting.\n")
    exit(1)
print "===== buf.getType()=%s  type(buf)=%s" % (buf.getType(), type(buf))
print "===== fbprops: %s" % buf.getFbProperties()
maintex = Texture()
buf.addRenderTexture(maintex, GraphicsOutput.RTMBindOrCopy)
aux0tex = Texture()
buf.addRenderTexture(aux0tex, GraphicsOutput.RTMBindOrCopy,
                     GraphicsOutput.RTPAuxRgba0)

scene = NodePath("scene")
scene.setAntialias(AntialiasAttrib.MAuto)
clcol = Vec4(0.0, 0.0, 0.0, 1.0)
cam = base.makeCamera(win=buf, clearDepth=True, clearColor=clcol)
cam.reparentTo(scene)
dr = cam.node().getDisplayRegion(0)
dr.setClearActive(GraphicsOutput.RTPAuxRgba0, True)
dr.setClearValue(GraphicsOutput.RTPAuxRgba0, clcol)
lens = PerspectiveLens()
lens.setFov(50)
cam.node().setLens(lens)

model = loader.loadModel("misc/rgbCube")
model.reparentTo(scene)
model.setPos(0.0, 3.0, 0.0)
model.setHpr(0.0, 0.0, 5.0)
shader = Shader.make("""
void vshader (uniform float4x4 mat_modelproj,
              float4 vtx_position : POSITION,
              out float4 l_position : POSITION)
{
    l_position = mul(mat_modelproj, vtx_position);
}

void fshader (out float4 o_color : COLOR0,
              out float4 o_aux : COLOR1)
{

    o_color = float4(1.0, 0.0, 0.0, 0.0);
    o_aux = float4(0.0, 0.0, 1.0, 0.0);
}
""", Shader.SLCg)
model.setShader(shader)

base.bufferViewer.toggleEnable()

def loop (task):
    model.setH(task.time * 100)
    return task.cont

taskMgr.add(loop, "loop")

run()

Great detective work! Sorry that I haven’t found the time yet to look closer at the issue.

According to the OpenGL reference:
opengl.org/sdk/docs/man3/xht … buffer.xml
glBlitFramebuffer raises GL_INVALID_OPERATION (which you’re getting) when any of the following condition holds: (I’ve already excluded the ones that can’t possibly apply)

The read buffer contains fixed-point or floating-point values and any draw buffer contains neither fixed-point nor floating-point values.

The read buffer contains unsigned integer values and any draw buffer does not contain unsigned integer values.

The read buffer contains signed integer values and any draw buffer does not contain signed integer values.

GL_INVALID_OPERATION is generated if mask contains GL_DEPTH_BUFFER_BIT or GL_STENCIL_BUFFER_BIT and the source and destination depth and stencil formats do not match.

GL_INVALID_OPERATION is generated if the value of GL_SAMPLES for the read and draw buffers is not identical.

GL_INVALID_OPERATION is generated if GL_SAMPLE_BUFFERS for both read and draw buffers greater than zero and the dimensions of the source and destination rectangles is not identical.

The next step would be trying to figure out which of these it could be and then finding out why. You could print out some of the parameters passed to it and the parameters that were used to configure the buffer, and see if any of those would raise any red flags.

You should also try “textures-power-2 none” in Config.prc; a shot in the dark, but just to see if that could possibly be causing a size mismatch or so.

You can also try the latest development build. I’ve recently checked in a lot of overhauls to the FBO code. However, I haven’t tested anything with multisamples, so for all I know, I introduced even more problems.

(Note: in my previous message I was incorrect that only the blit call for auxiliary bitplane was failing, in fact also the one before for color-depth-stencil was failing. But that does not change the situation, I guess.)

I saw nothing obviously wrong with parameters to it or how the buffer properties are used, so I went about comparing how the base and the multisampling bitplanes are built, in functions bind_slot and bind_slot_multisample. This ended up a bit above my head, however, I did notice that in function rebuild_bitplanes which calls them, this call:

bind_slot(face, rb_resize, attach, RTP_depth_stencil, GL_DEPTH_ATTACHMENT_EXT);

had no bind_slot_multisample counterpart. The first thing I tried was making an analogous call to bind_slot_multisample, but that resulted in same errors on blitting. Seeing that I didn’t need the stencil buffer, the next thing I did was remove the bind_slot call for the stencil and remove stencil flags from blit calls, i.e. eliminate stencil handling altogether, and that made the blit calls work.

But even with blitting errors out of the way, the image was still not updating. Here I suspected that something was being skipped for update after the first frame. I found this part early in the function rebuild_bitplanes:

  if (!_needs_rebuild) {
    glgsg->bind_fbo(_fbo[0]);
    return;
  }

while below there were also bind_fbo counterparts for multisampling. Adding that inside this condition, apparently finaly fixed it for me.

Here is the diff of all changes:

--- panda/src/glstuff/glGraphicsBuffer_src.cxx.orig 2013-09-05 20:18:40.924519900 +0200
+++ panda/src/glstuff/glGraphicsBuffer_src.cxx.m3   2013-09-08 01:05:47.283192036 +0200
@@ -247,6 +247,10 @@
 
   if (!_needs_rebuild) {
     glgsg->bind_fbo(_fbo[0]);
+    if (_requested_multisamples) {
+      glgsg->bind_fbo(_fbo_multisample);
+      glEnable(GL_MULTISAMPLE);
+    }
     return;
   }
   
@@ -339,7 +343,6 @@
 
     // For all slots, update the slot.
     
-    bind_slot(face, rb_resize, attach, RTP_depth_stencil, GL_DEPTH_ATTACHMENT_EXT);
     bind_slot(face, rb_resize, attach, RTP_depth, GL_DEPTH_ATTACHMENT_EXT);
     bind_slot(face, rb_resize, attach, RTP_color, GL_COLOR_ATTACHMENT0_EXT);
 #ifndef OPENGLES
@@ -361,7 +364,7 @@
     // Clear if the fbo was just created, regardless of the clear settings per frame.
     if (_initial_clear) {
       glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
-      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     }
   }
 
@@ -392,7 +395,7 @@
 
     if (_initial_clear) {
       glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
-      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+      glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     }
   } else {
     glDisable(GL_MULTISAMPLE);
@@ -1152,7 +1155,7 @@
   }
   if (do_depth_blit) {
     glgsg->_glBlitFramebuffer(0, 0, _rb_size_x, _rb_size_y, 0, 0, _rb_size_x, _rb_size_y,
-                              GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT,
+                              GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT,
                               GL_NEAREST);
   } else {
     glgsg->_glBlitFramebuffer(0, 0, _rb_size_x, _rb_size_y, 0, 0, _rb_size_x, _rb_size_y,

The stencil change is of course no fix, but I hope at least it shows that matching of stencil bitplane is what needs to be fixed by someone with OpenGL-foo.

The last development build for Debian/Ubuntu is from July 10, and that didn’t work for me. As in, eheh, the test code above was even worse behaving. Instead of the boxes in the buffer viewer, the whole surface was uniform red :slight_smile:

I checked in some fixes for multisample FBOs a few weeks ago. Let me know if it still gives issues with a recent development build.