platform/upstream/mesa.git
18 months agospirv: Rework structured control flow handling
Caio Oliveira [Fri, 29 Jul 2022 16:22:50 +0000 (09:22 -0700)]
spirv: Rework structured control flow handling

The new code splits the work into a few passes instead of trying to do
everything with a single pass.  This helps to apply the new clarified
rules for structured control flow in the SPIR-V specification, in
particular the "exit construct" rules.

First find an appropriate ordering for the blocks, based on the
approach taken by Tint (WebGPU compiler).  Then, with those blocks
in order, identify the SPIR-V constructs start and end positions.

Finally, walk the blocks again to emit NIR for each of them, "opening"
and "closing" the necessary NIR constructs as we reach the start and
end positions of the SPIR-V constructs.

There are a couple of interesting choices when mapping the constructs
to NIR:

- NIR doesn't have something like a switch, so like the previous code,
  we lower the switch construct to a series of conditionals for each
  case.

- And, unlike the previous code, when there's a need to perform a
  break from a construct that NIR doesn't directly support (e.g. inside
  a case construct, conditionally breaking early from the switch), we
  now use a combination of a NIR loop and an NIR if.  Extra code is
  added to ensure that loop_break and loop_continues are propagated
  to the right loop.

This should fix various issues with valid SPIR-V that previously
resulted in "Invalid back or cross-edge in the CFG" errors.

Thanks to Alan Baker and David Neto for their explanations of
ordering the blocks, in the Tint code and in presentations to
the SPIR-V WG.

Thanks to Jack Clark for providing a lot of valuable tests used to
validate this MR.

Closes: #5973, #6369
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17922>

18 months agoaco: fix nir_f2u64 translation
Qiang Yu [Wed, 19 Apr 2023 05:03:03 +0000 (13:03 +0800)]
aco: fix nir_f2u64 translation

mantissa needs to be at the lower part for shift left.
This fixes large integer value conversion.

Cc: mesa-stable
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22570>

18 months agofreedreno/registers: updte HDMI registers to include CEC details
Dmitry Baryshkov [Wed, 19 Apr 2023 23:49:16 +0000 (02:49 +0300)]
freedreno/registers: updte HDMI registers to include CEC details

Based on patchset by Arnaud Vrac update the hdmi.xml register
decscription.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22588>

18 months agovulkan/wsi: fix -Wnarrowing warning
Michel Zou [Thu, 13 Apr 2023 17:03:56 +0000 (19:03 +0200)]
vulkan/wsi: fix -Wnarrowing warning

else I get this output:

[11/600] Compiling C++ object src/vulkan/wsi/libvulkan_wsi.a.p/wsi_common_win32.cpp.obj
../src/vulkan/wsi/wsi_common_win32.cpp: In function 'VkResult wsi_win32_surface_create_swapchain_dxgi(wsi_win32_surface*, VkDevice, wsi_win32*, const VkSwapchainCreateInfoKHR*, wsi_win32_swapchain*)':
../src/vulkan/wsi/wsi_common_win32.cpp:757:65: warning: narrowing conversion of '((((int)chain->wsi_win32_swapchain::base.wsi_swapchain::present_mode) == ((int)VK_PRESENT_MODE_IMMEDIATE_KHR)) ? ((int)DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING) : 0)' from 'int' to 'UINT' {aka 'unsigned int'} [-Wnarrowing]
  757 |       chain->base.present_mode == VK_PRESENT_MODE_IMMEDIATE_KHR ?
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  758 |          DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING : 0
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

fixes: d7730fcf22adae92b0e7a82e36cfe28200920b5f

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22475>

18 months agoutil/debug: move null checks out of debug message macro
Mike Blumenkrantz [Wed, 19 Apr 2023 13:20:36 +0000 (09:20 -0400)]
util/debug: move null checks out of debug message macro

this otherwise causes tons of compiler warnings

cc: mesa-stable

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

18 months agozink: use a perf_debug() macro for debug message logging of copy box warning
Mike Blumenkrantz [Wed, 19 Apr 2023 13:10:32 +0000 (09:10 -0400)]
zink: use a perf_debug() macro for debug message logging of copy box warning

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

18 months agozink: hook up debug callback
Mike Blumenkrantz [Wed, 19 Apr 2023 13:00:39 +0000 (09:00 -0400)]
zink: hook up debug callback

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

18 months agozink: only print copy box warning once per resource
Mike Blumenkrantz [Wed, 29 Mar 2023 14:08:14 +0000 (10:08 -0400)]
zink: only print copy box warning once per resource

this otherwise gets spammy

cc: mesa-stable

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

18 months agoci/freedreno: Demote a530 to manual again.
Emma Anholt [Wed, 19 Apr 2023 17:22:07 +0000 (10:22 -0700)]
ci/freedreno: Demote a530 to manual again.

6 job-level flakes detected yesterday across a530_gl {2,3,5}/6.  It's
still not ready to gate MRs.

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

18 months agoci: Crank up the yamllint line length limit.
Emma Anholt [Tue, 18 Apr 2023 22:29:57 +0000 (15:29 -0700)]
ci: Crank up the yamllint line length limit.

I hated that CI errors out because I pasted useful information in the
yaml.  You shouldn't have to manually line-wrap pastes from dmesg.

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

18 months agoci/radv: Add known flakes for #8817
Emma Anholt [Tue, 18 Apr 2023 17:43:29 +0000 (10:43 -0700)]
ci/radv: Add known flakes for #8817

Should greatly increase Marge reliability.

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

18 months agoci/freedreno: Drop portal-2-v2 trace.
Emma Anholt [Tue, 18 Apr 2023 17:16:46 +0000 (10:16 -0700)]
ci/freedreno: Drop portal-2-v2 trace.

It's intermittently segfaulting.  CI daily says 4 flakes this month.

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

18 months agoci/zink+tu: Drop some intermittently failing a630 traces.
Emma Anholt [Tue, 18 Apr 2023 17:02:19 +0000 (10:02 -0700)]
ci/zink+tu: Drop some intermittently failing a630 traces.

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

18 months agoci/radv: Demote navi21 to manual until recent flakiness resolves.
Emma Anholt [Tue, 18 Apr 2023 16:35:16 +0000 (09:35 -0700)]
ci/radv: Demote navi21 to manual until recent flakiness resolves.

22 detected job flakes yesterday.

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

18 months agoci/lvp: Update sanctuary trace hash.
Emma Anholt [Tue, 18 Apr 2023 16:24:42 +0000 (09:24 -0700)]
ci/lvp: Update sanctuary trace hash.

Changed a few days ago, still looks good.

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

18 months agoradv: Fix dword alignment in SDMA buffer copy.
Timur Kristóf [Tue, 18 Apr 2023 11:26:19 +0000 (13:26 +0200)]
radv: Fix dword alignment in SDMA buffer copy.

Also add a comment that explains the dword aligned mode.

Note that the SDMA shader uploads are always dword aligned
so this commit doesn't fix any issues but just prepares this
function for more general use.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22551>

18 months agospirv: Add --optimize flag to spirv2nir tool
Caio Oliveira [Wed, 29 Mar 2023 01:25:27 +0000 (18:25 -0700)]
spirv: Add --optimize flag to spirv2nir tool

Apply some basic NIR optimizations to clean up the result.  Useful in some
situations when comparing the parsing code from different mesa branches.

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

18 months agospirv: Output spirv2nir tool result to stdout
Caio Oliveira [Wed, 29 Mar 2023 01:28:06 +0000 (18:28 -0700)]
spirv: Output spirv2nir tool result to stdout

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

18 months agod3d12: Clean unused code for parsing slices
Sil Vilerino [Mon, 17 Apr 2023 17:17:32 +0000 (13:17 -0400)]
d3d12: Clean unused code for parsing slices

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22541>

18 months agod3d12: Use frontend H264 decode slice offsets and sizes instead of parsing buffer
Sil Vilerino [Mon, 17 Apr 2023 16:56:33 +0000 (12:56 -0400)]
d3d12: Use frontend H264 decode slice offsets and sizes instead of parsing buffer

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22541>

18 months agofrontend/va: Add H264 decode slice data
Sil Vilerino [Mon, 17 Apr 2023 16:56:01 +0000 (12:56 -0400)]
frontend/va: Add H264 decode slice data

Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22541>

18 months agozink: emit demote cap when using demote
Mike Blumenkrantz [Wed, 19 Apr 2023 17:32:32 +0000 (13:32 -0400)]
zink: emit demote cap when using demote

VUID-VkShaderModuleCreateInfo-pCode-01377(ERROR / SPEC): msgNum: 1478567243 - Validation Error: [ VUID-VkShaderModuleCreateInfo-pCode-01377 ] Object 0: handle = 0x55f304e851c0, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x5821254b | SPIR-V module not valid: Opcode DemoteToHelperInvocation requires one of these capabilities: DemoteToHelperInvocation

cc: mesa-stable

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

18 months agonine: add fallback for D3DFMT_D16 in d3d9_to_pipe_format_checked
Filip Gawin [Fri, 2 Dec 2022 02:48:16 +0000 (03:48 +0100)]
nine: add fallback for D3DFMT_D16 in d3d9_to_pipe_format_checked

Helps with avoing crash in winetests on crocus.

Cc: mesa-stable
Reviewed-by: Axel Davy <davyaxel0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20121>

18 months agoglthread: add newline to env override
Mike Blumenkrantz [Wed, 19 Apr 2023 17:04:51 +0000 (13:04 -0400)]
glthread: add newline to env override

Fixes: 8c42c353b6e ("driconf: rework glthread enablement")

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22581>

18 months agoutil/blitter: fix line wrapping on error to avoid giving wrong line number
Mike Blumenkrantz [Mon, 27 Mar 2023 19:49:51 +0000 (15:49 -0400)]
util/blitter: fix line wrapping on error to avoid giving wrong line number

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22581>

18 months agonir: set uses_wide_subgroup_intrinsics for all shader stages
Marek Olšák [Thu, 6 Apr 2023 06:28:50 +0000 (02:28 -0400)]
nir: set uses_wide_subgroup_intrinsics for all shader stages

nir_opt_varyings will use it in VS, TES, GS.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: add next_stage parameter to nir_remove_varying
Marek Olšák [Sun, 12 Mar 2023 07:18:38 +0000 (03:18 -0400)]
nir: add next_stage parameter to nir_remove_varying

so that e.g. the POS output is removed if the next stage is not FS.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: add next_stage parameter to nir_slot_is_sysval_output to return better info
Marek Olšák [Sun, 12 Mar 2023 07:16:18 +0000 (03:16 -0400)]
nir: add next_stage parameter to nir_slot_is_sysval_output to return better info

If we know the next stage, we can tell whether an output is a sysval,
such as POS.

For example, POS is not a sysval output if the next stage is not FS.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: remove an obsolete comment from nir_gather_xfb_info_from_intrinsics
Marek Olšák [Sun, 12 Mar 2023 07:31:16 +0000 (03:31 -0400)]
nir: remove an obsolete comment from nir_gather_xfb_info_from_intrinsics

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: return a status from nir_remove_varying whether it removed the instruction
Marek Olšák [Sun, 12 Mar 2023 07:29:18 +0000 (03:29 -0400)]
nir: return a status from nir_remove_varying whether it removed the instruction

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: rework nir_lower_color_inputs to work with lowered IO intrinsics
Marek Olšák [Fri, 10 Mar 2023 02:30:41 +0000 (21:30 -0500)]
nir: rework nir_lower_color_inputs to work with lowered IO intrinsics

also only call it from radeonsi and remove the option

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: don't remove dead IO variables in nir_lower_io_passes for st_link_nir
Marek Olšák [Wed, 1 Mar 2023 04:12:58 +0000 (23:12 -0500)]
nir: don't remove dead IO variables in nir_lower_io_passes for st_link_nir

We need to keep variables in the IR because a few places use them,
like nir_build_program_resource_list. This will allow us to lower IO
in the linker.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: handle all varying slots in gl_varying_slot_name_for_stage
Marek Olšák [Sat, 11 Mar 2023 05:26:38 +0000 (00:26 -0500)]
nir: handle all varying slots in gl_varying_slot_name_for_stage

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: handle more opcodes in nir_lower_io_to_scalar
Marek Olšák [Sun, 5 Mar 2023 05:21:16 +0000 (00:21 -0500)]
nir: handle more opcodes in nir_lower_io_to_scalar

It just works.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: extend nir_opt_fragdepth to handle lowered IO
Marek Olšák [Wed, 1 Mar 2023 04:41:59 +0000 (23:41 -0500)]
nir: extend nir_opt_fragdepth to handle lowered IO

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: update nir->num_inputs, num_outputs in nir_recompute_io_bases()
Mihai Preda [Wed, 29 Jun 2022 12:18:41 +0000 (15:18 +0300)]
nir: update nir->num_inputs, num_outputs in nir_recompute_io_bases()

Since nir_recompute_io_bases is going to be used instead of
nir_assign_io_var_locations, we need to update num_inputs, num_outputs.

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: skip nir_lower_io_passes for compute shaders
Marek Olšák [Tue, 28 Feb 2023 20:12:21 +0000 (15:12 -0500)]
nir: skip nir_lower_io_passes for compute shaders

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: assign IO bases in nir_lower_io_passes
Marek Olšák [Tue, 28 Feb 2023 19:59:09 +0000 (14:59 -0500)]
nir: assign IO bases in nir_lower_io_passes

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: lower load_barycentric_at_offset in lower_wpos_ytransform
Marek Olšák [Tue, 28 Feb 2023 22:24:08 +0000 (17:24 -0500)]
nir: lower load_barycentric_at_offset in lower_wpos_ytransform

so that we can run this pass on lowered IO.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agonir: fix 2 bugs in nir_create_passthrough_tcs
Marek Olšák [Sat, 11 Mar 2023 04:03:58 +0000 (23:03 -0500)]
nir: fix 2 bugs in nir_create_passthrough_tcs

- VAR31 was ignored.
- Only a half of the 16-bit slot was passed through, though I'm not sure
  if nir_lower_io handles vec8. The slots are only for GLES and I don't
  think a passthrough TCS is possible with GLES.

Fixes: a8e84f50bc6c8 - nir: Add helper to create passthrough TCS shader

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21861>

18 months agotranslate: do not clamp element index in generic_run
Charmaine Lee [Wed, 12 Apr 2023 00:24:40 +0000 (03:24 +0300)]
translate: do not clamp element index in generic_run

The buffer max_index value in translate_generic struct is relevant for
indexed draw only. So do not clamp the element index in generic_run() as it
is called for non-indexed draw only.
This patch passes index_size to the common generic_run_one function
so index clamping is only performed when a non-zero index_size is specified.

This fixes a text selection bug with kitty terminal emulator running on ARM
when it falls back to the generic translate path for unsigned byte vertex
array.

cc: mesa-stable

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22568>

18 months agoci/freedreno: Fix a618-traces-performance rules
Guilherme Gallo [Tue, 18 Apr 2023 18:44:42 +0000 (15:44 -0300)]
ci/freedreno: Fix a618-traces-performance rules

Change the order of job `extends`, as .freedreno-rules-performance has
all the necessary rules for this performance job.

Closes: #8866

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22565>

18 months agoaco: use apply_nuw_to_ssa() with load_smem_amd
Rhys Perry [Tue, 18 Apr 2023 13:58:57 +0000 (14:58 +0100)]
aco: use apply_nuw_to_ssa() with load_smem_amd

