Matt Coster
e90deac3d8
pvr: Correctly compile graphics pipelines without a fragment shader
...
Fixes: dEQP-VK.pipeline.monolithic.stencil.nocolor.format.s8_uint
.states.fail_keep.pass_keep.dfail_repl.comp_greater_or_equal
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22868 >
2023-05-15 10:31:28 +00:00
Matt Coster
36db17dfa5
pvr: Initialize aspect_mask when creating buffer views
...
Fixes random aborts in CSB handling.
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22868 >
2023-05-15 10:31:28 +00:00
Matt Coster
5f8320bd04
pvr: Actually check for depth load when setting up load op constants
...
Fixes: Assorted tests in dEQP-VK.draw.renderpass.*
Signed-off-by: Matt Coster <matt.coster@imgtec.com >
Reported-by: James Glanville <james.glanville@imgtec.com >
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22868 >
2023-05-15 10:31:28 +00:00
Samuel Pitoiset
8939b80bf5
radv: stop using the pipeline for determining the null export workaround
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22981 >
2023-05-15 09:32:58 +00:00
Samuel Pitoiset
d73b6ce1c7
radv: remove unused pipeline param in radv_generate_ps_epilog_key()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22981 >
2023-05-15 09:32:58 +00:00
Samuel Pitoiset
def2ac22b3
radv: reset the emitted PS epilog when a new fragment shader is bound
...
When a new fragment shader is bound, the PS epilog needs to be
re-emitted, and this allows us to avoid tracking if the pipeline is
dirty.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22981 >
2023-05-15 09:32:58 +00:00
David Heidelberg
297859c56b
panvk: drop path from panvk_physical_device struct
...
Unnecessary. Only produces warning:
```
../src/panfrost/vulkan/panvk_device.c:437:4: warning: 'strncpy' specified bound 20 equals destination size [-Wstringop-truncation]
437 | strncpy(device->path, path, ARRAY_SIZE(device->path));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22880 >
2023-05-15 09:15:59 +00:00
Konstantin Seurer
a94f089865
radv/ci: Test ray tracing pipelines
...
Since we expose them for a few games by default now, it would make sense
to have test coverage for them.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Acked-by: Martin Roukala <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21638 >
2023-05-15 08:37:48 +00:00
Samuel Pitoiset
10d1073aa6
radv: advertise VK_EXT_tooling_info
...
This small extension just returns active tools running like RGP.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22954 >
2023-05-15 08:13:18 +00:00
Iago Toral Quiroga
66b3d34633
broadcom/compiler: use unified atomics
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22939 >
2023-05-15 07:43:09 +00:00
Samuel Pitoiset
9fa9782c17
radv: stop compiling a noop FS when the application doesn't provide a FS
...
This is unnecessary because the hardware doesn't execute a FS when it
has no effect and it's possible to execute pre-rasterization stages
without a FS.
This might improve depth-only pass performance very slightly because
the number of packets emitted is reduced a bit.
No fossils-db changes.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22848 >
2023-05-15 07:09:56 +00:00
Samuel Pitoiset
7f47886cf1
radv: allow to determine NGG settings with a NULL fragment shader
...
This shouldn't change anything because a noop FS doesn't read any
inputs.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22848 >
2023-05-15 07:09:56 +00:00
Samuel Pitoiset
d91cb1bbfa
radv: rework the checks for implicit exports with GPL
...
No logical changes but this allows us to distinguish between noop FS
and unknown FS with GPL.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22848 >
2023-05-15 07:09:56 +00:00
Samuel Pitoiset
333c8773a4
radv: handle NULL fragment shaders when creating graphics pipelines
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22848 >
2023-05-15 07:09:55 +00:00
Samuel Pitoiset
87245c6e8e
radv: handle NULL fragment shaders when recording cmdbuf
...
This will be useful for shader objects and also because creating and
emitting a noop FS is useless, the hardware doesn't execute it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22848 >
2023-05-15 07:09:55 +00:00
Samuel Pitoiset
c51c68ba4b
radv: implement dynamic sample locations enable
...
VK_EXT_sample_locations is only supported on < GFX10 due to some weird
issues on recent GPUs. extendedDynamicState3SampleLocationsEnable is
only enabled on GFX6-GFX9 for the same reason.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22947 >
2023-05-15 08:14:31 +02:00
Filip Gawin
4a379f7637
glx: fix build with APPLEGL
...
fixes: 1eab7e69e2
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8885
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22621 >
2023-05-15 03:50:30 +00:00
Qiang Yu
d1dd36a74e
radeonsi: be able to use aco compiler for mono ps
...
Need to set AMD_DEBUG=useaco environment variable.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
288adae512
radeonsi: fixup sampler desc for tg4 in nir
...
For ACO which won't do this for us. But we still can't
remove the same code in llvm because non-uniform sampler
is keept as index in nir.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
521cbcb588
ac/llvm,radeonsi: enable lower_array_layer_round_even
...
ACO need this to be done in nir. Remove the llvm round code
because both radv and radeonsi do this in nir for both aco
and llvm.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
38e064b674
radeonsi: clamp shadow texture reference in nir for aco
...
This is ported from the LLVM ac_shader_abi->clamp_shadow_reference
code.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
b5409131ef
radeonsi: pass use_aco to ac_nir_lower_ps
...
For dual source blend code emition in aco.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
7180b16afc
radeonsi: adjust ps args for aco
...
aco need explicite args including PS arg compaction and
scratch_offset.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
474ddeffe6
radeonsi: resolve aco scratch addr symbols
...
Used for scratch buffer operation and reg spill when aco.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
7aac3508dc
radeonsi: add symbols to si_shader_binary
...
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
6a360e4a71
radeonsi: add initial aco compile code
...
Only for monolithic PS.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
91c91bb972
radeonsi: lower non uniform texture access when aco
...
aco need all resource have been lowered to descriptor.
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/22573 >
2023-05-15 02:01:11 +00:00
Qiang Yu
f859436b55
radeonsi: add has_non_uniform_tex_access shader info
...
Can be used to skip nir_lower_non_uniform_access pass.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
563bdcc7fc
radeonsi: lower vector const to scalar at last for aco
...
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
e252d87816
radeonsi: lower some 64bit ops aco does not support
...
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
9bc1fb4c07
ac/llvm,radeonsi: lower nir_fpow for aco and llvm
...
aco does not implement fpow, need nir to lower it
first. llvm will do by itself in the same way, so
we always lower fpow in nir now.
Remove the llvm fpow implementation that has special
handling for the muliplication. It's not used any
more and does not match GLSL spec as fpow(0,0)=NaN
but here we get 0.
There's some pixel changes for gl-radeonsi-stoney:
ror-default 2 (no tolerance), 0 (1% tol.)
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
19a8626f86
ac/llvm,radeonsi: lower some pack/unpack ops not supported by aco
...
aco only support the split vertion of these instructions.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
fb2d0fb4a2
ac/llvm,radeonsi: lower ineg in nir
...
aco does not implement it.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
3fae161ff2
ac/llvm,radeonsi: lower txf offset in nir
...
aco will complain if txf has offset. Not if other
texture ops.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
f13f9044db
ac/llvm,radeonsi: lower fsin/fcos in nir
...
ACO only support nir_fsin/cos_amd.
There's some pixel changes for gl-radeonsi-stoney trace.
Different pixels:
furmark 61 (no tolerance), 0 (1% tol.)
gimark 93867 (no tolerance), 888 (1% tol.)
tessmark 39 (no tolerance), 0 (1% tol.)
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
f9d54b1d36
ac/llvm,radeonsi: lower idiv in nir
...
aco does not implement these idiv ops.
nir_lower_idiv is for idiv ops <= 32bit and ported from
llvm amdgpu, so llvm do the same.
nir_lower_divmod64 is for 64bit idiv ops.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
5fa06828b4
tgsi_to_nir: call nir_lower_int64 when required
...
Use case: radeonsi will generate internal tgsi shader
with 64bit udiv instruction, and we want all 64bit udiv
to be lowered in nir by lower_int64_options.
For GLSL shaders, this is done in glsl to nir, so we do
the same for tgsi here.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
636f628206
radeonsi: remove ps vgpr index save when args init
...
They will be set by ac_get_fs_input_vgpr_cnt() later anyway.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
1eddf5934b
radeonsi: support print raw shader binary
...
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
ff29502df2
radeonsi: support raw shader binary upload
...
Only monolithic shader.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
4b90347595
ac/binary: pack prefech align code to a function
...
To be used by radeonsi raw shader binary.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
f3997a3ca7
radeonsi: add a raw shader binary type
...
It's the output of ACO compiler. To share the si_shader_binary
struct with ELF type:
* add a type field to indicate RAW or ELF
* rename elf_buffer/size to code_buffer/size
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
83a920dfb9
radeonsi: init spi ps input shader config when aco
...
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
f954aa1624
radeonsi: pack spi ps input fixup to a function
...
To be shared with ACO spi ps input construction.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
e752248b3b
radeonsi: add shader info uses_sampleid
...
Used by ACO to set spi_ps_intput.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
14d2b12390
radeonsi: add shader info for frag coord and sample pos read
...
To construct spi_ps_input when ACO compilation.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
326b027b25
radeonsi: add use_aco field for struct si_shader
...
We are going to use aco for monolithic ps first.
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
ad33ff4de2
radeonsi: add aco debug option
...
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/22573 >
2023-05-15 02:01:10 +00:00
Qiang Yu
5bc6c62486
meson: build radeonsi with aco
...
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/22573 >
2023-05-15 02:01:10 +00:00
David Heidelberg
ad7ff4c25b
ci/skqp: handle all warnings printed with clang >= 14
...
Useful for the https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21977
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22808 >
2023-05-14 22:16:28 +00:00