简体   繁体   中英

Extension EXT_shader_texture_lod does not work on OpenGL ES 3.0 iOS

Even though glGetString (GL_EXTENSIONS) call says the extension is present

GL version:   OpenGL ES 3.0 Apple A8 GPU - 95.58
GL vendor:    Apple Inc.
GL renderer:  Apple A8 GPU
GLSL version: OpenGL ES GLSL ES 3.00
GLSL extensions:
  1 > GL_OES_standard_derivatives
  2 > GL_KHR_texture_compression_astc_ldr
  3 > GL_EXT_color_buffer_half_float
  4 > GL_EXT_debug_label
  5 > GL_EXT_debug_marker
  6 > GL_EXT_pvrtc_sRGB
  7 > GL_EXT_read_format_bgra
  8 > GL_EXT_separate_shader_objects
  9 > GL_EXT_shader_framebuffer_fetch
 10 > GL_EXT_shader_texture_lod <--------------------
 11 > GL_EXT_shadow_samplers
 12 > GL_EXT_texture_filter_anisotropic
 13 > GL_APPLE_clip_distance
 14 > GL_APPLE_color_buffer_packed_float
 15 > GL_APPLE_copy_texture_levels
 16 > GL_APPLE_rgb_422
 17 > GL_APPLE_texture_format_BGRA8888
 18 > GL_IMG_read_format
 19 > GL_IMG_texture_compression_pvrtc

it seems the shader ignores level parameter in textureLod call. The visual result is the same as with texture . I checked it with renderdoc and the texture has generated mipmaps. The mag filtering mod also uses LINEAR_MIPMAP_LINEAR . Also, I'm sure the level parameter is correct.

Also, shader compilation fails when I insert this statement in the beginning #extension GL_EXT_shader_texture_lod : require (with #version 300 es ). With #version 100 and with the extension compilation succeeded.

I did not try switching to #version 100 completely, I'm not sure if it works.

My question is why I can't compile 300 es shader with the texture_lod extension even though it is present on the device?

My question is why I can't compile 300 es shader with the texture_lod extension even though it is present on the device?

... because it's an extension specifically targeting OpenGL ES ES 2.x shaders ( #version 100 ).

Support for textureLod() is core profile in OpenGL ES 3.x ESSL #version 300 so you don't need the extension ...

你可以尝试 put #extension GL_EXT_shader_texture_lod : enable in shader,它在这里工作。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM