Board index FlightGear Development Effects and shaders

Volumetric grass (was 3D textures and volumetric data)

An exciting "new" option in FlightGear, that includes reflections, lightmaps, the particle system etc.. A lot is yet to be discovered/implemented!

Re: Volumetric grass (was 3D textures and volumetric data)

Postby Thorsten » Fri May 26, 2017 1:07 pm

Yeah... it's a geometry shader plus (potentially) 30 layers of fragment shaders. Probably among the most expensive effects we have.
Thorsten
 
Posts: 11191
Joined: Mon Nov 02, 2009 8:33 am

Re: Volumetric grass (was 3D textures and volumetric data)

Postby wlbragg » Fri May 26, 2017 4:49 pm

This causes a drop in framerate of 50% for me (from 60 to 30 fps).

Wow, no kidding. I'm not high end by any means, either CPU or GPU, at least in a current sense. But with my system I am only loosing 2-5 framerate somewhere between 10%-25%.
What is funny is your lowest framerate at 30 is hight than, my highest framerate at 20ish. This is with all the bells and whistles running including the volumetric grass, a very expensive custom scenery and lots of AI traffic in the immediate area (some of the heavier AI models, might I add).
If I switch to standard scenery, away from AI and cut the transition and overly I can get upwards of 30. I loose around 10, 33% by using both transition and overlay.
In fact I think I loose as much or more with the transition as I do with the overlay. As it is now though I have to run transition to use the overlay.
Kansas(2-27-15)/Ohio/Midwest scenery development.
KEQA (2-27-15), 3AU, KRCP Airport Layout
Intel i5 3570K AMDRX480
User avatar
wlbragg
 
Posts: 4989
Joined: Sat Aug 25, 2012 11:31 pm
Location: Kansas (Tornado Alley), USA
Callsign: WC2020
Version: next
OS: Win10/Linux/AMDRX480

Re: Volumetric grass (was 3D textures and volumetric data)

Postby ludomotico » Fri May 26, 2017 5:13 pm

erik wrote in Fri May 26, 2017 12:51 pm:This causes a drop in framerate of 50% for me (from 60 to 30 fps). So while looking great it's not for me at this time.


wlbragg wrote in Fri May 26, 2017 4:49 pm:But with my system I am only loosing 2-5 framerate somewhere between 10%-25%.


If you have vsync on, the FPS are synced to the vertical refresh rate of your video card. With vsync on, you will get your-screen-Hz/N FPS, where N is an integer. If your screen refresh rate is 60Hz, you can only get 15FPS, 20FPS, 30FPS or 60FPS, not anything in between.

