mesa merge requestshttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests2024-03-19T23:44:41Zhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28139loader/zink: plumb through implicit load info to suppress error messages2024-03-19T23:44:41ZMike Blumenkrantzloader/zink: plumb through implicit load info to suppress error messagesWhen loading zink implicitly, don't print error messages on failure.
this should fix issues like https://gitlab.freedesktop.org/mesa/mesa/-/issues/10802When loading zink implicitly, don't print error messages on failure.
this should fix issues like https://gitlab.freedesktop.org/mesa/mesa/-/issues/10802https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25665dri: Cleaning up a bunch of image interface method proliferation2023-10-25T18:04:43ZEmma Anholtemma@anholt.netdri: Cleaning up a bunch of image interface method proliferationI was reading dri code this morning trying to help someone out, and got so lost in the maze of backwards compat code that I got out the axe.
The only commit I'm hesitant about here is 9a2dca3f884c8cfce97fc34f138ec7722ee14c4f.I was reading dri code this morning trying to help someone out, and got so lost in the maze of backwards compat code that I got out the axe.
The only commit I'm hesitant about here is 9a2dca3f884c8cfce97fc34f138ec7722ee14c4f.https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25004Fixing -Wpointer-arith warnings2023-11-06T19:47:12ZViktoriia PalianytsiaFixing -Wpointer-arith warnings### What does this MR do and why?
<!-- Describe in detail what your merge request does and why. -->
Reduces the amount of warnings from 958 to 20 mostly by
casting to type `char *`.That way log will not be that long
and confusing while ...### What does this MR do and why?
<!-- Describe in detail what your merge request does and why. -->
Reduces the amount of warnings from 958 to 20 mostly by
casting to type `char *`.That way log will not be that long
and confusing while using -Wpointer-arith flag.
Closes: #3650
Signed-off-by: Viktoriia Palianytsia <v.palianytsia@globallogic.com>https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24342gbm: make gbm_surface resizeable2023-11-06T19:09:51ZMax Verevkingbm: make gbm_surface resizeablePreviously in order to resize a surface one had to destroy EGLSurface and
gbm_surface, release EGL context, create new gbm_surface and EGLSurface,
and finally activate EGL context again.
With this patch all that needs to be done is call...Previously in order to resize a surface one had to destroy EGLSurface and
gbm_surface, release EGL context, create new gbm_surface and EGLSurface,
and finally activate EGL context again.
With this patch all that needs to be done is calling gbm_surface_resize.https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23214Draft: gbm: Allow GBM allocation of YUV surfaces2024-03-14T11:19:55ZRob ClarkDraft: gbm: Allow GBM allocation of YUV surfacesYUV surfaces may potentially not be renderable by the GPU itself, but
they can be sampled from the GPU, and exported to other devices such as
video decoder which can render into them.
This is required by chrome/chromium v4l2 based video...YUV surfaces may potentially not be renderable by the GPU itself, but
they can be sampled from the GPU, and exported to other devices such as
video decoder which can render into them.
This is required by chrome/chromium v4l2 based video decode stack. In
the context of ChromeOS, minigbm allows for allocating YUV gbm BOs.
This brings parity to minigbm, so that the v4l2 codec stack can also be
used on linux.
Suggested-by: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7745
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9079
Signed-off-by: Rob Clark <robdclark@chromium.org>
----
Note this probably requires a bit more driver work to deal with the `pipe_surface->next` trick for handling the extra planes. But not sure how to test this yet, so marking Draft for now.
----
See also https://chromium-review.googlesource.com/c/chromium/src/+/3380426 for related discussion.https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21200gbm: Fix cursor stride2024-02-27T18:52:30ZVille Syrjälägbm: Fix cursor strideThe stride returned from the CREATE_DUMB ioctl may not
be suitable for the cursor. The CURSOR/CURSOR2 ioctls simply
assume stride==width*4, which is also what a lot of hardware
needs. Populate the cursor bo stride accordingly.
For refer...The stride returned from the CREATE_DUMB ioctl may not
be suitable for the cursor. The CURSOR/CURSOR2 ioctls simply
assume stride==width*4, which is also what a lot of hardware
needs. Populate the cursor bo stride accordingly.
For reference this is the internal ADDFB2 the kernel does
for the CURSOR/CURSOR2 ioctls:
struct drm_mode_fb_cmd2 fbreq = {
.width = req->width,
.height = req->height,
.pixel_format = DRM_FORMAT_ARGB8888,
.pitches = { req->width * 4 },
.handles = { req->handle },
};
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20164Add missing dependencies for X11 build2022-12-06T14:05:59Zjheaff1Add missing dependencies for X11 buildMeson would fail to build unless the required headers were installed on
the host system.Meson would fail to build unless the required headers were installed on
the host system.https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15886gbm: new surface API for non-Mesa GL drivers2023-01-26T21:04:00ZConstantine Shabliagbm: new surface API for non-Mesa GL driversThis API allows GL drivers, for which it is impractical to assume internals of GBM surface objects, actually use these objects. An example of such driver is ANGLE with its Vulkan backend. The relevant changes can be found at https://chro...This API allows GL drivers, for which it is impractical to assume internals of GBM surface objects, actually use these objects. An example of such driver is ANGLE with its Vulkan backend. The relevant changes can be found at https://chromium-review.googlesource.com/c/angle/angle/+/3596045
ANGLE is the only user of this API as of now.
/cc @daniels @emersionhttps://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14251gbm: Ensure NULL map_data is passed to the backend from gbm_bo_map.2022-07-16T15:14:11ZKostas Michalopoulosgbm: Ensure NULL map_data is passed to the backend from gbm_bo_map.Some backends (e.g. gallium) seem to assume map_data is NULL and can fail if it isn't initialized as it can contain whatever is in memory at the time of call.
I found out about this when i tried to use gbm_bo_map and it failed with an e...Some backends (e.g. gallium) seem to assume map_data is NULL and can fail if it isn't initialized as it can contain whatever is in memory at the time of call.
I found out about this when i tried to use gbm_bo_map and it failed with an error about invalid arguments, so i stepped in through the code to see what exact argument is wrong since i had everything set up correctly according to the documentation.
Also someone else had the same issue a couple of years ago:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/1817https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14048Document the GBM API and loader<->backend ABI2022-01-07T14:41:50ZJames JonesDocument the GBM API and loader<->backend ABIAdd some documentation that lays out some guidelines/rules to
follow to avoid breaking binary compatibility when adding new
functionality to GBM. An example workflow is included for
reference. Additionally, document the first steps of wr...Add some documentation that lays out some guidelines/rules to
follow to avoid breaking binary compatibility when adding new
functionality to GBM. An example workflow is included for
reference. Additionally, document the first steps of writing
a new GBM backend driver.https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12666Draft: gbm,v3d: Force linear usage/modifiers for old APIs2021-09-06T11:22:28ZRoman StratiienkoDraft: gbm,v3d: Force linear usage/modifiers for old APIs```
Old buffer management APIs had no ways to share the information
about modifiers. And I assume only LINEAR was supported that days.
(otherwise collisions would appear).
After modifier sharing APIs was implemented, some of drivers
sta...```
Old buffer management APIs had no ways to share the information
about modifiers. And I assume only LINEAR was supported that days.
(otherwise collisions would appear).
After modifier sharing APIs was implemented, some of drivers
started to use "select the best modifier for specified use"
approach. But old applications started to fail.
Some of drivers implemented workaround for such cases, e.g (lima) to allow
old APPs work as before but in a cost of removing select best modifier
approach.
Another drivers e.g. v3d do not have such workarounds, making those
apps display artifacts on the screen (tiled instead of linear or vise versa).
After this change gbm_bo_create() will always allocate LINEAR buffer,
and drivers should be modified to select LINEAR when DRM_FORMAT_MOD_INVALID
is imported.
For "select best modifier" approach APPs should use new
gbm_{bo,surface}_create_with_modifiers2, with the proper USE flag
and NULL modifiers list.
```https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2798Neuter server-side wl_drm2023-08-03T23:30:01ZLink MauveNeuter server-side wl_drm`wl_drm` has been replaced with `wp_linux_dmabuf` for buffer creation purposes back in 2015, so let’s remove server-side support for it.
This series stops advertising any format on this interface, removes support for creating a `wl_buff...`wl_drm` has been replaced with `wp_linux_dmabuf` for buffer creation purposes back in 2015, so let’s remove server-side support for it.
This series stops advertising any format on this interface, removes support for creating a `wl_buffer` from `wl_drm` with an `invalid_format` error (since no format is advertised anymore), and stubs or removes code expecting to be able to use it.
The client-side usage of `wl_drm` isn’t changed in any way, this is left for a future MR.Adam Jacksonajax@nwnk.netAdam Jacksonajax@nwnk.net