Pierre-Eric Pelloux-Prayer
39fd373f81
radv/llvm: replace LLVMBuildLoad by LLVMBuildLoad2
...
Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19035 >
2022-10-21 07:56:38 +00:00
Pierre-Eric Pelloux-Prayer
b31affddf4
ac/llvm: remove gep_2 and others temporary functions
...
Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19035 >
2022-10-21 07:56:38 +00:00
Pierre-Eric Pelloux-Prayer
cb117cdc96
radv/llvm: use ac_build_gep0_type to get args types
...
Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19035 >
2022-10-21 07:56:38 +00:00
Pierre-Eric Pelloux-Prayer
0f00f74b20
ac/llvm: port functions to use ac_llvm_pointer
...
Reviewed-by: Mihai Preda <mhpreda@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19035 >
2022-10-21 07:56:38 +00:00
Samuel Pitoiset
1f573c44ab
radv: advertise fragmentShadingRateWithShaderDepthStencilWrites on NAVI23+
...
It should work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19195 >
2022-10-21 06:45:21 +00:00
Samuel Pitoiset
61e54297cd
radv: allocate more space for pipeline statistics query on GFX11
...
There is 14 queries, including new queries for mesh/task shaders.
Ported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19199 >
2022-10-21 06:09:00 +00:00
Samuel Pitoiset
8bf1aa1b76
radv: add lowering for nir_intrinsic_load_ring_attr_{offset}_amd
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19173 >
2022-10-20 15:59:44 +00:00
Samuel Pitoiset
46777e5544
radv: declare shader arguments for attributes via memory
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19173 >
2022-10-20 15:59:44 +00:00
Samuel Pitoiset
bcf642c23e
radv: create and configure the ring BO for attributes
...
It currently uses a pretty large size but it will be tweaked later.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19173 >
2022-10-20 15:59:44 +00:00
Samuel Pitoiset
f239d745d6
radv: add RADEON_FLAG_DISCARDABLE
...
For big pages.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19173 >
2022-10-20 15:59:44 +00:00
Samuel Pitoiset
f8bf2a9a15
radv: drop the ES vertex count requirement on GFX11
...
Ported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19155 >
2022-10-20 08:55:04 +00:00
Samuel Pitoiset
bc19ffef27
radv: do not use memory for waiting for cache flushes on GFX11
...
There is a different mechanism with an internal counter.
Ported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19155 >
2022-10-20 08:55:04 +00:00
Samuel Pitoiset
39bdf17d19
radv: use correct VGT_TESS_DISTRIBUTION settings on GFX11
...
Ported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19155 >
2022-10-20 08:55:04 +00:00
Samuel Pitoiset
2a7e4dc8cb
radv: set SAMPLE_MASK_TRACKER_WATERMARK to 15 on GFX11
...
Ported from RadeonSI.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19155 >
2022-10-20 08:55:04 +00:00
Qiang Yu
97e1613b0e
ac/nir/ngg: use nir_load_provoking_vtx_in_prim_amd in ngg lower
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19166 >
2022-10-20 06:53:56 +00:00
Qiang Yu
58e006b174
nir,ac/llvm,radv: add nir_intrinsic_load_provoking_vtx_in_prim_amd
...
For radeonsi which load this from arg.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19166 >
2022-10-20 06:53:56 +00:00
Sergei Chernyadyev
c7e9268658
radv: fix setting results for initialization failures in thread trace and trap handler
...
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19083 >
2022-10-17 22:59:15 +00:00
Samuel Pitoiset
ca02da294a
radv: discard the PS epilog when the pipeline doesn't use a fragment shader
...
This makes no sense and this was broken.
Fixes dEQP-VK.mesh_shader.ext.smoke.*_lib.mesh_shader_triangle_rasterization_disabled.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19019 >
2022-10-17 08:13:26 +02:00
Samuel Pitoiset
7b3aae8912
radv: do not create a noop FS when the FS is imported from a library
...
The entrypoint can be NULL even if the FS is imported from a library,
but we shouldn't overwrite the pre-compiled FS by a noop.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19019 >
2022-10-17 08:13:24 +02:00
Konstantin Seurer
6905c25829
radv/rra: Use the accel struct type for header validation
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19089 >
2022-10-16 14:37:02 +00:00
Konstantin Seurer
43756a9f76
radv/rra: Continue dumping accel structs if validation fails
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19089 >
2022-10-16 14:37:02 +00:00
Konstantin Seurer
e8547392b0
radv/rra: Add basic header validation
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19089 >
2022-10-16 14:37:02 +00:00
Konstantin Seurer
2ccd039174
radv/rra: Validate before gathering bvh info
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19089 >
2022-10-16 14:37:02 +00:00
Konstantin Seurer
d83176d1c0
radv/rra: Fix dumps in the case of aliasing
...
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19089 >
2022-10-16 14:37:02 +00:00
Yonggang Luo
44ccaca41d
util/mesa/wide: Rename _SIMPLE_MTX_INITIALIZER_NP to SIMPLE_MTX_INITIALIZER
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18393 >
2022-10-14 03:27:41 +00:00
Bas Nieuwenhuizen
f00b54bc9e
radv: Rework modification detection of the meta cache.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047 >
2022-10-12 12:09:48 +02:00
Bas Nieuwenhuizen
8231f7eaa1
radv: Use a VkPipelineCache handle for meta shaders.
...
Prep work for using the common vk caches.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047 >
2022-10-12 12:09:48 +02:00
Bas Nieuwenhuizen
911455a0d6
radv: Constify entry_size.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047 >
2022-10-12 12:09:47 +02:00
Samuel Pitoiset
e00ce79003
radv: use SHA1_DIGEST_LENGTH in the pipeline cache
...
Instead of a magic value.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047 >
2022-10-12 12:09:46 +02:00
Samuel Pitoiset
db62b13ddd
radv: move the disk cache to the vk_physical_device struct
...
To be able to use it from the common pipeline cache implementation.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047 >
2022-10-12 12:09:44 +02:00
Konstantin Seurer
3e22f957d5
radv: Remove create_accel_build_shader
...
Unused since every kernel is written in GLSL now.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19006 >
2022-10-12 08:56:05 +02:00
Konstantin Seurer
6eadd6d169
radv/rra: Calculate bvh size requirements recursively
...
Gets rid of the assumption, that every internal node has the same size.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017 >
2022-10-11 20:27:24 +00:00
Konstantin Seurer
e4283d857b
radv/rra: Handle box16 nodes
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017 >
2022-10-11 20:27:24 +00:00
Konstantin Seurer
7754f208ce
radv: Use half floats for box16 coords
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017 >
2022-10-11 20:27:24 +00:00
Konstantin Seurer
266f0ae948
radv: Add radv_bvh_node_box16
...
Adds the last useful node type. The different triangle types can be
derived by addition.
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017 >
2022-10-11 20:27:24 +00:00
Konstantin Seurer
5f859f805b
radv: Rename node_internal to node_box32
...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017 >
2022-10-11 20:27:24 +00:00
Bas Nieuwenhuizen
243aa6b2ec
radv: Consider inactive internal nodes never in the tree.
...
Since the parent doesn't know to signal it.
Fixes: e83e4fafc8 ("radv: Only emit parents from parents that actually end up in the tree.")
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19033 >
2022-10-11 19:33:46 +00:00
Bas Nieuwenhuizen
66664b8d7c
radv: Implement pipeline-wide skiptriangles/skipaabbs.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19030 >
2022-10-11 18:03:23 +00:00
Samuel Pitoiset
65dd53ca97
radv: always re-emit patch control points when a pipeline with tess is bound
...
We already re-emit this state when it's static. It could be dirtied
conditionally but the number of parameters to check is not worth it.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7457
Fixes: eef1511437 ("radv: implement dynamic patch control points")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19021 >
2022-10-11 17:21:56 +00:00
Samuel Pitoiset
d91c3bde8c
radv: fix and rework shaders upload with GPL
...
For fast-linking, we really want to upload the binaries directly in
a library to avoid creating and uploading at pipeline creation time.
To achieve that, add a radeon_winsys_bo pointer to radv_shader in
order to indicate that a shader is already uploaded. When a lib is
imported, the pipeline slab BO is also incremented to make sure it's
not freed when the lib is destroyed.
This also allows to free binaries right after they are uploaded.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18860 >
2022-10-11 10:06:53 +00:00
Timothy Arceri
ca0c429d32
radv: add radv_zero_vram workarounds for OpenGL games
...
These are needed if the games are running on radv via zink.
Tested with "7 Days to Die"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6449
Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19031 >
2022-10-11 06:36:59 +00:00
Bas Nieuwenhuizen
30ce1676fe
radv: Properly annotate all the invalid node usage.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
a8abdc0d89
radv: Add traversal backtracking with a short stack.
...
So we can now work with arbitrarily deep BVHs.
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
251bba2fa0
radv: Split global & local bvh node variable.
...
Need the local id later for follow up work.
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
e83e4fafc8
radv: Only emit parents from parents that actually end up in the tree.
...
Otherwise the wrong parent link might be set.
This kinda relies on waves being launched in order which tends to
be the case on AMD. To avoid the busy-wait loop waiting on stuff
from the same subgroup we do the actual processing in the body of
the loop. This can have performance implications but mostly in the
case we'd otherwise deadlock, so meh.
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
4ce1b9b2ff
radv: Generate parent links in BVH.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
1e2c95ac1f
radv: Start the BVH after the header.
...
First usage of the offset field, Can put more in it in the follow
up.
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
48ab1adda5
radv: Simplify buffer copy address generation.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
f1e1509c92
radv: Add a field for the offset of the bvh in the blas.
...
So that we can put some metadata in front.
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00
Bas Nieuwenhuizen
b0a385a6bd
radv: Clean up unused fields in BVH IR.
...
Reviewed-By: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18799 >
2022-10-10 23:35:25 +00:00