Emma Anholt
6de8b9a65b
egl/kopper: Pass ancillary invalidate flush flags down to gallium.
...
We can just add the flags to the kopper interface, since it's private to
Mesa. This gets us depth/stencil invalidation on swapbuffers, which is
critical for tiler performance.
glmark2-es2 -b texture (windowed) goes from 1650 to 1930 fps on
zink+turnip with ZINK_DEBUG=rp.
Part of #7321 (we're still a little behind freedreno's 2180 fps)
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21317 >
2023-02-15 19:17:07 +00:00
Corentin Noël
dd3730f8bd
kopper: Do not free the given screen in initScreen implementation
...
The given screen is already freed by the caller in case a NULL-pointer is
returned by the implementation.
Cc: mesa-stable
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20933 >
2023-01-26 13:36:32 +00:00
Marek Olšák
e7a1cce4ee
gallium: remove st_framebuffer_iface::st_manager_private
...
It's always equal to self.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20027 >
2022-12-09 13:14:03 +00:00
Marek Olšák
59c9e62f48
st/mesa: remove st_context callbacks for dri/glx/wgl frontends
...
Use direct calls.
Other changes:
- kopper called thread_finish twice in the same function.
Remove the second call.
- Context creation had no-op initializations of cso_context and pipe.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20027 >
2022-12-09 13:14:03 +00:00
Marek Olšák
263dc7b605
gallium: remove st_context_iface, use st_context directly
...
st_context_iface was the base class that st_context inherited.
Just use st_context.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20027 >
2022-12-09 13:14:03 +00:00
Emma Anholt
133e2f8ac3
dri: Add createContext hook to __DRI_MESA.
...
Again, reduces switching on driver type in the loader.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
cdc7475f72
gallium/dri: Move the backendVtable InitScreen func into __DRI_MESA.
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
4dd656e19a
dri: Add createNewScreen into the __DRI_MESA extension.
...
Now the loaders don't have to switch on dri2/dri3/swrast.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Emma Anholt
1026d29344
dri: Introduce internal Mesa DRI driver loader extension.
...
All DRI loaders in Mesa (EGL, GLX, gbm) now require this ext and that the
driver come from a matching build. This will let us use Mesa-internal
types and enums across the loader-driver bounary inside of Mesa.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Acked-by: Eric Engestrom <eric@igalia.com >
LOL-YESed-by: Kristian Høgsberg <krh@bitplanet.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069 >
2022-12-05 19:26:41 +00:00
Marek Olšák
51fcabfb04
frontend/dri: unduplicate flush_drawable callback
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
eaf99194ea
frontend/dri: remove the drawable ctx hack, we should always use current context
...
I've checked the loaders that this is what they expect.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
7d5b1cd02c
frontend/dri: move callbacks from the VTable into dri_screen, dri_drawable
...
This just moves the callbacks and renames the functions.
Some functions had to be moved up because they are initialized there.
Remove some obsolete comments.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
f34d607d2f
frontend/dri: clean up the hacky implementation of kopper_drawable
...
Just put the kopper_drawable fields into dri_drawable and remove
kopper_drawable. The creation code is simplified.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
165b8a9fef
frontend/dri: inline __DRIscreen in dri_screen, make __DRIscreen opaque
...
This cleanup removes the dri_util structure __DRIscreen(Rec) that is
difficult to follow, and switches all code to using dri_screen directly.
It also inlines kopper_screen in dri_screen because I don't see any
other way to do this cleanup.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
0a622f61ea
frontend/dri: inline __DRIcontext in dri_context, make __DRIcontext opaque
...
This cleanup removes the dri_util structure __DRIcontext(Rec) that is
difficult to follow, and switches all code to using dri_context directly.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
c65bde7b1e
frontend/dri: inline __DRIdrawable in dri_drawable, make __DRIdrawable opaque
...
This cleanup removes the dri_util structure __DRIdrawable(Rec) that is
difficult to follow, and switches all code to using dri_drawable directly.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
449a35a397
frontend/dri: replace the CopySubBuffer callback with a direct call
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
2941eacb22
frontend/dri: replace the DestroyBuffer callback with a direct call
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
f408bb647c
frontend/dri: replace the DestroyScreen callback with a direct call
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:42 +00:00
Marek Olšák
d57284d673
frontend/dri: inline __DriverAPIRec
...
the vtable indirection was unnecessary
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:41 +00:00
Marek Olšák
e061affa7f
frontend/dri: remove __DRIdrawableRec::dri2::stamp
...
It's practically unused. It was only off by one at initialization, but
that didn't have any effect.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19741 >
2022-11-27 02:52:41 +00:00
David Heidelberg
9d81729c02
kopper: guard unused variable behind ifdef
...
Acked-by: Yonggang Luo <luoyonggang@gmail.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19587 >
2022-11-14 20:13:20 +00:00
Yonggang Luo
26a6d16db0
zink: Only #include <vulkan/vulkan_core.h> instead #include <vulkan/vulkan.h> in kopper_interface.h
...
It's pulled too much system dependent headers before this commit
when #include <vulkan/vulkan.h> directly,
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19491 >
2022-11-10 06:59:42 +00:00
Marek Olšák
eafe72a6cc
frontend/dri: sync glthread when calling from the app side
...
The comments explain the reasons.
This is a prerequisite for glthread to be used by native drivers, swrast,
and zink.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18223 >
2022-09-21 14:54:50 +00:00
Adam Jackson
c123ab2137
kopper: Implement {EGL,GLX}_EXT_buffer_age
...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17527 >
2022-07-18 19:31:29 +00:00
Emma Anholt
f9ecf99ca9
kopper: Use the swap interval that was set at swapchain creation time.
...
We need to track what the caller has given us for swap interval, and use
that to set the present mode at startup.
Fixes incorrect vblank syncing in apitrace's glretrace, which sets the
swap interval to 0 before the swapchain is made.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17470 >
2022-07-12 21:57:23 +00:00
Mike Blumenkrantz
b6a8014217
kopper: use get_drawable_info path for non-x11 drawables
...
wayland surfaces need to take this path to get resizing right
cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16814 >
2022-06-03 18:22:22 +00:00
Alessandro Astone
f2a6535901
kopper: Only include XCB headers on supported platforms
...
Fixes: 054bd2d38f
("kopper: copy a bunch of code for texture_from_pixmap")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16675 >
2022-05-25 15:26:09 +00:00
Mike Blumenkrantz
d4dce29faf
kopper: remove unused zink include
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16441 >
2022-05-10 22:42:19 +00:00
Adam Jackson
2a47c30ef9
dri: Remove what's left of utils.[ch]
...
Which is just moving the struct definition for __DRIconfigRec into
dri_util.h.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377 >
2022-05-10 21:25:57 +00:00
Mike Blumenkrantz
49b8f72e3d
kopper: pass the current context to dri_flush
...
passing the drawable's context leads to desync and crashing if the app
is using multiple threads and multiple contexts
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16351 >
2022-05-05 20:42:41 +00:00
Mike Blumenkrantz
3de78fb3c8
kopper: invalidate drawables when resizing textures in place
...
this guarantees that swapchains shared between contexts will stay
in sync
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16351 >
2022-05-05 20:42:41 +00:00
Adam Jackson
1e90e3325b
kopper: Grow a swap interval API
...
We take a slight liberty here by allowing 0 to mean either MAILBOX or
IMMEDIATE, since Wayland (at least) doesn't have a true IMMEDIATE mode
at least MAILBOX won't throttle to vblank.
This only correctly handles intervals of 0 or 1 at the moment.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15800 >
2022-05-04 15:06:51 +00:00
Mike Blumenkrantz
081ac73162
kopper: implement texture-from-pixmap for software (non-dmabuf)
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16190 >
2022-04-28 17:52:48 +00:00
Mike Blumenkrantz
27834266f9
kopper: rename a confusing variable
...
is_pixmap is defined in kopper_allocate_textures() as being (!window && x11),
which is very different from this check, which determines whether the drawable
is a window
so rename it to keep things consistent
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16190 >
2022-04-28 17:52:48 +00:00
Mike Blumenkrantz
ab8702c59e
kopper: check whether zink is using sw
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16190 >
2022-04-28 17:52:48 +00:00
Mike Blumenkrantz
05ffc5f5ea
kopper: check for modifiers to use modifier functionality
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16190 >
2022-04-28 17:52:48 +00:00
Mike Blumenkrantz
ca6760948f
kopper: add some error logging for pixmap->texture failure
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16190 >
2022-04-28 17:52:48 +00:00
Adam Jackson
c865416f44
glx/kopper: Wire up a way for SwapBuffers to fail
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16038 >
2022-04-27 21:50:16 +00:00
Mike Blumenkrantz
054bd2d38f
kopper: copy a bunch of code for texture_from_pixmap
...
seems to work?
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
89602c3970
kopper: store whether screen has dmabuf support
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
476f8ad350
kopper: move drawable geometry updating up in function
...
no functional changes
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
c38a2ad2ff
kopper: always fetch and store drawable info
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
25840a31eb
kopper: add DISPLAY_TARGET bind for depth buffer
...
this doesn't affect functionality and is only used for validation
in the driver
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16151 >
2022-04-26 18:58:26 +00:00
Mike Blumenkrantz
48ae404b42
kopper: print better error message if loader not detected
...
silently failing on release builds is annoying
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15851 >
2022-04-12 21:34:30 +00:00
Mike Blumenkrantz
0bfb3b0436
zink/kopper: don't use generated include in kopper interface
...
this causes build race conditions
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15830 >
2022-04-08 16:33:05 -04:00
Mike Blumenkrantz
d09ee469f0
kopper: add a dmabuf-free image interface for use with sw drivers
...
sw drivers don't support modifiers or dmabufs or any of that, so separate
interfaces are needed to avoid advertising extensions that will only lead
to crashes
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15802 >
2022-04-07 20:08:10 +00:00
Mike Blumenkrantz
7f56fd9655
zink: it's kopperin' time
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541 >
2022-04-07 00:17:40 +00:00
Adam Jackson
d760a9151b
gallium: Learn about kopper
...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541 >
2022-04-07 00:17:40 +00:00