(medium performance machines are usually inside the range 15-30FPS. With vsync on, they really draw only at 15, 20 or 30FPS but, since the FPS value shown on screen is actually a moving average, flightgear'll report some movement and partial figures between these three 15-20-30 values)

So, if your hypothetical system needs 10% of its resources to draw volumetric grass and you are using vsync on a 60Hz screen:

- If you had 60FPS without volumetric grass, you could get 54FPS with volumetric grass, but your card only draws 30FPS due to the vsync. You'll see an apparent 50% drop of performance.
- If you had 20FPS without volumetric grass, you could get 18FPS with volumetric grass on, but your card only draws 15FPS due to the vsync. You'll see an apparent 25% drop on performance.
- If you had 30FPS without volumetric grass on a system limited by vsync but it could draw 40FPS if allowed, you could get 36FPS with volumetric grass on but your card still only draws 30FPS due to the vsync. You won't notice any difference on performance.

https://hardforum.com/threads/how-vsync ... it.928593/

To run performance tests, be sure your video card is not configured to use vsync or, at least, vsync is not limiting your video card. AFAIK, there is not any option inside flightgear to change vsync and you must switch vsync off in your video card settings BEFORE running flightgear to run performance tests.

(final note: vsync is not a bad thing per se. It avoids tearing. On medium performance PCs that run between 15-30FPS, tearing may be much more annoying than the 15-20-30 limitation of vsync)
Last edited by ludomotico on Fri May 26, 2017 5:33 pm, edited 1 time in total.
User avatar
ludomotico
 
Posts: 1018
Joined: Tue Apr 24, 2012 1:01 pm
Version: git
OS: Debian GNU/Linux

Re: Volumetric grass (was 3D textures and volumetric data)

Postby erik » Fri May 26, 2017 5:31 pm

I get anything between 30 and 60 fps when the volumetric grass effect gradually moves out of sight so I don't think it is a v-sync problem.

Update: it seems however related to the scale off the grass area. With a small area covered I get a solid 60fps even with the effect enabled but at some point (when more area gets into view) there is a sudden drop to 30fps.

Update2: Ok V-sync was involved but it still has a massive impact:
where I had 60fps I now get over 100fps and where I had 30fps I now get 45 fps.

Erik
erik
 
Posts: 1522
Joined: Thu Nov 01, 2007 1:41 pm

Re: Volumetric grass (was 3D textures and volumetric data)

Postby Thorsten » Fri May 26, 2017 6:03 pm

Update: it seems however related to the scale off the grass area. With a small area covered I get a solid 60fps even with the effect enabled but at some point (when more area gets into view) there is a sudden drop to 30fps.


The up to 30 layers of fragment shader should actually have the largest impact when you render a small patch nearby in fullscreen - if it's the large-angle shots which cause the impact, it's probably the geometry shader (which costs per triangle).

But with my system I am only loosing 2-5 framerate somewhere between 10%-25%.
What is funny is your lowest framerate at 30 is hight than, my highest framerate at 20ish.


Convert it into the additional delay incurred per frame, and you can explain some of it.
Thorsten
 
Posts: 11191
Joined: Mon Nov 02, 2009 8:33 am

Re: Volumetric grass (was 3D textures and volumetric data)

Postby archy » Mon May 29, 2017 5:06 pm

How can i try this? I need activate something except overlay in settings?
I compile fresh from dev branch btw
archy
 
Posts: 20
Joined: Sat Jan 28, 2017 11:28 pm

Re: Volumetric grass (was 3D textures and volumetric data)

Postby Thorsten » Mon May 29, 2017 5:19 pm

I need activate something except overlay in settings?


Transition and landmass need to be high enough to support the base effect (I think 2 and 2 are the requirements).

Otherwise if you don't see it, the graphics card likely doesn't offer geometry shaders.
Thorsten
 
Posts: 11191
Joined: Mon Nov 02, 2009 8:33 am

Re: Volumetric grass (was 3D textures and volumetric data)

Postby archy » Mon May 29, 2017 6:11 pm

I see. I got it working on my integrated NVidia card.

Then it not to work on ATI Radeon with Gallium drivers.

With ATI/AMD proprietary drivers there is no runway lightning and now with Gallium drivers there runway lights work but not the grass overlay. Now that I tought I had find a way to run flightgear on my Radeon card. Then a new effect that not work 100% again. Unlucky me!

I guess I better go for a NVidia card next time :D
archy
 
Posts: 20
Joined: Sat Jan 28, 2017 11:28 pm

Re: Volumetric grass (was 3D textures and volumetric data)

Postby bugman » Tue May 30, 2017 9:10 am

archy wrote in Mon May 29, 2017 6:11 pm:I guess I better go for a NVidia card next time :D


Or maybe you help the upstream Mesa developers fix the AMD Gallium driver to work with this effect ;)

Regards,
Edward
bugman
Moderator
 
Posts: 1718
Joined: Thu Mar 19, 2015 9:01 am
Version: next

Re: Volumetric grass (was 3D textures and volumetric data)

Postby Icecode GL » Tue May 30, 2017 6:06 pm

to work with this effect


I don't think this effect uses anything non-standard or very modern OpenGL especifications. In fact the shaders themselves use GLSL version 120, which any recent fully featured driver should cover good enough. Geometry shaders have been a standard for a while, and to my knowledge mesa made a controversial decision to emulate them in software if there is no hardware support.

The only thing I can think of is discard, but I think that only affects performance in mobile devices. Apart from that, there is nothing really fancy going on.
Icecode GL
 
Posts: 569
Joined: Thu Aug 12, 2010 12:17 pm
Location: Spain
Callsign: icecode
Version: GIT
OS: Arch Linux

Re: Volumetric grass (was 3D textures and volumetric data)

Postby Thorsten » Tue May 30, 2017 6:17 pm

Hm, the predicate section also doesn't seem to have anything exotic.

I'm not sure about that (copied from Fred's old geometry shaders I guess) - could it be this needs to be called differently for other drivers?

Code: Select all
<extension-supported>GL_EXT_geometry_shader4</extension-supported>
Thorsten
 
Posts: 11191
Joined: Mon Nov 02, 2009 8:33 am

Re: Volumetric grass (was 3D textures and volumetric data)

Postby Icecode GL » Tue May 30, 2017 7:57 pm

I didn't think of extension support, and I'm pretty sure that might be the issue here. I don't have access to a computer with an AMD graphics card, so if archy could provide the output of glxinfo or Windows equivalent we could see which extension Mesa implements for geometry shader support and change it in the predicate.
Icecode GL
 
Posts: 569
Joined: Thu Aug 12, 2010 12:17 pm
Location: Spain
Callsign: icecode
Version: GIT
OS: Arch Linux

Re: Volumetric grass (was 3D textures and volumetric data)

Postby archy » Tue May 30, 2017 8:31 pm

Sure no problem!

