Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

projectM shaders not rendering on OSX #2

Closed
diimdeep opened this issue Apr 19, 2019 · 11 comments
Closed

projectM shaders not rendering on OSX #2

diimdeep opened this issue Apr 19, 2019 · 11 comments

Comments

@diimdeep
Copy link

macOS, macbook 2013
compiled fine, but this errors from terminal while running
shows a scaled down version of my Rack

Failed to compile shader 'Vertex: v2f_c4f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: v2f_c4f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

Failed to compile shader 'Vertex: v2f_c4f_t2f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: v2f_c4f_t2f'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

Failed to compile shader 'Vertex: blur1'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: blur1'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

Failed to compile shader 'Vertex: blur2'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'layout' : syntax error: syntax error

Failed to compile shader 'Fragment: blur2'. Error: ERROR: 0:1: '' :  version '300' is not supported
ERROR: 0:1: '' : syntax error: #version
ERROR: 0:2: 'precision' : syntax error: syntax error

Failed to link program: ERROR: One or more attached shaders not successfully compiled

[PresetFactory] url is idle://Geiss & Sperl - Feedback (projectM idle HDR mix).milk
No Textures Loaded from /usr/local/share/projectM/presets
No Textures Loaded from /usr/local/share/projectM/textures
@dizzisound
Copy link

@diimdeep It looks like this depends on the GLSL version supported by your system and/or device drivers.
The issue is known, it's quite recent, and it's tracked (also marked as important) in this projectM thread.

@korfuri
Copy link
Owner

korfuri commented Apr 21, 2019

I managed to borrow a macbook today and to reproduce this. It appears that OSX is only shipping a very old OpenGL and won't upgrade it as they want people to move to Metal. I'm not familiar with the OSX ecosystem, but since I'm not seeing a configure flag for Metal in projectM I'm worried our options may be severely limited here. Thoughts?

@korfuri korfuri changed the title Runtime error projectM shaders not rendering on OSX Apr 21, 2019
@korfuri
Copy link
Owner

korfuri commented Apr 21, 2019

@diimdeep could you provide the output of running glxinfo on your system?

@diimdeep
Copy link
Author

name of display: /private/tmp/com.apple.launchd.T35jWJuj96/org.macosforge.xquartz:0
display: /private/tmp/com.apple.launchd.T35jWJuj96/org.macosforge.xquartz:0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_OML_swap_method, GLX_SGIS_multisample, 
    GLX_SGIX_fbconfig
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_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_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, 
    GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_MESA_multithread_makecurrent, GLX_OML_swap_method, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig
OpenGL vendor string: Intel Inc.
OpenGL renderer string: Intel Iris OpenGL Engine
OpenGL version string: 2.1 INTEL-12.4.7
OpenGL shading language version string: 1.20
OpenGL extensions:
    GL_APPLE_aux_depth_stencil, GL_APPLE_client_storage, 
    GL_APPLE_element_array, GL_APPLE_fence, GL_APPLE_float_pixels, 
    GL_APPLE_flush_buffer_range, GL_APPLE_flush_render, 
    GL_APPLE_object_purgeable, GL_APPLE_packed_pixels, GL_APPLE_pixel_buffer, 
    GL_APPLE_rgb_422, GL_APPLE_row_bytes, GL_APPLE_specular_vector, 
    GL_APPLE_texture_range, GL_APPLE_transform_hint, 
    GL_APPLE_vertex_array_object, GL_APPLE_vertex_array_range, 
    GL_APPLE_vertex_point_size, GL_APPLE_vertex_program_evaluators, 
    GL_APPLE_ycbcr_422, GL_ARB_color_buffer_float, GL_ARB_depth_buffer_float, 
    GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_draw_buffers, 
    GL_ARB_draw_elements_base_vertex, GL_ARB_draw_instanced, 
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow, 
    GL_ARB_fragment_shader, GL_ARB_framebuffer_object, 
    GL_ARB_framebuffer_sRGB, GL_ARB_half_float_pixel, 
    GL_ARB_half_float_vertex, GL_ARB_instanced_arrays, GL_ARB_multisample, 
    GL_ARB_multitexture, GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object, 
    GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_provoking_vertex, 
    GL_ARB_seamless_cube_map, GL_ARB_shader_objects, 
    GL_ARB_shader_texture_lod, GL_ARB_shading_language_100, GL_ARB_shadow, 
    GL_ARB_sync, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, 
    GL_ARB_texture_compression_rgtc, GL_ARB_texture_cube_map, 
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine, 
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, 
    GL_ARB_texture_float, GL_ARB_texture_mirrored_repeat, 
    GL_ARB_texture_non_power_of_two, GL_ARB_texture_rectangle, 
    GL_ARB_texture_rg, GL_ARB_transpose_matrix, GL_ARB_vertex_array_bgra, 
    GL_ARB_vertex_blend, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, 
    GL_ARB_vertex_shader, GL_ARB_window_pos, GL_ATI_separate_stencil, 
    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_clip_volume_hint, 
    GL_EXT_debug_label, GL_EXT_debug_marker, GL_EXT_draw_buffers2, 
    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_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_provoking_vertex, GL_EXT_rescale_normal, 
    GL_EXT_secondary_color, GL_EXT_separate_specular_color, 
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, 
    GL_EXT_texture_array, GL_EXT_texture_compression_dxt1, 
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_env_add, 
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_integer, 
    GL_EXT_texture_lod_bias, GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, 
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent, 
    GL_EXT_timer_query, GL_EXT_transform_feedback, GL_EXT_vertex_array_bgra, 
    GL_IBM_rasterpos_clip, GL_NV_blend_square, GL_NV_conditional_render, 
    GL_NV_depth_clamp, GL_NV_fog_distance, GL_NV_light_max_exponent, 
    GL_NV_texgen_reflection, GL_NV_texture_barrier, GL_SGIS_generate_mipmap, 
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod

80 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
----------------------------------------------------------------------------
0x022 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  8  0  0  0  0  0 0 None
0x0c1 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 Slow
0x0c2 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0 16 1 Slow
0x0c3 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 Slow
0x0c4 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0 16 1 Slow
0x0c5 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 Slow
0x0c6 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0 16 1 Slow
0x0c7 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  8  0  0  0  0  0 0 Slow
0x0c8 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  8  0  0  0  0 16 1 Slow
0x0c9 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 Slow
0x0ca 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0 16 1 Slow
0x0cb 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 Slow
0x0cc 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0 16 1 Slow
0x0cd 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 Slow
0x0ce 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0 16 1 Slow
0x0cf 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  8  0  0  0  0  0 0 Slow
0x0d0 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  8  0  0  0  0 16 1 Slow
0x0d1 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  0  0  0  0  0  0 0 Slow
0x0d2 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  0  0  0  0  0 16 1 Slow
0x0d3 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  0  0  0  0  0  0 0 Slow
0x0d4 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  0  0  0  0  0 16 1 Slow
0x0d5 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  8  0  0  0  0  0 0 Slow
0x0d6 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  8  0  0  0  0 16 1 Slow
0x0d7 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  8  0  0  0  0  0 0 Slow
0x0d8 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  8  0  0  0  0 16 1 Slow
0x0d9 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  0  0  0  0  0  0 0 Slow
0x0da 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  0  0  0  0  0 16 1 Slow
0x0db 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  0  0  0  0  0  0 0 Slow
0x0dc 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  0  0  0  0  0 16 1 Slow
0x0dd 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  8  0  0  0  0  0 0 Slow
0x0de 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  8  0  0  0  0 16 1 Slow
0x0df 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  8  0  0  0  0  0 0 Slow
0x0e0 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  8  0  0  0  0 16 1 Slow
0x0e1 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0e2 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
0x0e3 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x0e4 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  8 1 None
0x0e5 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x0e6 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x0e7 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 None
0x0e8 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0  8 1 None
0x0e9 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  8  0  0  0  0  0 0 None
0x0ea 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  8  0  0  0  0  8 1 None
0x0eb 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0ec 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x0ed 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0ee 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
0x0ef 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x0f0 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  8 1 None
0x0f1 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x0f2 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x0f3 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 None
0x0f4 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0  8 1 None
0x0f5 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  8  0  0  0  0  8 1 None
0x0f6 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0f7 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x0f8 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  0  0  0  0  0  0 0 None
0x0f9 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  0  0  0  0  0  8 1 None
0x0fa 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  0  0  0  0  0  0 0 None
0x0fb 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  0  0  0  0  0  8 1 None
0x0fc 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  0  0  0  0  0  0 0 None
0x0fd 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  0  0  0  0  0  8 1 None
0x0fe 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  8  0  0  0  0  0 0 None
0x0ff 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  8  0  0  0  0  8 1 None
0x100 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  8  0  0  0  0  0 0 None
0x101 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  8  0  0  0  0  8 1 None
0x102 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  8  0  0  0  0  0 0 None
0x103 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  8  0  0  0  0  8 1 None
0x104 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  0  0  0  0  0  0 0 None
0x105 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  0  0  0  0  0  8 1 None
0x106 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  0  0  0  0  0  0 0 None
0x107 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  0  0  0  0  0  8 1 None
0x108 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  0  0  0  0  0  0 0 None
0x109 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  0  0  0  0  0  8 1 None
0x10a 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  8  0  0  0  0  0 0 None
0x10b 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  8  0  0  0  0  8 1 None
0x10c 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  8  0  0  0  0  0 0 None
0x10d 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  8  0  0  0  0  8 1 None
0x10e 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  8  0  0  0  0  0 0 None
0x10f 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  8  0  0  0  0  8 1 None