fossil-db (navi21):
Totals from 107 (0.08% of 135636) affected shaders:
Instrs: 389667 -> 389425 (-0.06%); split: -0.06%, +0.00%
CodeSize: 2050380 -> 2049440 (-0.05%); split: -0.05%, +0.00%
Latency: 3738053 -> 3737313 (-0.02%); split: -0.02%, +0.00%
InvThroughput: 599889 -> 599790 (-0.02%); split: -0.02%, +0.00%
SClause: 16120 -> 15920 (-1.24%)
Copies: 29823 -> 29809 (-0.05%); split: -0.07%, +0.02%
PreSGPRs: 6856 -> 6849 (-0.10%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22553>

18 months agoaco: remove SMEM_instruction::prevent_overflow
Rhys Perry [Tue, 18 Apr 2023 13:50:18 +0000 (14:50 +0100)]
aco: remove SMEM_instruction::prevent_overflow

This doesn't seem useful anymore, and it seems we forgot to set it in a
few places.

This commit changes the behaviour of the optimizer so that
prevent_overflow is always true.

fossil-db (navi21):
Totals from 7421 (5.47% of 135636) affected shaders:
Instrs: 5402823 -> 5440126 (+0.69%); split: -0.00%, +0.69%
CodeSize: 28731300 -> 28974152 (+0.85%); split: -0.00%, +0.85%
VGPRs: 317528 -> 317552 (+0.01%)
SpillSGPRs: 419 -> 415 (-0.95%)
Latency: 40712478 -> 40783115 (+0.17%); split: -0.01%, +0.19%
InvThroughput: 7612708 -> 7616751 (+0.05%); split: -0.00%, +0.06%
VClause: 123824 -> 123848 (+0.02%); split: -0.09%, +0.11%
SClause: 161915 -> 172741 (+6.69%); split: -0.03%, +6.71%
Copies: 393015 -> 394429 (+0.36%); split: -0.20%, +0.56%
PreSGPRs: 288658 -> 289603 (+0.33%); split: -0.04%, +0.36%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8864
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22553>

18 months agopvr: Handle special built-in variable loading in vertex shader
Karmjit Mahil [Mon, 27 Feb 2023 17:46:08 +0000 (17:46 +0000)]
pvr: Handle special built-in variable loading in vertex shader

For now always allocate space for the special built-in variables
that need filling in for the vertex shader. Ideally we should get
the compiler to analyze the shader and tell the driver if they are
used so that we don't reserve and fill them needlessly.

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

18 months agoci/lava: Skip regression test if LAVA log file is not present
Guilherme Gallo [Wed, 19 Apr 2023 14:31:47 +0000 (11:31 -0300)]
ci/lava: Skip regression test if LAVA log file is not present

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Use f-strings in job definition
Guilherme Gallo [Wed, 19 Apr 2023 03:03:54 +0000 (00:03 -0300)]
ci/lava: Use f-strings in job definition

f-strings are little more concise than str.format() approach.
It makes the code a little more readable as well.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Refactor LAVAJobSubmitter and add tests
Guilherme Gallo [Tue, 18 Apr 2023 03:18:12 +0000 (00:18 -0300)]
ci/lava: Refactor LAVAJobSubmitter and add tests

Some refactoring was needed to make LAVAJobSubmitter class testable via
pytest.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Force use of UTC timezones
Guilherme Gallo [Tue, 18 Apr 2023 03:53:13 +0000 (00:53 -0300)]
ci/lava: Force use of UTC timezones

LAVA farm is giving datetime in UTC timezone, let's standardize it
locally for the script run, so datetimes coming from LAVA proxy calls
will be at the same timezone as the ones we use in structural logging
and traces.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Integrate StructuralLogger with AutoSaveDict
Guilherme Gallo [Sat, 15 Apr 2023 19:43:40 +0000 (16:43 -0300)]
ci/lava: Integrate StructuralLogger with AutoSaveDict

Let's use the AutoSaveDict as structural logger abstraction to enable
real-time monitoring of LAVA jobs. Mainly used for local runs and
debugging of Mesa CI LAVA jobs.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agobin/ci: Add StructuredLogger to improve log handling
Guilherme Gallo [Fri, 14 Apr 2023 19:30:27 +0000 (16:30 -0300)]
bin/ci: Add StructuredLogger to improve log handling

This commit introduces the StructuredLogger module, which provides a
robust and flexible logging utility supporting multiple data formats
(CSV, JSON, and YAML). By incorporating this module into our CI system,
we enhance our log management capabilities, making it easier to:

1. Monitor and analyze logs: The StructuredLogger is a dict-like data
   abstraction which autosaves into a structured data file, whenever it
   is updated. With this file, one can easily know specifics of the job
   execution without having to grep it in the traces logs or exploring
   the job artifacts. The autosave feature makes it useful even when the
   CI job fails unexpectedly, since the partial dict is always written
   back to the disk.
2. Maintain data integrity: The module includes context managers for
   file locking and editing log data, ensuring data integrity and
   preventing race conditions.
3. Support multiple formats: With built-in support for CSV, JSON, and
   YAML formats, this module caters to a wide range of use cases and
   user preferences.
4. Increase maintainability: The modular design of the StructuredLogger
   and its corresponding strategies simplifies maintenance and allows
   for seamless integration of additional formats in the future.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Add a simple Structural Logger into submitter
Guilherme Gallo [Thu, 6 Apr 2023 04:31:04 +0000 (01:31 -0300)]
ci/lava: Add a simple Structural Logger into submitter

Refactor some pieces of the submitter to improve the clarity of the
functions and create a simple dictionary with aggregated data from the
submitter execution which will be dumped to a file when the script
exits.

Add support for the AutoSaveDict based structured logger as well, which
will come in a follow-up commit.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Update LogFollower for better section handling and history
Guilherme Gallo [Thu, 6 Apr 2023 04:44:24 +0000 (01:44 -0300)]
ci/lava: Update LogFollower for better section handling and history

Update the LogFollower class to improve section handling and provide a
history of sections encountered during log processing:

1. Add section_history attribute to store the history of encountered
   GitlabSections.
2. Make LAVA job submitter use the section history feature to improve
   structural logging.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Use python-fire in job submitter
Guilherme Gallo [Tue, 4 Apr 2023 10:48:44 +0000 (07:48 -0300)]
ci/lava: Use python-fire in job submitter

Cleanup argparse to use dataclasses+python-fire to give easier
maintenance to job submitter.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Extract LAVA proxy and LAVAJob abstractions
Guilherme Gallo [Tue, 4 Apr 2023 10:47:09 +0000 (07:47 -0300)]
ci/lava: Extract LAVA proxy and LAVAJob abstractions

Let's make lava_job_submitter.py cleaner with only parsing and retry
mechanism capabilities.

Moved out from the submitter script:

1. proxy functions
  - moved to lava.utils.lava_proxy.py
2. LAVAJob class definition
  - moved to lava.utils.lava_job.py
  - added structural logging capabilities into LAVAJob
  - Implemented properties for job_id, is_finished, and status, with
    corresponding setter methods that update the log dictionary.
  - Added new methods show, get_lava_time, and refresh_log for improved
    log handling and data retrieval.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoci/lava: Move job definition stuff to another file
Guilherme Gallo [Tue, 4 Apr 2023 01:21:58 +0000 (22:21 -0300)]
ci/lava: Move job definition stuff to another file

The LAVA job submitter is too big, let's reorganize it a little.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22500>

18 months agoegl: inline driver.GetProcAddress() as it's always _glapi_get_proc_address()
Eric Engestrom [Thu, 2 Feb 2023 18:39:10 +0000 (18:39 +0000)]
egl: inline driver.GetProcAddress() as it's always _glapi_get_proc_address()

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21399>

18 months agozink: Use malloc to allocate libs
xurui [Tue, 11 Apr 2023 08:32:05 +0000 (16:32 +0800)]
zink: Use malloc to allocate libs

ralloc is less performant most of the time when the object doesn't have sets/hashtables attached
Use malloc instead of ralloc in zink_program.c

Signed-off-by: xurui <xurui@kylinos.cn>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22326>

18 months agozink: Use malloc instead of ralloc
xurui [Mon, 10 Apr 2023 08:05:33 +0000 (16:05 +0800)]
zink: Use malloc instead of ralloc

ralloc is less performant most of the time when the object doesn't have sets/hashtables attached
Use malloc instead of ralloc in zink_descriptors.c

Signed-off-by: xurui <xurui@kylinos.cn>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22326>

18 months agopvr: Add handling for missing entries in pvr_setup_vertex_buffers()
Karmjit Mahil [Mon, 27 Feb 2023 15:43:49 +0000 (15:43 +0000)]
pvr: Add handling for missing entries in pvr_setup_vertex_buffers()

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

18 months agopvr: Fix typo in PDS function name
Karmjit Mahil [Mon, 27 Feb 2023 11:50:09 +0000 (11:50 +0000)]
pvr: Fix typo in PDS function name

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

18 months agoradv/rt: fix total stack size computation
Daniel Schürmann [Mon, 17 Apr 2023 13:08:30 +0000 (15:08 +0200)]
radv/rt: fix total stack size computation

Fixes: 2649a1f272cea69b73364d06a3dad21415921056 ('radv/rt: introduce and set rt_pipeline->stack_size ')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22526>

18 months agopvr: Use driver vertex input data in the compiler
Simon Perretta [Mon, 27 Feb 2023 13:57:19 +0000 (13:57 +0000)]
pvr: Use driver vertex input data in the compiler

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21588>

18 months agopvr: Fix a comment in the PDS code
Karmjit Mahil [Sat, 25 Feb 2023 19:16:30 +0000 (19:16 +0000)]
pvr: Fix a comment in the PDS code

The comment was incorrectly showing which DDMAD param corresponed
to which DDMAD field.

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

18 months agopvr: Collect vertex input data and fill info struct.
Karmjit Mahil [Wed, 16 Nov 2022 13:20:08 +0000 (13:20 +0000)]
pvr: Collect vertex input data and fill info struct.

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

18 months agopvr: Finish pvr_perform_start_of_render_attachment_clear().
Karmjit Mahil [Thu, 5 Jan 2023 17:29:48 +0000 (17:29 +0000)]
pvr: Finish pvr_perform_start_of_render_attachment_clear().

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Acked-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Add deferred RTA clears for cores without gs_rta_support.
Karmjit Mahil [Tue, 18 Oct 2022 13:48:31 +0000 (14:48 +0100)]
pvr: Add deferred RTA clears for cores without gs_rta_support.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Acked-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Complete pvr_generate_custom_mapping()
Sarah Walker [Tue, 15 Nov 2022 09:10:53 +0000 (09:10 +0000)]
pvr: Complete pvr_generate_custom_mapping()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Support multiple sources per pass in TQ job submission
Sarah Walker [Fri, 11 Nov 2022 14:14:54 +0000 (14:14 +0000)]
pvr: Support multiple sources per pass in TQ job submission

This is required to implement a number of workarounds.

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Complete pvr_3d_validate_addr()
Sarah Walker [Thu, 10 Nov 2022 14:04:52 +0000 (14:04 +0000)]
pvr: Complete pvr_3d_validate_addr()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Support ipf_creq_pf in pvr_isp_ctrl_stream()
Sarah Walker [Wed, 9 Nov 2022 11:44:02 +0000 (11:44 +0000)]
pvr: Support ipf_creq_pf in pvr_isp_ctrl_stream()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement pvr_reroute_to_clip()
Sarah Walker [Tue, 8 Nov 2022 15:37:10 +0000 (15:37 +0000)]
pvr: Implement pvr_reroute_to_clip()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement pvr_isp_scan_direction()
Sarah Walker [Tue, 8 Nov 2022 14:39:54 +0000 (14:39 +0000)]
pvr: Implement pvr_isp_scan_direction()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Complete pvr_double_stride()
Sarah Walker [Mon, 7 Nov 2022 15:19:01 +0000 (15:19 +0000)]
pvr: Complete pvr_double_stride()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Complete pvr_unwind_rects()
Sarah Walker [Fri, 4 Nov 2022 14:09:05 +0000 (14:09 +0000)]
pvr: Complete pvr_unwind_rects()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Complete pvr_modify_command()
Sarah Walker [Thu, 3 Nov 2022 15:54:59 +0000 (15:54 +0000)]
pvr: Complete pvr_modify_command()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement pvr_pbe_setup_modify_defaults()
Sarah Walker [Thu, 3 Nov 2022 12:19:13 +0000 (12:19 +0000)]
pvr: Implement pvr_pbe_setup_modify_defaults()

Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Complete pvr_isp_ctrl_stream()
Matt Coster [Thu, 27 Oct 2022 09:45:36 +0000 (10:45 +0100)]
pvr: Complete pvr_isp_ctrl_stream()

This also adds pvr_pbe_src_format_ds(), the equivalent to
pvr_pbe_src_format_normal() for depth/stencil formats.

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Support single core transfer queue commands on multicore GPUs
Sarah Walker [Wed, 16 Nov 2022 17:15:28 +0000 (17:15 +0000)]
pvr: Support single core transfer queue commands on multicore GPUs

Co-authored-by: Matt Coster <matt.coster@imgtec.com>
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement simple internal format v2 transfer paths.
Karmjit Mahil [Mon, 15 Aug 2022 08:11:21 +0000 (09:11 +0100)]
pvr: Implement simple internal format v2 transfer paths.

This commit fixes the triangle demo on the AM62 by implementing
the paths that were left unimplemented due to the Chromebook not
having the simple internal format v2 feature.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Acked-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdClearDepthStencilImage API.
Rajnesh Kanwal [Tue, 16 Aug 2022 21:27:11 +0000 (22:27 +0100)]
pvr: Implement vkCmdClearDepthStencilImage API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdResolveImage2KHR API.
Rajnesh Kanwal [Tue, 16 Aug 2022 20:45:36 +0000 (21:45 +0100)]
pvr: Implement vkCmdResolveImage2KHR API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdFillBuffer API.
Rajnesh Kanwal [Tue, 16 Aug 2022 19:52:12 +0000 (20:52 +0100)]
pvr: Implement vkCmdFillBuffer API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdCopyImageToBuffer2 API.
Rajnesh Kanwal [Mon, 15 Aug 2022 09:52:11 +0000 (10:52 +0100)]
pvr: Implement vkCmdCopyImageToBuffer2 API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdClearColorImage API.
Rajnesh Kanwal [Thu, 23 Jun 2022 14:31:06 +0000 (15:31 +0100)]
pvr: Implement vkCmdClearColorImage API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdBlitImage API.
Rajnesh Kanwal [Mon, 13 Jun 2022 15:31:40 +0000 (16:31 +0100)]
pvr: Implement vkCmdBlitImage API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdCopyImage2KHR API.
Rajnesh Kanwal [Fri, 10 Jun 2022 11:55:07 +0000 (12:55 +0100)]
pvr: Implement vkCmdCopyImage2KHR API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdCopyBufferToImage API.
Rajnesh Kanwal [Tue, 7 Jun 2022 11:46:09 +0000 (12:46 +0100)]
pvr: Implement vkCmdCopyBufferToImage API.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Implement vkCmdUpdateBuffer().
Karmjit Mahil [Wed, 27 Jul 2022 15:25:00 +0000 (16:25 +0100)]
pvr: Implement vkCmdUpdateBuffer().

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Acked-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Add support to process transfer and blit cmds
Rajnesh Kanwal [Tue, 17 May 2022 16:19:31 +0000 (17:19 +0100)]
pvr: Add support to process transfer and blit cmds

Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Co-authored-by: Matt Coster <matt.coster@imgtec.com>
Co-authored-by: Sarah Walker <sarah.walker@imgtec.com>
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Signed-off-by: Sarah Walker <sarah.walker@imgtec.com>
Acked-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: replace transfer EOT binary shaders with run-time compiled shaders
Frank Binns [Wed, 15 Feb 2023 23:45:53 +0000 (23:45 +0000)]
pvr: replace transfer EOT binary shaders with run-time compiled shaders

Take the opportunity to tweak the naming of pvr_transfer_ctx_setup_shaders and
pvr_transfer_ctx_fini_shaders to make them fit in with the rest of the naming in
the driver.

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Add support for generating transfer EOT programs
Simon Perretta [Mon, 13 Feb 2023 23:03:44 +0000 (23:03 +0000)]
pvr: Add support for generating transfer EOT programs

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Add support for generating transfer fragment programs
Simon Perretta [Sat, 11 Feb 2023 22:34:05 +0000 (22:34 +0000)]
pvr: Add support for generating transfer fragment programs

Co-authored-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Co-authored-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Use movc for reading special registers
Simon Perretta [Fri, 24 Feb 2023 17:52:09 +0000 (17:52 +0000)]
pvr: Use movc for reading special registers

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Amend validation when checking multiple supported types
Simon Perretta [Fri, 24 Feb 2023 13:08:35 +0000 (13:08 +0000)]
pvr: Amend validation when checking multiple supported types

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: Add missing includes in pvr_common.h
Karmjit Mahil [Wed, 22 Feb 2023 15:58:25 +0000 (15:58 +0000)]
pvr: Add missing includes in pvr_common.h

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

18 months agopvr: use util_dynarray_begin() in more places
Frank Binns [Mon, 20 Feb 2023 12:06:16 +0000 (12:06 +0000)]
pvr: use util_dynarray_begin() in more places

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agopvr: add missing explicit check against VK_SUCCESS
Frank Binns [Fri, 17 Feb 2023 15:23:28 +0000 (15:23 +0000)]
pvr: add missing explicit check against VK_SUCCESS

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Acked-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21550>

18 months agoiris,crocus: Add proper way of assigning num_levels value
Viktoriia Palianytsia [Mon, 20 Mar 2023 11:41:16 +0000 (13:41 +0200)]
iris,crocus: Add proper way of assigning num_levels value

Changes miptree_level_range_length function
to use correct macro and
num_levels value assignment.

Closes: mesa/mesa#8256

Signed-off-by: Viktoriia Palianytsia <v.palianytsia@globallogic.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22067>

18 months agoradv: Enable IB2 workaround on all indirect draws.
Timur Kristóf [Tue, 18 Apr 2023 10:59:33 +0000 (12:59 +0200)]
radv: Enable IB2 workaround on all indirect draws.

IB2 packets hang GFX6 when they contain any indirect draws,
not just the MULTI versions.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22533>