[Mesa-dev] EGL/android: pbuffer implementation.

Xu, Randy randy.xu at intel.com
Tue Nov 22 06:39:22 UTC 2016


Hi ,Tapani

With this pbuffer patch, only three EGL dEQP failure remained on Android platform , they are under investigation now

dEQP-EGL.functional.image.create#gles2_renderbuffer_depth16_depth_buffer fail due to "=== with config {glformat=rgba8888d24s8ms0,rotation=unspecified,surfacetype=window} ==="
dEQP-EGL.functional.image.modify#renderbuffer_depth16_renderbuffer_clear_depth fail due to "=== with config {glformat=rgba8888d24s8ms0,rotation=unspecified,surfacetype=window} ==="
dEQP-EGL.functional.image.render_multiple_contexts#gles2_renderbuffer_depth16_depth_buffer fail due to "=== with config {glformat=rgba8888d24s8ms0,rotation=unspecified,surfacetype=window} ==="

The multithread cases can pass on Android.

Thanks,
Randy


-----Original Message-----
From: Palli, Tapani 
Sent: Tuesday, November 22, 2016 2:32 PM
To: Tomasz Figa <tfiga at chromium.org>
Cc: Long, Zhifang <zhifang.long at intel.com>; Liu, Zhiquan <zhiquan.liu at intel.com>; Xu, Randy <randy.xu at intel.com>; Emil Velikov <emil.l.velikov at gmail.com>; Kondapally, Kalyan <kalyan.kondapally at intel.com>; ML mesa-dev <mesa-dev at lists.freedesktop.org>
Subject: Re: [Mesa-dev] EGL/android: pbuffer implementation.



On 11/22/2016 08:08 AM, Tapani Pälli wrote:
>
>
> On 11/22/2016 08:02 AM, Tomasz Figa wrote:
>> On Tue, Nov 22, 2016 at 2:44 PM, Tapani Pälli 
>> <tapani.palli at intel.com>
>> wrote:
>>>
>>>
>>> On 11/21/2016 04:15 PM, Emil Velikov wrote:
>>>>
>>>> On 21 November 2016 at 07:23, Tomasz Figa <tfiga at chromium.org> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> On Wed, Nov 16, 2016 at 11:11 AM, Liu Zhiquan 
>>>>> <zhiquan.liu at intel.com>
>>>>> wrote:
>>>>>> @@ -775,14 +837,6 @@ droid_add_configs_for_visuals(_EGLDriver 
>>>>>> *drv, _EGLDisplay *dpy)
>>>>>>     for (i = 0; dri2_dpy->driver_configs[i]; i++) {
>>>>>>        const EGLint surface_type = EGL_WINDOW_BIT | EGL_PBUFFER_BIT;
>>>>>>        struct dri2_egl_config *dri2_conf;
>>>>>> -      unsigned int double_buffered = 0;
>>>>>> -
>>>>>> -      dri2_dpy->core->getConfigAttrib(dri2_dpy->driver_configs[i],
>>>>>> -         __DRI_ATTRIB_DOUBLE_BUFFER, &double_buffered);
>>>>>> -
>>>>>> -      /* support only double buffered configs */
>>>>>> -      if (!double_buffered)
>>>>>> -         continue;
>>>>>
>>>>>
>>>>> Does it really just work like this? Last time I checked the list 
>>>>> of configs generated after such change it contained 
>>>>> single-buffered-only configs with window surface bit set and 
>>>>> double-buffered-only configs with pbuffer bit set, both of which 
>>>>> are invalid. Moreover, this caused some dEQP tests to fail. How was this patch tested?
>>>>>
>>>> Afaict the patch has (should have?) gone through the Intel CI, 
>>>> although I'm not sure if the latter builds/runs Android/ARC.
>>>
>>>
>>> It did go through CI but it does not run any Android/ARC tests. 
>>> AFAIK Zhiquan did run pbuffer related tests and reported them 
>>> passing on Android.
>>> Which dEQP tests were regressed?
>>
>> The tests I'm concerned with are all
>> dEQP-EGL.functional.query_context.get_current_context.*_pbuffer tests.
>> In my testing on BSW and BDW, a change identical to the part quoted 
>> above made eglGetConfigs() return double buffered configs for 
>> pbuffers, which made the mentioned tests fail because of invalid 
>> config at surface creation time (or SIGSEGV, before my NULL pointer 
>> fix - 94282b6dd0 egl/android: Check return value of 
>> dri2_get_dri_config()).
>
> OK thanks, we will run these tests today and see if something got broken.

I did run all EGL tests now and all of the above 'get_current_context.*pbuffer' tests pass (some formats are skipped though). I don't have specifically BSW and BDW right now though, this was run on Joule (BXT).

With my run I got 7 failing EGL tests:

dEQP-EGL.functional.image.modify.tex_rgb5_a1_tex_subimage_rgba8
dEQP-EGL.functional.image.render_multiple_contexts.gles2_renderbuffer_depth16_depth_buffer
dEQP-EGL.functional.multithread.window
dEQP-EGL.functional.multithread.pbuffer_window
dEQP-EGL.functional.multithread.window_context
dEQP-EGL.functional.multithread.pbuffer_window_context
dEQP-EGL.performance.make_current.multi_surface.context_windows_10

(1999 passing, 1616 skipped)

Not sure if multithread ones ever passed. On desktop many of them fail because dEQP does not call XInitThreads().


>> Note that I haven't tested exactly this patch, just a similar change,
>> identical in terms of the quoted part above. It is also possible that
>> something changed in other part of the EGL stack, which fixed the
>> problem. I will retest current Mesa master a bit later.
>>
>> Best regards,
>> Tomasz
>>
>
> // Tapani
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list