128 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
----------------------------------------------------------------------------
0x041 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 Slow
0x042 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0 16 1 Slow
0x043 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 Slow
0x044 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  0  0  0  0  0 16 1 Slow
0x045 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 Slow
0x046 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0 16 1 Slow
0x047 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  8  0  0  0  0  0 0 Slow
0x048 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 32  8  0  0  0  0 16 1 Slow
0x049 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 Slow
0x04a 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0 16 1 Slow
0x04b 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0  0 0 Slow
0x04c 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  0  0  0  0  0 16 1 Slow
0x04d 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 Slow
0x04e 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0 16 1 Slow
0x04f 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  8  0  0  0  0  0 0 Slow
0x050 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 32  8  0  0  0  0 16 1 Slow
0x051 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  0  0  0  0  0  0 0 Slow
0x052 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  0  0  0  0  0 16 1 Slow
0x053 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  0  0  0  0  0  0 0 Slow
0x054 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  0  0  0  0  0 16 1 Slow
0x055 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  8  0  0  0  0  0 0 Slow
0x056 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4  0  8  0  0  0  0 16 1 Slow
0x057 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  8  0  0  0  0  0 0 Slow
0x058 24 tc  1  32  0 r  . .   8  8  8  8 .  .  4 32  8  0  0  0  0 16 1 Slow
0x059 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  0  0  0  0  0  0 0 Slow
0x05a 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  0  0  0  0  0 16 1 Slow
0x05b 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  0  0  0  0  0  0 0 Slow
0x05c 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  0  0  0  0  0 16 1 Slow
0x05d 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  8  0  0  0  0  0 0 Slow
0x05e 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4  0  8  0  0  0  0 16 1 Slow
0x05f 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  8  0  0  0  0  0 0 Slow
0x060 24 tc  1  32  0 r  y .   8  8  8  8 .  .  4 32  8  0  0  0  0 16 1 Slow
0x061  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0  0  0  0  0  0  0  0 0 None
0x062  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0  0  0  0  0  0  0  8 1 None
0x063  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 16  0  0  0  0  0  0 0 None
0x064  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 16  0  0  0  0  0  8 1 None
0x065  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 24  0  0  0  0  0  0 0 None
0x066  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 24  0  0  0  0  0  8 1 None
0x067 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x068 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
0x069 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x06a 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  0  0  0  0  0  8 1 None
0x06b 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x06c 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x06d  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0  0  8  0  0  0  0  0 0 None
0x06e  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0  0  8  0  0  0  0  8 1 None
0x06f  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 16  8  0  0  0  0  0 0 None
0x070  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 16  8  0  0  0  0  8 1 None
0x071  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 24  8  0  0  0  0  0 0 None
0x072  0 tc  1  16  0 r  . .   5  5  5  1 .  .  0 24  8  0  0  0  0  8 1 None
0x073 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 None
0x074 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0  0  8  0  0  0  0  8 1 None
0x075 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  8  0  0  0  0  0 0 None
0x076 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 16  8  0  0  0  0  8 1 None
0x077 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x078 24 tc  1  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x079  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0  0  0  0  0  0  0  0 0 None
0x07a  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0  0  0  0  0  0  0  8 1 None
0x07b  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 16  0  0  0  0  0  0 0 None
0x07c  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 16  0  0  0  0  0  8 1 None
0x07d  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 24  0  0  0  0  0  0 0 None
0x07e  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 24  0  0  0  0  0  8 1 None
0x07f 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x080 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  8 1 None
0x081 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  0 0 None
0x082 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  0  0  0  0  0  8 1 None
0x083 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  0 0 None
0x084 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  0  0  0  0  0  8 1 None
0x085  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0  0  8  0  0  0  0  0 0 None
0x086  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0  0  8  0  0  0  0  8 1 None
0x087  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 16  8  0  0  0  0  0 0 None
0x088  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 16  8  0  0  0  0  8 1 None
0x089  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 24  8  0  0  0  0  0 0 None
0x08a  0 tc  1  16  0 r  y .   5  5  5  1 .  .  0 24  8  0  0  0  0  8 1 None
0x08b 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0  0 0 None
0x08c 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0  0  8  0  0  0  0  8 1 None
0x08d 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  8  0  0  0  0  0 0 None
0x08e 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 16  8  0  0  0  0  8 1 None
0x08f 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x090 24 tc  1  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  8 1 None
0x091  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2  0  0  0  0  0  0  0 0 None
0x092  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2  0  0  0  0  0  0  8 1 None
0x093  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 16  0  0  0  0  0  0 0 None
0x094  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 16  0  0  0  0  0  8 1 None
0x095  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 24  0  0  0  0  0  0 0 None
0x096  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 24  0  0  0  0  0  8 1 None
0x097 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  0  0  0  0  0  0 0 None
0x098 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  0  0  0  0  0  8 1 None
0x099 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  0  0  0  0  0  0 0 None
0x09a 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  0  0  0  0  0  8 1 None
0x09b 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  0  0  0  0  0  0 0 None
0x09c 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  0  0  0  0  0  8 1 None
0x09d  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2  0  8  0  0  0  0  0 0 None
0x09e  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2  0  8  0  0  0  0  8 1 None
0x09f  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 16  8  0  0  0  0  0 0 None
0x0a0  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 16  8  0  0  0  0  8 1 None
0x0a1  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 24  8  0  0  0  0  0 0 None
0x0a2  0 tc  1  16  0 r  . .   5  5  5  1 .  .  2 24  8  0  0  0  0  8 1 None
0x0a3 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  8  0  0  0  0  0 0 None
0x0a4 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2  0  8  0  0  0  0  8 1 None
0x0a5 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  8  0  0  0  0  0 0 None
0x0a6 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 16  8  0  0  0  0  8 1 None
0x0a7 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  8  0  0  0  0  0 0 None
0x0a8 24 tc  1  32  0 r  . .   8  8  8  8 .  .  2 24  8  0  0  0  0  8 1 None
0x0a9  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2  0  0  0  0  0  0  0 0 None
0x0aa  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2  0  0  0  0  0  0  8 1 None
0x0ab  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 16  0  0  0  0  0  0 0 None
0x0ac  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 16  0  0  0  0  0  8 1 None
0x0ad  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 24  0  0  0  0  0  0 0 None
0x0ae  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 24  0  0  0  0  0  8 1 None
0x0af 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  0  0  0  0  0  0 0 None
0x0b0 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  0  0  0  0  0  8 1 None
0x0b1 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  0  0  0  0  0  0 0 None
0x0b2 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  0  0  0  0  0  8 1 None
0x0b3 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  0  0  0  0  0  0 0 None
0x0b4 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  0  0  0  0  0  8 1 None
0x0b5  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2  0  8  0  0  0  0  0 0 None
0x0b6  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2  0  8  0  0  0  0  8 1 None
0x0b7  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 16  8  0  0  0  0  0 0 None
0x0b8  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 16  8  0  0  0  0  8 1 None
0x0b9  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 24  8  0  0  0  0  0 0 None
0x0ba  0 tc  1  16  0 r  y .   5  5  5  1 .  .  2 24  8  0  0  0  0  8 1 None
0x0bb 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  8  0  0  0  0  0 0 None
0x0bc 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2  0  8  0  0  0  0  8 1 None
0x0bd 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  8  0  0  0  0  0 0 None
0x0be 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 16  8  0  0  0  0  8 1 None
0x0bf 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  8  0  0  0  0  0 0 None
0x0c0 24 tc  1  32  0 r  y .   8  8  8  8 .  .  2 24  8  0  0  0  0  8 1 None

@korfuri
Copy link
Owner

korfuri commented Apr 21, 2019

Thanks for the info.

I decided to dive a bit deeper into understanding OpenGL on OSX. According to this StackOverflow question I need to request an OpenGL core profile of at least 3.2 to enable GLSL 330. Presumably, I would need to do the same to use GLSL 300 shaders. But Rack is built to use GL2 and I can't control the window hints anyway since they are given at Rack startup time. I have no idea if there's a workaround this, I don't actually know how OpenGL works.

@korfuri
Copy link
Owner

korfuri commented Apr 21, 2019

I've done some experimenting with switching out OpenGL contexts, and it gets messy. Here's a call for help I put on the NanoVG side: memononen/nanovg#543

@korfuri
Copy link
Owner

korfuri commented Apr 23, 2019

I've been able to make some encouraging progress here but hit another roadblock.

On my Linux I can move all projectM rendering to another OpenGL context. To do so I had to move all projectM interactions to a separate thread. I then had to enable resource sharing between my context and Rack's main context. Of course I have to create my context as an OpenGL 3.3+ context to have sufficient GLSL support to run projectM's shaders.

But on OSX, it's not that simple. I can create my OpenGL 3.3 context and render to it just fine, but only if I disable sharing. This is because the Rack context is using a compatibility profile whereas to obtain an OpenGL 3.3 context I must request a core profile.

