Boris Brezillon
f2c06d0813
panfrost: Remove uneeded pan_device.h inclusions
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
493cf2f008
panfrost: Make pan_desc.{c,h} panfrost_bo agnostic
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
f94889d079
panfrost: Make pan_texture.{c,h} panfrost_bo agnostic
...
All the helpers use pan_image_mem::bo just to get the base address.
So let's just store this information here, and let the user keep track
of the BO that's attached to the image resource.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
2d07926df1
panfrost: Make pan_props.c panfrost_device agnostic
...
Move the functions that are dealing with panfrost_device initialization
to a new panfrost_device.c file, and make the remaining ones
panfrost_device agnostic.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
7b4d1bb9be
panfrost: Make pan_pool.h panfrost_{device,bo} agnostic
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
1b1f1a6d76
panfrost: Make pan_indirect_dispatch panfrost_device agnostic
...
This is part of our effort to make libpanfrost panfrost_{device,bo}
agnostic.
Since we are now passed a pool for descriptor allocations, there's no
point doing a single allocation for both the RSD and TSD, and we can
replace the get_{tls,rsd}() helpers by two fields at the
pan_indirect_dispatch_meta level, thus simplifying the logic a bit.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
2bdcef6506
panfrost: Make pan_blitter.{c,h} panfrost_device agnostic
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
49aeced1a4
panfrost: Make pan_blitter.h includable from non per-gen files
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
146b51d9f4
panfrost: Remove unused header inclusions from pan_blitter.h
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
a01be2f21f
panfrost: Make pan_encoder.h panfrost_device agnostic
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
0651b8871b
panfrost: Make pan_sample.c panfrost_device agnostic
...
In order to do that, we create a pan_sample.h header, and make it so
the buffer allocation is left to the caller.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
387882d811
panfrost: Make pan_layout.c panfrost_device agnostic
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
f4f2b7492b
panfrost: Drop unused panfrost_device forward declaration in pan_shader.h
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
517c0458f2
panfrost: Make pan_desc.{c,h} panfrost_device agnostic
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
56438e06b9
panvk: Inline pan_wls_mem_size()
...
And get rid of the function in pan_desc.h.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
00fb95175f
panfrost: Pass tiler heap info through pan_tiler_context
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
42138ee1c8
panfrost: Pass no_hierarchical_tiling info through pan_tiler_context
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
00d4a7c7fd
panfrost: Pass the sample position array through pan_fb_info
...
Part of the attempt to make pan_desc.{c,h} panfrost_device-agnostic.
Let the caller pass the sample position array through pan_fb_info
instead of extracting it from panfrost_device.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
8b8942d4dc
panfrost: Pass the tile buffer budget through pan_fb_info
...
Pass the tile buffer budget through pan_fb_info instead of assuming
the it's always panfrost_device::optimal_tib_size. This way we let
the driver decide how much of the tile buffer it's allowed to use
instead of making it a general rule. Most importantly, it's one less
dependency on panfrost_device in pan_desc.c.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
95480bc2ab
panfrost: Get rid of unused panfrost_device arguments in pan_blitter.c
...
Get rid of the panfrost_device in all helpers where it's currently
unused.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
3e85e3ce08
panfrost: Make the pan_blend logic panfrost_device-agnostic
...
We keep embedding a blend shader cache in panfrost_device, but now we
have pan_blend source files that can be used without a panfrost_device
object.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
8a42913c23
panfrost: Stop passing a panfrost_device to pan_inline_rt_conversion()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
9c8af69827
panfrost: Stop passing a panfrost_device to pan_blend_create_shader()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
1b79735a63
panfrost: Stop exposing pan_blend_create_shader()
...
Not used outside pan_blend.c.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
0e7e22a808
panfrost: Stop passing a panfrost_device to pan_blend_get_internal_desc()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
fbcc85108b
panfrost: Don't pass a panfrost_device to panfrost_afbc_can_tile()
...
Pass the arch directly.
While at it, make the helper a static inline function defined in
pan_texture.h.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:09 +00:00
Boris Brezillon
a758e95077
panfrost: Don't pass a panfrost_device to panfrost_format_supports_afbc()
...
Pass the arch instead.
While at it, make this helper a static inline function defined in
pan_texture.h.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
0d76cb0268
panfrost: Stop passing a panfrost_device to panfrost_new_texture()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
5669622857
panfrost: Move YUV-debugging out of panfrost_new_texture()
...
It's a gallium driver specific knob, and we're trying to stop passing
a panfrost_device to panfrost_new_texture(), so let's move the
YUV-debugging tweak to panfrost_create_sampler_view_bo().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
897733c55d
panfrost: Move panfrost_is_yuv() to pan_format.h
...
This way we can do the test outside pan_texture.c.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
fba7f38fda
panfrost: Add panfrost_[blendable]_format_table() helpers
...
The format tables selection is currently done in pan_props, but we will
soon need something similar in panvk if we want to get rid of
panfrost_device there.
Add panfrost_format_table() and panfrost_blendable_format_table() and
use them to populate the panfrost_device format tables.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
e0fe9c369a
panfrost: Make panfrost_format_to_bifrost_blend() a per-gen helper
...
Make panfrost_format_to_bifrost_blend() a per-gen helper so we don't
have to pass a panfrost_device object around.
While at it, pick a better name for this helper and move it to
pan_format.h.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
b87de3a2e0
panfrost: Add a per-gen panfrost_blendable_format_from_pipe_format() helper
...
Add a helper to retrieve a panfrost_blendable_format from a pipe_format
without using a panfrost_device object. Only works for
per-gen source files, but those are the main users of blendable formats
anyway.
Will be useful to stop using panfrost_device from panvk.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
e8d2b5b86d
panfrost: Add a per-gen panfrost_format_from_pipe_format() helper
...
This will allow us to get rid of panfrost_device arguments passed
to per-gen helpers that only need it for the format table, which
will help the transition to pan_kmod_dev in panvk.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Boris Brezillon
fe9d541d9d
panfrost: Kill unused forward declarations in pan_texture.h
...
pan_pool and pan_jc are never used in this file.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Constantine Shablya <constantine.shablya@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26698 >
2024-01-23 16:32:08 +00:00
Erik Faye-Lund
e9ada4c0a2
panfrost: add support for forcing sample-counts
...
This implements a D3D11-style forcing of the sample-counts, which will
be used by the line-smoothing code we're about to add.
Even though we don't actually use the single-sample mode, I left it in
for completeness, as it's documented in the TRM.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26904 >
2024-01-19 13:55:06 +00:00
Ray Smith
c5ba55314c
panfrost: Fix format tables for v4 and v5
...
pan_format.c was only being built with PAN_ARCH in [6, 7, 9], but has
conditional compilation for PAN_ARCH <= 5 which never got compiled.
Signed-off-by: Ray Smith <rsmith@brightsign.biz >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26980 >
2024-01-17 11:07:48 +00:00
Ray Smith
404da63a0e
panfrost: Don't try to set bifrost blendable format on midgard
...
pan_blendable_format.bifrost is only accessed on bifrost, but we set it
to bogus values on midgard. Set it to 0/invalid instead.
Signed-off-by: Ray Smith <rsmith@brightsign.biz >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26980 >
2024-01-17 11:07:48 +00:00
Yonggang Luo
c1d6d745cf
asahi,panfrost: Use IS_POT_NONZERO to replace util_is_power_of_two_nonzero for different size
...
This member's size are not fixed, so use IS_POT_NONZERO over it
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26909 >
2024-01-11 16:45:57 +00:00
Boris Brezillon
aa6176ee1e
panfrost: Introduce a PAN_BO_SHAREABLE flag
...
This flag reflects the ability to share a BO. This lets the kmod
backend optimize the case where the BO stays private to a specific
VM.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:27 +00:00
Boris Brezillon
5089a758df
panfrost: Back panfrost_bo with pan_kmod_bo object
...
We keep the existing implementation unchanged but use pan_kmod for
all interactions with the kernel driver.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:27 +00:00
Boris Brezillon
7a9c471009
panfrost: Add a VM to panfrost_device
...
The current code assumes the logical device comes with a VM, so let's
explicitly create this default VM so we can map BOs with the kmod API.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
91fe8a0d28
panfrost: Back panfrost_device with pan_kmod_dev object
...
Back panfrost_device with pan_kmod_dev object and query all props using
the pan_kmod_dev_query_props().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
70bcdbee6c
panfrost: Avoid direct accesses to some panfrost_bo fields
...
We are about to delegate some BO-related operations to the pan_kmod
layer, but before we can do that, we need to hide panfrost_bo
internals so we can redirect such accesses to pan_kmod.
Provide panfrost_bo_{size,handle}() accessors and start using them.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
d47e01a3c3
panfrost: Avoid direct accesses to some panfrost_device fields
...
We are about to delegate some device-related operations to the pan_kmod
layer, but before we can do that, we need to hide panfrost_device
internals so we can redirect such accesses to pan_kmod.
Provide a few panfrost_device_xxx() accessors and start using them.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
93178999f6
pan/kmod: Add a backend for the panfrost kernel driver
...
Just a few implementation details that are worth mentioning:
- Panfrost doesn't support explicit VM management. This means
panfrost_kmod_vm_create() must always be created with
PAN_KMOD_VM_FLAG_AUTO_VA and panfrost_kmod_vm_bind(op=map) must
always be passed PAN_KMOD_VM_MAP_AUTO_VA. The actual VA is assigned
at BO creation time, and returned through
drm_panfrost_create_bo.offset, or can be queried through
DRM_IOCTL_PANFROST_GET_BO_OFFSET for imported BOs.
- Evictability is hooked up to DRM_IOCTL_PANFROST_MADVISE.
- BO wait is natively supported through DRM_IOCTL_PANFROST_WAIT_BO.
The rest is just a straightforward translation between the kmod API and
the existing panfrost ioctls.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
d95ec56f8c
panfrost: Abstract kernel driver operations
...
We have generic BO management and device management layers that
directly call kernel driver-specific ioctls. The introduction of
Panthor (the new kernel driver supporting CSF hardware) forces us to
abstract some low-level operations. This could be done directly in
pan_{bo,device,props}.{c,h}, but having the abstraction clearly defined
and separated from the rest of the code makes for a cleaner
implementation.
This is also a good way to get a low-level KMD abstraction that
we can use without pulling all sort of gallium-related details in,
which will be important for some refactoring we plan to do in panvk.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26357 >
2023-12-15 11:33:26 +00:00
Boris Brezillon
1d4583759a
panfrost: Restrict job descriptor emission to JM hardware
...
CSF hardware issue jobs through command stream instructions.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00
Boris Brezillon
54e0086abe
panfrost: Restrict job chain helpers to JM hardware
...
Jobs are issued through command stream instructions on CSF hardware.
Don't expose the job chain helpers in that case.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00
Boris Brezillon
1481883a6e
panfrost: Make pan_afbc_compression_mode() per-gen
...
With the introduction of v10, we need this function to have a
per-gen name to avoid duplicates. While at it, move it to pan_texture.c
since the prototype is already defined in pan_texture.h.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356 >
2023-12-05 15:55:21 +00:00