Chia-I Wu
a73e0e9a04
anv: decompress on upload for emulated formats
...
Add anv_astc_emu_decompress to decompress the raw texel data to the
hidden plane. Call anv_astc_emu_decompress from anv_CmdCopyImage2 and
anv_CmdCopyBufferToImage2.
v2: support transfer queue and add missing flushes (Lionel)
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
61e480cb54
anv: add a hidden plane for emulated formats
...
When an image is created with an emulated format, add a hidden plane to
the image. The hidden plane will be used for decompressed data.
v2: assert no sparse residency
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
9ffe8b9235
anv: add anv_is_format_emulated
...
anv_is_format_emulated returns true when a format is emulated. It will
be used for ASTC LDR emulation, but it always return false at the
moment.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
94192418f8
anv: add anv_cmd_buffer_{save,restore}_state
...
They can be used to save/restore a subset of the current compute state.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
710c14f20b
anv: add anv_descriptor_set_write
...
Add anv_descriptor_set_write as a helper for both
anv_UpdateDescriptorSets and anv_CmdPushDescriptorSetKHR.
v2: rename push_set to the more generic set_override
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com > (v1)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
7a4903626b
anv: support alternative push descriptor sets
...
Do not assume anv_cmd_pipeline_state::push_descriptor is the currently
bound push descriptor set. With this and anv_push_descriptor_set_init,
it is possible to initialize a temporary push descriptor set on stack
for internal use.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
a86a4e5fcf
anv: add anv_push_descriptor_set_{init,finish}
...
Refactor anv_cmd_buffer_alloc_push_descriptor_set and add
anv_push_descriptor_set_{init,finish}. Note that
anv_push_descriptor_set_init still supports re-initialization.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
d5841dce60
anv: support image views with surface state stream
...
Add optional anv_state_stream to anv_image_view_init. This is useful
for internal image views whose lifetimes are tied to the lifetime of a
command buffer.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
815b568ed5
anv: add anv_image_view_{init,finish}
...
This is a minor refactor.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:40 +00:00
Chia-I Wu
b16e803571
anv: remove unused field from anv_image_view
...
image_plane is unused.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:39 +00:00
Chia-I Wu
567c32b55c
radv, drirc: rename radv_require_{etc2,astc}
...
Rename them to vk_require_{etc2,astc}.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25467 >
2023-10-14 02:36:39 +00:00
Lionel Landwerlin
cfdc57d120
anv: update batch chaining to Gfx9 commands
...
I don't know this fixes anything but I noticed the generated draws
jump into addresses slightly different from CPU generated jumps.
After checking the genxml, I noticed MI_BATCH_BUFFER_START "Batch
Buffer Start Address" fields have different sizes in Gfx8 & Gfx9+.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25705 >
2023-10-14 01:47:42 +00:00
Karol Herbst
6c268cdf05
pipe-loader: allow to load multiple zink devices
...
Rusticl needs to be able to create a zink_screen on all renderer nodes.
This adds the infrastructure of doing so.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
65848d445c
rusticl: enable zink
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
e0bf698d46
rusticl/mesa/screen,device: add driver_name
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Mike Blumenkrantz
25d348d040
zink: eliminate samplers from no-sampler CL texops
...
samplers aren't guaranteed to be provided by no-sampler ops in CL,
so flagging them as extant may read from a null sampler and explode
instead just pass the image through directly in the spirv
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
764851a24c
zink: fix load/store scratch offsets
...
The offset is originally in bytes, so we have to handle it just like
shared load/stores.
Fixes: ddc5c30489 ("zink: handle global and scratch vars")
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
e36c49b69a
zink: fix RA textures
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
a5ef1067be
zink: implement remaining pack ops via bitcast
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
a10828f886
zink: support samplers with unnormalized_coords
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Mike Blumenkrantz
a6e9e0f0d7
zink: add set_global_binding
...
This requires VK_KHR_buffer_device_address which is the only sane way of
implementing CL global memory.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
bec1955446
zink: make spirv_builder_emit_*op compatible with spec constants
...
This way we can use those builder functions to emit spec constant
operations.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
82eed326f4
zink: support more nir opcodes
...
There are sadly no SPIRV variants for hadd or iadd_sat we can use, so
lower those.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
c5abb7c8d1
zink: variable shared mem support
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
566112fdf8
zink: refactor spec constant handling
...
This makes it simpler to add more spec constants
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
6e0bb08116
zink: pass entire pipe_grid_info into zink_program_update_compute_pipeline_state
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:16 +00:00
Karol Herbst
a3214e8976
zink: copy has_variable_shared_mem cs property
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:15 +00:00
Karol Herbst
ef018b2373
zink: implement get_compute_state_info
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:15 +00:00
Mike Blumenkrantz
487b9f7727
zink: always clamp shader stage in descriptor handling
...
otherwise KERNEL leaks through and explodes
cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839 >
2023-10-14 01:01:15 +00:00
Karol Herbst
3510575655
ci: add half-life 2 freedreno flake
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25722 >
2023-10-14 00:02:12 +00:00
Alejandro Piñeiro
bd674bf628
doc/features: update after last v3d changes
...
V3D v71 supports new hw features, like 8 draw buffers.
As we are here, we also update some features that have been working
for some time now, even on v41.
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Iago Toral Quiroga
3b9aaf25a0
v3dv: expose scalarBlockLayout on V3D 7.x
...
This version of V3D doesn't have the restriction that vector accesses
must not cross 16-byte boundaries.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Iago Toral Quiroga
dff60b9ee5
v3dv: expose depthClamp in V3D 7.x
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Iago Toral Quiroga
2212ee82b7
v3dv: expose fullDrawIndexUint32 in V3D 7.x
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Juan A. Suarez Romero
7999326f07
broadcom/simulator: add per-hw version calls
...
Add a wrapper to allow calling the right simulator function based on
the hardware under simulation.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Juan A. Suarez Romero
314c8965a6
broadcom: add performance counters for V3D 7.x
...
Some of the counters need to be defined correctly.
v2: Remove references to extended performance counters. The hw does
not support them.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Iago Toral Quiroga
d25aec0d38
v3d,v3dv: fix compute for V3D 7.1.6+
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Iago Toral Quiroga
8a69888803
v3d,v3dv: fix depth bias for v3d 7.x
...
In v3d 7.x we don't need to scale up depth bias for D16 buffers.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:44 +00:00
Iago Toral Quiroga
cd8afef9f1
v3dv: fix color write mask for v3d 7.x
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Iago Toral Quiroga
147112cfb1
v3dv: use new texture shader state rb_swap and reverse fields in v3d 7.x
...
In v3d 4.x we handle formats that are reversed or R/B swapped by
applying a format swizzle. This doesn't work on border colors though,
and for that there is a specific bit to reverse the border color in
the texture shader state.
In v3d 7.x we have new reverse and swap R/B bits and we no longer have
a bit to reverse the border color because the new reverse bit applies
to border texels too. Because of this, we absolutely need to use these
new bits in order to get correct border colors in all cases with these
formats.
When we enable the reverse and/or swap R/B bits, we are effectively
applying the format swizzle through them, so in these cases we need to
make sure the swizzle we program in the texture shader state is the
view swizzle provided by the API and not the composition of the format
swizzle with the view swizzle like we do in 4.x for all formats. The
same applies to custom border colors: we must not apply the format
swizzle to them for formats that are reversed or R/B swapped, because
again, this format swizzle is already applied through these new bits.
While we are doing this, we also fully adopt the texture shader state
spec from v3d 7.1.5 for v3d 7.x instead of using a description from
7.1.2 which is incompatible and required the driver to manually pack
some of the bits.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Iago Toral Quiroga
6fe85136ef
v3d,v3dv: propagate NaNs bits in shader state records are reserved in v7.x
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Alejandro Piñeiro
a5f0305804
v3dv: implement depthBounds support for v71
...
Just for for v71, as that feature is not supported by older hw.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Iago Toral Quiroga
cb9d079739
v3d,v3dv: don't use max internal bpp for tile sizing in V3D 7.x
...
We can use the actual bpp of each color attachment to compute real
tile memory requirements, which may allow us to choose a larger tile
size configuration than in V3D 4.2 in certain scenarios.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Iago Toral Quiroga
9e90d95508
v3d,v3dv: support up to 8 render targets in v7.1+
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Iago Toral Quiroga
904519d245
v3d/v3dv: fix texture state array stride packing for V3D 7.1.5
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Alejandro Piñeiro
30920c5de4
v3d: add support for TFU blit in v71
...
TFU has changed on v71, specially on which registers to use, so that
means that support code change across versions. So as part of this
commit TFU copying is moved to a v3dx file.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Alejandro Piñeiro
e54fbc197c
v3d: handle Z clipping in v71
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Alejandro Piñeiro
6eb063c66e
v3d: don't convert floating point border colors in v71
...
The TMU does this for us now.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Alejandro Piñeiro
610799cb4f
v3d: GFX-1461 does not affect V3D 7.x
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00
Alejandro Piñeiro
e743d41756
v3d: setup render pass color clears for any format bpp in v71
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450 >
2023-10-13 22:37:43 +00:00