Marek Olšák [Thu, 1 Jun 2023 17:35:34 +0000 (13:35 -0400)]
radeonsi: re-indent gfx10_create_sh_query_result_cs
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 27 May 2023 04:08:48 +0000 (00:08 -0400)]
radeonsi/ci: add gfx6 failures
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 27 May 2023 06:17:37 +0000 (02:17 -0400)]
radeonsi: add a separate cdna_init_compute_preamble_state function
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Thu, 25 May 2023 01:20:58 +0000 (21:20 -0400)]
radeonsi: don't set registers set by CLEAR_STATE in the preamble for gfx10-11
CLEAR_STATE doesn't clear PA_SC_GENERIC_SCISSOR_* only on some older chips
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Thu, 25 May 2023 01:04:11 +0000 (21:04 -0400)]
radeonsi: add a separate gfx10_init_gfx_preamble_state function
and set the registers in an order sorted by the offset.
It's less of a mess now.
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 27 May 2023 06:31:59 +0000 (02:31 -0400)]
radeonsi: add helpers to create and clone a sized pm4 state
to simplify si_init_cs_preamble_state and it will be used in the following
commits
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Thu, 25 May 2023 00:03:04 +0000 (20:03 -0400)]
radeonsi: don't program COMPUTE_MAX_WAVE_ID (GDS register) on gfx6
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Wed, 24 May 2023 23:41:08 +0000 (19:41 -0400)]
radeonsi: optimize no-op primitive restart index changes thanks to index masking
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Mon, 15 May 2023 01:01:00 +0000 (21:01 -0400)]
radeonsi: rename the msaa_sample_locs state to sample locations
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Mon, 15 May 2023 00:59:22 +0000 (20:59 -0400)]
radeonsi: merge si_emit_msaa_sample_locs with si_emit_sample_locations
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Mon, 15 May 2023 00:50:06 +0000 (20:50 -0400)]
radeonsi: move PA_SU_SMALL_PRIM_FILTER_CNTL to the preamble when possible
PA_SU_SMALL_PRIM_FILTER_CNTL is set in the gfx preamble if the sample loc
bug isn't present. Else, it's set as part of sample locs state.
This is part 3 of simplifying si_emit_msaa_sample_locs.
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Mon, 15 May 2023 00:28:52 +0000 (20:28 -0400)]
radeonsi: adjust 16x EQAA sample locs to make PA_SU_PRIM_FILTER_CNTL immutable
and move PA_SU_PRIM_FILTER_CNTL to the gfx preamble.
If sample locations don't use the -8 coordinate, the EXCLUSION can always
be set to 1.
This is part 2 of simplifying si_emit_msaa_sample_locs.
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Mon, 15 May 2023 00:14:18 +0000 (20:14 -0400)]
radeonsi: always set sample locations even for 1x MSAA for simplicity
This is part 1 of simplifying si_emit_msaa_sample_locs.
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sun, 14 May 2023 23:52:47 +0000 (19:52 -0400)]
radeonsi: move PA_CL_NGG_CNTL emission into rasterizer state
It's a better place. Edge flags only have effect if polygon mode is
enabled. Changing shaders should no longer roll the context due to line
culling flipping EDGE_FLAG_ENA.
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 13 May 2023 21:49:41 +0000 (17:49 -0400)]
radeonsi: reorder and comment tracked registers
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 13 May 2023 03:49:13 +0000 (23:49 -0400)]
radeonsi: split tracked_regs masks into context registers and other registers
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 13 May 2023 02:40:30 +0000 (22:40 -0400)]
radeonsi: increase SDMA gfx9+ limits
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 13 May 2023 01:55:09 +0000 (21:55 -0400)]
radeonsi: decompress DCC for SDMA if we're really going to use SDMA
change the order of operations
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 13 May 2023 01:41:07 +0000 (21:41 -0400)]
radeonsi: unduplicate si_translate_format_to_hw
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Fri, 12 May 2023 21:10:30 +0000 (17:10 -0400)]
radeonsi: completely rewrite how VGT_SHADER_STAGES_EN is set
Use a state atom with an emit function instead of precomputing up to 256
pm4 states in si_context.
Some register fields are precomputed in si_shader for NGG. Others are set
in si_update_shaders.
Acked-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sun, 7 May 2023 16:52:25 +0000 (12:52 -0400)]
radeonsi: remove RADEON_FLAG_MALL_NOALLOC due to no use
and we'll need to use that bit for something else in the future.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sun, 7 May 2023 21:03:06 +0000 (17:03 -0400)]
radeonsi: add a gfx11 version of si_decompress_textures, add assertions < GFX11
si_decompress_textures is renamed to gfx6_decompress_textures.
gfx11_decompress_textures is added.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sun, 7 May 2023 20:39:33 +0000 (16:39 -0400)]
radeonsi: remove a useless depth texture function call in a fast color clear
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Wed, 5 Apr 2023 09:40:44 +0000 (05:40 -0400)]
radeonsi: use nir_lower_alu_to_scalar correctly
We should use the filter callback that's also used by st/mesa.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Fri, 14 Apr 2023 01:07:31 +0000 (21:07 -0400)]
radeonsi: print shader-db stats with AMD_DEBUG=vs,ps,stats
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Fri, 19 May 2023 06:23:50 +0000 (02:23 -0400)]
radeonsi/gfx11: extend DB_Z_INFO.NUM_SAMPLES programming to > GFX11
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 27 May 2023 08:43:27 +0000 (04:43 -0400)]
radeonsi: export non-zero edgeflags for GS and tess
because edge flags are always enabled when polygon mode is enabled
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Mon, 8 May 2023 00:33:07 +0000 (20:33 -0400)]
radeonsi: remove gl_BackColor VS outputs on demand if color_two_side is disabled
We just need to set the ps_inputs_read_or_disabled mask correctly.
The VS outputs_written mask should set BFCn instead of COLn, which is why
this removes the is_varying parameter that forced COLn to be set for BFCn.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Mon, 8 May 2023 00:31:49 +0000 (20:31 -0400)]
radeonsi: define si_shader_io_get_unique_index() values as SI_UNIQUE_SLOT_*
for later use
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Wed, 31 May 2023 18:19:14 +0000 (14:19 -0400)]
amd: add radeon_info* into ac_llvm_context and radv_nir_compiler_options
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Sat, 27 May 2023 08:18:26 +0000 (04:18 -0400)]
ac/nir/ngg: always use load_initial_edgeflags_amd, choose the value in drivers
radeonsi will have a more complicated condition here
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
Marek Olšák [Thu, 1 Jun 2023 06:58:39 +0000 (02:58 -0400)]
ac/surface: fix R32G3B32 image format regression for gfx6-8
This is a different fix from the one reviewed because that one broke gfx9.
Fixes:
ea7c89d1f57 - ac/surface: move determing ADDR_FMT_* into a helper function
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22833>
David Heidelberg [Mon, 5 Jun 2023 22:21:48 +0000 (00:21 +0200)]
ci: fix KVM module modprobe code
Fixes:
5941fc8ccd30 ("ci: enable shellcheck on whole .gitlab-ci")
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23406>
David Heidelberg [Fri, 2 Jun 2023 21:01:14 +0000 (23:01 +0200)]
ci: missed variable inside the big rename and split ARCH and DEBIAN_ARCH
Fixes:
5140ff194841 ("ci: rename x86 and amd64 to x86_64, armhf to arm32, and i386 to x86_32")
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23406>
Rhys Perry [Thu, 1 Jun 2023 15:03:46 +0000 (16:03 +0100)]
radv: correctly skip vertex loads with packed formats
This is supposed to check whether any channels of the element is used, but
skipped_start is always 0 for packed formats.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Fixes:
a46acdbc3ff ("radv: Lower non-dynamic VS inputs in NIR.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9062
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23370>
Rhys Perry [Mon, 5 Jun 2023 11:06:49 +0000 (12:06 +0100)]
radv: initialize aco_compiler_options::is_opengl
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Fixes:
8d5cc23c186 ("aco: use gds reg when ordered xfb counter add")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23434>
Rhys Perry [Mon, 5 Jun 2023 11:01:19 +0000 (12:01 +0100)]
aco: fix ds_sub_gs_reg_rtn validation
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Fixes:
8d5cc23c186 ("aco: use gds reg when ordered xfb counter add")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23434>
Charmaine Lee [Wed, 31 May 2023 05:26:32 +0000 (08:26 +0300)]
mesa/main: fix distance attenuation calculation in ffvertex
The dist parameter to calculate_light_attenuation() is the
reciprocal of ||VP|| used in the distance attenuation formula (2.4).
So get its reciprocal first before applying it to the distance attenuation
formula.
This fixes a lighting issue in Knights of the Old Republic.
Fixes:
c5b3d488f9be ("mesa/main: make ffvertex output nir")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collaborar.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23404>
Lionel Landwerlin [Fri, 2 Jun 2023 19:37:46 +0000 (22:37 +0300)]
intel/fs: fix pull-constant-load prior to gfx7
In
ad9bc1ffb5 ("intel/fs: enable UBO accesses through bindless heap")
we added a new source, we need to fixup the source index for the
generator.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
ad9bc1ffb5 ("intel/fs: enable UBO accesses through bindless heap")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23405>
Lionel Landwerlin [Fri, 2 Jun 2023 19:40:03 +0000 (22:40 +0300)]
intel/stub_gpu: add an option to launch valgrind
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23405>
Yonggang Luo [Wed, 1 Feb 2023 07:14:22 +0000 (15:14 +0800)]
virgl: Replace the usage of os_get_process_name with util_get_process_name
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21034>
Yonggang Luo [Wed, 1 Feb 2023 07:11:00 +0000 (15:11 +0800)]
virgl: Array cmdline on stack should initialized to 0
Because strncpy may not append 0 if source string is longer than num(63)
Fixes:
b3b82fe8ea1 ("virgl/vtest: add vtest driver")
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21034>
Yonggang Luo [Tue, 31 Jan 2023 08:38:54 +0000 (16:38 +0800)]
r300: Replace usage of os_get_process_name with util_get_process_name in r300_chipset.c
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21034>
Samuel Pitoiset [Mon, 5 Jun 2023 13:54:09 +0000 (15:54 +0200)]
radv: initialize the device cache UUID even if on-disk cache is disabled
Otherwise the pipeline cache UUID isn't initialized as well, and the
RADV meta shaders cache can be corrupted.
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9150
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23439>
Tapani Pälli [Tue, 18 Apr 2023 17:28:26 +0000 (20:28 +0300)]
anv: make Wa_16013994831 to use intel_needs_workaround
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22560>
Tapani Pälli [Tue, 18 Apr 2023 17:23:44 +0000 (20:23 +0300)]
iris: make Wa_16013994831 to use intel_needs_workaround
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22560>
Benjamin Lee [Sat, 3 Jun 2023 22:53:33 +0000 (15:53 -0700)]
intel: Fix stack overflow in intel_dump_gpu
Previously, the call to ensure_device_info in the intercepted ioctl
would eventually result in another call to ioctl, recursing until stack
overflow:
- ioctl (intercepted)
- ensure_device_info
- intel_get_device_info_from_fd
- intel_device_info_i915_get_info_from_fd
- getparam
- intel_ioctl
- ioctl (intercepted)
Signed-off-by: Benjamin Lee <benjamin@computer.surgery>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23418>
Qiang Yu [Mon, 5 Jun 2023 06:59:05 +0000 (14:59 +0800)]
aco,radv: remove unused gs aco shader info
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23432>
Yiwei Zhang [Mon, 5 Jun 2023 23:33:44 +0000 (16:33 -0700)]
venus: temporarily disable VK_EXT_memory_budget
This has confused the apps. Back out for now until further investigation
is done.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23452>
Emma Anholt [Thu, 4 May 2023 23:16:46 +0000 (16:16 -0700)]
anv: Drop unused ALL_GRAPHICS_LIB_FLAGS.
copy and paste from radv.
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22865>
Emma Anholt [Thu, 4 May 2023 23:14:59 +0000 (16:14 -0700)]
tu: Ignore unused shader stages in pipeline library creation.
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22865>
Ian Romanick [Thu, 25 May 2023 02:35:40 +0000 (19:35 -0700)]
intel/eu/validate: Add some validation of ADD3
v2: Remove spurious ALIGN_1 checks. Suggested by Matt.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Ian Romanick [Fri, 26 May 2023 14:51:57 +0000 (07:51 -0700)]
intel/eu/validate: Add Gfx12.5
This required updating the expected results in a number of test. The
vast majority of these are cases where Gfx12.5 platforms don't allow
mixing F and HF sources.
In all honesty... I just updated the half_float_conversion expected
results until the test passed.
The next commit will add changes specific to Gfx12.5.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Ian Romanick [Fri, 26 May 2023 14:40:08 +0000 (07:40 -0700)]
intel/eu/validate: Use a single macro define half_float_conversion cases
This is what other tests do. The next commit will add a third set of
possible results (for Gfx12.5+), and the multiple macro method does not
scale.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Ian Romanick [Fri, 19 May 2023 16:56:42 +0000 (09:56 -0700)]
intel/fs: Add constant propagation for ADD3
v2: Require that the constant value be representable as either uint16_t
or int16_t. Suggested by Matt.
v3: Remove redundant patterns. Noticed by Matt.
shader-db:
DG2
total instructions in shared programs:
23103767 ->
23103577 (<.01%)
instructions in affected programs: 51822 -> 51632 (-0.37%)
helped: 98 / HURT: 15
total cycles in shared programs:
842347714 ->
842380017 (<.01%)
cycles in affected programs: 1942595 -> 1974898 (1.66%)
helped: 97 / HURT: 32
Nearly all of the affected shaders (around 9,900) are shaders in
Cyberpunk 2077. It's about an even split between vertex and fragment
shaders. The majority of the remaining affected shaders (3,600) are
from Strange Brigade. This was also a nearly even split between
fragment and vertex.
All but two of the lost shaders are SIMD32 fragment shaders in
Cyberpunk 2077. The other two are SIMD32 fragment shaders in Dota2.
fossil-db:
DG2
Instructions in all programs:
196379107 ->
196248608 (-0.1%)
helped: 13467 / HURT: 1210
Cycles in all programs:
13931355281 ->
13929955971 (-0.0%)
helped: 11801 / HURT: 2922
Lost: 90
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Ian Romanick [Wed, 24 May 2023 04:03:30 +0000 (21:03 -0700)]
nir/algebraic: Fixup iadd3 related patterns
There should not be any isub at this point due to lowerings that happened
ages before getting to late algebraic.
shader-db:
DG2
total instructions in shared programs:
23103769 ->
23103767 (<.01%)
instructions in affected programs: 65 -> 63 (-3.08%)
helped: 1 / HURT: 0
total cycles in shared programs:
842348074 ->
842347714 (<.01%)
cycles in affected programs: 28572 -> 28212 (-1.26%)
helped: 3 / HURT: 0
One compute shader in Assassin's Creed Odyssey was affected.
fossil-db:
DG2
Instructions in all programs:
196400668 ->
196400676 (+0.0%)
helped: 8 / HURT: 5
Cycles in all programs:
13931740724 ->
13931758003 (+0.0%)
helped: 8 / HURT: 7
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Ian Romanick [Wed, 24 May 2023 03:55:04 +0000 (20:55 -0700)]
intel/fs: Allow HF const in MAD on Gfx12.5 if all sources are HF
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Ian Romanick [Wed, 24 May 2023 01:34:43 +0000 (18:34 -0700)]
intel/fs: Fix handling of W, UW, and HF constants in combine_constants
Sources that are already W, UW, or HF can be represented as those types
by definition. Pass them through. Previously an HF source on a MAD would
have been marked as !can_promote. I'm pretty sure this means it would
get moved out to a register, but I did not verify this.
For ADD3, a constant source could be D or UD. In this case, the value
must be tested to determine whether it can be represented as W or
UW. The patterns in opt_algebraic won't generate an ADD3 with constant
source, so this problem cannot occur yet.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Ian Romanick [Thu, 1 Jun 2023 21:21:13 +0000 (14:21 -0700)]
intel/fs: Don't munge source order of 3-src instructions in opt_algebraic
This only impacts ADD3, so at this point it should not have any
affect. As soon as constants are propagated into ADD3 instructions, it
will be a problem.
The worst part is, the ADD3 instrutions that are broken by the old code
aren't even "progress" on this pass.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
Caio Oliveira [Thu, 1 Jun 2023 18:25:30 +0000 (11:25 -0700)]
nir/print: Print 0 when mem_modes or resource_intel have no values
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23376>
Dave Airlie [Mon, 5 Jun 2023 20:12:47 +0000 (06:12 +1000)]
docs: update docs for lavapipe mesh shading
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23447>
David Heidelberg [Mon, 5 Jun 2023 19:15:08 +0000 (21:15 +0200)]
traces: update sir-f720 trace expectations for zink on anv and freedreno
Same changes on both driver, looks OK.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23445>
Dave Airlie [Wed, 17 May 2023 02:12:04 +0000 (12:12 +1000)]
lavapipe: enable task/mesh shaders.
This is the enable for the exts/features/properties.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:11:33 +0000 (12:11 +1000)]
lavapipe: add execution backends for mesh shader draw apis
This binds the mesh draw apis to the gallium backend ones.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:10:45 +0000 (12:10 +1000)]
lavapipe: add support for task/mesh shader stages in various places
this bumps the LVP_SHADER_STAGES to allow task/mesh shaders to be used,
and adds them to various state binding and execution places.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:09:59 +0000 (12:09 +1000)]
lavapipe: add mesh query support
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:09:05 +0000 (12:09 +1000)]
lavapipe: handle some mesh shader stage differences.
certain state info is no long required if you using mesh/task in the
pipeline.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:07:50 +0000 (12:07 +1000)]
llvmpipe: enable task/mesh shader support.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:05:58 +0000 (12:05 +1000)]
llvmpipe: add mesh shader drawing.
This is the big execution one, it implement the draw mesh callback.
This executes task shaders and mesh shaders with no overlap.
When task shaders finish, the mesh shader is launched using the payload
data, unless no task shader is run, then the mesh shader is launched.
Once the mesh shader is finished the data is supplied to the draw
pipeline to convert to linear vertex data with no per-prim data,
then passed to draw for clipping and further processing.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:05:20 +0000 (12:05 +1000)]
llvmpipe/cs: add multiple stride indirect to fill_grid_info.
mesh shaders needs to iterate across multiple indirect draws
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 02:01:36 +0000 (12:01 +1000)]
llvmpipe/cs: add task/mesh shader support to compute shader builder.
This allows generating task and mesh variants of compute shaders.
It adds:
- vertex and primitive outputs support - aos writing.
- payload support
- mesh iface for the output and count callbacks.
- draw_id
- multiple iteration support to the exec fn to allow launches
in multiple passes to reduce memory usage
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:57:25 +0000 (11:57 +1000)]
gallivm/cs: add payload ptr to the cs thread data.
This fits best at a thread level beside shared.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:56:41 +0000 (11:56 +1000)]
llvmpipe: bind task/mesh resources and dirty bits
This binds the task/mesh states to be updated on dirty changes
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:55:10 +0000 (11:55 +1000)]
llvmpipe: add query support for task/mesh shaders
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:54:57 +0000 (11:54 +1000)]
llvmpipe: add debug bit for mesh shaders
Reviewed-by: Roland Scheidegger <sroland@vmware.com>#
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:54:37 +0000 (11:54 +1000)]
llvmpipe: add dirty bits for mesh and task shaders.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:54:11 +0000 (11:54 +1000)]
llvmpipe: bump dirty tracker to 64-bits.
We need a lot more dirty states for task/mesh
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:47:55 +0000 (11:47 +1000)]
llvmpipe: start adding task/mesh support.
This is just some infrastructure for creating shaders and contexts.
task/mesh shaders are based on compute shaders and share nearly all
their code with compute.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Mon, 29 May 2023 06:30:24 +0000 (16:30 +1000)]
llvmpipe: resize arrays to handle mesh shaders.
This just bumps some limits.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:43:23 +0000 (11:43 +1000)]
gallivm/nir: add support for mesh shader outputs.
mesh shaders can have vertex and primitive outputs, and act a bit
like TCS shaders, add the callback to allow the driver to decide
how to store these.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:43:04 +0000 (11:43 +1000)]
gallivm/nir: call task shader lowering.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:42:19 +0000 (11:42 +1000)]
gallivm/nir: add a mesh interface and vert/prim count setting.
This adds a callback to the driver for a mesh interface to implement
the set_vertex_and_primitive_count intrinsic
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:40:32 +0000 (11:40 +1000)]
gallivm/nir: add launch mesh workgroups
add support the launch mesh workgroups intrinsic for task shaders.
This writes the values out to the start of the payload.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:35:18 +0000 (11:35 +1000)]
gallivm: add support for payload access
mesh shading has a payload to pass between task and mesh shaders,
this acts like shared memory as well, so we use the standard memory
hooks to access it.
This current adds the payload after the 12-byte header which will
contain the x/y/z grid sizes.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:22:23 +0000 (11:22 +1000)]
draw: add support for per primitive aos emission
This add support to the aos emit code so that mesh shaders
can use it for per prim outputs.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:20:12 +0000 (11:20 +1000)]
draw: add mesh pipeline middle end.
This sets up the mesh pipeline to call the post vs clipping
and so emit for stats (not for so).
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:18:26 +0000 (11:18 +1000)]
draw: add a mesh primitive assembler.
This is assembles prims from mesh vertex and per-primitive outputs.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:08:34 +0000 (11:08 +1000)]
draw: move draw_vertex_info and draw_prim_info to public header.
Need to use these in llvmpipe for mesh shaders
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 17 May 2023 01:01:07 +0000 (11:01 +1000)]
draw: add mesh shader infrastructure
This adds draw mesh shader infrastructure, as mesh shaders have
to be able to feed into the post vs stages like clipping, so
we have to wire informational things up.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Mon, 5 Jun 2023 07:15:20 +0000 (17:15 +1000)]
lavapipe: fix indentation whitespace
these were indented too much.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Dave Airlie [Wed, 24 May 2023 03:03:26 +0000 (13:03 +1000)]
lavapipe: fix pipeline sanitizing.
This isn't needed for fragment shader.
Cc: mesa-stable
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23066>
Jesse Natalie [Mon, 5 Jun 2023 15:17:10 +0000 (08:17 -0700)]
d3d12: Fully initialize UAV desc for null SSBOs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23440>
Samuel Pitoiset [Mon, 5 Jun 2023 15:21:08 +0000 (17:21 +0200)]
zink/ci: remove useless RADV_PERFTEST=gpl
This option has been removed a while ago.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23442>
Juan A. Suarez Romero [Mon, 5 Jun 2023 15:00:04 +0000 (17:00 +0200)]
broadcom/ci: update expected results
Update failing/flake list.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23441>
Erik Faye-Lund [Mon, 8 May 2023 12:00:41 +0000 (14:00 +0200)]
nir: use generated immediate comparison helpers
This makes the code a bit less verbose, so let's use the helpers.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23393>
Erik Faye-Lund [Mon, 8 May 2023 07:01:51 +0000 (09:01 +0200)]
nir: generate nir_{cmp}_imm variants
We have a couple of open-coded variants of these, but let's generate all
of them for completeness.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23393>
Erik Faye-Lund [Fri, 2 Jun 2023 10:25:58 +0000 (12:25 +0200)]
nir: use nir_i{ne,eq}_imm helpers
We already have these, so let's use them more.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23393>
Erik Faye-Lund [Tue, 23 May 2023 10:23:51 +0000 (12:23 +0200)]
d3d12, dozen: make sure we pass float to fge
This doesn't matter much in practice, because the integer an float
representations of zero are the same. But it's easier to understand
what's going on if the correct type is used, so let's clean this up.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23393>
Karmjit Mahil [Thu, 18 May 2023 12:43:11 +0000 (13:43 +0100)]
pvr: Fix typo causing seg faults copying immutable samplers
Fixes seg faults in:
dEQP-VK.binding_model.shader_access.primary_cmd_buf
.sampler_immutable.no_access.single_descriptor.*
dEQP-VK.binding_model.shader_access.primary_cmd_buf
.sampler_immutable.no_access.multiple_contiguous_descriptors.*
It does not fix them. Now they just hit asserts in the compiler.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23357>
Pavel Ondračka [Tue, 25 Apr 2023 14:33:52 +0000 (16:33 +0200)]
r300: fail linking instead of using dummy shaders
We need to tell the apps about the hardware limtations, so that they
have a chance to take a fallback path. Fixes GTK misrendering, due to
use of the dummy shaders (now properly fallbacks to software).
Based on a MR by Filip Gawin.
Closes:https://gitlab.freedesktop.org/mesa/mesa/-/issues/7291
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip.gawin@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22708>