Closed Bug 1150668 Opened 9 years ago Closed 9 years ago

Many Android 4.3 Debug tests assert: gpu/gl/GrGLCaps.cpp:496: failed assertion "fConfigTextureSupport[kBGRA_8888_GrPixelConfig] || kSkia8888_GrPixelConfig != kBGRA_8888_GrPixelConfig"

Categories

(Firefox for Android Graveyard :: Testing, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(firefox40 fixed)

RESOLVED FIXED
Firefox 40
Tracking Status
firefox40 --- fixed

People

(Reporter: gbrown, Assigned: gbrown)

References

Details

Attachments

(1 file)

In https://treeherder.mozilla.org/#/jobs?repo=try&revision=865a03c2014e, "Android 2.3 Opt" tests are actually running on the Android 4.3 emulator against the 4.0 Debug build. There are many crashes, but one of the most common is:

PROCESS-CRASH | dom/canvas/test/test_bug866575.html | application crashed [@ GrGLCaps::initConfigTexturableTable(GrGLContextInfo const&, GrGLInterface const*)]

Logcats show:

03-05 17:39:25.010 I/Gecko   (  919): Exported SkiaGL extensions: GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 
03-05 17:39:25.040 D/skia    (  919): /builds/slave/try-and-api-11-d-0000000000000/build/gfx/skia/trunk/src/gpu/gl/GrGLCaps.cpp:496: failed assertion "fConfigTextureSupport[kBGRA_8888_GrPixelConfig] || kSkia8888_GrPixelConfig != kBGRA_8888_GrPixelConfig"
03-05 17:39:28.530 D/Zygote  (   38): Process 919 terminated by signal (11)
The assertion is at:

489         if (ctxInfo.hasExtension("GL_APPLE_texture_format_BGRA8888")) {
490             fConfigTextureSupport[kBGRA_8888_GrPixelConfig] = true;
491         } else if (ctxInfo.hasExtension("GL_EXT_texture_format_BGRA8888")) {
492             fConfigTextureSupport[kBGRA_8888_GrPixelConfig] = true;
493             fBGRAIsInternalFormat = true;
494         }
495         SkASSERT(fConfigTextureSupport[kBGRA_8888_GrPixelConfig] ||
496                  kSkia8888_GrPixelConfig != kBGRA_8888_GrPixelConfig);

Additional logging on try verified that both if conditions are false, so fConfigTextureSupport[kBGRA_8888_GrPixelConfig] = false. (kSkia8888_GrPixelConfig == kBGRA_8888_GrPixelConfig == 6.)
SurfaceFlinger seems to know about these extensions though:

04-01 16:18:26.904    37    67 I SurfaceFlinger: EGL informations:
04-01 16:18:26.904    37    67 I SurfaceFlinger: vendor    : Android
04-01 16:18:26.904    37    67 I SurfaceFlinger: version   : 1.4 Android META-EGL
04-01 16:18:26.904    37    67 I SurfaceFlinger: extensions: EGL_KHR_image_base EGL_KHR_fence_sync EGL_ANDROID_image_native_buffer 
04-01 16:18:26.904    37    67 I SurfaceFlinger: Client API: OpenGL_ES
04-01 16:18:26.904    37    67 I SurfaceFlinger: EGLSurface: 8-8-8-8, config=0x20
04-01 16:18:26.904    37    67 I SurfaceFlinger: OpenGL ES informations:
04-01 16:18:26.904    37    67 I SurfaceFlinger: vendor    : Google (VMware, Inc.)
04-01 16:18:26.904    37    67 I SurfaceFlinger: renderer  : Android Emulator OpenGL ES Translator (Gallium 0.4 on llvmpipe (LLVM 0x300))
04-01 16:18:26.904    37    67 I SurfaceFlinger: version   : OpenGL ES-CM 1.1 (2.1 Mesa 8.0.4)
04-01 16:18:26.904    37    67 I SurfaceFlinger: extensions: GL_EXT_debug_marker GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_blend_subtract GL_OES_byte_coordinates GL_OES_compressed_paletted_texture GL_OES_point_size_array GL_OES_point_sprite GL_OES_single_precision GL_OES_stencil_wrap GL_OES_texture_env_crossbar GL_OES_texture_mirored_repeat GL_OES_EGL_image GL_OES_element_index_uint GL_OES_draw_texture GL_OES_texture_cube_map GL_OES_draw_texture GL_OES_read_format GL_OES_framebuffer_object GL_OES_depth24 GL_OES_depth32 GL_OES_fbo_render_mipmap GL_OES_rgb8_rgba8 GL_OES_stencil1 GL_OES_stencil4 GL_OES_stencil8 GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_APPLE_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture
A possible cause of GrGLContextInfo.hasExtension() returning false is that GrGLContextInfo.isInitialized() is false -- but that is not the problem here. I verified that GrGLContextInfo.isInitialized() is true just before calling hasExtension().
I enabled some of the existing extension debugging:

04-20 16:50:18.014 I/Gecko   (  805): 15 GL driver extensions: (*: recognized)
04-20 16:50:18.014 I/Gecko   (  805):   GL_EXT_debug_marker
04-20 16:50:18.024 I/Gecko   (  805):   GL_OES_EGL_image(*)
04-20 16:50:18.024 I/Gecko   (  805):   GL_OES_depth24(*)
04-20 16:50:18.024 I/Gecko   (  805):   GL_OES_depth32(*)
04-20 16:50:18.024 I/Gecko   (  805):   GL_OES_element_index_uint(*)
04-20 16:50:18.034 I/Gecko   (  805):   GL_OES_texture_float(*)
04-20 16:50:18.034 I/Gecko   (  805):   GL_OES_texture_float_linear(*)
04-20 16:50:18.034 I/Gecko   (  805):   GL_OES_compressed_paletted_texture
04-20 16:50:18.034 I/Gecko   (  805):   GL_OES_compressed_ETC1_RGB8_texture(*)
04-20 16:50:18.046 I/Gecko   (  805):   GL_OES_depth_texture(*)
04-20 16:50:18.046 I/Gecko   (  805):   GL_OES_texture_half_float(*)
04-20 16:50:18.046 I/Gecko   (  805):   GL_OES_texture_half_float_linear(*)
04-20 16:50:18.055 I/Gecko   (  805):   GL_OES_packed_depth_stencil(*)
04-20 16:50:18.055 I/Gecko   (  805):   GL_OES_vertex_half_float
04-20 16:50:18.065 I/Gecko   (  805): 
04-20 16:50:18.065 I/Gecko   (  805): Activated extensions:
04-20 16:50:18.065 I/Gecko   (  805): [78] GL_OES_EGL_image
04-20 16:50:18.065 I/Gecko   (  805): [81] GL_OES_compressed_ETC1_RGB8_texture
04-20 16:50:18.074 I/Gecko   (  805): [82] GL_OES_depth24
04-20 16:50:18.074 I/Gecko   (  805): [83] GL_OES_depth32
04-20 16:50:18.074 I/Gecko   (  805): [84] GL_OES_depth_texture
04-20 16:50:18.084 I/Gecko   (  805): [85] GL_OES_element_index_uint
04-20 16:50:18.084 I/Gecko   (  805): [86] GL_OES_packed_depth_stencil
04-20 16:50:18.084 I/Gecko   (  805): [87] GL_OES_rgb8_rgba8
04-20 16:50:18.084 I/Gecko   (  805): [91] GL_OES_texture_float
04-20 16:50:18.094 I/Gecko   (  805): [92] GL_OES_texture_float_linear
04-20 16:50:18.094 I/Gecko   (  805): [93] GL_OES_texture_half_float
04-20 16:50:18.094 I/Gecko   (  805): [94] GL_OES_texture_half_float_linear

So that's consistent: There is no sign of GL_APPLE_texture_format_BGRA8888 or GL_EXT_texture_format_BGRA8888.

Maybe something like http://hg.mozilla.org/mozilla-central/annotate/41cda3ce8c98/gfx/gl/GLContext.cpp#l1672 is the way forward?
Geoff, I think you're probably right. Try doing the same thing for GL_EXT_texture_format_BGRA8888.
I am not confident that this is the right solution, but it is simple and it works.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=332187d905ee&exclusion_profile=false
Assignee: nobody → gbrown
Attachment #8596001 - Flags: review?(jgilbert)
Attachment #8596001 - Flags: review?(jgilbert) → review+
https://hg.mozilla.org/mozilla-central/rev/4bae26d5e06f
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 40
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: