On Mon, Jul 24, 2017 at 9:46 PM, Chih-Wei Huang <cwhu...@android-x86.org> wrote: > On Tue 11 Jul 2017, Rob Herring wrote: >>> From: Marek Olšák <marek.ol...@amd.com> >>> >>> Add support for 32-bit RGBX/RGBA formats which are required for Android. >>> >>> The original patch (commit ccdcf91104a5) was reverted (commit >>> c0c6ca40a25e) in mesa as it broke GLX resulting in swapped colors. Based >>> on further investigation by Chad Versace, moving the RGBX/RGBA configs >>> to the end is enough to prevent breaking GLX. >>> >>> The handling of RGBA/RGBX in dri_fill_st_visual is a fix from Marek >>> Olšák. >>> >>> Cc: Eric Anholt <e...@anholt.net> >>> Cc: Chad Versace <chadvers...@chromium.org> >>> Cc: Mauro Rossi <issor.or...@gmail.com> >>> Reviewed-by: Marek Olšák <marek.ol...@amd.com> >>> Signed-off-by: Rob Herring <r...@kernel.org> >>> --- >>> v2: >>> - Incorporated dri_fill_st_visual RGBA/X handling from Marek >>> - Handle RGBA/X in dri2_drawable_get_buffers for completeness > > Hi Rob, > I'm testing this patch with your gbm_gralloc and mesa 17.1.5. > Before applying this patch, the SurfaceFlinger sees > the alpha=8 in RenderEngine::chooseEglConfig() > > 07-25 02:19:13.188 1125 1125 I SurfaceFlinger: EGL information: format=0x1 > 07-25 02:19:13.188 1125 1125 I SurfaceFlinger: vendor : Android > 07-25 02:19:13.188 1125 1125 I SurfaceFlinger: version : 1.4 > Android META-EGL > 07-25 02:19:13.188 1125 1125 I SurfaceFlinger: extensions: > EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time > EGL_KHR_swap_buffers_with_damage EGL_ANDROID_create_native_cli > ent_buffer EGL_ANDROID_front_buffer_auto_refresh EGL_KHR_image_base > EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image > EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_ima > ge EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_create_context > EGL_KHR_config_attribs EGL_KHR_surfaceless_context > EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_reco > rdable EGL_EXT_buffer_age > 07-25 02:19:13.188 1125 1125 I SurfaceFlinger: Client API: OpenGL_ES > 07-25 02:19:13.188 1125 1125 I SurfaceFlinger: EGLSurface: 8-8-8-8, > config=0xa5485880 > > ^^^^^^^^ (r-b-g-a) > 07-25 02:19:13.211 1125 1125 I SurfaceFlinger: OpenGL ES > informations: format=0x1 > 07-25 02:19:13.211 1125 1125 I SurfaceFlinger: vendor : Red Hat > 07-25 02:19:13.211 1125 1125 I SurfaceFlinger: renderer : Gallium > 0.4 on virgl > 07-25 02:19:13.211 1125 1125 I SurfaceFlinger: version : OpenGL ES > 3.0 Mesa 17.1.5 (git-317b5bd) > > After applying the patch, however, alpha becomes 0 > > 07-25 02:34:46.522 1125 1125 I SurfaceFlinger: EGL information: format=0x1 > 07-25 02:34:46.522 1125 1125 I SurfaceFlinger: vendor : Android > 07-25 02:34:46.522 1125 1125 I SurfaceFlinger: version : 1.4 > Android META-EGL > 07-25 02:34:46.522 1125 1125 I SurfaceFlinger: extensions: > EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time > EGL_KHR_swap_buffers_with_damage > EGL_ANDROID_create_native_client_buffer > EGL_ANDROID_front_buffer_auto_refresh EGL_KHR_image_base > EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image > EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image > EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_create_context > EGL_KHR_config_attribs EGL_KHR_surfaceless_context > EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync > EGL_ANDROID_recordable EGL_EXT_buffer_age > 07-25 02:34:46.522 1125 1125 I SurfaceFlinger: Client API: OpenGL_ES > 07-25 02:34:46.522 1125 1125 I SurfaceFlinger: EGLSurface: 8-8-8-0, > config=0xabc24d80 > > ^^^^^^^^ > 07-25 02:34:46.574 1125 1125 I SurfaceFlinger: OpenGL ES > informations: format=0x1 > 07-25 02:34:46.574 1125 1125 I SurfaceFlinger: vendor : Red Hat > 07-25 02:34:46.574 1125 1125 I SurfaceFlinger: renderer : Gallium > 0.4 on virgl > 07-25 02:34:46.574 1125 1125 I SurfaceFlinger: version : OpenGL ES > 3.0 Mesa 17.1.5 (git-317b5bd) > > > Therefore, eglCreateWindowSurface() finally chose > HAL_PIXEL_FORMAT_RGBX_8888 instead of > HAL_PIXEL_FORMAT_RGBA_8888. > Is that expected?
Yes. I believe the client requested a config without alpha, so RGBX satisfies that. Do you observe any problems because of the change? Rob _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev