16:49:21: Starting /work6/TestCode/build-qq3dshadertest-Desktop_Qt_5_15_3_GCC_64bit-Release/qq3dshadertest ... QSSG.trace_info: GLSL version: 4.60 NVIDIA QSSG.trace_info: GL version: 4.6.0 NVIDIA 390.116 QSSG.trace_info: HW vendor: NVIDIA Corporation QSSG.trace_info: Vendor renderer: Quadro M2000M/PCIe/SSE2 QSSG.trace_info: OpenGL extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted 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_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility 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_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv 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_imaging GL_ARB_indirect_parameters 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_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp 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_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters 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_storage_buffer_object GL_ARB_shader_subroutine 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_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier 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_filter_anisotropic 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_transform_feedback_overflow_query 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_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_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add 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_Cg_shader 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_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 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_clamp GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object 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_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_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_deep_texture3D GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum QSSG.trace_info: GL version: 4.6.0 NVIDIA 390.116 No know uniform convertion found for property objectName. Skipping No know uniform convertion found for property state. Skipping QSSG.trace_info: Compiling into shader cache: ' ":/shaders/rotational_blur.frag" >' QSSG.internal_error: Failed to generate fragment shader!! QSSG.internal_error: Fragment source: #version 460 #define texture2D texture #extension GL_ARB_gpu_shader5 : enable #extension GL_ARB_shader_image_load_store : enable #extension GL_ARB_shader_storage_buffer_object : enable #extension GL_KHR_blend_equation_advanced : enable #if __VERSION__ >= 330 #define varying in #define texture2D texture #define gl_FragColor fragOutput layout(blend_support_all_equations) out; #ifndef NO_FRAG_OUTPUT out vec4 fragOutput; #endif #else #define fragOutput gl_FragData[0] #endif //Shader name -:/shaders/rotational_blur.frag #define FRAGMENT_SHADER #define GEOMETRY_WIREFRAME_SHADER 0 // begin "effect.glsllib" #ifndef EFFECT_GLSLLIB #define EFFECT_GLSLLIB 1 //Defines used in the effect files. vec4 GetTextureValue( sampler2D sampler, vec2 inUVCoords, float inTextureAlphaInfo ) { vec4 c = texture2D(sampler, inUVCoords); c.rgb = mix( c.rgb*c.a, c.rgb, inTextureAlphaInfo ); return c; } vec4 GetTextureValuePreMult( sampler2D sampler, vec2 inUVCoords ) { return texture2D(sampler, inUVCoords); } #define SNAPPER_TITLE( title ) #define SNAPPER_PARAMETER(propName, datatype, rangeMin, rangeMax, propNiceName, defaultValue) datatype propName #define SNAPPER_ANGLE( propName, propNiceName, defaultValueAsFloat ) uniform float propName; #define SNAPPER_CHECKBOX(propName, propNiceName, defaultValue) uniform float propName; #define SNAPPER_ENUM_BEGIN(propName, propNiceName, defaultValueAsIndex) uniform int propName; #define SNAPPER_ENUM_VALUE(valueNiceName) #define SNAPPER_ENUM_END() #define SNAPPER_POINT2(propName, propNiceName, defaultValue) uniform vec2 propName; #define SNAPPER_COLOR(propName, propNiceName, defaultValue) uniform vec3 propName; #define TEXTURE_LOOKUP_FUNC(name) \ //texType = one of: ubyte, ushort, float //texFormat = one of: rgb, rgba, lum, lum_alpha //texFilter = one of: nearest, linear //texWrap = one of: repeat, clamp #define SNAPPER_EXTERNAL_PARAMETER(propName, datatype, rangeMin, rangeMax, propNiceName, defaultValue) #define SNAPPER_EXTERNAL_ANGLE(propName, propNiceName, defaultValueAsFloat) // Provide the ability to render outside a effect boundary. // Total size = The original effect size * Overrendering value // Overrendering value needs to be >= 1.0 #define SNAPPER_OVERRENDERING(value) const float OverrenderingValue = value; #ifdef VERTEX_SHADER // Attributes and uniforms used throughout the system. attribute vec3 attr_pos; attribute vec2 attr_uv; #endif uniform mat4 ModelViewProjectionMatrix; //x holds the texture width, y holds the texture height //z holds 0,1 value if it should be premultiplied uniform vec4 Texture0Info; uniform vec2 DestSize; //size of the destination in pixels including overrendering if specified. uniform sampler2D Texture0; varying vec2 TexCoord; uniform vec2 FragColorAlphaSettings; //x > 0.0 premultiply result, y is an alpha multiplier (opacity setting) vec4 Transform( mat4 ModelViewProjectionMatrix, vec2 inDestSize, vec4 inVertex ) { vec4 temp = ModelViewProjectionMatrix * vec4( inDestSize.x * .5 * inVertex.x, inDestSize.y * .5 * inVertex.y, inVertex.z, inVertex.w ); return temp; } //////////////////////////////////////////////////////////// // provide the texture lookup functions for the default // texture (Texture0). vec4 texture2D_0(vec2 uv) { return GetTextureValue( Texture0, uv, Texture0Info.z ); } #ifdef FRAGMENT_SHADER //////////////////////////////////////////////////////////// // the functions to set the final frag result. void colorOutput(vec4 c) { c *= FragColorAlphaSettings.x; gl_FragColor = clamp(c, 0.0, c.a ); } #endif //////////////////////////////////////////////////////////// // define the main functions. #ifdef VERTEX_SHADER #ifndef NO_VERT_MAIN void vert(); void main() { gl_Position = Transform( ModelViewProjectionMatrix, DestSize, vec4(attr_pos, 1.0) ); TexCoord = attr_uv; vert(); } #endif #endif #ifdef FRAGMENT_SHADER #ifndef NO_FRAG_MAIN void frag(); void main() { frag(); } #endif // NO_FRAG_MAIN #endif // FRAGMENT_SHADER #endif // EFFECT_GLSLLIB // end "effect.glsllib" in vec2 center_vec; in float aspect_scale; out vec4 fragColor; float PI = 3.14159265359; float atan2(in float y, in float x) { bool s = (abs(x) > abs(y)); return mix(PI/2.0 - atan(x,y), atan(y,x), s); } void frag() { float r = length(center_vec); const int SAMPLES = 18; float PARAM_RadialBlurLength = PI/3.5; // In radians float theta = atan(center_vec.y, center_vec.x); vec4 sum = vec4(0,0,0,0); vec2 tapCoords = vec2(0,0); for(int i = 0; i < SAMPLES; i++) { float tapTheta = theta + float(i) * (PARAM_RadialBlurLength / float(SAMPLES)); float tapR = r; // If you alter this according to 'i' you will get a swirl. // Remember we need to invert the origin offset we // used to create the co-ordinates, the the + 0.5 on each. tapCoords.x = tapR * cos(tapTheta) + 0.5; tapCoords.y = tapR * sin(tapTheta) / aspect_scale + 0.5; sum += texture(Texture0, tapCoords); } sum /= float(SAMPLES); fragColor = sum; } #ifdef VERTEX_SHADER void vert(){} #endif #ifdef FRAGMENT_SHADER void frag(){} #endif QSSG.invalid_operation: Fragment compilation output:: 0(194) : error C1013: function "frag" is already defined at 0(135) QSSG.invalid_operation: Fragment compilation output:: 16:49:23: /work6/TestCode/build-qq3dshadertest-Desktop_Qt_5_15_3_GCC_64bit-Release/qq3dshadertest exited with code 0