platform/upstream/mesa.git
2 years agofrontends/va/enc: default motion estimation parameters for performance
Thong Thai [Wed, 29 Dec 2021 16:37:45 +0000 (11:37 -0500)]
frontends/va/enc: default motion estimation parameters for performance

Sets the default motion estimation parameters for the H.264 encoder to
values that increase encoding performance - realistically, this only
benefits the VCE encoder, as the parameters are used no where else.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3540
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2702
Signed-off-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14339>

2 years agozink: fix -Warray-bounds warning
Michel Zou [Sat, 28 Aug 2021 11:45:40 +0000 (13:45 +0200)]
zink: fix -Warray-bounds warning

It would seems msvc and mingw dont pack across disparate types so zink_bind_rasterizer_state is too big for int32

string.h:202:10: warning: ‘__builtin___memcpy_chk’ forming offset [4, 7] is out of the bounds [0, 4] of object ‘rast_bits’ with type ‘uint32_t’ {aka ‘unsigned int’} [-Warray-bounds]
  202 |   return __builtin___memcpy_chk(__dst, __src, __n, __mingw_bos(__dst, 0));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/gallium/drivers/zink/zink_state.c: In function ‘zink_bind_rasterizer_state’:
../src/gallium/drivers/zink/zink_state.c:586:16: note: ‘rast_bits’ declared here

Fixes: 9c5a2ab6
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12609>

2 years agoradeonsi: print the number of param exports for shader-db
Marek Olšák [Mon, 3 Jan 2022 09:21:42 +0000 (04:21 -0500)]
radeonsi: print the number of param exports for shader-db

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: print all streamout info
Marek Olšák [Sun, 2 Jan 2022 04:26:07 +0000 (23:26 -0500)]
radeonsi: print all streamout info

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoac/nir: move ac_are_tessfactors_def_in_all_invocs into radeonsi
Marek Olšák [Thu, 23 Dec 2021 00:40:03 +0000 (19:40 -0500)]
ac/nir: move ac_are_tessfactors_def_in_all_invocs into radeonsi

radv isn't going to use it because it's for the TCS epilog

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoac: move ac_exp_param.h to ac_nir.h
Marek Olšák [Mon, 13 Dec 2021 01:20:36 +0000 (20:20 -0500)]
ac: move ac_exp_param.h to ac_nir.h

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: move the GS copy shader into shader variants
Marek Olšák [Mon, 20 Dec 2021 02:04:56 +0000 (21:04 -0500)]
radeonsi: move the GS copy shader into shader variants

This will allow further optimizations for shader variants that change
GS outputs (affecting the copy shader), and this is mainly about sharing
optimizations with NGG instead of having a totally separate codepath for
legacy GS.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: add into the disk cache key whether cached shaders contain LLVM IR
Marek Olšák [Wed, 29 Dec 2021 00:10:07 +0000 (19:10 -0500)]
radeonsi: add into the disk cache key whether cached shaders contain LLVM IR

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: move si_nir_scan_shader into si_shader_info.c
Marek Olšák [Thu, 23 Dec 2021 00:32:06 +0000 (19:32 -0500)]
radeonsi: move si_nir_scan_shader into si_shader_info.c

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: change si_shader_output_values::vertex_stream to a bitmask
Marek Olšák [Mon, 13 Dec 2021 06:14:44 +0000 (01:14 -0500)]
radeonsi: change si_shader_output_values::vertex_stream to a bitmask

to match si_shader_info.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: use nir->scratch_size instead of ac_count_scratch_private_memory
Marek Olšák [Sun, 12 Dec 2021 04:56:20 +0000 (23:56 -0500)]
radeonsi: use nir->scratch_size instead of ac_count_scratch_private_memory

It's the same.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: do opt_large_constants & lower_indirect_derefs after uniform inlining
Marek Olšák [Sun, 12 Dec 2021 04:51:03 +0000 (23:51 -0500)]
radeonsi: do opt_large_constants & lower_indirect_derefs after uniform inlining

because loop unrolling caused by uniform inlining can eliminate large constants
and indirect derefs.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: move smoothing to the main shader part to remove 1 live VGPR
Marek Olšák [Mon, 13 Dec 2021 19:36:37 +0000 (14:36 -0500)]
radeonsi: move smoothing to the main shader part to remove 1 live VGPR

