1

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?

Vlad Serhiienko
  • 103
  • 1
  • 9

2 Answers2

3

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 ...

solidpixel
  • 10,688
  • 1
  • 20
  • 33
0

You could try put #extension GL_EXT_shader_texture_lod : enable in shader, it works here.

RoCry
  • 99
  • 3