forked from enlightenment/efl
ecore-drm2: Add API to determine if a device prefers shadow buffers
Small patch to add a new API function that can be called to determine if a given drm device prefers the use of shadow buffers. This API will be used later to provide some optimizations on various platforms. NB: Requested by Derek @feature Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
5f8172a589
commit
639ad420aa
|
@ -344,6 +344,18 @@ EAPI void ecore_drm2_device_calibrate(Ecore_Drm2_Device *device, int w, int h);
|
|||
*/
|
||||
EAPI Eina_Bool ecore_drm2_device_vt_set(Ecore_Drm2_Device *device, int vt);
|
||||
|
||||
/**
|
||||
* Get if a given device prefers the use of shadow buffers
|
||||
*
|
||||
* @param device
|
||||
*
|
||||
* @return EINA_TRUE if preferred, EINA_FALSE otherwise
|
||||
*
|
||||
* @ingroup Ecore_Drm2_Device_Group
|
||||
* @since 1.19
|
||||
*/
|
||||
EAPI Eina_Bool ecore_drm2_device_prefer_shadow(Ecore_Drm2_Device *device);
|
||||
|
||||
/**
|
||||
* @defgroup Ecore_Drm2_Output_Group Drm output functions
|
||||
*
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
# define DRM_CAP_CURSOR_HEIGHT 0x9
|
||||
#endif
|
||||
|
||||
#ifndef DRM_CAP_DUMB_PREFER_SHADOW
|
||||
# define DRM_CAP_DUMB_PREFER_SHADOW 0x4
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ATOMIC_DRM
|
||||
# include <sys/utsname.h>
|
||||
#endif
|
||||
|
@ -816,3 +820,19 @@ ecore_drm2_device_vt_set(Ecore_Drm2_Device *device, int vt)
|
|||
|
||||
return elput_manager_vt_set(device->em, vt);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
ecore_drm2_device_prefer_shadow(Ecore_Drm2_Device *device)
|
||||
{
|
||||
uint64_t caps;
|
||||
int ret;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(device, EINA_FALSE);
|
||||
EINA_SAFETY_ON_TRUE_RETURN_VAL((device->fd < 0), EINA_FALSE);
|
||||
|
||||
ret = sym_drmGetCap(device->fd, DRM_CAP_DUMB_PREFER_SHADOW, &caps);
|
||||
if ((ret == 0) && (caps == 1))
|
||||
return EINA_TRUE;
|
||||
else
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue