On 18/08/16 02:28 AM, Carsten Haitzler (The Rasterman) wrote:
> On Wed, 17 Aug 2016 14:24:40 -0700 Derek Foreman <[email protected]> 
> said:
> 
> are you sure you want to remove this? enlightenment for gl_x11 has options to
> force a specific swap mode via engine options. sure it wasn't implemented for
> wayland but it's a useful debug tool... especially when a driver gets buffer
> age wrong and you have to force it to some sane mode (like invalidate all)
> again... :)

You can still do that with an env var, but previously there were two
ways to do it:
a) env var
b) variable in the engine info with no API to set it

I was temporarily confused by the second when trying to figure out why
the swap mode was wrong on exynos, and discovered that all this complex
machinery was in place simply to set MODE_AUTO because the variable
could only ever be 0 (which it was initialized to at allocation).

I think keeping the env var method is good enough?

Thanks,
Derek

>> derekf pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/efl.git/commit/?id=6ce113791e9681e940c3c8aa1a57d4781dfd6c9e
>>
>> commit 6ce113791e9681e940c3c8aa1a57d4781dfd6c9e
>> Author: Derek Foreman <[email protected]>
>> Date:   Wed Aug 17 16:21:29 2016 -0500
>>
>>     wayland_egl: Remove swap_mode from engine info
>>     
>>     This was never set anywhere and always defaulted to 0, or AUTO
>> ---
>>  .../engines/wayland_egl/Evas_Engine_Wayland_Egl.h  |  1 -
>>  src/modules/evas/engines/wayland_egl/evas_engine.c | 37
>> +--------------------- 2 files changed, 1 insertion(+), 37 deletions(-)
>>
>> diff --git a/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
>> b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h index
>> 54dee26..204e286 100644
>> --- a/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
>> +++ b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
>> @@ -43,7 +43,6 @@ struct _Evas_Engine_Info_Wayland_Egl
>>  
>>     Eina_Bool vsync : 1;
>>     Eina_Bool indirect : 1;
>> -   unsigned char swap_mode : 4;
>>  
>>     Eina_Bool wobbling : 1;
>>     Eina_Bool www_avail : 1;
>> diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c
>> b/src/modules/evas/engines/wayland_egl/evas_engine.c index c79bcf6..8ccc4e1
>> 100644
>> --- a/src/modules/evas/engines/wayland_egl/evas_engine.c
>> +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c
>> @@ -558,42 +558,7 @@ eng_setup(Evas *evas, void *info)
>>                   (!strcasecmp(s, "4")))
>>            swap_mode = MODE_QUADRUPLE;
>>       }
>> -   else
>> -     {
>> -// in most gl implementations - egl and glx here that we care about the TEND
>> -// to either swap or copy backbuffer and front buffer, but strictly that is
>> -// not true. technically backbuffer content is totally undefined after a 
>> swap
>> -// and thus you MUST re-render all of it, thus MODE_FULL
>> -        swap_mode = MODE_FULL;
>> -// BUT... reality is that lmost every implementation copies or swaps so
>> -// triple buffer mode can be used as it is a superset of double buffer and
>> -// copy (though using those explicitly is more efficient). so let's play 
>> with
>> -// triple buffer mdoe as a default and see.
>> -//        re->mode = MODE_TRIPLE;
>> -// XXX: note - the above seems to break on some older intel chipsets and
>> -// drivers. it seems we CANT depend on backbuffer staying around. bugger!
>> -        switch (inf->swap_mode)
>> -          {
>> -           case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_FULL:
>> -             swap_mode = MODE_FULL;
>> -             break;
>> -           case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_COPY:
>> -             swap_mode = MODE_COPY;
>> -             break;
>> -           case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_DOUBLE:
>> -             swap_mode = MODE_DOUBLE;
>> -             break;
>> -           case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_TRIPLE:
>> -             swap_mode = MODE_TRIPLE;
>> -             break;
>> -           case EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_QUADRUPLE:
>> -             swap_mode = MODE_QUADRUPLE;
>> -             break;
>> -           default:
>> -             swap_mode = MODE_AUTO;
>> -             break;
>> -          }
>> -     }
>> +   else swap_mode = MODE_AUTO;
>>  
>>     if (!(re = epd->engine.data.output))
>>       {
>>
>> -- 
>>
>>
> 
> 


------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to