forked from enlightenment/efl
drm ee: Allow more than 4 buffers
Multi-head is hitting corner cases where there are lots of locked buffers and it looks like right now 5 is the magic number that makes the problem go away. Make it possible to set 5 or more (via env var) for testing, make a macro for MAX_BUFFERS instead of just a number.
This commit is contained in:
parent
f0f02d3386
commit
ea1f76f980
|
@ -41,6 +41,8 @@ extern int _evas_engine_drm_log_dom;
|
|||
# endif
|
||||
# define CRI(...) EINA_LOG_DOM_CRIT(_evas_engine_drm_log_dom, __VA_ARGS__)
|
||||
|
||||
#define MAX_BUFFERS 10
|
||||
|
||||
typedef struct _Outbuf_Fb
|
||||
{
|
||||
int age;
|
||||
|
@ -61,7 +63,7 @@ struct _Outbuf
|
|||
struct
|
||||
{
|
||||
int num;
|
||||
Outbuf_Fb ofb[4], *draw;
|
||||
Outbuf_Fb ofb[MAX_BUFFERS], *draw;
|
||||
Ecore_Drm2_Output *output;
|
||||
Ecore_Drm2_Plane *plane;
|
||||
Eina_List *pending;
|
||||
|
|
|
@ -87,7 +87,7 @@ _outbuf_setup(Evas_Engine_Info_Drm *info, int w, int h)
|
|||
{
|
||||
ob->priv.num = atoi(num);
|
||||
if (ob->priv.num <= 0) ob->priv.num = 3;
|
||||
else if (ob->priv.num > 4) ob->priv.num = 4;
|
||||
else if (ob->priv.num > MAX_BUFFERS) ob->priv.num = MAX_BUFFERS;
|
||||
}
|
||||
|
||||
if ((ob->rotation == 0) || (ob->rotation == 180))
|
||||
|
|
Loading…
Reference in New Issue