The samplemask VGPR that we had to pass to the epilog increased VGPR usage
by 1 for all shaders. Do it in the main function by using the mono key
structure, which causes on-demand compilation and stall, but we'll save
the VGPR.

57794 shaders in 35145 tests
Totals:
SGPRS: 2715856 -> 2716272 (0.02 %)
VGPRS: 1776168 -> 1718432 (-3.25 %)
Spilled SGPRs: 3704 -> 3630 (-2.00 %)
Spilled VGPRs: 1727 -> 1733 (0.35 %)
Private memory VGPRs: 256 -> 256 (0.00 %)
Scratch size: 2008 -> 2016 (0.40 %) dwords per thread
Code Size: 61429584 -> 61393288 (-0.06 %) bytes
Max Waves: 838645 -> 840484 (0.22 %)

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: pass sample_coverage VGPR index to the PS prolog instead of guessing
Marek Olšák [Tue, 14 Dec 2021 03:37:41 +0000 (22:37 -0500)]
radeonsi: pass sample_coverage VGPR index to the PS prolog instead of guessing

The code was correct, but little confusing. This is cleaner.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: remove unused si_shader::prolog2
Marek Olšák [Mon, 20 Dec 2021 01:48:45 +0000 (20:48 -0500)]
radeonsi: remove unused si_shader::prolog2

This became unused when the GS prolog was removed.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: don't bind the ESGS ring twice, handle the difference in the shader
Marek Olšák [Sat, 18 Dec 2021 14:22:57 +0000 (09:22 -0500)]
radeonsi: don't bind the ESGS ring twice, handle the difference in the shader

The other shader is changed to modify the descriptor to get the required
values.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: reorder slots for internal buffers, reuse a slot for GS_QUERY_BUF
Marek Olšák [Sat, 18 Dec 2021 13:41:37 +0000 (08:41 -0500)]
radeonsi: reorder slots for internal buffers, reuse a slot for GS_QUERY_BUF

GFX10_GS_QUERY_BUF is also renamed.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: simplify compacted_mrt_index in si_export_mrt_color
Marek Olšák [Sat, 18 Dec 2021 08:57:14 +0000 (03:57 -0500)]
radeonsi: simplify compacted_mrt_index in si_export_mrt_color

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: export mrtz before color exports
Marek Olšák [Fri, 17 Dec 2021 20:18:54 +0000 (15:18 -0500)]
radeonsi: export mrtz before color exports

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: remove unnecessary code that was used to find the last export
Marek Olšák [Fri, 17 Dec 2021 20:15:49 +0000 (15:15 -0500)]
radeonsi: remove unnecessary code that was used to find the last export

We can do it trivially like this.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: set done=1 for PS exports at the end of si_llvm_build_ps_epilog
Marek Olšák [Fri, 17 Dec 2021 19:21:19 +0000 (14:21 -0500)]
radeonsi: set done=1 for PS exports at the end of si_llvm_build_ps_epilog

so that we can reorder the exports

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: clean up si_export_mrt_color
Marek Olšák [Fri, 17 Dec 2021 18:45:56 +0000 (13:45 -0500)]
radeonsi: clean up si_export_mrt_color

Remove the intermediate args variable.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: make get_thread_id_in_tg non-static
Marek Olšák [Thu, 23 Sep 2021 16:13:08 +0000 (12:13 -0400)]
radeonsi: make get_thread_id_in_tg non-static

for future work

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoradeonsi: modifiers can't disable DCC
Marek Olšák [Sat, 18 Dec 2021 22:04:32 +0000 (17:04 -0500)]
radeonsi: modifiers can't disable DCC

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoac/llvm: remove the num_channels parameter from ac_build_buffer_store_dword
Marek Olšák [Mon, 3 Jan 2022 19:04:57 +0000 (14:04 -0500)]
ac/llvm: remove the num_channels parameter from ac_build_buffer_store_dword

It was used when LLVM didn't support vec3 and we had to pass vec4
with num_channels=3. We no longer need to do that.

