Lucas Stach
617339ab5b
etnaviv: correct bits per tile and clear value for HALTI5
...
Bits per tile and the tile clear value are not determined by the
HALTI version, but by two separate feature bits that are not always
present on HALTI5 GPUs. With big 128B/256B tile support the bits
per tile are always 4.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9255 >
2022-04-27 09:10:27 +00:00
Lucas Stach
dd8a314d3f
etnaviv: update headers from rnndb
...
Update to rnndb commit ad665b720421.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9255 >
2022-04-27 09:10:27 +00:00
Lucas Stach
8c153bb091
etnaviv: fill all minor GPU features from the kernel
...
The kernel exposes more minor GPU feature registers. Fill them
all into our internal feature struct.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9255 >
2022-04-27 09:10:27 +00:00
Lucas Stach
ab942aaed0
etnaviv: don't supertile textures if supertiling is disabled via debug option
...
The debug option only disables the general can_supertile spec of the GPU, so
we should also take this into account when deciding about the layout of a
sampler resource.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9255 >
2022-04-27 09:10:27 +00:00
Samuel Pitoiset
f525706e77
radv: fix handling divisor == 0 with dynamic vertex input state
...
When the divisor is 0, the compiler should generate a different VS
prolog instead of re-using a previous prolog that uses nontrivial
divisors. This is because divisor == 0 and divisor > 1 should use
a different path to guarantee that the index is correctly computed.
Cc: mesa-stable
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/16009 >
2022-04-27 06:43:36 +00:00
Gert Wollny
4f3736595f
r600: Add support for TGSI_OPCODE_ATOMIMIN and IMAX
...
With NTT these opcodes are now emitted and need to be handled.
Fixes: a4840e15ab
r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16130 >
2022-04-27 00:01:20 +00:00
Gert Wollny
a8430c43a7
r600: tune nir options
...
* Don't lower fp64 to software when on Cayman but
* lower fpow only when on native NIR, the TGSI backend handles
TGSI_OPCODE_POW
Fixes: a4840e15ab
r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16130 >
2022-04-27 00:01:20 +00:00
Gert Wollny
6cb510156e
r600/sb: Don't optimize float GT and GE
...
Sine NAN's can be involved the result can't be deducted like this.
Also with NTT inplace now we can assume that most possible
arithmetic optimizations have already been applied.
Piglit: spec@glsl-1.30 @execution@range_analysis_fsat_of_nan
Fixes: a4840e15ab
r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16130 >
2022-04-27 00:01:20 +00:00
Gert Wollny
e9797b648a
ntt: remove dead input variables before lowering FS IO
...
Because for fragment shaders we still use the variables, and
lower_io_to_vector may leave dead variables that duplicate inputs
that are now vectorized, we have to call this pass, because otherwise
we will may hit the assertion
src/gallium/auxiliary/tgsi/tgsi_ureg.c:318:
ureg_DECL_fs_input_centroid_layout:
Assertion `(ureg->input[i].usage_mask & usage_mask) == 0'
This is relevant for
spec@arb_enhanced_layouts@execution@component-layout@*
on r600/ntt
Fixes: a4840e15ab
r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16130 >
2022-04-27 00:01:20 +00:00
Gert Wollny
47d3f7c69f
nir: Don't optimize to 64 bit fsub if the driver doesn't support it
...
Fixes: a4840e15ab
r600: Use nir-to-tgsi instead of TGSI when the NIR debug opt is disabled.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16130 >
2022-04-27 00:01:20 +00:00
Yiwei Zhang
1598d18a88
venus: flush when batched draw calls reach a threshold
...
Add VN_DRAW_CMD_BATCH_LIMIT option
e.g. for Android
adb shell setprop mesa.vn.draw.cmd.batch.limit 100
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110 >
2022-04-26 23:49:59 +00:00
Yiwei Zhang
9dc68bd975
venus: refactor vn_cmd_submit
...
The caller checks cmd->state instead.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110 >
2022-04-26 23:49:59 +00:00
Yiwei Zhang
42a8383170
venus: add VN_PERF option no_async_queue_submit
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110 >
2022-04-26 23:49:59 +00:00
Yiwei Zhang
0fc36b11ab
venus: add VN_PERF option no_async_buffer_create
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110 >
2022-04-26 23:49:59 +00:00
Yiwei Zhang
f0bfd8afe2
venus: add env perf options and introduce no_async_set_alloc
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110 >
2022-04-26 23:49:59 +00:00
Yiwei Zhang
4ab640852b
venus: refactor to add struct vn_env
...
This is to prepare for adding perf options.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16110 >
2022-04-26 23:49:59 +00:00
Jason Ekstrand
e24d8760e9
nir: Constant fold sampler/texture offsets
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16171 >
2022-04-26 22:34:39 +00:00
Jason Ekstrand
9332598b26
nir/constant_folding: Break TXB folding into a helper function
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16171 >
2022-04-26 22:34:39 +00:00
Yiwei Zhang
4f7de83110
venus: fix view format for ahb image
...
There's below AHB VU on the image view:
VUID-VkImageViewCreateInfo-image-02399
If image has an external format, format must be VK_FORMAT_UNDEFINED
This is well hidden and completely missed from the original venus ahb
implementation.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16159 >
2022-04-26 22:21:53 +00:00
Mike Blumenkrantz
054bd2d38f
kopper: copy a bunch of code for texture_from_pixmap
...
seems to work?
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
89602c3970
kopper: store whether screen has dmabuf support
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
476f8ad350
kopper: move drawable geometry updating up in function
...
no functional changes
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
c38a2ad2ff
kopper: always fetch and store drawable info
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Mike Blumenkrantz
6a9def8c9f
drisw: remove dead code
...
this was from a very early version of kopper, but it can no longer
be reached
Fixes: d760a9151b ("gallium: Learn about kopper")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16152 >
2022-04-26 21:44:30 +00:00
Icecream95
1a4dca989c
panfrost: Enable NIR lowering of half float packing
...
The GLSL lowering of half float packing involves software conversion
to half-float; instead, use the lowering in NIR.
Both Midgard and Bifrost are already set to lower the instructions to
bit operations, but change mdg_should_scalarize so that the lowerable
split variants of the pack/unpack instructions are generated.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16175 >
2022-04-27 08:23:35 +12:00
Mike Blumenkrantz
2d7b5bd3b9
zink: fix up swapchain depth buffer geometry during fb update
...
due to desync between the frontend and the driver, the size that the
depth buffer was created with may not match the size of the swapchain if
the window is being resized very quickly, so just go ahead and clobber
the existing depth buffer with a series of very illegal internal object
replacements to make everything match up
do not try at home.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16151 >
2022-04-26 18:58:26 +00:00
Mike Blumenkrantz
305fe87d98
zink: fix/improve swapchain surface info updating
...
if the swapchain is updated, the base surface info needs to be updated
so that the surface info used for the framebuffer is updated
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16151 >
2022-04-26 18:58:26 +00:00
Mike Blumenkrantz
25840a31eb
kopper: add DISPLAY_TARGET bind for depth buffer
...
this doesn't affect functionality and is only used for validation
in the driver
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16151 >
2022-04-26 18:58:26 +00:00
Konstantin Seurer
aeeb0b4deb
radv: Copy shader modules to avoid use after free
...
The vkd3d-proton ray tracing tests delete shader modules after creating
pipeline libraries from them. This resulted in a use after free when
creating ray tracing pipelines.
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16027 >
2022-04-26 18:20:11 +00:00
Konstantin Seurer
1873880b50
vulkan: Add a shader module clone helper
...
Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16027 >
2022-04-26 18:20:11 +00:00
Alyssa Rosenzweig
7998f242a8
panfrost: Add a test for pan_image_layout_init
...
Would have caught a significant issue with ETC2 handling. Luckily Midgard dEQP
failed on this, even though Bifrost didn't (due to explicit strides?)
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
52f8f7d6c9
panfrost: Simplify how image_layout_init is called
...
Rather than using it as a catch-all initialize, use it to fill in derived from
fields from a partially initialized image_layout. This is easier to understand
and, more importantly, easier to unit test.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
c45ed7e576
panfrost: Unit test block size queries
...
Simple interface, make sure we don't screw it up.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
11d0a5292b
panfrost: Remove unused dev argument
...
This function has enough arguments as it is... Motivated by wanting to unit test
this monster.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
321e1b37b9
panfrost: Unify paths through image_layout_init
...
We can always align the width/height, now that block_size is defined (as 1x1)
for linear textures. We can also remove the useless effective_depth assignment.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
724f835d2f
panfrost: Unify panfrost_block_size paths
...
Handle linear, interleaved, and AFBC formats. This requires taking a format, as
block compressed u-interleaved textures have a different tile size than other
u-interleaved textures.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
ef5e66b1fd
panfrost: Use pan_block_size in layout calculation
...
This gets rid of the weird "call block_dim twice with a mystery argument"
pattern, and will allow us to further unify code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
e4ee2c213a
panfrost: Extract panfrost_afbc_is_wide helper
...
Rather than open-code the > 16 check in multiple places and have to justify it
in each. This is easier to understand at the call sites.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
e6f3abd5ec
panfrost: Don't pretend to support multiplane AFBC
...
This requires tons of driver changes we're not ready for. In the mean time, this
will just get in the way of refactoring AFBC support.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
d25bb73bb6
panfrost: Use panfrost_afbc_superblock_width
...
..instead of panfrost_block_dim. This is clearer, and gets rid of block dim
users.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
36449bdcdc
panfrost: Add afbc_superblock_{size, width, height} helpers
...
...and use them to implement block_dim transitionally.
These should be clearer than the general block_dim.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
43202320ee
panfrost: Always use 64-bit SD with strides
...
Midgard has multiple Surface Descriptor formats selectable in the texture
descriptor. Previously, we have used both the "64-bit surface descriptor" and
the "64-bit surface descriptor with 32-bit line stride and 32-bit layer stride".
A delicate routine tried to guess what stride the hardware will use if we don't
specify it explicitly, and omit the stride if it matches. Unfortunately, that
routine is broken in at least two ways:
* Textures with ASTC must always specify an explicit stride. Failing to do so
(like we were doing) is invalid.
* It applies even for interleaved textures. The comment above the function
saying otherwise is incorrect. (TODO: double check this)
Bifrost onwards always specify the strides explicitly. Let's just do that and
unify the gens. What is lost from doing this? A ludicrously trivial amount of
memory and texture descriptor cache space. 8 bytes per layer*level per texture,
in fact. Compared to the size of the textures being addressed, the memory usage
is trivial. The texture descriptor cache size maybe matters more. But given
Arm's hardware people went this direction for Bifrost and stuck to it, I doubt
it matters much.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
644611010e
panfrost: Split pan_layout.c from pan_texture.c
...
Before we used GenXML, pan_texture mixed layout code with texture descriptor
packing code. For the most part, the layout code is generation-independent; the
pack code is not. We introduced an anti-pattern where the file was compiled N+1
times: N times for each PAN_ARCH value, and an extra time with no PAN_ARCH
value. And then the contents of the file changed completely depending on
PAN_ARCH. This is a pretty weird construction.
Let's instead split off the layout file from the descriptor file, compile the
layout file once, and compile the descriptor file per-gen.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Alyssa Rosenzweig
9ccba4943d
panfrost: Advertise all textures in drm-shim
...
I was rather confused when I couldn't reproduce an ASTC bug under drm-shim...
Fix that.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15991 >
2022-04-26 17:47:49 +00:00
Yevhenii Kolesnikov
65caf46b3b
nir: Remove single-source phis before opt_if_loop_last_continue
...
We might have some single-source phis leftover after prior optimizations. We
want to get rid of them before merging the blocks.
Fixes: 5921a19d4b ("nir: add if opt opt_if_loop_last_continue()")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6312
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com >
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16095 >
2022-04-26 17:06:07 +00:00
Lucas Stach
90ea4283b4
etnaviv: set VIVS_GL_VERTEX_ELEMENT_CONFIG depending on prim type
...
New blob versions always emit this state on GPUs that don't have the
NEW_GPIPE feature bit before drawing a primitive, as it needs to be
set according to the primitive type.
Closes : #2933
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16094 >
2022-04-26 16:59:13 +00:00
Lucas Stach
9696355802
etnaviv: update headers from rnndb
...
Update to etna_viv commit 100009142dc2.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16094 >
2022-04-26 16:59:13 +00:00
Jason Ekstrand
37d4b72ff3
vulkan/log: Allow but warn for client-invisible objects
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16107 >
2022-04-26 16:22:23 +00:00
Jason Ekstrand
62a44d1bda
vulkan/log: Allow but warn if called with a NULL object
...
Most of the time when the logging code is invoked, it means we're
already in an edge case. It should be as robust as possible, otherwise
we risk making hard to debug things even harder. To that end, instead
of blowing up if passed a NULL object on the list, handle it as
gracefully as we can.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16107 >
2022-04-26 16:22:23 +00:00
Jason Ekstrand
ef9d97ec1f
spirv: Handle Op*MulExtended for non-32-bit types
...
Fixes: 58bcebd987 ("spirv: Allow [i/u]mulExtended to use new nir opcode")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6306
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16060 >
2022-04-26 15:16:11 +00:00