Marek Olšák
f00d3e2909
radeonsi: implement shader-based culling for lines
...
This helps some viewperf subtests.
Only view XY culling is done. Edgeflags are always disabled with lines.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
e7e0b90c94
ac/llvm: rename ac_cull_triangle -> ac_cull_primitive
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
0030bdf9a6
radeonsi: add gfx10 helpers for determining whether edgeflags are enabled
...
They will return false when culling lines.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
6058b7381e
radeonsi: always use the correct number of vertices in NGG shader code
...
This is always 3 now, but it will be 2 for lines.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
25026076ab
ac/llvm: pass cull options into cull_bbox directly
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
ccbd551192
radeonsi: disallow NGG fast launch on Navi1x because VGT_FLUSH makes it slower
...
This improves viewperf performance on Navi1x.
All Navi1x fast launch workarounds are removed and all fast launch
codepaths are disabled.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
b1cf504f78
radeonsi: fix clearing index_size for NGG fast launch
...
Cc: 21.1 21.2 <mesa-stable@lists.freedesktop.org >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
e40bd61588
radeonsi: strenthen the ngg->legacy hw workaround, fix fast launch hangs too
...
Cc: 20.1 20.2 <mesa-stable@lists.freedesktop.org >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
279cd5821c
ac/gpu_info: fix the comment for the NGG->legacy transition bug
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
1f445e76ae
radeonsi: don't check ngg_culling != 0 for fast launch because it's tautology
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
678b6cdc8b
radeonsi: clean prefer_mono for the blit VS
...
This was missed when I was reworking shader key updates.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
73b036306c
radeonsi: reduce NGG culling on/off transitions by keeping it enabled
...
When it's enabled, it stays enabled until the next shader change
or an incompatible primitive type, etc.
This improves performance for viewperf/snx.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
d7b0ddbfa8
radeonsi: use the optimal draw packet sequence for VGT_FLUSH
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
a927a2f527
radeonsi: set vs_uses_base_instance using C++ template arguments
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
ca37d4c925
radeonsi: decrease vertex count threshold for shader culling to 128
...
to match radv
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
465f249ec8
radeonsi: change the units of oversub_pc_factor to integer multiples of 1/4
...
to match radv
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Marek Olšák
4cb008719c
radeonsi: fix a depth texturing performance regression on gfx6-7
...
Fixes: 0580d4c1 "radeonsi: enable HTILE with mipmapping on gfx9+"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5398
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13048 >
2021-09-28 17:30:06 +00:00
Joshua Ashton
eb06e6e6cd
radv: Add noatocdithering option to RADV_DEBUG
...
Was useful in testing a difference between D3D and VK ATOC rendering earlier today, would be nice to check this more easily in future.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13069 >
2021-09-28 17:06:36 +00:00
Lionel Landwerlin
daa8a81d99
nir: fix opt_memcpy src/dst mixup
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: f6667cb0ce ("nir: Add a memcpy optimization pass")
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13079 >
2021-09-28 16:36:08 +00:00
Boris Brezillon
6fbad56654
panvk: Split var copies before lowering them
...
Otherwise we hit an assert() in the nir_lower_var_copies() path.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
6de4351f96
panvk: Handle VK_REMAINING_{MIP_LEVELS,ARRAY_LAYERS) when creating image views
...
Othewise last_{layer,level} are out of bounds.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
346c6ac221
panvk: Fix stencil clear assignment in panvk_cmd_fb_info_set_subpass()
...
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
99adf33642
panvk: Fix size overflow in GetBufferMemoryRequirements()
...
align64() will overflow if buffer->size is bigger than UINT64_MAX - 63.
Fixes dEQP-VK.api.buffer.basic.size_max_uint64.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
02c46a28ef
panvk: Fix 1DArray image to buffer copy
...
The img2buf shaders expect the array index to be placed in coord.y when
copying a 1D array. Adjust the compute job instantiation to match this
behavior.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
e48d66afcb
panvk: Only prepare texture descriptors when the image is sampled
...
Not that input attachments will be lowered to textures, so we need to
create a texture descriptor in that case too.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
92768ee627
panvk: Don't expect subpasses to use all RTs
...
Some might use a subset, and that's fine, we just need to disable unused
RTs when beginning a subpass, which we do.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
96f006539f
panvk: Fix an overflow on cmdbuf->state.clear
...
We assume the cmdbuf->state.clear array will have one entry per
attachment, but clearValueCount might be smaller if some attachments
are not cleared.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
d43912b188
panvk: Handle input varyings without previous writes
...
Some input varyings might not be written by any of the active stages
preceding the stage reading the varying (e.g. gl_Layer should be set
to 0 when not written by vertex/geometry shaders). In this case, we can
insert a dummy varying attribute returning zero. This is actually what
the code intended to do, but 2 things were missing:
1. formats[NONE] is not mapping to the CONSTANT0 format
2. the offset and strides should always be set to 0 when using a
CONSTANT0 attribute
All of this is needed to have the input attachments working. Indeed, we
use the nir_lower_input_attachments() pass which lowers input attachment
loads to texel fetches, and the txf operation is passed the layer_id
in its 3rd coordinate.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
9c60de9b57
panvk: Avoid allocating sysvals UBOs when the pipeline has one
...
The static sysval UBO attached to the pipeline will be used anyway,
so let's not waste memory for sysvals if we can avoid it.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
ac89873125
panvk: Fix multisample image copies
...
panvk_meta_copy_img2img() was assuming single-sample images, but the
spec actually allows copying multisample images, as long as the source
and destination agree on the number of samples.
Let's extend the img2img copy logic to support that case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
961d03ce61
panvk: Fix panvk_pipeline_builder_upload_sysval()
...
Call panvk_sysval_upload_viewport_offset() instead of
panvk_sysval_upload_viewport_scale() in the PAN_SYSVAL_VIEWPORT_OFFSET
case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
20fe252664
panvk: Fix the pipeline binding logic
...
Right now, only one pipeline can be bound at any given time, instead of
one per bind-point. Fix the code so we can support compute operations.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
5360e6240d
panvk: Don't invalidate the vertex attributes when binding a new pipeline
...
This should be done when binding new vertex buffers.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
d008f9d35a
panvk: Use the local batch variable when we have one
...
s/cmdbuf->state.batch->/batch->/ when the batch variable exists.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
8fb22d28d8
panvk: Make panvk_cmd_open_batch() return the new batch
...
So we can get replace the
panvk_cmd_open_batch();
batch = cmdbuf->state.batch;
sequence by
batch = panvk_cmd_open_batch();
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
28bd417e3d
panvk: Extend panvk_cmd_close_batch() to handle current_batch == NULL
...
This way callers don't have to check it.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
915a41f55a
panvk: Fix TLS initialization for multi-draw batches
...
If we queue multiple draws to the same batch, the TLS size should be
adjusted to cover the maximum TLS size requirement, not just the one
of the pipeline bound when the batch is closed. This requires keeping
TLS info attached to the batch and updating it every time a draw is
issued.
While at it, get rid of the wg_count state: we'll let vkCmdDispatch()
calculate the total WLS size.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
e856386764
panvk: Fix the static scissor/viewport case
...
Even if we can build a static viewport descriptor, we will need the
static scissor/viewport data to fill the viewport sysvals.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Boris Brezillon
a5115faefa
panvk: Always allocate at least one BLEND descriptor for fragment shaders
...
Even there's no render target.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13077 >
2021-09-28 14:03:40 +00:00
Samuel Pitoiset
bff052d6f5
radv: remove vs_common_out:export_prim_id
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062 >
2021-09-28 13:42:52 +00:00
Samuel Pitoiset
4a6d119309
radv: remove unnecessary init of outinfo.export_prim_id for GS
...
When a geometry shader is present, not writing the gl_PrimitiveID is
undefined, so this is unnecessary. Note that this was never reached
on <= GFX8 because vs_common_out.export_prim_id from the GS key was
always FALSE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062 >
2021-09-28 13:42:52 +00:00
Samuel Pitoiset
1e5b9b7410
radv: remove unnecessary radv_shader_info:{vs,tes}.export_prim_id
...
Use the VS outputinfo struct instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062 >
2021-09-28 13:42:52 +00:00
Lionel Landwerlin
32358b0335
microsoft/clc: drop LLVM dependency to version < 12
...
Prior to LLVM 12, SmallVector requires 2 template arguments.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: c4755a7c32 ("microsoft/clc: Support SPIR intermediates in the compilation APIs")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13083 >
2021-09-28 13:29:56 +00:00
Samuel Pitoiset
19e5b4cf2e
radv: remove unnecessary vs_common_out.export_layer_id
...
Same as the viewport index, the driver will emit 0 for the PS input
in this case.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13061 >
2021-09-28 12:30:36 +00:00
Samuel Pitoiset
a35cfa77f6
radv: remove unnecessary vs_common_out.export_viewport_index
...
This was only used when the FS needs the viewport index if it's not
exported by the previous stage. Though, this is actually useless
because the driver will emit 0 for the PS input in this case.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13061 >
2021-09-28 12:30:36 +00:00
Pierre-Eric Pelloux-Prayer
7594d4ae2c
radeonsi/test: add sanity checks
...
Verify that DISPLAY is there and deqp-runner is at least 0.9.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021 >
2021-09-28 11:10:48 +00:00
Pierre-Eric Pelloux-Prayer
bf5cd4c48a
radeonsi/test: add Raven expected results
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021 >
2021-09-28 11:10:48 +00:00
Pierre-Eric Pelloux-Prayer
0afd9e272e
radeonsi/test: add --gpu to select the GPU to test
...
And specify DRI_PRIME + WAFFLE_GBM_DEVICE to avoid testing the wrong GPU.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021 >
2021-09-28 11:10:48 +00:00
Pierre-Eric Pelloux-Prayer
814e98c3a0
radeonsi/test: sanitize output_folder
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021 >
2021-09-28 11:10:48 +00:00
Pierre-Eric Pelloux-Prayer
ff8edcf903
radeonsi/test: allow to specify a baseline folder
...
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13021 >
2021-09-28 11:10:48 +00:00