This also removes the vec3 splitting or conversion to vec4 in callers.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoac/llvm: add vindex into ac_build_buffer_store_dword
Marek Olšák [Thu, 23 Sep 2021 15:11:07 +0000 (11:11 -0400)]
ac/llvm: add vindex into ac_build_buffer_store_dword

for future work

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agoamd/registers: work around an assertion in parse_kernel_headers.py
Marek Olšák [Thu, 9 Dec 2021 04:31:39 +0000 (23:31 -0500)]
amd/registers: work around an assertion in parse_kernel_headers.py

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>

2 years agov3dv: add a refcount mechanism to BOs
Iago Toral Quiroga [Tue, 4 Jan 2022 11:56:42 +0000 (12:56 +0100)]
v3dv: add a refcount mechanism to BOs

Until now we have lived without a refcount mechanism in the driver
because in Vulkan the user is responsible for handling the life
span of memory allocations for all Vulkan objects, however,
imported BOs are tricky because the kernel doesn't refcount
so user-space needs to make sure that:

1. When importing a BO into the same device used to create it
   (self-importing) it does not double free the same BO.
2. Frees imported BOs that were not allocated through the same
   device.

Our initial implementation always freed BOs when requested,
so we handled 2) correctly but not 1) and we would double-free
self-imported BOs. We tried to fix that in commit d809d9f3
but that broke 2) and we started to leak BOs for some imports.

This fixes the problem for good by adding refcounts to BOs
so that self-imported BOs have a refcnt > 1 and are only freed
when all references are freed.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5769
Tested-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14392>

2 years agoradeonsi: decrease the size of si_pm4_state::pm4 except for cs_preamble_state
Marek Olšák [Thu, 9 Dec 2021 00:00:08 +0000 (19:00 -0500)]
radeonsi: decrease the size of si_pm4_state::pm4 except for cs_preamble_state

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoradeonsi: replace SI_PM4_MAX_DW with a max_dw field
Marek Olšák [Wed, 8 Dec 2021 23:40:58 +0000 (18:40 -0500)]
radeonsi: replace SI_PM4_MAX_DW with a max_dw field

it will vary

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoradeonsi: pack si_pm4_state
Marek Olšák [Wed, 8 Dec 2021 23:32:33 +0000 (18:32 -0500)]
radeonsi: pack si_pm4_state

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoradv: apply spi_cu_en to CU_EN
Marek Olšák [Wed, 8 Dec 2021 08:10:24 +0000 (03:10 -0500)]
radv: apply spi_cu_en to CU_EN

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoradv: set COMPUTE_DESTINATION_EN_SEn to spi_cu_en
Marek Olšák [Wed, 8 Dec 2021 05:56:03 +0000 (00:56 -0500)]
radv: set COMPUTE_DESTINATION_EN_SEn to spi_cu_en

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoradeonsi: apply spi_cu_en to CU_EN
Marek Olšák [Wed, 8 Dec 2021 07:15:50 +0000 (02:15 -0500)]
radeonsi: apply spi_cu_en to CU_EN

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoradeonsi: program COMPUTE_STATIC_THREAD_MGMT_SE4..7 on Arcturus
Marek Olšák [Wed, 8 Dec 2021 06:11:21 +0000 (01:11 -0500)]
radeonsi: program COMPUTE_STATIC_THREAD_MGMT_SE4..7 on Arcturus

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoradeonsi: set COMPUTE_DESTINATION_EN_SEn to spi_cu_en
Marek Olšák [Wed, 8 Dec 2021 05:56:03 +0000 (00:56 -0500)]
radeonsi: set COMPUTE_DESTINATION_EN_SEn to spi_cu_en

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoac/gpu_info: add AMD_CU_MASK environment variable to set CU_EN
Marek Olšák [Wed, 8 Dec 2021 05:33:10 +0000 (00:33 -0500)]
ac/gpu_info: add AMD_CU_MASK environment variable to set CU_EN

requested internally

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoac/gpu_info: set cu_mask correctly for Arcturus
Marek Olšák [Wed, 8 Dec 2021 04:23:21 +0000 (23:23 -0500)]
ac/gpu_info: set cu_mask correctly for Arcturus

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14122>

