- 22 Jun, 2021 2 commits
-
-
Zoltán Böszörményi authored
This allows an UDL device to be automatically set up with GPU acceleration via reverse PRIME. # DISPLAY=:0.2 xrandr --listproviders Providers: number : 2 Provider 0: id: 0xec cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 1 outputs: 1 associated providers: 1 name:modesetting Provider 1: id: 0x12c cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 1 name:Intel Signed-off-by:
Zoltán Böszörményi <zboszor@gmail.com>
-
Böszörményi Zoltán authored
When there is explicit configuration, it's better to use confScreen->screennum instead of hardcoded 0. When there is no configuration (default case) the screen number is still 0 so it doesn't change behaviour. But at least for a case when the Intel device is backed by the intel driver and using a screen description like this below, both providers are correctly assigned to :0.2. Section "Screen" Identifier "SCREEN2" Option "AutoServerLayout" "on" Device "UDL" GPUDevice "Intel2" Monitor "Monitor-DVI-I-1" SubSection "Display" Modes "1024x768" Depth 24 EndSubSection EndSection Section "ServerLayout" Identifier "LAYOUT" Option "AutoServerLayout" "on" Screen 0 "SCREEN" Screen 1 "SCREEN1" RightOf "SCREEN" Screen 2 "SCREEN2" RightOf "SCREEN1" EndSection # DISPLAY=:0.2 xrandr --listproviders Providers: number : 2 Provider 0: id: 0xd2 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting Provider 1: id: 0xfd cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 0 name:Intel Signed-off-by:
Zoltán Böszörményi <zboszor@gmail.com>
-
- 21 Jun, 2021 2 commits
-
-
Zoltán Böszörményi authored
screenp->displays[count] (passed to configDisplay() in configScreen()) is NULL if there is no Virtual setting in the configuration. Fixes: f8a6be04 ("xfree86: Change displays array to pointers array to fix invalid pointer issues after table reallocation") Signed-off-by:
Zoltán Böszörményi <zboszor@gmail.com>
-
Olivier Fourdan authored
The fix from commit c468d34c - "glx: Set ContextTag for all contexts" is actually incomplete, it correctly sets the context tag for direct contexts as well, but would fail to mark the context's currentClient. As a result, when the context is destroyed, it would be freed immediately rather than being just scheduled for deletion, even though it is still current for some client. leading to a use-after-free. Make sure to also set the context's currentClient for direct contexts as well, not just indirect ones. Signed-off-by:
Olivier Fourdan <ofourdan@redhat.com> Fixes: c468d34c - "glx: Set ContextTag for all contexts" Closes: #1186 Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- 16 Jun, 2021 1 commit
-
-
Povilas Kanapickas authored
This should have been part of 6cbcbc81525b131b5b94409ea870af663d5c28bb. Signed-off-by:
Povilas Kanapickas <povilas@radix.lt>
-
- 15 Jun, 2021 4 commits
-
-
Physical dimmension of display can be obtained not just by configuration or DDC, but also directly from kernel via drmModeGetConnector(). Until now xserver silently discarded these values even when no configuration nor EDID were present and fallbacked to default DPI.
-
xfree86: Change displays array to pointers array to fix invalid pointer issues after table reallocation There are rare cases when xf86SetDepthBpp is resizing displays array in confScreen. As that array is shared between set of ScrnInfoRec's then realloc might invalidate chached DispPtr display values in otheres ScrnInfoRec objects. If we will change displays array as an array of pointers to DispRec then cached DispRec pointers in ScrnInfoRec won't be invalid after reallocation of displays array. Signed-off-by:
Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
-
Povilas Kanapickas authored
In certain circumstances we will have a lot of flip errors without a reasonable way to prevent them. In such case we reduce the number of logged messages to at least not fill the error logs. The details are as follows: At least on i915 hardware support for async page flip support depends on the used modifiers which themselves can change dynamically for a screen. This results in the following problems: - We can't know about whether a particular CRTC will be able to do an async flip without hardcoding the same logic as the kernel as there's no interface to query this information. - There is no way to give this information to an application, because the protocol of the present extension does not specify anything about changing of the capabilities on runtime or the need to re-query them. Even if the above was solved, the only benefit would be avoiding a roundtrip to the kernel and reduced amount of error logs. The former does not seem to be a good enough benefit compared to the amount of work that would need to be done. The latter is solved in this commit. Reviewed-by:
Eero Tamminen <eero.t.tamminen@intel.com> Signed-off-by:
Povilas Kanapickas <povilas@radix.lt>
-
Povilas Kanapickas authored
Reviewed-by:
Eero Tamminen <eero.t.tamminen@intel.com> Signed-off-by:
Povilas Kanapickas <povilas@radix.lt>
-
- 14 Jun, 2021 3 commits
-
-
José María Casanova Crespo authored
Like in 0e3f1252 ("glamor: Avoid using GL_QUADS on VC4") this will avoid mesa to fallback doing conversion for QUADS primitives. Signed-off-by:
Jose Maria Casanova Crespo <jmcasanova@igalia.com> Reviewed-by:
Emma Anholt <emma@anholt.net>
-
Keeps the glamor specific code together more. Reviewed-by:
Olivier Fourdan <ofourdan@redhat.com>
-
In xwl_glamor_eglstream_get_wl_buffer_for_pixmap. This can likely be hit now with an SHM pixmap via the Present flip path. There might be other corner cases. Fixes: f3eb1684 "xwayland: enable MIT-SHM shared pixmaps" Reviewed-by:
Olivier Fourdan <ofourdan@redhat.com>
-
- 11 Jun, 2021 1 commit
-
-
The latter is what ci-templates expect. Fixes: ab73c169 "ci: Update to the latest templates" Reviewed-by:
Simon Ser <contact@emersion.fr>
-
- 08 Jun, 2021 2 commits
-
-
This mode for displays running on evdi/udl as side effect of failed glamor_egl_init reverse_prime_offload_mode was initialized to FALSE After Mesa upgrade to 21.0.0 GL_RENDERER is not llvmpipe that results in successful glamor_egl_init and reverse_prime_offload_mode enabled. This commit is explicitly disabling reverse_prime_offload_mode for evdi and udl drivers Signed-off-by:
Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
-
Currently, xorgGlxMakeCurrent() would set the context tag only for indirect GLX contexts. However, several other places expect to find a context for the tag or they would raise a GLXBadContextTag error, such as WaitGL() or WaitX(). Set the context tag for direct contexts as well, to avoid raising an error and possibly killing the client. Thanks to Erik Kurzinger <ekurzinger@nvidia.com> for spotting the issue. Signed-off-by:
Olivier Fourdan <ofourdan@redhat.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- 07 Jun, 2021 3 commits
-
-
Olivier Fourdan authored
When the command line option "-terminate" is used, it could be interesting to give it an optional grace period to let the Xserver running for a little longer in case a new connection occurs. This adds an optional parameter to the "-terminate" command line option for this purpose. v2: Use a delay in seconds instead of milliseconds (Martin Peres <martin.peres@mupuf.org>) v3: Clarify man page entry, ensure terminateDelay is always >= 0, simplify TimerFree(). (Peter Hutterer <peter.hutterer@who-t.net>) Signed-off-by:
Olivier Fourdan <ofourdan@redhat.com> Reviewed-by:
Peter Hutterer <peter.hutterer@who-t.net>
-
Olivier Fourdan authored
With Wayland compositors now being able to start Xwayland on demand, the next logical step is to be able to stop Xwayland when there is no more need for it. The Xserver itself is capable of terminating itself once all X11 clients are gone, yet in a typical full session, there are a number of X11 clients running continuously (e.g. the Xsettings daemon, IBus, etc.). Those always-running clients will prevent the Xserver from terminating, because the actual number of X11 clients will never drop to 0. Worse, the X11 window manager of a Wayland compositor also counts as an X11 client, hence also preventing Xwayland from stopping. Some compositors such as mutter use the XRes extension to query the X11 clients connected, match their PID with the actual executable name and compare those with a list of executables that can be ignored when deciding to kill the Xserver. But that's not just clumsy, it is also racy, because a new X11 client might initiate a connection the X11 server...
-
If a GLXMakeCurrent request specifies an X window as its drawable, __glXGetDrawable will implicitly create a GLXWindow for it. However, the client may have already explicitly created a GLXWindow for that X window. If that happens, two __glXDrawableRes resources will be added to the window. If the explicitly-created GLXWindow is later destroyed by the client, DrawableGone will call FreeResourceByType on the X window, but this will actually free the resource for the implicitly-created GLXWindow, since that one would be at the head of the list. Then if the X window is destroyed after that, the resource for the explicitly-created GLXWindow will be freed. But that GLXWindow was already destroyed above. This crashes the server when it tries to call the destroyed GLXWindow's destructor. It also means the implicitly-created GLXWindow would have been leaked since the FreeResourceByType call mentioned above skips calling the destructor. To fix this, if __glXGetDrawable is given an X window, it should check if there is already a GLXWindow associated with it, and only create an implicit one if there is not. Signed-off-by:
Erik Kurzinger <ekurzinger@nvidia.com> Reviewed-by:
Adam Jackson <ajax@redhat.com>
-
- 01 Jun, 2021 1 commit
-
-
Meson has a built-in facility to use bundled versions of dependencies if system packages are too old. Enable for xorgproto after 8e504d8b: Run-time dependency xproto found: YES 7.0.33 Run-time dependency randrproto found: YES 1.6.0 Run-time dependency renderproto found: YES 0.11.1 Run-time dependency xextproto found: YES 7.3.0 Dependency inputproto found: NO found 2.3.2 but need: '>= 2.3.99.1' Found CMake: /usr/local/bin/cmake (3.20.2) Run-time dependency inputproto found: NO (tried pkgconfig and cmake) Looking for a fallback subproject for the dependency inputproto meson.build:73:0: ERROR: Neither a subproject directory nor a xorgproto.wrap file was found.
-
- 31 May, 2021 3 commits
-
-
That will dramatically affect performance, might as well log when we cannot use GL_OES_EGL_image with the NVIDIA closed-source driver. Signed-off-by:
Olivier Fourdan <ofourdan@redhat.com> Reviewed-by:
Michel Dänzer <mdaenzer@redhat.com>
-
If the EGLStream backend is able to use hardware acceleration with the NVIDIA closed source driver, we should use the "nvidia" GLX implementation instead of the one from Mesa to take advantage of the NVIDIA hardware accelerated rendering. Signed-off-by:
Olivier Fourdan <ofourdan@redhat.com> Reviewed-by:
Michel Dänzer <mdaenzer@redhat.com>
-
If Xwayland's EGLstream backend supports hardware acceleration with the NVIDIA closed-source driver, the GLX library also needs to be one shipped by NVIDIA, that's what GLVND is for. Add a new member to the xwl_screen that the backend can optionally set to the preferred GLVND vendor to use. If not set, "mesa" is assumed. Signed-off-by:
Olivier Fourdan <ofourdan@redhat.com> Reviewed-by:
Michel Dänzer <mdaenzer@redhat.com>
-
- 30 May, 2021 18 commits
-
-
Niveditha Rau authored
Check for the need to byte-swap when attempting to display GL apps between a big-endian server and little-endian client or vice versa. Fixes: #1127
-
This should only ever throw GLXBadDrawable, says the protocol spec.
-
Povilas Kanapickas authored
libxcb 14.1 and older are not forwards-compatible with new device classes as it does not properly ignore unknown device classes. Since breaking libxcb would break quite a lot of applications, we instead report Gesture device class only if the client advertised support for XI 2.4. Clients may still not work in cases when a client advertises XI 2.4 support and then a completely separate module within the client uses broken libxcb to call XIQueryDevice. Signed-off-by:
Povilas Kanapickas <povilas@radix.lt>
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
Signed-off-by:
Povilas Kanapickas <povilas@radix.lt>
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-
Povilas Kanapickas authored
-