URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd674bf6289bc2b7a847401ef13b3a854479e99a
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Oct 4 13:55:35 2023 +0200
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b9aaf25a00db63f3e2ae6ec047e23f54277f90f
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Jun 21 10:29:07 2023 +0200
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dff60b9ee5c310b69816233fccc731e2d6f42216
Author: Iago Toral Quiroga <[email protected]>
Date: Wed May 31 10:38:59 2023 +0200
v3dv: expose depthClamp in V3D 7.x
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2212ee82b733ab5f22a5770023ae593d0a331fb3
Author: Iago Toral Quiroga <[email protected]>
Date: Wed May 31 09:23:51 2023 +0200
v3dv: expose fullDrawIndexUint32 in V3D 7.x
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7999326f074dd2b9d4263bb39b74bacd32861a65
Author: Juan A. Suarez Romero <[email protected]>
Date: Mon Mar 20 16:48:51 2023 +0100
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 <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=314c8965a6ec70cdd896066920df763e0b8f9ca5
Author: Juan A. Suarez Romero <[email protected]>
Date: Wed Feb 22 09:43:40 2023 +0100
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 <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d25aec0d386bee7f628e336c9b5939011bb7edc3
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Mar 9 19:05:19 2023 +0100
v3d,v3dv: fix compute for V3D 7.1.6+
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8a698888031d3d59e1b25386bd78f6e59182723f
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Feb 8 09:04:02 2023 +0100
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd8afef9f134b6c31bfde9b077f3134f0d42c4cc
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Feb 8 08:41:12 2023 +0100
v3dv: fix color write mask for v3d 7.x
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=147112cfb17d38ca248843727e3b252db0593d98
Author: Iago Toral Quiroga <[email protected]>
Date: Tue May 16 00:38:40 2023 +0200
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6fe85136ef49dcaeb571a2b8b129c4b1197e6d8f
Author: Iago Toral Quiroga <[email protected]>
Date: Fri Dec 3 13:20:22 2021 +0100
v3d,v3dv: propagate NaNs bits in shader state records are reserved in v7.x
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5f0305804b79b6f1cdd48f760f5fa47a5c4569f
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Nov 19 10:51:37 2021 +0100
v3dv: implement depthBounds support for v71
Just for for v71, as that feature is not supported by older hw.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb9d0797398e9b0621eb65f401dbc67a126423b9
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Nov 16 11:26:17 2021 +0100
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9e90d955087dfa6b7487940f58d3613ac4082894
Author: Iago Toral Quiroga <[email protected]>
Date: Fri Nov 12 10:35:59 2021 +0100
v3d,v3dv: support up to 8 render targets in v7.1+
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=904519d245ea6ce44dcd86459f36d749cb0d722e
Author: Iago Toral Quiroga <[email protected]>
Date: Tue May 16 00:28:27 2023 +0200
v3d/v3dv: fix texture state array stride packing for V3D 7.1.5
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=30920c5de46fabaea4c5a8a1bd2726e3c29b0f08
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Oct 27 02:03:10 2021 +0200
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e54fbc197c95ac133610385959080d474fb75dc3
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Oct 22 14:26:29 2021 +0200
v3d: handle Z clipping in v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6eb063c66e68e94a1244501e660205084347f805
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Oct 22 13:41:09 2021 +0200
v3d: don't convert floating point border colors in v71
The TMU does this for us now.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=610799cb4f8b9074b91a2e6b17b4931349272dd3
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Oct 22 12:17:45 2021 +0200
v3d: GFX-1461 does not affect V3D 7.x
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e743d41756101cce7cda469895f76d60de8506a7
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Oct 22 11:40:49 2021 +0200
v3d: setup render pass color clears for any format bpp in v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9be4d4def6f801e08c1007ae9d3ea95c972d8488
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Oct 22 10:54:24 2021 +0200
v3d: handle new TEXTURE_SHADER_STATE v71 YCbCr fields
There are some new fields for YCbCr with pointers for the various
planes in multi-planar formats. These need to match the base address
pointer in the texture state, or the hardware will assume this is a
multi-planar texture.
Notice we don't use an address type for these fields in the XML
description. This is because the addresses are 64-bit aligned (even
though the PRM doesn't say it) which means the 6 LSB bits are
implicitly 0, but the fields are encoded before the 6th bit of their
starting byte, so we can't use the usual trick we do with address
types where the first 6 bits in the byte are implicitly overwritten by
other fields and we have to encode this manually as a uint field. This
would mean that if we had an actual BO we would also need to add it
manually to the job's list, but since we don't have one, we don't have
to do anything about it.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=80923c889a030c0afa37e2f6cd718793ce56cac2
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Oct 21 23:21:02 2021 +0200
v3d: handle new texture state transfer functions in v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b09f9156661b4d4bec4e5494f3c106b0aac1f5f7
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Oct 21 13:46:11 2021 +0200
v3d/uniforms: update VIEWPORT_X/Y_SCALE uniforms for v71
As the packet CLIPPER_XY scaling, this needs to be computed on 1/64ths
of pixel, instead of 1/256ths of pixels.
As this is the usual values that we get from macros, we add manually a
v42 and v71 macro, and define a new helper to get those.
Those granularity values are the same for Vulkan and OpenGL, so
perhaps we should move them to a common place.
As with v3dv, V3D_X macro name is somewhat confusing. It is
specifically created to ask for define values that depends on the
version. But I also felt that V3D_DEFINE_X was too long.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2908b2782ae900e9aef8c62686c035ece7764411
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Oct 21 13:37:46 2021 +0200
v3d: default vertex attributes values are not needed for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b833243348089c4e20d151c27ab35fbc028d3820
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Oct 21 13:19:49 2021 +0200
v3d: no specific separate_segments flag for V3D 7.1
On V3D 7.1 there is not a flag on the Shader State Record to specify
if we are using shared or separate segments. This is done by setting
the vpm input size to 0 (so we need to ensure that the output would be
the max needed for input/output).
We were already doing the latter on the prog_data_vs, so we just need
to use those values, instead of assigning default values.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=12e968046c1acbcb0d9a31ec411fa27b13b76406
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Oct 21 13:14:32 2021 +0200
v3d: emit CLIPPER_XY_SCALING for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6561f58b0d4863534e73bf3f3080d504d92d3b75
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Oct 21 13:09:03 2021 +0200
v3d: just don't fill up early-z fields for CFG_BITS for v71
v71 doesn't include early_z_enable/early_z_updates_enable. They are
configured with packet 121.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=22817f4f89b2afb5412fe46ee3a1d00608e5b402
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Oct 21 01:47:29 2021 +0200
v3d: emit CLEAR_RENDER_TARGETS for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=68b3b7c8510c166a570940c1fc47b0abea6177ea
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Oct 20 15:12:15 2021 +0200
v3d: TILE_RENDERING_MODE_CFG_RENDER_TARGET_PART1
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=da11be4bdf21d276a82aff68234fa68dededd31d
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Oct 20 14:31:10 2021 +0200
v3d: emit TILE_BINNING_MODE_CFG and TILE_RENDERING_MODE_CFG_COMMON for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4dfe17a7626cc8fa18c50829dcd35f7bae731b77
Author: Alejandro Piñeiro <[email protected]>
Date: Tue May 23 23:32:37 2023 +0200
v3d: add v71 hw generation
Starting point for v71 version inclusion:
* Adds as one of the versions to be compiled on meson
* Updated the v3d_X and v3dX macros to include version 71
* Update the code enough to get it building when using v71.
Any real v71 support will be implemented on following commits.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=48383668a7c53f3edda9ab266a0ef00ca20fbf95
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Feb 14 10:09:53 2023 +0100
v3dv: fix depth clipping then Z scale is too small in V3D 7.x
When the Z scale is too small guardband clipping may not clip
correctly, so disable it, which is a new option in V3D 7.x.
This fixes this test in V3D 7.x without needing any workarounds:
dEQP-VK.draw.renderpass.inverted_depth_ranges.nodepthclamp_deltazero
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=662d6e296e44a4be499a10b6046bc67dd98050a3
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Oct 20 11:22:11 2021 +0200
v3dv: make v3dv_viewport_compute_xform depend on the V3D version
For 4.x we have a workaround for too small Z scale values that is not
required for V3D 7.x.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=146ceadcf45db7d2e6434ccc816f133da8dcd81f
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Nov 17 11:33:59 2021 +0100
v3dv: add support for TFU jobs in v71
This includes update the simulator.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8f2704a28de69b44f5d5f9128f252f8a45929cde
Author: Iago Toral Quiroga <[email protected]>
Date: Fri Oct 15 13:06:31 2021 +0200
v3dv: handle Z clipping in v71
Fixes the following tests:
dEQP-VK.clipping.clip_volume.*
dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_* (except deltazero)
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=acd99e08b4fcec260d03e05ee2a6b1a9433180fa
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Oct 7 12:43:49 2021 +0200
v3dv: don't convert floating point border colors in v71
The TMU does this for us now.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=452421dfe56f35a909a7231008f00b29922a5c44
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Oct 1 15:18:38 2021 +0200
v3dv: no specific separate_segments flag for V3D 7.1
On V3D 7.1 there is not a flag on the Shader State Record to specify
if we are using shared or separate segments. This is done by setting
the vpm input size to 0 (so we need to ensure that the output would be
the max needed for input/output).
We were already doing the latter on the prog_data_vs, so we just need
to use those values, instead of assigning default values.
As we are here, we also add some comments on the compiler part.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef60f6db0d62137dc0adf924f66e5aea72ef938c
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 29 09:07:28 2021 +0200
v3dv: handle RTs with no color targets in v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f4fa1c8586434b50b50c3d67422571bed4ce53ab
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 29 08:22:59 2021 +0200
v3dv: handle early Z/S clears for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c191d1103127703c8d1dac6ce3d0b785c81ea44
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Sep 28 08:59:08 2021 +0200
broadcom/compiler: update thread end restrictions validation for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f7b16f91e115092c3de31bb153a024fc60a8d3cf
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Sep 28 08:31:04 2021 +0200
v3dv: GFX-1461 does not affect V3D 7.x
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=84ca72ace2616b1eaf3c9b0a74bebebee47dfc71
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Sep 28 08:23:48 2021 +0200
v3dv: handle render pass global clear for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=76a019f8cc0c9b12bed665a5696ae034b79c7792
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Sep 28 08:14:11 2021 +0200
v3dv: implement noop job for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ad415c0e6fd95806c5e860e4f843bca7af86388
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Oct 25 01:38:31 2021 +0200
v3dv: handle new texture state transfer functions in v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fe6594c4c114c91f0bdf0b96c28349e6f2a1e18d
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Oct 25 01:37:12 2021 +0200
v3dv: fix up texture shader state for v71
There are some new fields for YCbCr with pointers for the various
planes in multi-planar formats. These need to match the base address
pointer in the texture state, or the hardware will assume this is a
multi-planar texture.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f514ad5dd2a600d0d759f2bab1c8ac5bbaba798f
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 22 12:04:21 2021 +0200
v3dv: setup TLB clear color for meta operations in v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5e3322d9358386793197b9c723d3be0968a5ef7
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 22 12:03:58 2021 +0200
v3dv: setup render pass color clears for any format bpp in v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c92a758ccbb5cbfeca2dfbe2badef894e5b6dfc
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Jul 28 13:45:52 2021 +0200
v3dv/pipeline: handle GL_SHADER_STATE_RECORD changed size on v71
It is likely that we would need more changes, as this packet changed,
but this is enough to get basic tests running. Any additional support
will be handled with new commits.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5750926d0e583b0503eec03f686fe679ccd80701
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Jul 28 12:05:26 2021 +0200
v3dv/pipeline: default vertex attributes values are not needed for v71
There are not part of the shader state record.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=53773f3ea7a2f0e9c5bfd6ac5a5bd2167a1eccc5
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Jul 28 12:01:38 2021 +0200
v3dv: default vertex attribute values are gen dependant
Content, structure and size would depend on the generation. Even if it
is needed at all.
So let's move it to the v3dvx files.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0abf7c14077b020ef525d29d0b5777929dcf952e
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Jul 27 14:02:30 2021 +0200
v3dv/cmd_buffer: just don't fill up early-z fields for CFG_BITS for v71
For v71 early_z_enable/early_z_updates_enable is configured with
packet 121.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1a822ba3e64003f7c5e095fafc54f6692ad261fd
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Sep 14 10:08:19 2021 +0200
v3dv/uniforms: update VIEWPORT_X/Y_SCALE uniforms for v71
As the packet CLIPPER_XY scaling, this needs to be computed on 1/64ths
of pixel, instead of 1/256ths of pixels.
As this is the usual values that we get from macros, we add manually a
v42 and v71 macro, and define a new helper (V3DV_X) to get the value
for the current hw version.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fdd9ea9bcbca30bccce492d2765bc5ef09d469b
Author: Alejandro Piñeiro <[email protected]>
Date: Sun Sep 19 23:37:32 2021 +0200
v3dv/cmd_buffer: emit CLIPPER_XY_SCALING for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e2eed3fff6e3017446eb3b4488d9c3db4e9ea33c
Author: Alejandro Piñeiro <[email protected]>
Date: Mon Jul 26 15:08:11 2021 +0200
v3dvx/cmd_buffer: emit CLEAR_RENDER_TARGETS for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=33886d5f2657cb0ebf379de2d07919f91d7c2026
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Jul 22 14:26:13 2021 +0200
v3dv/cmd_buffer: emit TILE_RENDERING_MODE_CFG_RENDER_TARGET_PART1 for v71
Signed-off-by: Alejandro Piñeiro <[email protected]>
Signed-off-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5cc035a7505181c38b727817d58c7c36e6ff8a7e
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Jul 20 14:00:44 2021 +0200
v3dv: emit TILE_BINNING_MODE_CFG and TILE_RENDERING_MODE_CFG_COMMON for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f8d331188a9314fa310bdc1dec4122a3734d493
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Nov 10 07:54:35 2021 +0100
v3dv/device: handle new rpi5 device (bcm2712)
This includes both master and primary devices.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=15a0ad216a83fb6ebf4654e75e50e0c3e6c94b83
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Nov 10 10:06:50 2021 +0100
v3dv: expose V3D revision number in device name
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4606904215da86c91ff306a7b461a3796d775fa5
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Jun 29 11:59:53 2021 +0200
v3dv/meson: add v71 hw generation
Starting point for v71 version inclusion.
This just adds it as one of the versions to be compiled (on meson),
updates the v3dX/v3dv_X macros, and update the code enough to get it
compiling when building using the two versions. For any packet not
available on v71 we just provide a generic asserted placeholder of
generation not supported.
Any real v71 support will be implemented on following commits.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1f5a3391bbf8bb5f2bef047ddfcf08e6aa5f5794
Author: Iago Toral Quiroga <[email protected]>
Date: Mon May 15 10:02:10 2023 +0200
broadcom/compiler: only assign rf0 as last resort in V3D 7.x
So we can use it for ldunif(a) and avoid generating ldunif(a)rf which
can't be paired with conditional instructions.
shader-db (pi5):
total instructions in shared programs: 11357802 -> 11338883 (-0.17%)
instructions in affected programs: 7117889 -> 7098970 (-0.27%)
helped: 24264
HURT: 17574
Instructions are helped.
total uniforms in shared programs: 3857808 -> 3857815 (<.01%)
uniforms in affected programs: 92 -> 99 (7.61%)
helped: 0
HURT: 1
total max-temps in shared programs: 2230904 -> 2230199 (-0.03%)
max-temps in affected programs: 52309 -> 51604 (-1.35%)
helped: 1219
HURT: 725
Max-temps are helped.
total sfu-stalls in shared programs: 15021 -> 15236 (1.43%)
sfu-stalls in affected programs: 6848 -> 7063 (3.14%)
helped: 1866
HURT: 1704
Inconclusive result
total inst-and-stalls in shared programs: 11372823 -> 11354119 (-0.16%)
inst-and-stalls in affected programs: 7149177 -> 7130473 (-0.26%)
helped: 24315
HURT: 17561
Inst-and-stalls are helped.
total nops in shared programs: 273624 -> 273711 (0.03%)
nops in affected programs: 31562 -> 31649 (0.28%)
helped: 1619
HURT: 1854
Inconclusive result (value mean confidence interval includes 0).
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8e4ee8ecbff817479c442b83c61fefeccf01f2c
Author: Iago Toral Quiroga <[email protected]>
Date: Tue May 2 10:17:47 2023 +0200
broadcom/compiler: don't assign registers to unused nodes/temps
In programs with a lot of unused temps, if we don't do this, we may
end up recycling previously used rfs more often, which can be
detrimental to instruction pairing.
total instructions in shared programs: 11464335 -> 11444136 (-0.18%)
instructions in affected programs: 8976743 -> 8956544 (-0.23%)
helped: 33196
HURT: 33778
Inconclusive result
total max-temps in shared programs: 2230150 -> 2229445 (-0.03%)
max-temps in affected programs: 86413 -> 85708 (-0.82%)
helped: 2217
HURT: 1523
Max-temps are helped.
total sfu-stalls in shared programs: 18077 -> 17104 (-5.38%)
sfu-stalls in affected programs: 8669 -> 7696 (-11.22%)
helped: 2657
HURT: 2182
Sfu-stalls are helped.
total inst-and-stalls in shared programs: 11482412 -> 11461240 (-0.18%)
inst-and-stalls in affected programs: 8995697 -> 8974525 (-0.24%)
helped: 33319
HURT: 33708
Inconclusive result
total nops in shared programs: 298140 -> 296185 (-0.66%)
nops in affected programs: 52805 -> 50850 (-3.70%)
helped: 3797
HURT: 2662
Inconclusive result
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce13aa4ee7d6251e8cfa928ebbd8b39a63e861c3
Author: Iago Toral Quiroga <[email protected]>
Date: Tue May 2 10:12:37 2023 +0200
broadcom/compiler: improve allocation for final program instructions
The last 3 instructions can't use specific registers so flag all the
nodes for temps used in the last program instructions and try to
avoid assigning any of these. This may help us avoid injecting nops
for the last thread switch instruction.
Because regisster allocation needs to happen before QPU scheduling
and instruction merging we can't tell exactly what the last 3
instructions will be, so we do this for a few more instructions than
just 3.
We only do this for fragment shaders because other shader stages
always end with VPM store instructions that take an small immediate
and therefore will never allow us to merge the final thread switch
earlier, so limiting allocation for these shaders will never improve
anything and might instead be detrimental.
total instructions in shared programs: 11471389 -> 11464335 (-0.06%)
instructions in affected programs: 582908 -> 575854 (-1.21%)
helped: 4669
HURT: 578
Instructions are helped.
total max-temps in shared programs: 2230497 -> 2230150 (-0.02%)
max-temps in affected programs: 5662 -> 5315 (-6.13%)
helped: 344
HURT: 44
Max-temps are helped.
total sfu-stalls in shared programs: 18068 -> 18077 (0.05%)
sfu-stalls in affected programs: 264 -> 273 (3.41%)
helped: 37
HURT: 48
Inconclusive result (value mean confidence interval includes 0).
total inst-and-stalls in shared programs: 11489457 -> 11482412 (-0.06%)
inst-and-stalls in affected programs: 585180 -> 578135 (-1.20%)
helped: 4659
HURT: 588
Inst-and-stalls are helped.
total nops in shared programs: 301738 -> 298140 (-1.19%)
nops in affected programs: 14680 -> 11082 (-24.51%)
helped: 3252
HURT: 108
Nops are helped.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=818fc41e7e48e4353ed368c6f61d0f70e84a48c5
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Apr 18 08:50:13 2023 +0200
broadcom/compiler: don't allocate spill base to rf0 in V3D 7.x
Otherwise it can be stomped by instructions doing implicit rf0 writes.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc6ed98aae965687ee297a0907f276717380d04d
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Nov 26 01:24:12 2021 +0100
broadcom/qpu: new packing/conversion v71 instructions
This commits adds the qpu definitions for several new v71
instructions.
Packing:
* vpack does a 2x32 to 2x16 bit integer pack
* v8pack: Pack 2 x 2x16 bit integers into 4x8 bits
* v10pack packs parts of 2 2x16 bit integer into r10g10b10a2.
* v11fpack packs parts of 2 2x16 bit float into r11g11b10 rounding
to nearest
Conversion to unorm/snorm:
* vftounorm8/vftosnorm8: converts from 2x16-bit floating point
to 2x8 bit unorm/snorm.
* ftounorm16/ftosnorm16: converts floating point to 16-bit
unorm/snorm
* vftounorm10lo: Convert 2x16-bit floating point to 2x10-bit unorm
* vftounorm10hi: Convert 2x16-bit floating point to one 2-bit and one
10-bit unorm
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=84c912c1d4638b4871dcf11facc6a2c91630c974
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Nov 9 11:34:59 2021 +0100
broadcom/compiler: fix up copy propagation for v71
Update rules for unsafe copy propagations to match v7.x.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e85be415a0b3fbf04dde28d9ac2d47054b0ed21
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Nov 29 13:23:11 2021 +0100
broadcom/compiler: lift restriction on vpmwt in last instruction for V3D 7.x
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=277460178077248f696183a55bbb4e5ea723fd78
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Nov 25 13:00:34 2021 +0100
broadcom/compiler: validate restrictions after TLB Z write
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d4285d7f2a076a5b2e8c536e7c88ed37b6ee142a
Author: Iago Toral Quiroga <[email protected]>
Date: Fri Nov 26 10:37:05 2021 +0100
broadcom/compiler: start allocating from RF 4 in V7.x
In V3D 4.x we start at RF3 so that we allocate RF0-2 only if there
aren't any other RFs available. This is useful with small shaders to
ensure that our TLB writes don't use these registers because these are
the last instructions we emit in fragment shaders and the last
instructions in a program can't write to these registers, so if we do,
we need to emit NOPs.
In V3D 7.x the registers affected by this restriction are RF2-3, so we
choose to start at RF4.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b39bb35c5ce383ec047f474e69e80c8275bfece
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Nov 25 08:31:02 2021 +0100
broadcom/compiler: lift restriction for branch + msfign after setmsf for
v7.x
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e9b405aa71cd1d29c9dc57f9a4385630844e03b
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Nov 23 10:04:49 2021 +0100
broadcom/compiler: update ldvary thread switch delay slot restriction for
v7.x
In V3D 7.x we don't have accumulators which would not survive a thread
switch, so the only restriction is that ldvary can't be placed in the
second delay slot of a thread switch.
shader-db results for UnrealEngine4 shaders:
total instructions in shared programs: 446458 -> 446401 (-0.01%)
instructions in affected programs: 13492 -> 13435 (-0.42%)
helped: 58
HURT: 3
Instructions are helped.
total nops in shared programs: 19571 -> 19541 (-0.15%)
nops in affected programs: 161 -> 131 (-18.63%)
helped: 30
HURT: 0
Nops are helped.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=526c1889e5d591da5c71caca5699f51e1f129be4
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Nov 22 12:56:03 2021 +0100
broadcom/compiler: update thread end restrictions for v7.x
In 4.x it is not allowed to write to the register file in the last 3
instructions, but in 7.x we only have this restriction in the thread
end instruction itself, and only if the write comes from the ALU
ports.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ced83e7803dc305eeda03f787f042afb8608f18a
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Nov 3 10:34:19 2021 +0100
broadcom/compiler: implement small immediates for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e4d30600a4c31607e491d79931e3e29782138776
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Oct 25 09:38:57 2021 +0200
broadcom/compiler: convert mul to add when needed to allow merge
V3D 7.x added 'mov' opcodes to the ADD alu, so now it is possible to
move these to the ADD alu to facilitate merging them with other MUL
instructions.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbedf1468743f44b02fa9c2e3d5077cab6121a5e
Author: Iago Toral Quiroga <[email protected]>
Date: Fri Oct 29 13:00:56 2021 +0200
broadcom/compiler: don't assign rf0 to temps that conflict with ldvary
ldvary writes to rf0 implicitly, so we don't want to allocate rf0 to
any temps that are live across ldvary's rf0 live ranges.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3a36a618d74a4dfca19d8ad2424722edcd77b0c8
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Oct 28 14:13:29 2021 +0200
broadcom/compiler: try to use ldunif(a) instead of ldunif(a)rf in v71
The rf variants need to encode the destination in the cond bits, which
prevents these to be merged with any other instruction that need them.
In 4.x, ldunif(a) write to r5 which is a special register that only
ldunif(a) and ldvary can write so we have a special register class for
it and only allow it for them. Then when we need to choose a register
for a node, if this register is available we always use it.
In 7.x these instructions write to rf0, which can be used by any
instruction, so instead of restricting rf0, we track the temps that
are used as ldunif(a) destinations and use that information to favor
rf0 for them.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d8a25bdb0717efa16f65bf019b692aec3e2973e4
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Oct 27 11:35:12 2021 +0200
broadcom/compiler: enable ldvary pipelining on v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a8014be2b07585b8c38bd37725213c093cb151ae
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Oct 6 13:58:27 2021 +0200
broadcom/compiler: handle rf0 flops storage restriction in v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=852274d00ab027fc6ce3ffbe71de0b3966c6d584
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Oct 26 08:37:54 2021 +0200
broadcom/qpu: add packing for fmov on ADD alu
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d1281d857fc5b4f5fb2bd7e1104332138a1731e5
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Oct 26 11:43:02 2021 +0200
broadcom/compiler: update peripheral access restrictions for v71
In V3D 4.x only a couple of simultaneous accesses where allowed, but
V3D 7.x is a bit more flexible, so rather than trying to check for all
the allowed combinations it is easier to check if we are one of the
disallows.
Shader-db (pi5):
total instructions in shared programs: 11338883 -> 11307386 (-0.28%)
instructions in affected programs: 2727201 -> 2695704 (-1.15%)
helped: 12555
HURT: 289
Instructions are helped.
total max-temps in shared programs: 2230199 -> 2229260 (-0.04%)
max-temps in affected programs: 20508 -> 19569 (-4.58%)
helped: 608
HURT: 4
Max-temps are helped.
total sfu-stalls in shared programs: 15236 -> 15293 (0.37%)
sfu-stalls in affected programs: 148 -> 205 (38.51%)
helped: 38
HURT: 64
Inconclusive result (%-change mean confidence interval includes 0).
total inst-and-stalls in shared programs: 11354119 -> 11322679 (-0.28%)
inst-and-stalls in affected programs: 2732262 -> 2700822 (-1.15%)
helped: 12550
HURT: 304
Inst-and-stalls are helped.
total nops in shared programs: 273711 -> 274095 (0.14%)
nops in affected programs: 9626 -> 10010 (3.99%)
helped: 186
HURT: 397
Nops are HURT.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce66c9aead9e26cb29b631e0ab317c7630719a6a
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Oct 19 23:52:30 2021 +0200
broadcom/compiler: update payload registers handling when computing live
intervals
As for v71 the payload registers are not the same. Specifically now
rf3 is used as payload register, so this is needed to avoid rf3 being
selected as a instruction dst by the register allocator, overwriting
the payload value that could be still used.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d72e57fe30f6e646e58394dc9d9a7431028822d7
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Oct 19 11:51:32 2021 +0200
broadcom/compiler: update ldunif/ldvary comment for v71
For v42 and below ldunif/ldvary write both on r5, but with a different
delay, so we need to take that into account when scheduling both.
For v71 the register used is rf0, but the behaviour is the same. So
the scheduling code can be the same, but the comment needs update.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3aba3f3528188b1e8a2e9d232d16dc43d7d2542
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Oct 19 11:16:43 2021 +0200
broadcom/compiler: update one TMUWT restriction for v71
TMUWT not allowed in the final instruction restriction doesn't apply
for v71.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c9fcd5d7868ad878ff23f7a201f303d39a0939b7
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Oct 14 14:16:40 2021 +0200
broadcom/compiler: v71 isn't affected by double-rounding of viewport X,Y
coords
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c7224b81f96f897616deca50bbc36744ea04110
Author: Iago Toral Quiroga <[email protected]>
Date: Fri Oct 8 15:10:24 2021 +0200
broadcom/compiler: generalize check for shaders using pixel center W
V3D 4.x has pixel center W in rf0 and V3D 7.x has it in rf3. We already
account for this when we setup the c->payload_w, so use that.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff86147f91edba89117c90114c446de29a0a5b2f
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Oct 6 12:01:10 2021 +0200
broadcom/qpu: fail packing on unhandled mul pack/unpack
We are doing this for the ADD alu already and it may be helpful to
identify cases where we have QPU code with pack/unpack modifiers on
MUL opcodes that we then are not packing into the actual QPU
instructions.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5fc2b565a4e6e7bfe9e5e18922c2de5e00c63cc2
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Oct 6 09:27:43 2021 +0200
broadcom/qpu: add MOV integer packing/unpacking variants
These are new in v71 and cover MOV on both the ADD and the MUL alus.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b4e0c9bac4273c58c187a078122129bde5e74411
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Sep 30 13:22:48 2021 +0200
broadcom/compiler: allow instruction merges in v71
In v3d 4.x there were restrictions based on the number of raddrs used
by the combined instructions, but we don't have these restrictions in
v3d 7.x.
It should be noted that while there are no restrictions on the number
of raddrs addressed, a QPU instruction can only address a single small
immediate, so we should be careful about that when we add support for
small immediates.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=28631a5550ac2b42fe205fe85ae215ef040f8633
Author: Iago Toral Quiroga <[email protected]>
Date: Fri Oct 22 13:39:48 2021 +0200
broadcom/compiler: don't schedule rf0 writes right after ldvary
ldvary writes rf0 implicitly on the next cycle so they would clash.
This case is not handled correctly by our normal dependency tracking,
which doesn't know anything about delayed writes from instructions
and thinks the rf0 write happens on the same cycle ldvary is emitted.
Fixes (v71):
dEQP-VK.glsl.conversions.matrix_to_matrix.mat2x3_to_mat4x2_fragment
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=42b70f624b2a4ec9b17a745235a3ef601dd3816f
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Sep 28 13:37:28 2021 +0200
broadcom/compiler: CS payload registers have changed in v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2b15df963ef142bcf4b075253be3d82d3272a60c
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 29 12:14:04 2021 +0200
broadcom/compiler: don't assign rf0 to temps across implicit rf0 writes
In platforms that don't have accumulators and have implicit writes to
the register file we need to be careful and avoid assigning a physical
register to a temp that lives across an implicit write to that same
physical register.
For now, we have the case of implicit writes to rf0 from various
signals, but it should be easy to extend this to include additional
registers if needed.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=03594b3dcaf31226d3417ecf2829c7cabad4d54e
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 29 12:10:31 2021 +0200
broadcom/compiler: only handle accumulator classes if present
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1548b18d39c2ea6d3204abebf330b305fb46bc3
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 29 12:03:50 2021 +0200
broadcom/compiler: rename vir_writes_rX to vir_writes_rX_implicitly
Since that represents more accurately what they check..
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=20b37b273f86d6eff4a99b30de90c914d6cc3c08
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Sep 29 11:54:18 2021 +0200
broadcom/compiler: make vir_write_rX return false on platforms without
accums
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=310dec3ec94922f10801cbbf039d9047358cc0c5
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Sep 28 01:17:08 2021 +0200
broadcom/qpu: implement switch rules for fmin/fmax fadd/faddnf for v71
They use the same opcodes, and switch between one and the other based
on raddr.
Note that the rule includes also if small_imm_a/b are used. That is
still not in place so that part is hardcoded. Would be updated later
when small immediates support for v71 gets implemented.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ef31ba460f563b22d29abf203e31b83d8a6cf2a
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Oct 4 13:07:35 2021 +0200
broadcom/qpu: fix packing/unpacking of fmov variants for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e9b44ae0c82accffbbd3bf9d39d159dfc6446839
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Sep 27 13:26:04 2021 +0200
broadcom/qpu: add new ADD opcodes for FMOV/MOV in v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=caf28e568120b06a749bfe9244959f47d542c4fa
Author: Iago Toral Quiroga <[email protected]>
Date: Mon Sep 27 11:49:24 2021 +0200
broadcom/compiler: prevent rf2-3 usage in thread end delay slots for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=28bb1b3ff6f7bafb685df07a818d963a50fd48c5
Author: Iago Toral Quiroga <[email protected]>
Date: Wed Oct 6 13:58:00 2021 +0200
broadcom/compiler: add a v3d71_qpu_writes_waddr_explicitly helper
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=572fba0bf445ab2f19fc091f1de1b3f2f156504e
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Sep 23 11:44:59 2021 +0200
broadcom/compiler: implement read stall check for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e26d2c1568c116f7c4a70e402ba9bfd41d83d76
Author: Iago Toral Quiroga <[email protected]>
Date: Thu Sep 23 11:19:58 2021 +0200
broadcom/compiler: implement "reads/writes too soon" checks for v71
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=083d082d8edc147ab0f5a9bdcff62f8b3b0e824a
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Sep 16 00:49:25 2021 +0200
broadcom/compiler: update register classes to not include accumulators on
v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d12eb68d3a9e6a2869f181c5ac3064256ed2787c
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Sep 15 11:12:59 2021 +0200
broadcom/qpu_schedule: update write deps for v71
We just need to add a write dep if rf0 is written implicitly.
Note that we don't need to check if we have accumulators when checking
for r3/r4/r5, as v3d_qpu_writes_rX would return false for hw version
that doesn't have accumulators.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a035af931a291c6c29d30c94b2134eda6d0584b
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Sep 15 01:14:15 2021 +0200
broadcom/compiler: payload_w is loaded on rf3 for v71
And in general rf0 is now used for other needs.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=edfc36817a97ad1905c2028e970369e136daf300
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Sep 14 10:42:55 2021 +0200
broadcom/compiler: add support for varyings on nir to vir generation for v71
Needs update as v71 doesn't have accumulators anymore, and ldvary uses
now rf0 to return the value.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=68526423fbfbeff033e7a3846c3a1f95b3e725ab
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Sep 15 10:55:49 2021 +0200
broadcom/qpu: return false on qpu_writes_accumulatorXX helpers for v71
As for v71 doesn't have accumulators (devinfo->has_accumulators set to
false), those methods would always return false.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7b15c2b42e5bc0125ad26192fac09ef46e937c6
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Sep 10 01:20:44 2021 +0200
broadcom/qpu: update disasm_raddr for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a766cc3a5aa2fac85a80cfe8976d9f7dfca4ecd7
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Sep 9 23:59:28 2021 +0200
broadcom/qpu_schedule: add process_raddr_deps
On v71 we don't have muxes, but more raddr. Adding a equivalent add
deps function.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=dad6917d5eb17c59e21998fb4698685c591b34a4
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Sep 9 01:18:54 2021 +0200
broadcom/compiler: update vir_to_qpu::set_src for v71
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=136d934c80a3f84a02cb2c1ba04dc3724f1214cd
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Sep 9 00:28:53 2021 +0200
broadcom/vir: implement is_no_op_mov for v71
Did some refactoring/splitting.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d00f7ef23e25933c7fb00a19d9d88cdbd4d9aaba
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Sep 17 01:07:06 2021 +0200
broadcom/compiler: don't favor/select accum registers for hw not supporting
it
Note that what we do is to just return false on the favor/select accum
methods. We could just avoid to call them, but as the select is called
more than once, it is just easier this way.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1260b202becce6164675eed0f86e873243083d0e
Author: Alejandro Piñeiro <[email protected]>
Date: Mon Aug 23 02:18:43 2021 +0200
broadcom/compiler: phys index depends on hw version
For 7.1 there are not accumulators. So we replace the macro with a
function call.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=63d633ca7af4000e5001aca639831c0302a13e4d
Author: Iago Toral Quiroga <[email protected]>
Date: Sun Jan 29 00:27:11 2023 +0100
broadcom/compiler: update node/temp translation for v71
As the offset applied needs to take into account if we have
accumulators or not.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b20208f03f69bab3dd22d28344cc3a01c321d28
Author: Alejandro Piñeiro <[email protected]>
Date: Sat Aug 7 02:20:39 2021 +0200
broadcom/qpu: add pack/unpack support for v71
Note that we provide new v71 alu pack/unpack methods. As there are a
lot that it is equivalent, initially we tried to use existing methods
as template and add version checks on the existing methods. At some
early point that become just really unreadable, so it become better to
just provide new methods, even if v42 and v71 methods have a really
similar structure.
Note that we have splitted the op tables, and created a two (add/mul)
for v71. As the description struct include versioning info, we could
have just used one table. But, specially with the add table, there are
a lot of differences with v71. So it is slightly tidier this
way. Also, taking into account that we do a linear search on the
tables, this can be even justified by performance.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c07eb1bae5ef45a33a939f1ab2f9a6775627925c
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Sep 15 10:56:43 2021 +0200
broadcom/qpu: add qpu_writes_rf0_implicitly helper
On v71 rf0 replaces r5 as the register that gets updated implicitly
with uniform loads, and gets the C coefficient with ldvary. This
helper return if rf0 gets implicitly updated.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3e42b9ff47476c4caffae03bc0dc4d0fb5f0fc98
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Sep 17 01:04:31 2021 +0200
broadcom/commmon: add has_accumulators field on v3d_device_info
Even if we can just check for the version on the code, checking for
this field makes several places more readable. So for example, on the
register allocate code we doesn't assign an accumulator because we
don't have accumulators on that hw, instead of because hw version is a
given one.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef75d07b87be468c0ae11781e10f1f454d82f216
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Aug 12 02:24:02 2021 +0200
broadcom/qpu: defining shift/mask for raddr_c/d
On V3D 7.x it replaces mul_a/b and add_a/b
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a5c4634c9e4a9472de2e150c0388723b671c2af5
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Aug 6 01:33:32 2021 +0200
broadcom/qpu: add raddr on v3d_qpu_input
On V3D 7.x mux are not used, and raddr_a/b/c/d are used instead
This is not perfect, as for v71, the raddr_a/b defined at qpu_instr
became superfluous. But the alternative would be to define two
different structs, or even having them defined based on version
ifdefs, so this is a reasonable compromise.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=347065525f2d3db68e90c850e5c619ff4bd81e23
Author: Alejandro Piñeiro <[email protected]>
Date: Fri Aug 6 01:22:31 2021 +0200
broadcom/qpu: define v3d_qpu_input, use on v3d_qpu_alu_instr
At this point it just tidy up a little the alu_instr structure.
But also serves to prepare the structure for new changes, as 7.x uses
raddr instead of mux, and it is just easier to add the raddr to the
new input structure.
Signed-off-by: Alejandro Piñeiro <[email protected]>
Signed-off-by: Iago Toral Quiroga <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=224793491460e04d031aba3c8e79d7defec4c6d9
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Aug 4 01:11:16 2021 +0200
broadcom/qpu: add v71 signal map
Compared with v41, the differences are:
* 14, 15, 29 and 30 are now about immediate a, b, c, d respectively
* 23 is now reserved. On v42 this was for rotate signals, that are
gone on v71.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d0c3667dd5b9ce8bda5ee6688009447a55923ee
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Aug 5 00:50:12 2021 +0200
broadcom/compiler: add small_imm a/c/d on v3d_qpu_sig
small_imm_a, small_imm_c and small_imm_d added on top of the already
existing small_imm_b, as V3D 7.1 defines 4 small immediates, tied to
the 4 raddr. Note that this is only the definition, and just a inst
validation rule to check that are not used before v71. Any real use is
still pending.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5011e19c732b588e9d19af3109fa275f3a443e7
Author: Alejandro Piñeiro <[email protected]>
Date: Sun Sep 19 03:20:18 2021 +0200
broadcom/compiler: rename small_imm to small_imm_b
Current small_imm is associated with the "B" read address.
We do this change in advance for v71 support, where we will have 4
different small_imm (a/b/c/d), so we start with a renaming.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9bcefa964f69a3866fab0e03af539f2cb91178d
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Aug 5 01:00:47 2021 +0200
broadcom/qpu: set V3D 7.x names for some waddr aliasing
V3D 7.x got rid of the accumulator, but still uses the values for
WADDR_R5 and WADDR_R5REP, so let's return a proper name and add some
aliases.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e1c19d55ea73d6e3e234077c4660f78a1096c445
Author: Alejandro Piñeiro <[email protected]>
Date: Thu Aug 5 01:03:11 2021 +0200
broadcom/qpu: add comments on waddr not used on V3D 7.x
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=453b817cfd1c4bf33b6d2faa6ac81ce62b78a906
Author: Alejandro Piñeiro <[email protected]>
Date: Wed Nov 17 14:40:47 2021 +0100
broadcom/common: add some common v71 helpers
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=04f16574e66a150a012a42b45620b910ef0b544e
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Nov 9 08:50:51 2021 +0100
broadcom/common: retrieve V3D revision number
The subrev field from the hub ident3 register is bumped with every
hardware revision doing backwards incompatible changes so we want to
keep track of this.
Instead of modifying the 'ver' field info to acommodate subrev info,
which would require a lot of changes, simply add a new 'rev' field in
devinfo that we can use when we need to make changes based on the
revision number of a hardware release.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=52942aac0ef03297204a732169982d5cd4a4b0af
Author: Alejandro Piñeiro <[email protected]>
Date: Tue Jun 29 12:03:24 2021 +0200
broadcom/cle: update the packet definitions for new generation v71
Using as reference the spec for 7.1.5. This include totally new
packets, and redefine some that already existed on v42.
Full list:
* Add Depth Bounds Test Limits
* Redefine Tile Binning Mode Cfg
* Redefine Cfg Bits. There are some changes on the fields:
* Line Rasterization is now 1 bit size
* Depth Bounds Enable (that takes one of the bits of Line Rasterization)
* Early-Z/Early-Z updates enable bits (16-17) figure now as reserved.
* New Z-Clipping mode field
* Redefine Tile Rendering Mode Cfg (Common). Changes with respect to v42:
* New log2 tile height/width fields starting at bit 52/55
* Due those two news, end pad is smaller
* sub-id has now a size of 3. Bit 4 is reserved.
* Number of render targets: this field max value is now 7 (not
reflected on the xml).
* Maximum BPP is removed on v71 (now bits 40-41 are reserved)
* Depth Buffer disable: on bit 44
* Update Store Tile Buffer General
* Adding Cfg Render Target Part1/2/3 packets: they replace v4X "Tile
Rendering Mode Cfg (Color)" (real name "Rendering Configuration
(Render Targets Config)"), "Tile Rendering Mode Cfg (Clear Colors
Part1)", "Tile Rendering Mode Cfg (Clear Colors Part2)", and "Tile
Rendering Mode Cfg (Clear Colors Part3)". On those old versions,
the first packet is used to configure 4 render targets. Now that 8
are supported, invididual per-render-target are used.
* Update ZS clear values packet.
* Add new v71 output formats
* Define Clear Render Targets (Replaces Clear Tile Buffers from v42)
* Redefine GL Shader State Record. Changes copared with v42:
* Fields removed:
* "Coordinate shader has separate input and output VPM blocks"
(reserved bit now)
* "Vertex shader has separate input and output VPM blocks"
(reserved bit now)
* "Address of table of default attribute Values." (we needed to
change the start position for all the following fields)
* New field:
* "Never defer FEP depth writes to fragment shader auto Z writes
on scoreboard conflict"
* Redefine clipper xy scaling: Now it uses 1/64ths of pixels, instead
of 1/256ths
* Update texture shader state.
* Notice we don't use an address type for these fields in the XML
description. This is because the addresses are 64-bit aligned
(even though the PRM doesn't say it) which means the 6 LSB bits
are implicitly 0, but the fields are encoded before the 6th bit
of their starting byte, so we can't use the usual trick we do
with address types where the first 6 bits in the byte are
implicitly overwritten by other fields and we have to encode this
manually as a uint field. This would mean that if we had an
actual BO we would also need to add it manually to the job's
list, but since we don't have one, we don't have to do anything
about it.
* Add new RB_Swap field for texture shader state
* Document Cb/Cr addresses as uint fields in texture shader state
* Fixup Blend Config description: we now support 8 RTs.
* TMU config parameter 2 has new fields
* Add new clipper Z without guardband packet in v71
* Add enums for the Z clip modes accepted in v71
* Fix texture state array stride packing for V3D 7.1.5
Signed-off-by: Iago Toral Quiroga <[email protected]>
Signed-off-by: Alejandro Piñeiro <[email protected]>
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b2654949802cb2cb6371bc0480c1b4e79ccc76f
Author: Iago Toral Quiroga <[email protected]>
Date: Tue Sep 28 13:16:49 2021 +0200
broadcom/simulator: reset CFG7 for compute dispatch in v71
This register is new in 7.x, it doesn't seem that we need to
do anything specific for now, but let's make sure it is reset
every time.
Reviewed-by: Alejandro Piñeiro <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d858332201fa30c32c4d8fd61217a4b66d16d0c6
Author: Alejandro Piñeiro <[email protected]>
Date: Mon Apr 26 00:02:21 2021 +0200
broadcom(cle,clif,common,simulator): add 7.1 version on the list of
versions to build
This adds 7.1 to the list of available V3D_VERSION, and first changes
on the simulator needed to get it working.
Note that we needed to touch all those 4 codebases because it is
needed if we want to use V3D_DEBUG=clif with the simulator, that it is
the easier way to see which packets a vulkan program is using.
About the simulator, this commit only handle the rename of some
registers. Any additional changes needed to get a proper support for
v71 will be handled them on following commits.
Reviewed-by: Iago Toral Quiroga <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25450>