Commit graph

139195 commits

Author SHA1 Message Date
Dave Airlie
c6f34e9fda intel/genxml: rewrite the prefilterop xml to be more consistent.
This uses a prefix at Ken's suggestion and aligns it across gens

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636>
2021-05-05 02:56:20 +00:00
Dave Airlie
04ed882046 intel/genxml: align gen4/5 xml for store data immediate
Just align with the gen6 and later xml

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636>
2021-05-05 02:56:20 +00:00
Ilia Mirkin
10abc09a04 intel: fix MI builder for pre-gen7
MI_LOAD_REGISTER_MEM is only available on gen7+, so avoid build errors
on earlier generations.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10636>
2021-05-05 02:56:20 +00:00
Mike Blumenkrantz
26feb45810 zink: export PIPE_CAP_SPARSE_BUFFER_PAGE_SIZE
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
c90246b682 zink: implement sparse buffer creation/mapping
sparse buffers are not cpu-readable, so any mapping requires that they
use a staging buffer, either the stream uploader for writes or a manual
copy for readback

future work here should attempt to resolve two perf issues:
* sparse allocations should be allocated dynamically using a suballocator
  or some other, more useful strategy
* readback shouldn't allocate a huge staging buffer

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
dcbdb6820f zink: add a pipe_context::resource_commit hook
so many structs

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
49fdb57b9c zink: use new ctx device lost checker function
make this handling more consistent

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
30be8799a5 zink: add a ctx function for handling device lost resets
ensure the reset function is only called once when the screen flag is set

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
01c62fca0a zink: use zink_screen_handle_vkresult() for fence and timeline waiting
more consistent handling and some code size reduction

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
00bd74fb6c zink: add a screen util function for handling VkResults
enforce device lost status always

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Mike Blumenkrantz
480b2b6508 zink: minor refactoring of buffer map for read case
make this a little more flexible for the non-DONTBLOCK case

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10509>
2021-05-05 02:46:06 +00:00
Alyssa Rosenzweig
a67347d496 pan/bi: Use nir_lower_to_bit_size
Last holdout of the backend algebraic pass. Delete it.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:04 +00:00
Alyssa Rosenzweig
2db8048aaa pan/bi: Switch to 1-bit bools
In prep for FP16.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:04 +00:00
Alyssa Rosenzweig
f21248c3c2 pan/bi: Don't swizzle scalars
Pointless, already replicated.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:04 +00:00
Alyssa Rosenzweig
578f5d0000 pan/bi: Track scalarness of 16-bit ALU
Needed for optimal swizzle lowering.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
59afff8708 pan/bi: Handle b2i8/16
Missing from the algebraic rules, get it right this time.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
1c17a91731 pan/bi: Handle b2f ourselves
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
0906d75479 pan/bi: Handle ineg
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
ab56471955 pan/bi: Handle integer min/max ourselves
total instructions in shared programs: 158197 -> 158181 (-0.01%)
instructions in affected programs: 169 -> 153 (-9.47%)
helped: 3
HURT: 0

total nops in shared programs: 116393 -> 116397 (<.01%)
nops in affected programs: 60 -> 64 (6.67%)
helped: 0
HURT: 2

total clauses in shared programs: 28628 -> 28627 (<.01%)
clauses in affected programs: 10 -> 9 (-10.00%)
helped: 1
HURT: 0

total quadwords in shared programs: 124146 -> 124140 (<.01%)
quadwords in affected programs: 127 -> 121 (-4.72%)
helped: 3

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:03 +00:00
Alyssa Rosenzweig
5e55824c62 pan/bi: Add imm_uintN helper
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10627>
2021-05-05 02:19:03 +00:00
Mike Blumenkrantz
ff4ba3d4a7 zink: support PIPE_CAP_QUERY_MEMORY_INFO
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10511>
2021-05-05 02:08:44 +00:00
Mike Blumenkrantz
ce1e05de8a zink: hook up VK_EXT_memory_budget
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10511>
2021-05-05 02:08:44 +00:00
Mike Blumenkrantz
d050be4b26 zink: grab GetPhysicalDeviceMemoryProperties2 from instance
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10511>
2021-05-05 02:08:44 +00:00
Eric Anholt
c19801c939 ci/freedreno: Mark a5xx texture gather as flaky.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10633>
2021-05-04 23:37:00 +00:00
Jason Ekstrand
e1edf74dde nir/builder: Move clamp helpers to nir_builder.h
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10631>
2021-05-04 22:51:34 +00:00
Erik Kurzinger
f4eb13dc55 vulkan/device_select: avoid segfault on Wayland if wl_drm is unavailable
On Wayland, if the wl_drm interface is not available, for example if the
compositor is using the proprietary NVIDIA driver along with their egl-wayland
library, the device_select layer will fail to initialize. However, the failure
path will unconditionally call wl_drm_destroy even though info.wl_drm would be
NULL in that case. This can cause a segfault in libwayland-client.so.