2 years agoi915g: Turn off FP16 in the vertex shaders.
Emma Anholt [Mon, 20 Dec 2021 23:15:38 +0000 (15:15 -0800)]
i915g: Turn off FP16 in the vertex shaders.

This ended up being turned on in gallivm, but since we use nir_to_tgsi on
the VS and TGSI doesn't have FP16, we can't let that happen.

Fixes: f814a2449e2c ("llvmpipe: enable FP16 and update CL + traces piglit results.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14403>

2 years agoFix compilation on armv7l with gcc 11.2.0
satmandu [Fri, 10 Sep 2021 20:58:09 +0000 (20:58 +0000)]
Fix compilation on armv7l with gcc 11.2.0

Cc: mesa-stable
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12810>

2 years agoglsl/glcpp: make sure to expand new token after concatenation
Timothy Arceri [Tue, 7 Dec 2021 04:35:48 +0000 (15:35 +1100)]
glsl/glcpp: make sure to expand new token after concatenation

Previously the code was using a hack to change the token type from
INDETIFIER -> OTHER in order to avoid getting in an infinite loop
expanding the tokens. This worked ok until we got to a paste where
the replacement parameters had already had their type changed
to OTHER because the newly created paste token would then
inherit the OTHER type and never get expanded inself.

For example with the follow code:

   #define STEP_ONE() \
out_Color = vec4(0.0,1.0,0.0,1.0)

   #define GLUE(x,y) x ## _ ## y
   #define EVALUATE(x,y)  GLUE(x,y)
   #define STEP(stepname) EVALUATE(STEP, stepname)()
   #define PERFORM_RAYCASTING_STEP STEP(ONE)

This would get all the way to expanding PERFORM_RAYCASTING_STEP to
STEP_ONE() but because it was created via the paste `x ## _ ## y`
it would never get any further.

To fix this we remove the OTHER hack and instead just track if the
token has already been handled via a bool value `explanding`.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5724

Fixes: 28842c2331e6 ("glcpp: Implement token pasting for non-function-like macros")

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14101>

2 years agotgsi/exec: Simplify indirects now that they always use the ADDR file.
Emma Anholt [Fri, 31 Dec 2021 00:09:50 +0000 (16:09 -0800)]
tgsi/exec: Simplify indirects now that they always use the ADDR file.

This was a lot of extra code in the hot path of getting though
fetch_src_file_channel().  No significant perf difference in softpipe,
though.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14360>

2 years agogallium: Delete PIPE_CAP_TGSI_ANY_REG_AS_ADDRESS
Emma Anholt [Thu, 30 Dec 2021 23:59:15 +0000 (15:59 -0800)]
gallium: Delete PIPE_CAP_TGSI_ANY_REG_AS_ADDRESS

Softpipe was the only driver still using this feature.  I had enabled it
in ba22f014f9db ("softpipe: Enable PIPE_CAP_TGSI_ANY_REG_AS_ADDRESS;") for
an instr count win, but it's really not important to that driver and it's
not worth keeping the knob around just for that.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14360>

2 years agonir_to_tgsi: Use the same address reg mappings as GLSL-to-TGSI did.
Emma Anholt [Thu, 30 Dec 2021 03:23:14 +0000 (19:23 -0800)]
nir_to_tgsi: Use the same address reg mappings as GLSL-to-TGSI did.

It turns out r600 has a bunch of expectations about the Dimension being in
ADDR[1].x, and sampler or atomic indirects being in ADDR[2].x.  It's
simpler to just use this static assignment than our dynamic one, anyway.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14360>

2 years agokmsro: Add 'rcar-du' driver support
Biju Das [Thu, 16 Dec 2021 16:52:57 +0000 (16:52 +0000)]
kmsro: Add 'rcar-du' driver support

rcar-du is used by Renesas R-Car and RZ/G SOCs.
Driver is available in the mainline kernel [1]
[1] https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/rcar-du

Suggested-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Show Liu <show.liu.yj@renesas.com>
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14393>

2 years agomesa: Remove unused _mesa_get_linear_format_srgb
Adam Jackson [Thu, 16 Dec 2021 02:32:58 +0000 (21:32 -0500)]
mesa: Remove unused _mesa_get_linear_format_srgb

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14220>

2 years agomesa: Remove unused _mesa_format_fallback_rgbx_to_rgba
Adam Jackson [Thu, 16 Dec 2021 02:32:19 +0000 (21:32 -0500)]
mesa: Remove unused _mesa_format_fallback_rgbx_to_rgba

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14220>

2 years agomesa: Remove unused _mesa_bind_texture
Adam Jackson [Thu, 16 Dec 2021 02:21:55 +0000 (21:21 -0500)]
mesa: Remove unused _mesa_bind_texture

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14220>

2 years agomesa: Remove unused _mesa_AllocTextureStorage_sw
Adam Jackson [Thu, 16 Dec 2021 01:56:52 +0000 (20:56 -0500)]
mesa: Remove unused _mesa_AllocTextureStorage_sw

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14220>

2 years agomesa: Remove unused _mesa_allow_light_in_model
Adam Jackson [Thu, 16 Dec 2021 01:02:14 +0000 (20:02 -0500)]
mesa: Remove unused _mesa_allow_light_in_model

ctx::_ForceEyeCoords is now never not false, so remove and simplify to
match.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14220>

2 years agoradv: Support VRS for mesh shaders.
Timur Kristóf [Fri, 17 Dec 2021 16:55:36 +0000 (17:55 +0100)]
radv: Support VRS for mesh shaders.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14193>

2 years agoaco: Emit VRS rate when it's per-primitive.
Timur Kristóf [Fri, 17 Dec 2021 16:54:12 +0000 (17:54 +0100)]
aco: Emit VRS rate when it's per-primitive.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14193>

2 years agoradv: Lower primitive shading rate for mesh shaders.
Timur Kristóf [Fri, 17 Dec 2021 16:51:18 +0000 (17:51 +0100)]
radv: Lower primitive shading rate for mesh shaders.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14193>

2 years agoradv: Note when a mesh shader writes the primitive shading rate.
Timur Kristóf [Fri, 17 Dec 2021 16:50:35 +0000 (17:50 +0100)]
radv: Note when a mesh shader writes the primitive shading rate.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14193>

2 years agoclover: Move min image support check
Rob Clark [Sun, 26 Dec 2021 20:45:49 +0000 (12:45 -0800)]
clover: Move min image support check

If the gallium driver supports images, but not the minimum image
requirements for CL, then simply don't claim to support images.  This
is better than not claiming to support CL at all.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14310>

2 years agoradv: add UMR markers for the vertex prolog
Samuel Pitoiset [Fri, 15 Oct 2021 11:30:16 +0000 (13:30 +0200)]
radv: add UMR markers for the vertex prolog

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/13376>

2 years agoradv: dump the VS prolog disassembly to the hang report
Samuel Pitoiset [Fri, 15 Oct 2021 09:03:04 +0000 (11:03 +0200)]
radv: dump the VS prolog disassembly to the hang report

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/13376>

2 years agoradv: save the vertex prolog to the trace BO for debugging
Samuel Pitoiset [Fri, 15 Oct 2021 08:52:09 +0000 (10:52 +0200)]
radv: save the vertex prolog to the trace BO for debugging

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/13376>

2 years agoradv,aco: keep track of the prolog disassembly if necessary
Samuel Pitoiset [Fri, 15 Oct 2021 08:03:21 +0000 (10:03 +0200)]
radv,aco: keep track of the prolog disassembly if necessary

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/13376>

2 years agoaco: do not print prologs disassembly if no disassembler
Samuel Pitoiset [Fri, 15 Oct 2021 07:56:56 +0000 (09:56 +0200)]
aco: do not print prologs disassembly if no disassembler

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/13376>

2 years agoaco: fix a dynamic-stack-buffer-overflow when printing instructions
Samuel Pitoiset [Wed, 29 Dec 2021 07:28:22 +0000 (08:28 +0100)]
aco: fix a dynamic-stack-buffer-overflow when printing instructions

Detected by ASAN.

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/14329>

2 years agomapi: generate correct dispatch for EXT_draw_instanced
Dave Airlie [Wed, 29 Dec 2021 18:57:07 +0000 (04:57 +1000)]
mapi: generate correct dispatch for EXT_draw_instanced

These APIs can be exposed in GLES2.0 via EXT_draw_instanced,
they were incorrectly being stuck on GLES 3.0 only.

Fixes piglit ext_draw_instanced-drawarrays

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14338>

2 years agor300: Remove broken optimization in rc_transform_KILL
Pavel Ondračka [Mon, 3 Jan 2022 14:47:43 +0000 (15:47 +0100)]
r300: Remove broken optimization in rc_transform_KILL

The logic was reversed so this was not only not working but it was
also removing random instructions around. The special IF-KILP-ENDIF
case this optimization was targeting is already transformed to
KILL_IF in the TGSI, so just remove this altogether.

This fixes piglit glsl-fs-discard-04
v2: Update the comment as well

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/343
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip.gawin@zoho.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14378>

2 years agoci: debian-clang: drop -Wno-error=absolute-value
Thomas H.P. Andersen [Sat, 25 Dec 2021 17:26:34 +0000 (18:26 +0100)]
ci: debian-clang: drop -Wno-error=absolute-value

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14302>

2 years agobroadcom/compiler: fix compile warning -Wabsolute-value
Thomas H.P. Andersen [Sat, 25 Dec 2021 17:25:34 +0000 (18:25 +0100)]
broadcom/compiler: fix compile warning -Wabsolute-value

fixes a compile warning with clang

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14302>

2 years agoxa: fix compile warning for -Wabsolute-value
Thomas H.P. Andersen [Sat, 25 Dec 2021 17:24:05 +0000 (18:24 +0100)]
xa: fix compile warning for -Wabsolute-value

fixes a compile warning with clang

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14302>

2 years agoutil/u_trace: protect against reentrant calls
Lionel Landwerlin [Sat, 18 Dec 2021 14:48:00 +0000 (16:48 +0200)]
util/u_trace: protect against reentrant calls

With the Iris driver, the first tracepoint triggers the tracepoint for
"begin of command buffer" which leads to 2 tracepoints using the same
idx.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14254>

2 years agodriconf: enable glthread for Minecraft-FTB, Stellaris, Battletech
Marek Olšák [Sat, 1 Jan 2022 06:36:24 +0000 (01:36 -0500)]
driconf: enable glthread for Minecraft-FTB, Stellaris, Battletech

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14368>

2 years agonouveau/nir: Lower 64-bit phis
M Henning [Thu, 30 Dec 2021 01:06:26 +0000 (20:06 -0500)]
nouveau/nir: Lower 64-bit phis

Fixes arb_gpu_shader_fp64-fs-non-uniform-control-flow-ubo
on kepler with NV50_PROG_USE_NIR=1

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14343>

2 years agoradeonsi: add a debug option that disables DCC for all exported buffers
Marek Olšák [Tue, 21 Dec 2021 17:56:38 +0000 (12:56 -0500)]
radeonsi: add a debug option that disables DCC for all exported buffers

requested internally

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14283>

2 years agozink: malloc/sizeof mismatch
Thomas H.P. Andersen [Wed, 29 Dec 2021 10:19:39 +0000 (11:19 +0100)]
zink: malloc/sizeof mismatch

buffer_infos is VkBufferView* but malloc is using the
size of VkImageView. The size is the same but this
fixes a warning

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14335>

2 years agoci: debian-clang: -Wno-error for sometimes-uninitialized
Thomas H.P. Andersen [Thu, 23 Dec 2021 01:07:40 +0000 (02:07 +0100)]
ci: debian-clang: -Wno-error for sometimes-uninitialized

The last of this kind of warning is gone for CPP

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14296>

2 years agor600/sb: silence a sometimes-uninitialized warning
Thomas H.P. Andersen [Thu, 23 Dec 2021 01:05:47 +0000 (02:05 +0100)]
r600/sb: silence a sometimes-uninitialized warning

Fixes a warning from clang

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14296>

2 years agomesa/vbo: be more comprehensive for degenerate primitive conversion in dlists
Mike Blumenkrantz [Tue, 16 Nov 2021 15:57:24 +0000 (10:57 -0500)]
mesa/vbo: be more comprehensive for degenerate primitive conversion in dlists

these shouldn't result in any sort of draw, and passing the unsupported primtype
to the driver is invalid

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13845>

2 years agopan/bi: Fix load_const of 1-bit booleans
Alyssa Rosenzweig [Sun, 2 Jan 2022 01:38:46 +0000 (20:38 -0500)]
pan/bi: Fix load_const of 1-bit booleans

For historical reasons, we ingest 1-bit booleans in NIR but expand them
to 16/32-bit booleans in the backend IR. We need to handle this case
when loading boolean constants, extending from 1-bit to 16/32-bit as
required. This issue is masked by effective constant folding for
booleans, but is visible in a shader from Firefox WebRender.

Fixes: 646e03c4519 ("pan/bi: Temporarily switch back to 0/~0 bools")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reported-by: Icecream95
Closes: #5797
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14371>

2 years agoanv: enable adaptive sync for ANV
Uday Kiran Pichika [Tue, 28 Dec 2021 08:39:46 +0000 (10:39 +0200)]
anv: enable adaptive sync for ANV

Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6420>

2 years agoiris: enable adaptive sync for IRIS
Uday Kiran Pichika [Tue, 28 Dec 2021 08:39:03 +0000 (10:39 +0200)]
iris: enable adaptive sync for IRIS

Signed-off-by: Uday Kiran Pichika <pichika.uday.kiran@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6420>

2 years agopan/bi: Use fused dual source blending
Alyssa Rosenzweig [Mon, 8 Nov 2021 14:52:25 +0000 (09:52 -0500)]
pan/bi: Use fused dual source blending

Instead of emitting a pile of moves to fixed registers at codegen time
and hoping everything works out, add a second staging source to the
BLEND instruction in the intermediate representation containing the dual
source colour, and modify register allocation appropriately. This better
models the operation of blending render target #0 with two sources.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agopan/bi: Allow an extra staging source
Alyssa Rosenzweig [Mon, 8 Nov 2021 14:50:43 +0000 (09:50 -0500)]
pan/bi: Allow an extra staging source

Useful for dual source blending.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agopan/bi: Use is_staging_src helper
Alyssa Rosenzweig [Mon, 8 Nov 2021 14:49:19 +0000 (09:49 -0500)]
pan/bi: Use is_staging_src helper

This will allow us to have a separate set of staging sources, which will
be useful for dual-source blending.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agopanfrost: Remove pan_nir_reorder_writeout
Alyssa Rosenzweig [Fri, 29 Oct 2021 14:01:22 +0000 (10:01 -0400)]
panfrost: Remove pan_nir_reorder_writeout

Now that dual source stores are fused, there's no ordering hazard so we
can remove this tricky code.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agopanfrost: Combine dual source blends
Alyssa Rosenzweig [Fri, 29 Oct 2021 13:41:05 +0000 (09:41 -0400)]
panfrost: Combine dual source blends

Reuse the store_combined_output_pan infrastructure for dual source
blending as well. This simplifies ordering.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agonir: Extend store_combined_output_pan
Alyssa Rosenzweig [Fri, 29 Oct 2021 12:48:46 +0000 (08:48 -0400)]
nir: Extend store_combined_output_pan

Extend store_combined_output_pan to take a dual source blend input in
addition to colour, depth, and stencil inputs. Use the last source for
this, and represent the type with the DEST_TYPE index. This is a hack
but there is no SRC2_TYPE and NIR doesn't seem to mind as long as we
know what we mean. This allows the backend to emit a combined "blend
render target #0" instruction taking two sources.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agopanfrost: Simplify blend lowering pass
Alyssa Rosenzweig [Fri, 29 Oct 2021 13:02:37 +0000 (09:02 -0400)]
panfrost: Simplify blend lowering pass

Combine depth/stencil writeout redundancy. This simplifies the code and
will allow us to add dual source blend handling without duplicating even
more code.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agonir: Eliminate store_combined_output_pan BASE
Alyssa Rosenzweig [Sat, 1 Jan 2022 15:11:33 +0000 (10:11 -0500)]
nir: Eliminate store_combined_output_pan BASE

It's meaningless for this intrinsic and is just adding noise to the
lowering pass.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agopan/mdg: Don't read base for combined stores
Alyssa Rosenzweig [Sat, 1 Jan 2022 15:41:58 +0000 (10:41 -0500)]
pan/mdg: Don't read base for combined stores

`base` is meaningless for combined stores, so don't read it. This allows
us to remove the base index from the intrinsic and simplify the lowering
code generating the combined store intrinsic.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agopan/bi: Don't read base for combined stores
Alyssa Rosenzweig [Sat, 1 Jan 2022 15:09:21 +0000 (10:09 -0500)]
pan/bi: Don't read base for combined stores

`base` is meaningless for combined stores, so don't read it. This allows
us to remove the base index from the intrinsic and simplify the lowering
code generating the combined store intrinsic.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13714>

2 years agoaco: lower masked swizzle to DPP8
Tatsuyuki Ishi [Sun, 28 Nov 2021 15:12:18 +0000 (00:12 +0900)]
aco: lower masked swizzle to DPP8

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13971>

2 years agoaco: support DPP8
Tatsuyuki Ishi [Sun, 28 Nov 2021 15:12:04 +0000 (00:12 +0900)]
aco: support DPP8

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13971>

2 years agogallium/aux: Move index offsetting from prim restart to primconvert
Jesse Natalie [Thu, 30 Dec 2021 00:56:53 +0000 (16:56 -0800)]
gallium/aux: Move index offsetting from prim restart to primconvert

Fixes: b34fed64 ("u_prim_restart: Fix index scanning with start offset")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5799
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14346>

2 years agoradv: Remove dependencies on vk_common entrypoints.
Bas Nieuwenhuizen [Fri, 31 Dec 2021 16:27:18 +0000 (17:27 +0100)]
radv: Remove dependencies on vk_common entrypoints.

Fixes: 91fe0b5629d ("radv: Delete lots of sync code.")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14366>

2 years agoradv: Rename submit2->submit.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 22:06:48 +0000 (23:06 +0100)]
radv: Rename submit2->submit.

Cleanup after the big switcheroo.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Remove syncobj reset mechanism.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 20:02:30 +0000 (21:02 +0100)]
radv: Remove syncobj reset mechanism.

Now done with the vulkan runtime.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Delete lots of sync code.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 18:38:08 +0000 (19:38 +0100)]
radv: Delete lots of sync code.

This make things all fall back to the common synchronization functions
which will switch things to the new submission path and to use
vk_fence and vk_semaphore.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
radv: Use common AcquireNextImage2KHR.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
radv: Use common functions for Metro Exodus layer.

Needs to be squashed with the big "switch the world" deletion patch
but kept it separate for review.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Add new submission path for use by the common sync framework.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 17:55:47 +0000 (18:55 +0100)]
radv: Add new submission path for use by the common sync framework.

Basically just a copy of radv's internal deferred submission handler.

This uses the new winsys submit2 to later be able to move the sem_info
to the winsys.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Add new cs_submit2 winsys call.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 16:51:23 +0000 (17:51 +0100)]
radv: Add new cs_submit2 winsys call.

A bit more runtime dependence so we can remove all the syncobj stuff
in radv itself.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Use vk_command_buffer for preambles.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 15:51:39 +0000 (16:51 +0100)]
radv: Use vk_command_buffer for preambles.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Set horizontal sync types.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 15:38:06 +0000 (16:38 +0100)]
radv: Set horizontal sync types.

We basically use 2 types for amdgpu:

1) syncobj. This supports both binary & timeline and autodetects
  all the features.
2) emulated timelines if (1) doesn't detect timeline syncobj support.

Note that one has to put these in order of preference so that the
common CreateFence/CreateSemaphore functions decide on the right
type.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Add function to allow WSI signalling fences/semaphores.
Bas Nieuwenhuizen [Thu, 30 Dec 2021 15:03:37 +0000 (16:03 +0100)]
radv: Add function to allow WSI signalling fences/semaphores.

Added but not enabled yet. Will enable in the big switchover.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>

2 years agoradv: Initialize vk device drm fd.
Bas Nieuwenhuizen [Sun, 28 Nov 2021 12:39:21 +0000 (13:39 +0100)]
radv: Initialize vk device drm fd.

For common sync.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13974>