CygwinでllvmpipeなOpenGLESが動く
いつのまにか、CygwinのパッケージにOpenGLES1/2が追加されていた。Mesaの実装なのでllvmpipeで動く。これでGLESソフトウェア実装猛レースができるな...
たぶんANGLE+WARPが最速。一切測定してないけど。
プログラムのビルド
以前書いたOpenVGと同様。GLEWの追加インストールが必要(何故かCygwinパッケージに無い)。
OpenVG同様EGLを必要とするので、cygserverを起動した状態でX11を起動する必要がある。
oku@spring /opt/mesa-demos/egl/opengles2 $ ./es2_info.exe EGL_VERSION: 1.4 (Gallium) EGL_VENDOR: Mesa Project EGL_EXTENSIONS: EGL_KHR_image_base, EGL_KHR_reusable_sync, EGL_KHR_fence_sync, EGL_KHR_surfaceless_context EGL_CLIENT_APIS: OpenGL OpenGL_ES OpenGL_ES2 OpenVG GL_VERSION: OpenGL ES 3.0 Mesa 10.2.5 GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits) GL_EXTENSIONS: GL_EXT_blend_minmax, GL_EXT_multi_draw_arrays, GL_EXT_texture_format_BGRA8888, GL_OES_compressed_ETC1_RGB8_texture, GL_OES_depth24, GL_OES_element_index_uint, GL_OES_fbo_render_mipmap, GL_OES_mapbuffer, GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, GL_OES_stencil8, GL_OES_texture_3D, GL_OES_texture_npot, GL_OES_EGL_image, GL_OES_depth_texture, GL_OES_packed_depth_stencil, GL_EXT_texture_type_2_10_10_10_REV, GL_OES_get_program_binary, GL_APPLE_texture_max_level, GL_EXT_discard_framebuffer, GL_EXT_read_format_bgra, GL_NV_fbo_color_attachments, GL_OES_EGL_image_external, GL_OES_vertex_array_object, GL_EXT_texture_rg, GL_EXT_unpack_subimage, GL_NV_draw_buffers, GL_NV_read_buffer, GL_EXT_map_buffer_range, GL_OES_depth_texture_cube_map, GL_OES_surfaceless_context, GL_EXT_color_buffer_float, GL_EXT_separate_shader_objects, GL_EXT_shader_integer_mix oku@spring /opt/mesa-demos/egl/opengles2 $ ldd ./es2_info.exe ntdll.dll => /cygdrive/c/Windows/SYSTEM32/ntdll.dll (0x77520000) KERNEL32.DLL => /cygdrive/c/Windows/SYSTEM32/KERNEL32.DLL (0x76b60000) KERNELBASE.dll => /cygdrive/c/Windows/SYSTEM32/KERNELBASE.dll (0x76ca0000) cygwin1.dll => /usr/bin/cygwin1.dll (0x61000000) cygEGL-1.dll => /usr/bin/cygEGL-1.dll (0x6ffe0000) cygGLESv2-2.dll => /usr/bin/cygGLESv2-2.dll (0x6fef0000) cygX11-6.dll => /usr/bin/cygX11-6.dll (0x6d120000) cyggcc_s-1.dll => /usr/bin/cyggcc_s-1.dll (0x695e0000) cygglapi-0.dll => /usr/bin/cygglapi-0.dll (0x68f20000) cygxcb-1.dll => /usr/bin/cygxcb-1.dll (0x633c0000) cygXau-6.dll => /usr/bin/cygXau-6.dll (0x6d100000) cygXdmcp-6.dll => /usr/bin/cygXdmcp-6.dll (0x6c140000)