To fix this, check if info.wl_drm is NULL before calling wl_drm_destroy. This
way, initialization will fail gracefully even if that interface is not present.

Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10598>
2021-05-04 21:26:21 +00:00
Caio Marcelo de Oliveira Filho
dd48683cfd nir: Move shared_memory_explicit_layout bit into common shader_info
Move it out of the "cs" sub-struct, since the bit can be used for
other shader stages in the future.

This also removes a subtle issue in spirv_to_nir:
info.cs.shared_memory_explicit_layout was used without checking for
the CS shader stage.  It ended up being "harmless" since the effects
also depended on presence of shared variables.

Fixes: 5de6c5973a ("spirv: Implement SPV_KHR_workgroup_memory_explicit_layout")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10529>
2021-05-04 20:54:58 +00:00
Eric Anholt
89114225b5 tunrip: Add support for VK_EXT_separate_stencil_usage.
We were implictly including it in exposing VK 1.2, but we weren't making
use of the supplied struct.  Actually enabling it gives us a chance to do
slightly better at Z/S UBWC, and means we won't lose the separate usage
test coverage when switching back to exposing VK 1.1.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10594>
2021-05-04 20:30:50 +00:00
Erik Faye-Lund
1d00e86078 zink: cache SpvId for aggregate glsl_types
This should reduce the amount of types we re-emit while producing
SPIR-V.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10372>
2021-05-04 20:19:30 +00:00
Erik Faye-Lund
3d3867e7b1 zink: handle matrix-types after vectors
This makes us handle all non-aggregate types before we handle aggregate
types. This is going to matter in the next commit.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10372>
2021-05-04 20:19:30 +00:00
Alyssa Rosenzweig
a9621c4493 pan/mdg: Don't print zero
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
cb10a8e2f1 pan/mdg: Reduced printed parens
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
0b45d4b6b5 pan/mdg: Don't print mem addr brackets
Already comma separated.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
d0fc23b7bd pan/mdg: Don't print explicit .rte
Default round mode.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
9bd3ebf829 pan/mdg: Suppress most attribute tables
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
07740e78b4 pan/mdg: Don't print zero shifts
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
fa68c8bca9 pan/mdg: More concise RMU name
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
7752b09ade pan/mdg: Hide units behind MIDGARD_MESA_DEBUG=verbose
Not usually interesting unless debugging bundling.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
93a176b6cf panfrost: Key blend shaders to the input types
On Bifrost, fragment shaders might output either FP16 or FP32. The blend
shader will access the output as-is within the register, so depending on
the precision of the blend shader's logic, it may need to insert a
f2f16 or f2f32 conversion. This requires expanding the blend shader key.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
9df1d1306e pan/blend: Emit explicit conversions for all types
Needed so we can mix and match.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
30423b0c36 panfrost/lower_framebufffer: Don't use i2imp
Fails when converting from i2i8, which is possible.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
03e3e65cd4 panfrost: Assume lower_fragcolor has been called
Allows us to clean up quite a bit.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
28ac4d1e00 panfrost: Call nir_lower_fragcolor based on key
We only want it to trigger if MRT is actually in use. This is a cheap
key (only require multiple variants for an obscure edge case) and avoids
the perf regression of using this pass which is needed for conformance.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
6a4482df98 panfrost/blend: Prepare for lower_fragcolor
FRAG_RESULT_COLOR means something a bit different.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
120dd92e86 panfrost/blend: Distribute to_c_factor
Easier to understand, I think.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
613722e046 panfrost/blend: Workaround a v7 implementation-detail
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
392bf00019 panfrost/blend: Fix outdated comments
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
86b0eddf2b pan/lower_blend: Rename is_bifrost->scalar
Don't leak ISA details.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
f5211fcbed pan/lower_blend: Use NIR helpers
Deletes a bunch of indentations.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
5fc1aed036 pan/lower_blend: Clean up type size handling
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393>
2021-05-04 20:04:03 +00:00