Code: Select all
glxinfo
---------
name of display: :1
display: :1  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
    GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample,
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
    GLX_EXT_import_context, GLX_EXT_libglvnd, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_INTEL_swap_event,
    GLX_MESA_copy_sub_buffer, GLX_OML_swap_method, GLX_SGIS_multisample,
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group,
    GLX_SGI_make_current_read, GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
    GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
    GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
    GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
    GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
    GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
    GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
    GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float,
    GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
    GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
    GLX_SGI_swap_control, GLX_SGI_video_sync
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD PITCAIRN (DRM 2.48.0 / 4.9.29-1-lts, LLVM 4.0.0) (0x6810)
    Version: 17.1.0
    Accelerated: yes
    Video memory: 2048MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD PITCAIRN (DRM 2.48.0 / 4.9.29-1-lts, LLVM 4.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.1.0
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend,
    GL_AMD_performance_monitor, GL_AMD_pinned_memory,
    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export,
    GL_AMD_shader_trinary_minmax, GL_AMD_vertex_shader_layer,
    GL_AMD_vertex_shader_viewport_index, GL_ANGLE_texture_compression_dxt3,
    GL_ANGLE_texture_compression_dxt5, GL_ARB_ES2_compatibility,
    GL_ARB_ES3_1_compatibility, GL_ARB_ES3_2_compatibility,
    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance,
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,
    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,
    GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage,
    GL_ARB_compute_shader, GL_ARB_compute_variable_group_size,
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance,
    GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp,
    GL_ARB_derivative_control, GL_ARB_direct_state_access,
    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_enhanced_layouts,
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image,
    GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64, GL_ARB_gpu_shader_int64,
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex,
    GL_ARB_instanced_arrays, GL_ARB_internalformat_query,
    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata,
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,
    GL_ARB_multi_draw_indirect, GL_ARB_occlusion_query2,
    GL_ARB_pipeline_statistics_query, GL_ARB_pixel_buffer_object,
    GL_ARB_point_sprite, GL_ARB_program_interface_query,
    GL_ARB_provoking_vertex, GL_ARB_query_buffer_object,
    GL_ARB_robust_buffer_access_behavior, GL_ARB_robustness,
    GL_ARB_sample_shading, GL_ARB_sampler_objects, GL_ARB_seamless_cube_map,
    GL_ARB_seamless_cubemap_per_texture, GL_ARB_separate_shader_objects,
    GL_ARB_shader_atomic_counter_ops, GL_ARB_shader_atomic_counters,
    GL_ARB_shader_bit_encoding, GL_ARB_shader_clock, GL_ARB_shader_group_vote,
    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_image_samples,
    GL_ARB_shader_texture_lod, GL_ARB_shader_viewport_layer_array,
    GL_ARB_shading_language_420pack, GL_ARB_shading_language_packing,
    GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_tessellation_shader,
    GL_ARB_texture_barrier, GL_ARB_texture_buffer_object,
    GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range,
    GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc,
    GL_ARB_texture_cube_map_array, GL_ARB_texture_float,
    GL_ARB_texture_gather, GL_ARB_texture_mirror_clamp_to_edge,
    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_stencil8, GL_ARB_texture_storage,
    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,
    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,
    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra,
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit,
    GL_ARB_vertex_attrib_binding, GL_ARB_vertex_shader,
    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,
    GL_ARB_viewport_array, GL_ATI_blend_equation_separate, GL_ATI_meminfo,
    GL_ATI_texture_float, GL_ATI_texture_mirror_once, GL_EXT_abgr,
    GL_EXT_blend_equation_separate, GL_EXT_depth_bounds_test,
    GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_framebuffer_blit,
    GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled,
    GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float,
    GL_EXT_pixel_buffer_object, GL_EXT_polygon_offset_clamp,
    GL_EXT_provoking_vertex, GL_EXT_shader_integer_mix, GL_EXT_texture_array,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_integer, GL_EXT_texture_mirror_clamp, GL_EXT_texture_sRGB,
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent,
    GL_EXT_texture_snorm, GL_EXT_texture_swizzle, GL_EXT_timer_query,
    GL_EXT_transform_feedback, GL_EXT_vertex_array_bgra,
    GL_IBM_multimode_draw_arrays, GL_KHR_context_flush_control, GL_KHR_debug,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_MESA_pack_invert, GL_MESA_shader_integer_functions,
    GL_MESA_texture_signed_rgba, GL_NVX_gpu_memory_info,
    GL_NV_conditional_render, GL_NV_depth_clamp, GL_NV_packed_depth_stencil,
    GL_NV_texture_barrier, GL_NV_vdpau_interop, GL_OES_EGL_image, GL_S3_s3tc

OpenGL version string: 3.0 Mesa 17.1.0
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
    GL_AMD_conservative_depth, GL_AMD_draw_buffers_blend,
    GL_AMD_performance_monitor, GL_AMD_pinned_memory,
    GL_AMD_seamless_cubemap_per_texture, GL_AMD_shader_stencil_export,
    GL_AMD_shader_trinary_minmax, GL_ANGLE_texture_compression_dxt3,
    GL_ANGLE_texture_compression_dxt5, GL_APPLE_packed_pixels,
    GL_APPLE_vertex_array_object, GL_ARB_ES2_compatibility,
    GL_ARB_ES3_compatibility, GL_ARB_arrays_of_arrays, GL_ARB_base_instance,
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,
    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,
    GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage,
    GL_ARB_compute_shader, GL_ARB_compute_variable_group_size,
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance,
    GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp,
    GL_ARB_depth_texture, GL_ARB_derivative_control, GL_ARB_draw_buffers,
    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex,
    GL_ARB_draw_instanced, GL_ARB_explicit_attrib_location,
    GL_ARB_explicit_uniform_location, GL_ARB_fragment_coord_conventions,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_get_program_binary, GL_ARB_get_texture_sub_image,
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex,
    GL_ARB_instanced_arrays, GL_ARB_internalformat_query,
    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata,
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
    GL_ARB_occlusion_query2, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
    GL_ARB_query_buffer_object, GL_ARB_robust_buffer_access_behavior,
    GL_ARB_robustness, GL_ARB_sample_shading, GL_ARB_sampler_objects,
    GL_ARB_seamless_cube_map, GL_ARB_seamless_cubemap_per_texture,
    GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counter_ops,
    GL_ARB_shader_atomic_counters, GL_ARB_shader_bit_encoding,
    GL_ARB_shader_clock, GL_ARB_shader_group_vote,
    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_texture_image_samples, 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_stencil_texturing,
    GL_ARB_sync, GL_ARB_texture_barrier, GL_ARB_texture_border_clamp,
    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_mirror_clamp_to_edge, 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_stencil8, GL_ARB_texture_storage,
    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,
    GL_ARB_texture_view, 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_binding, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_vertex_shader,
    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,
    GL_ARB_window_pos, GL_ATI_blend_equation_separate, GL_ATI_draw_buffers,
    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_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_texture,
    GL_EXT_depth_bounds_test, 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_multisample_blit_scaled,
    GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB,
    GL_EXT_gpu_program_parameters, 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_polygon_offset, GL_EXT_polygon_offset_clamp,
    GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_specular_color, GL_EXT_shader_integer_mix,
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
    GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,
    GL_EXT_texture_array, GL_EXT_texture_compression_dxt1,
    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_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_swizzle, GL_EXT_timer_query,
    GL_EXT_transform_feedback, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra,
    GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
    GL_KHR_context_flush_control, GL_KHR_debug,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_MESA_pack_invert, GL_MESA_shader_integer_functions,
    GL_MESA_texture_signed_rgba, GL_MESA_window_pos, GL_NVX_gpu_memory_info,
    GL_NV_blend_square, GL_NV_conditional_render, GL_NV_depth_clamp,
    GL_NV_fog_distance, GL_NV_light_max_exponent, GL_NV_packed_depth_stencil,
    GL_NV_primitive_restart, GL_NV_texgen_reflection, GL_NV_texture_barrier,
    GL_NV_texture_env_combine4, GL_NV_texture_rectangle, GL_NV_vdpau_interop,
    GL_OES_EGL_image, GL_OES_read_format, GL_S3_s3tc,
    GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp,
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.1.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:
    GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5,
    GL_APPLE_texture_max_level, GL_EXT_base_instance,
    GL_EXT_blend_func_extended, GL_EXT_blend_minmax, GL_EXT_buffer_storage,
    GL_EXT_clip_cull_distance, GL_EXT_color_buffer_float,
    GL_EXT_compressed_ETC1_RGB8_sub_texture, GL_EXT_copy_image,
    GL_EXT_discard_framebuffer, GL_EXT_draw_buffers,
    GL_EXT_draw_buffers_indexed, GL_EXT_draw_elements_base_vertex,
    GL_EXT_frag_depth, GL_EXT_geometry_point_size, GL_EXT_geometry_shader,
    GL_EXT_gpu_shader5, GL_EXT_map_buffer_range, GL_EXT_multi_draw_arrays,
    GL_EXT_polygon_offset_clamp, GL_EXT_primitive_bounding_box,
    GL_EXT_read_format_bgra, GL_EXT_robustness,
    GL_EXT_separate_shader_objects, GL_EXT_shader_integer_mix,
    GL_EXT_shader_io_blocks, GL_EXT_tessellation_point_size,
    GL_EXT_tessellation_shader, GL_EXT_texture_border_clamp,
    GL_EXT_texture_buffer, GL_EXT_texture_compression_dxt1,
    GL_EXT_texture_cube_map_array, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_format_BGRA8888, GL_EXT_texture_rg,
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_type_2_10_10_10_REV,
    GL_EXT_unpack_subimage, GL_KHR_context_flush_control, GL_KHR_debug,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_MESA_shader_integer_functions, GL_NV_draw_buffers,
    GL_NV_fbo_color_attachments, GL_NV_image_formats, GL_NV_read_buffer,
    GL_NV_read_depth, GL_NV_read_depth_stencil, GL_NV_read_stencil,
    GL_OES_EGL_image, GL_OES_EGL_image_external, GL_OES_EGL_sync,
    GL_OES_compressed_ETC1_RGB8_texture, GL_OES_copy_image, GL_OES_depth24,
    GL_OES_depth_texture, GL_OES_depth_texture_cube_map,
    GL_OES_draw_buffers_indexed, GL_OES_draw_elements_base_vertex,
    GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,
    GL_OES_geometry_point_size, GL_OES_geometry_shader,
    GL_OES_get_program_binary, GL_OES_gpu_shader5, GL_OES_mapbuffer,
    GL_OES_packed_depth_stencil, GL_OES_primitive_bounding_box,
    GL_OES_rgb8_rgba8, GL_OES_sample_shading, GL_OES_sample_variables,
    GL_OES_shader_image_atomic, GL_OES_shader_io_blocks,
    GL_OES_shader_multisample_interpolation, GL_OES_standard_derivatives,
    GL_OES_stencil8, GL_OES_surfaceless_context,
    GL_OES_tessellation_point_size, GL_OES_tessellation_shader,
    GL_OES_texture_3D, GL_OES_texture_border_clamp, GL_OES_texture_buffer,
    GL_OES_texture_cube_map_array, GL_OES_texture_float,
    GL_OES_texture_float_linear, GL_OES_texture_half_float,
    GL_OES_texture_half_float_linear, GL_OES_texture_npot,
    GL_OES_texture_stencil8, GL_OES_texture_storage_multisample_2d_array,
    GL_OES_vertex_array_object, GL_OES_vertex_half_float,
    GL_OES_viewport_array
Last edited by Johan G on Sat Jun 03, 2017 11:08 am, edited 1 time in total.
Reason: Please use [code] tags for listings like that. They can be added manually or with the [^_ ] button.
archy
 
Posts: 20
Joined: Sat Jan 28, 2017 11:28 pm

Re: Volumetric grass (was 3D textures and volumetric data)

Postby Icecode GL » Tue May 30, 2017 8:42 pm

The driver implements GL_EXT_geometry_shader instead of GL_EXT_geometry_shader4. Changing the predicate to something like

Code: Select all
<or>
    <extension-supported>GL_EXT_geometry_shader4</extension-supported>
    <extension-supported>GL_EXT_geometry_shader</extension-supported>
</or>


instead of

Code: Select all
<extension-supported>GL_EXT_geometry_shader4</extension-supported>


might work. You can try changing it yourself in Effects/grass.eff in FGData around line 87 and see if it makes a difference.
Icecode GL
 
Posts: 569
Joined: Thu Aug 12, 2010 12:17 pm
Location: Spain
Callsign: icecode
Version: GIT
OS: Arch Linux

Re: Volumetric grass (was 3D textures and volumetric data)

Postby archy » Tue May 30, 2017 10:48 pm

I try change it like this without any success.. Or i need change it too something else?
If wrong, please show me how to edit it correctly.

<predicate>
<and>
<property>/sim/rendering/shaders/skydome</property>
<less-equal>
<value type="float">2.0</value>
<float-property>/sim/rendering/shaders/transition</float-property>
</less-equal>
<less-equal>
<value type="float">1.0</value>
<float-property>/sim/rendering/shaders/vegetation-effects</float-property>
</less-equal>
<equal>
<value type="float">0.0</value>
<float-property>/sim/rendering/rembrandt/enabled</float-property>
</equal>
<or>
<less-equal>
<value type="float">2.0</value>
<glversion/>
</less-equal>
<and>
<extension-supported>GL_ARB_shader_objects</extension-supported>
<extension-supported>GL_ARB_shading_language_100</extension-supported>
<extension-supported>GL_ARB_vertex_shader</extension-supported>
<extension-supported>GL_ARB_fragment_shader</extension-supported>
</and>
</or>
<!--<extension-supported>GL_EXT_geometry_shader4</extension-supported>-->
</and>
<!-- Here? Like this? -->
<or>
<extension-supported>GL_EXT_geometry_shader4</extension-supported>
<extension-supported>GL_EXT_geometry_shader</extension-supported>
</or>
<!-- Or somewhere else? -->

</predicate>
archy
 
Posts: 20
Joined: Sat Jan 28, 2017 11:28 pm

PreviousNext

Return to Effects and shaders

Who is online

Users browsing this forum: No registered users and 1 guest