[PATCH V2] Do not assume 64x64 cursor, added support for other sizes (like in AMD Kaveri, 128x128).
Michel Dänzer
michel at daenzer.net
Thu Jul 3 18:13:06 PDT 2014
On 03.07.2014 21:27, Ander Conselvan de Oliveira wrote:
> On 06/25/2014 05:09 PM, Alvaro Fernando García wrote:
>> Init cursor size to 64x64 if drmGetCap() fails.
>>
>> Use Mesa GBM_BO_USE_CURSOR define (which removes 64x64 restriction)
>>
>> Signed-off-by: Alvaro Fernando García <alvarofernandogarcia at gmail.com>
>> ---
>> src/compositor-drm.c | 43 ++++++++++++++++++++++++++++++++++++-------
>> 1 file changed, 36 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/compositor-drm.c b/src/compositor-drm.c
>> index 7d514e4..61ddea1 100644
>> --- a/src/compositor-drm.c
>> +++ b/src/compositor-drm.c
>> @@ -55,6 +55,14 @@
>> #define DRM_CAP_TIMESTAMP_MONOTONIC 0x6
>> #endif
>>
>> +#ifndef DRM_CAP_CURSOR_WIDTH
>> +#define DRM_CAP_CURSOR_WIDTH 0x8
>> +#endif
>> +
>> +#ifndef DRM_CAP_CURSOR_HEIGHT
>> +#define DRM_CAP_CURSOR_HEIGHT 0x9
>> +#endif
>> +
>> static int option_current_mode = 0;
>>
>> enum output_config {
>
> [...]
>
>>
>> @@ -1554,15 +1577,21 @@ drm_output_init_egl(struct drm_output *output,
>> struct drm_compositor *ec)
>> return -1;
>> }
>>
>> - flags = GBM_BO_USE_CURSOR_64X64 | GBM_BO_USE_WRITE;
>> +#ifdef GBM_BO_USE_CURSOR
>> + flags = GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE;
>> +#else
>> + flags = GBM_BO_USE_WRITE;
>> + if (ec->cursor_width == 64 && ec->cursor_height == 64)
>> + flags = GBM_BO_USE_CURSOR_64X64 | flags;
>> +#endif
>
> Do we really need this? GBM_BO_USE_CURSOR has the same value as the old
> _64X64 flag. GBM will check if the dimensions are 64x64 and fail
> otherwise.
No, that check was removed when adding GBM_BO_USE_CURSOR.
> So this could just be
>
> flags = GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE;
>
> and a
>
> #ifndef GBM_BO_USE_CURSOR
> #define GBM_BO_USE_CURSOR GBM_BO_USE_CURSOR_64X64
> #endif
>
> earlier in the file.
No, if GBM doesn't define GBM_BO_USE_CURSOR, it will likely fail if the
dimensions are not 64x64.
(I realize that whether or not GBM_BO_USE_CURSOR is defined doesn't
directly say anything about the runtime behaviour, but in practice this
should be good enough)
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the wayland-devel
mailing list