On 11/9/24 13:07, Akihiko Odaki wrote:
> On 2024/11/09 15:52, Dmitry Osipenko wrote:
>> Accidentally missed this email a week ago. Thanks again for all the
>> reviews!
>>
>> On 10/31/24 10:32, Akihiko Odaki wrote:
>> ...
>>>> +# libx11 presents together with SDL or GTK libs on systems that
>>>> support X11
>>>> +xlib = dependency('x11', required: false)
>>>
>>> There is a line saying:
>>> x11 = dependency('x11', method: 'pkg-config', required: gtkx11.found())
>>>
>>> Please reuse it.
>>
>> I've seen this option and choose not to use it because despite the brief
>> 'X11' name, it's about X11 support specifically for GTK and not SDL.
>>
>> Though, we can use this GTK/X11 for now and improve Meson dependencies
>> later on because in practice GTK is enabled for all distro-built QEMUs.
>> Will switch to it in v3.
>
> I think you can just remove "if gtkx11.found()" to use it for SDL.
Right, thanks.
>> ...
>>>> +static void sdl2_set_hint_x11_force_egl(void)
>>>> +{
>>>> +#if defined(SDL_HINT_VIDEO_X11_FORCE_EGL) && defined(CONFIG_OPENGL)
>>>> && \
>>>> + defined(CONFIG_XLIB)
>>>> + Display *x_disp = XOpenDisplay(NULL);
>>>> + EGLDisplay egl_display;
>>>> +
>>>> + if (!x_disp) {
>>>> + return;
>>>> + }
>>>> +
>>>> + /* Prefer EGL over GLX to get dma-buf support. */
>>>> + egl_display = eglGetDisplay((EGLNativeDisplayType)x_disp);
>>>> +
>>>> + if (egl_display != EGL_NO_DISPLAY) {
>>>> + /*
>>>> + * Setting X11_FORCE_EGL hint doesn't make SDL to prefer 11
>>>> over
>>>
>>> s/prefer 11 over/prefer X11 over/
>>>
>>> Personally, I'm more concerned whether setting that hint will make an
>>> invalid argument error or something.
>>
>> There are no known side effects from setting that hint for QEMU and
>> libsdl code looks sane. AFAICT, EGL is not enabled by default in SDL
>> only because there are older SDL applications that use GLX features and
>> they will be broken if SDL will switch to EGL by default.
>> > Technically, should be possible to make SDL use EGL on demand, like
> only
>> when QEMU runs with enabled native-context for example. But there is no
>> point in doing that today since there are no known problems with the EGL
>> hint, IMO. We will be able to address problems if somebody will report a
>> bug.
>>
>
> I was thinking of scenarios where X11 is not used. A convincing scenario
> of failure is that SDL emits an error for the flag and stops working.
> The fact that this code just works implies it is not the case, but it's
> worth noting if you leave a comment anyway.
We check X11 presence using XOpenDisplay() and hint won't be set if Xorg
is unavailable.
For the case of XWayland, there is already a comment in this patch
telling that flag has no effect on Wayland. Will extend this comment,
thanks.
--
Best regards,
Dmitry