So it looks like I have a few choices:

  • Implement completely platform-specific ways to copy data between contexts. On Linux it looks like I can just use sharing, on OSX there's apparently a thing called IOSurface (but I'd have to call out to ObjC code to use it), and on Windows who knows. Or just revert to rendering in the main context for Linux and Windows, and write an OSX-only texture copy thing. Considering I can only borrow a macbook for minutes at a time, and I don't have access to a Windows computer, let's just say it's not going to be fun developing this;
  • Ignore OSX altogether and make my plugin Windows and Linux only until someone comes along to volunteer OSX support;
  • Render to a separate window. Since I'm creating a separate context anyway, I can just make it visible as its own window, or even as a borderless fullscreen window (e.g. on a second monitor). That could be quite cool for users who want to stream, record or display the visuals on a large screen.

I'm leaning towards option 3 right now. Thoughts? I could still ship the current module that displays the projectM visuals in-rack, but it wouldn't work on OSX.

korfuri added a commit that referenced this issue Apr 23, 2019
This window has basic options to fullscreen, minimize-on-close, and
randomize the preset. This should solve the OSX compatibility (#2)
problem and better enable workflows like displaying the visuals on a
separate monitor and recording them.
korfuri added a commit that referenced this issue Apr 24, 2019
This window has basic options to fullscreen, minimize-on-close, and
randomize the preset. This should solve the OSX compatibility (#2)
problem and better enable workflows like displaying the visuals on a
separate monitor and recording them.
@korfuri
Copy link
Owner

korfuri commented Apr 24, 2019

I've implemented option 3 after some refactoring. This is all in branch glfw-separate-context, and I have builds using this (on top of the latest master, so with the non-threaded windows build of libprojectM, shouldn't cause crashes on Windows) at https://github.com/korfuri/Milkrack/releases/tag/experimental-glfw-separate-context-4

This changes the module slugs (because there are now 2 modules), so patches will break, but it's easy enough to re-create them.

A small feature note, inputs are now normalized to the left.

@korfuri
Copy link
Owner

korfuri commented Apr 25, 2019

I've verified that the experimental release above works on Windows, Linux and OSX (except the embedded mode on OSX, as expected). I'm going to clean this up, and unless something goes wrong, I'll release this today.

@diimdeep
Copy link
Author

Awesome, thanks!

@korfuri
Copy link
Owner

korfuri commented Apr 26, 2019

Release is out :) https://github.com/korfuri/Milkrack/releases/tag/0.6.0
I've requested inclusion in the VCV plugin store as well.

@korfuri korfuri closed this as completed Apr 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants