Hi Marek, Thanks for your help. Now I can use GL extension “GL_OES_EGL_image_external” to load and render NV12 image, it works well on my platform (Broxton).
To ensure using this extension correctly on any platform, I checked for supported OpenGL extensions by glGetString() function, and printed out the list of supported extensions. Unfortunately, I did not find “GL_OES_EGL_image_external” in the list. GL EXTENSIONS: GL_EXT_debug_marker GL_ANDROID_extension_pack_es31a GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_APPLE_texture_max_level 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_disjoint_timer_query 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_occlusion_query_boolean 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_framebuffer_fetch GL_EXT_shader_framebuffer_fetch_non_coherent GL_EXT_shader_integer_mix GL_EXT_shader_io_blocks GL_EXT_shader_ samples_identical GL_EXT_tessellation_point_size GL_EXT_tessellation_shader GL_EXT_texture_border_clamp I also printed out the GL information of my platform I’m using: GL_VENDOR: Intel Open Source Technology Center GL_RENDERER: Mesa DRI Intel(R) HD Graphics 505 (Broxton) GL_VERSION: OpenGL ES 3.2 Mesa 18.1.0-devel (git-d63719023b) GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.20 Could you please give me a hint if I made something wrong to query the extension name string “GL_OES_EGL_image_external” from GL? Thanks, Zong Wei From: Marek Olšák [mailto:mar...@gmail.com] Sent: Tuesday, March 20, 2018 9:42 AM To: Zong, Wei <wei.z...@intel.com> Cc: mesa-dev@lists.freedesktop.org Subject: Re: [Mesa-dev] Create texture2D from NV12 The only way is to use GL_OES_EGL_image_external to load an NV12 image. kmscube does that. Marek On Fri, Mar 16, 2018 at 4:10 AM, Zong, Wei <wei.z...@intel.com<mailto:wei.z...@intel.com>> wrote: Hello, May I ask a question? I got a NV12 image buffer and I want to render it with OpenGL. I know a method to do this is to bind Y/UV planes as two separate textures, then perform YUV to RGB conversion in fragment shader. But I want to know if Mesa provide APIs to create and bind a texture 2D image with NV12 format directly? Thanks, Zong Wei _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org<mailto:mesa-dev@lists.freedesktop.org> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev