Iago Toral Quiroga
c19dcec604
v3dv: implement interaction of queries with multiview
...
When multiview is enabled, queries must begin and end in the
same subpass and N consecutive queries are implicitly used,
where N is the number of views enabled in the subpass.
Implementations decide how results are split across queries.
In our case, only one query is really used, but we still need
to flag all N queries as available by the time we flag the one
we use so that the application doesn't receive unexpected errors
when trying to retrieve values from them.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:32 +00:00
Iago Toral Quiroga
374215de1a
v3dv: fix query error handling
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:32 +00:00
Iago Toral Quiroga
b1620caaaf
v3dv: track first and last subpass that use a view index
...
When multiview is enabled, we no longer care about when a particular
attachment is first or last used in a render pass, since not all views
in the attachment will meet that criteria. Instead, we need to track
each individual view (layer) in each attachment and emit our stores,
loads and clears accordingly.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:32 +00:00
Iago Toral Quiroga
34724bafa4
v3dv: skip processing tiles for layers that are not in the view mask
...
If a multiview subpass doesn't use a particular layer then we can ignore
that layer completely.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
32cb8809aa
v3dv: use correct number of layers for multiview
...
The Vulkan spec states that when multiview is enabled the number of
layers in the framebuffer is set to one and that each attachment
must then have at least as many layers as referenced by view masks
in the subpasses in which is used.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
f46f5eac7c
v3dv: don't merge subpasses with different view masks
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
5fd55ab16d
v3dv: broadcast multiview draw commands
...
We implement multiview by replicating draw commands for all enabled
views and setting a command buffer state for the currently active
view we are broadcasting to.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
d5acae3206
broadcom/compiler: implement nir_intrinsic_load_view_index
...
This is used for multiview's gl_ViewIndex built-in.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
5872c7ca7b
v3dv: inject a custom passthrough geometry shader for multiview pipelines
...
This allows us to use layered rendering to broadcast draw calls to the
appropriate views (layers).
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
9da26af074
v3dv: move all our NIR pre-processing to preprocess_nir
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
f5e67e1ce7
v3dv: store multiview info in our render pass data
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Iago Toral Quiroga
dc86e032cb
v3dv: drop unused parameters
...
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034 >
2021-07-27 07:31:31 +00:00
Samuel Pitoiset
72f55cf7c4
radv: implement VK_EXT_shader_atomic_float2
...
Some floating atomic instructions are not available on GFX8-9.
No LLVM support.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12060 >
2021-07-27 08:44:36 +02:00
Samuel Pitoiset
6694c37ea0
aco: implement VK_EXT_shader_atomic_float2
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12060 >
2021-07-27 08:44:31 +02:00
Chia-I Wu
71912de1d2
venus: log more WSI messages
...
They can be useful before resorting to gdb or perfetto.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12073 >
2021-07-27 06:21:47 +00:00
Eduardo Lima Mitev
ee3495e465
turnip: Add support for VK_VALVE_mutable_descriptor_type
...
v1. Hyunjun Ko <zzoon@igalia.com >
- Add to hanlde VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE
- Don't support VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
v2. Hyunjun Ko <zzoon@igalia.com >
- Fix some indentations and nitpicks.
- Add the extension to features.txt
v3. Hyunjun Ko <zzoon@igalia.com >
- Remove unnecessary asserts.
Signed-off-by: Eduardo Lima Mitev <elima@igalia.com >
Signed-off-by: Hyunjun Ko <zzoon@igalia.com >
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9322 >
2021-07-27 04:53:02 +00:00
Chia-I Wu
567bbfd56b
venus: suballocate memory in more cases
...
When a dedicated allocation is not required, ignore it and suballocate.
Fixes dEQP-VK.api.invariance.random.
Cc: 21.2 mesa-stable
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12072 >
2021-07-27 03:53:52 +00:00
Chia-I Wu
f06b0df741
venus: clean up vn_AllocateMemory
...
Mainly to add vn_device_memory_should_suballocate.
Cc: 21.2 mesa-stable
Signed-off-by: Chia-I Wu <olvaffe@gmail.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12072 >
2021-07-27 03:53:52 +00:00
Roland Scheidegger
cac5711d43
llvmpipe: fix nir dot products (fsum op)
...
When the dot product uses a source which can be optimized to a scalar,
after a bunch of nir optimization steps the source to fsum will be a scalar
with a x replicate swizzle. Hence nir_src_num_components is just 1 and the
fsum was just a no-op which is not correct. Arguably this could be optimized
a bit better, but just determine the number of addends by using nir_op_infos
instead (the operand fetch was fixed already by 39a938ecf4 doing the same).
Fixes: 4eb0475b5a ("gallivm/nir: add fsum support")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12066 >
2021-07-27 00:50:55 +00:00
Mike Blumenkrantz
6691a48bcc
zink: EXT_vertex_input_dynamic_state
...
this eliminates vertex attributes from the pipeline state, massively
deduplicating the number of pipelines needed
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12009 >
2021-07-27 00:36:27 +00:00
Mike Blumenkrantz
907e4a0f02
zink: improve oom flushing
...
flush on 30k works and also check oom_flush
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12010 >
2021-07-27 00:28:02 +00:00
Mike Blumenkrantz
9460c350b1
zink: merge draw_count and compute_count, move to batch struct
...
one fewer deref and now it's a single counter
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12010 >
2021-07-27 00:28:02 +00:00
Mike Blumenkrantz
48473ec967
zink: more explicitly check shader stages during compile
...
this is a bit more obvious
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12013 >
2021-07-27 00:14:44 +00:00
Mike Blumenkrantz
7665e656c1
zink: remove no longer used internal resource function
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:52:49 -04:00
Mike Blumenkrantz
3137795e38
zink: replace some direct batch_usage calls with resource abstractions
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:52:47 -04:00
Mike Blumenkrantz
12417c030b
zink: use new resource batch usage utils for is_resource_busy
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:52:00 -04:00
Mike Blumenkrantz
6bda555cc0
zink: simplify some dumb code in invalidate_buffer
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:51:53 -04:00
Mike Blumenkrantz
79ccc17da5
zink: use resource batch usage helpers in invalidate_buffer()
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:48:07 -04:00
Mike Blumenkrantz
e5d6ce6e5e
zink: collapse a conditional in zink_batch_resource_usage_set()
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:48:07 -04:00
Mike Blumenkrantz
13d732ec5b
zink: add some resource util functions for batch usage
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:48:07 -04:00
Mike Blumenkrantz
0a2b03376d
zink: force batch completion check on query result
...
non-timeline drivers have no screen-based method of "checking" batch
completion, so the context method has to be used here to avoid an infinite
loop
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:48:07 -04:00
Mike Blumenkrantz
5bab4cc546
zink: add screen function for checking usage completion
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12008 >
2021-07-26 19:48:07 -04:00
Rob Clark
53c39f710f
freedreno/a6xx: Add missing PC_CCU_INVALIDATE_x
...
The kernel normally inserts these between submits, but when we merge
submits in userspace we need to add them ourselves.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5114
Fixes: cccdc513e3 ("freedreno/drm/sp: Implement deferred submit merging")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12049 >
2021-07-26 21:11:35 +00:00
Mike Blumenkrantz
1dc7b9b08b
zink: use array size in spirv bo length calculations
...
I don't know why I was dropping this, but doing so breaks drivers that have
optimization passes based on the lengths of these variables
Fixes: c1cdf30a11 ("zink: apply Delete All The Code methodology to the ubo/ssbo variables")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12070 >
2021-07-26 20:59:07 +00:00
Roman Stratiienko
ed98e54f19
kmsro: Add 'kirin' driver support
...
Kirin is used by hisilicon SOCs (Hikey boards, etc.)
Driver is available in the mainline kernel [1]
[1]: https://elixir.bootlin.com/linux/v5.13/source/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c#L928
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com >
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11755 >
2021-07-26 20:39:17 +00:00
Dave Airlie
5bf6ec31cc
crocus/gen4: restrict memcpy mapping to gen5
...
This is due to gen4 + 4.5 having some rather strange swizzling
that we can't actually detect properly in userspace
Fixes: f3630548f1 ("crocus: initial gallium driver for Intel gfx 4-7")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12058 >
2021-07-26 20:28:37 +00:00
Thong Thai
856e2b7529
frontends/va: change to per-layer rate control
...
Allows for each layer in a Scalable Video Coding (SVC) video to have its
own rate control setting, when encoding H.264.
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:06:22 -04:00
Thong Thai
c2695823fd
frontends/omx: change rate ctrl struct to array
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:06:17 -04:00
Thong Thai
687bbe2270
radeon/vcn/enc: change to per-temporal layer rate control
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:06:13 -04:00
Thong Thai
65ad80f1d8
radeon/vce: change rate ctrl struct to array
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:06:09 -04:00
Thong Thai
21da3be7a2
r600: change rate ctrl struct to array
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:06:05 -04:00
Thong Thai
1e0d512595
gallium: change rate ctrl struct to array
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:06:00 -04:00
Thong Thai
ec53e519c3
frontends/va: handle h264 num_temporal_layers for SVC encoding
...
Allows for the number of temporal layers to be specified when encoding
Scalable Video Coding (SVC) H.264 videos.
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:05:56 -04:00
Thong Thai
8236320a0b
radeonsi: enable H.264 temporal encoding support for VCN
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:05:48 -04:00
Thong Thai
51935d594e
radeon/vcn/enc: H.264 SVC encode
...
Implement H.264 temporal, Scalable Video Coding (SVC) for VCN devices by
sending the required parameters to the firmware, and creating H.264 NALU
prefix and SEI scalability_info headers.
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:05:43 -04:00
Thong Thai
41f4b69354
gallium: update h264 struct to track temporal layers
...
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:05:39 -04:00
Thong Thai
96c581e897
frontends/va: check number of temporal layers supported by encoder
...
Checks the encoder to determine the number of temporal layers supported,
and returns max_num_temporal_layers_minus1, along with setting the
corresponding control flag if multiple layers are supported.
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:05:33 -04:00
Thong Thai
a23beb9c43
gallium: add temporal layers cap enum
...
Determine the number of temporal layers the encoder supports. Used for
encoding Scalable Video Coding (SVC) videos.
Signed-off-by: Thong Thai <thong.thai@amd.com >
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11850 >
2021-07-26 15:05:26 -04:00
Danylo Piliaiev
b45cddda18
tu: handle half-reg fs outputs
...
This would allow to enable translation of RelaxedPrecision spirv
variable decorator into mediump which for us means fp16.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12067 >
2021-07-26 16:25:14 +00:00
Karol Herbst
1387d1d411
nv30: fix emulated vertex index buffers
...
We ended up applying the offset twice. Quite embarrassing.
This fixes a bunch of vertex shader related issues like the gnome desktop
is less broken and probably a lot of other applications.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5061
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12054 >
2021-07-26 15:39:25 +00:00