David Heidelberg [Sat, 3 Sep 2022 22:35:01 +0000 (00:35 +0200)]
ci: export whole results/ directory for all traces jobs
We use `results/results.json.bz2` in `update_traces_checksum.py`.
Just few extra KiB.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Sat, 3 Sep 2022 18:54:40 +0000 (20:54 +0200)]
ci: performance traces: make use of no-perf label
Traces with label `no-perf` will be skipped in performance testing.
This commit adds the yq tool, which preprocesses the traces.yml file
before sending it to the piglit.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Sat, 3 Sep 2022 19:06:09 +0000 (21:06 +0200)]
ci: check traces.yml files with yamllint
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 20:23:07 +0000 (22:23 +0200)]
ci/crocus: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 20:10:32 +0000 (22:10 +0200)]
ci/i915: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 20:03:05 +0000 (22:03 +0200)]
ci/intel: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 19:43:33 +0000 (21:43 +0200)]
ci/radeonsi: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 19:25:49 +0000 (21:25 +0200)]
ci/panfrost: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 19:14:07 +0000 (21:14 +0200)]
ci/broadcom: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 19:01:25 +0000 (21:01 +0200)]
ci/lavapipe: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 18:59:05 +0000 (20:59 +0200)]
ci/llvmpipe: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Tue, 30 Aug 2022 18:43:44 +0000 (20:43 +0200)]
ci/virgl: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
David Heidelberg [Sat, 20 Aug 2022 21:59:46 +0000 (23:59 +0200)]
ci/freedreno: convert traces to new YAML format
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18329>
Karmjit Mahil [Fri, 26 Aug 2022 15:15:21 +0000 (16:15 +0100)]
pvr: Handle VK_CULL_MODE_FRONT_AND_BACK.
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/18550>
Samuel Pitoiset [Mon, 29 Aug 2022 16:38:01 +0000 (18:38 +0200)]
radv: advertise extendedDynamicState2PatchControlPoints
For less stuttering with Zink, also required by Zink for full GPL.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6584
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/18344>
Samuel Pitoiset [Tue, 30 Aug 2022 15:11:57 +0000 (17:11 +0200)]
radv: implement dynamic patch control points
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/18344>
Samuel Pitoiset [Mon, 29 Aug 2022 16:35:52 +0000 (18:35 +0200)]
radv: move emitting GE_CNTL for non-NGG pipelines from the cmdbuf
GE_CNTL is the equivalent of IA_MULTI_VGT_PARAM on GFX9 and older.
Calling this function for every draw shouldn't really hurt in practice
because only non-NGG pipelines need this.
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/18344>
Samuel Pitoiset [Mon, 29 Aug 2022 16:27:52 +0000 (18:27 +0200)]
radv: move emitting PRIMGROUP_SIZE for <= GFX9 from the cmdbuf
The number of tessellation patches that is computed from the number
of patch control points might change dynamically too.
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/18344>
Samuel Pitoiset [Mon, 29 Aug 2022 16:12:23 +0000 (18:12 +0200)]
radv: pass the number of patch control points to si_get_ia_multi_vgt_param()
To prepare for dynamic patch control points.
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/18344>
Samuel Pitoiset [Tue, 30 Aug 2022 14:39:22 +0000 (16:39 +0200)]
radv: add ABI lowering support for dynamic patch control points
The number of patch control points (TCS) and the number of patches
(TCS/TES) is read from user SGPRs.
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/18344>
Samuel Pitoiset [Tue, 30 Aug 2022 15:05:11 +0000 (17:05 +0200)]
radv: add shader arguments for dynamic patch control points
This introduces two new user SGPRS:
- tcs_offchip_layout: input patch size and number of patches in TCS
- tes_num_patches: number of patches in TES
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/18344>
Samuel Pitoiset [Tue, 30 Aug 2022 15:49:34 +0000 (17:49 +0200)]
aco: prevent a division by zero when patch control points is dynamic
tess_input_vertices is zero if the state is dynamic.
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/18344>
Samuel Pitoiset [Wed, 31 Aug 2022 13:01:02 +0000 (15:01 +0200)]
radv: set workgroup_size to 256 when patch control points is dynamic
It's the maximum possible value. This is to ensure that compilers
don't optimize away barriers, like in ACO when workgroup_size is less
than or equal to wave_size, s_barrier is considered a no-op.
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/18344>
Samuel Pitoiset [Wed, 31 Aug 2022 13:00:43 +0000 (15:00 +0200)]
radv: skip computing some tess info when patch control points is dynamic
We don't know the value.
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/18344>
Samuel Pitoiset [Tue, 30 Aug 2022 14:34:14 +0000 (16:34 +0200)]
radv: add radv_pipeline_key::dynamic_patch_control_points
This will be used to compile different tessellation shaders when
patch control points is dynamic.
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/18344>
Samuel Pitoiset [Wed, 31 Aug 2022 09:16:05 +0000 (11:16 +0200)]
radv: emit the LDS size for TCS directly from the pipeline on GFX9+
To be consistent with the LDS shader config for LS, and this will
be emitted from the cmdbuf for dynamic patch control points.
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/18344>
Samuel Pitoiset [Wed, 31 Aug 2022 09:00:10 +0000 (11:00 +0200)]
radv: reword a comment about dynamic states when rasterization is disabled
Make it more generic instead of listing all states.
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/18344>
Erik Faye-Lund [Mon, 12 Sep 2022 12:12:29 +0000 (14:12 +0200)]
docs/zink: document rgtc requirement
OpenGL 3.0 requires RGTC support, and until we have emulation in place,
we should document that requirement.
Fixes:
d50e8554b99 ("zink: add feature-documentation")
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18549>
Samuel Pitoiset [Thu, 1 Sep 2022 10:18:54 +0000 (12:18 +0200)]
radv: upload the PS epilog in the existing pipeline BO
This reduces the number of BOs needed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18363>
Samuel Pitoiset [Thu, 1 Sep 2022 10:14:11 +0000 (12:14 +0200)]
radv: store the binary to radv_shader_part
This is currently always freed after the upload but this will allow
to upload the PS epilog later.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18363>
Samuel Pitoiset [Thu, 1 Sep 2022 09:33:40 +0000 (11:33 +0200)]
radv: split upload_shader_part() in two parts
One that creates the radv_shader_part object and one that uploads it.
This will be used to upload the PS epilogs as part of the existing
pipeline BO.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18363>
Samuel Pitoiset [Thu, 1 Sep 2022 09:55:49 +0000 (11:55 +0200)]
radv: store the VS prologs/PS epilogs VA at upload time
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18363>
Samuel Pitoiset [Mon, 12 Sep 2022 06:18:37 +0000 (08:18 +0200)]
radv/ci: re-enable dEQP-VK.renderpass2.depth_stencil_resolve.*_samplemask
Since RADV switched to 100% dynamic rendering, image transitions for
attachments not used in a subpass are correctly performed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18542>
Samuel Pitoiset [Thu, 1 Sep 2022 11:56:34 +0000 (13:56 +0200)]
radv: add a pointer to radv_shader_binary in radv_shader
With GPL, we will have to keep the shader binary in the library for
uploading it later, so it's easier to have a pointer in radv_shader.
The shader binary will be freed when the library is destroyed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18515>
Caio Oliveira [Sat, 10 Sep 2022 18:09:15 +0000 (11:09 -0700)]
intel/compiler: Use brw_ud* helpers in thread payload code
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Fri, 9 Sep 2022 23:52:10 +0000 (16:52 -0700)]
intel/compiler: Add a few more brw_ud* helpers
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Tue, 30 Aug 2022 00:13:00 +0000 (17:13 -0700)]
intel/compiler: Make thread_payload struct abstract
Each shader stage has its own struct and will instantiate it, so the
base class doesn't need to be instantiated anymore.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Tue, 23 Aug 2022 04:47:02 +0000 (21:47 -0700)]
intel/compiler: Create and use struct for CS thread payload
Move subgroup_id, that's only used by CS for verx10 < 125, as part of
the payload too -- even though is not, strictly speaking.
Note the thread execution of Task/Mesh is similar enough, so we make
their common struct inherit from cs_thread_payload.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Tue, 30 Aug 2022 07:47:32 +0000 (00:47 -0700)]
intel/compiler: Export brw_get_subgroup_id_param_index()
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Fri, 26 Aug 2022 00:00:15 +0000 (17:00 -0700)]
intel/compiler: Create and use struct for Bindless thread payload
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Tue, 23 Aug 2022 06:02:34 +0000 (23:02 -0700)]
intel/compiler: Store start of ICP handles in GS thread payload struct
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Tue, 23 Aug 2022 05:23:17 +0000 (22:23 -0700)]
intel/compiler: Create and use struct for GS thread payload
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Mon, 22 Aug 2022 06:05:08 +0000 (23:05 -0700)]
intel/compiler: Create and use struct for TASK and MESH thread payloads
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Mon, 22 Aug 2022 04:22:12 +0000 (21:22 -0700)]
intel/compiler: Create and use struct for VS thread payload
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Mon, 22 Aug 2022 03:51:58 +0000 (20:51 -0700)]
intel/compiler: Create and use struct for TES thread payload
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Sat, 20 Aug 2022 00:31:37 +0000 (17:31 -0700)]
intel/compiler: Store start of ICP handles in TCS thread payload struct
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Fri, 19 Aug 2022 22:04:15 +0000 (15:04 -0700)]
intel/compiler: Store Primitive ID in TCS thread payload struct
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Fri, 19 Aug 2022 21:57:31 +0000 (14:57 -0700)]
intel/compiler: Store Patch URB output in TCS thread payload struct
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Fri, 19 Aug 2022 21:41:52 +0000 (14:41 -0700)]
intel/compiler: Create struct for TCS thread payload
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Fri, 19 Aug 2022 19:40:20 +0000 (12:40 -0700)]
intel/compiler: Use FS thread payload only for FS
Move the setup into the FS thread payload constructor. Consolidate
payload setup for that in brw_fs_thread_payload.cpp file.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Caio Oliveira [Fri, 19 Aug 2022 19:18:21 +0000 (12:18 -0700)]
intel/compiler: Make a type for Thread Payload and FS variant
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
Jordan Justen [Mon, 8 Nov 2021 22:20:24 +0000 (14:20 -0800)]
intel/devinfo: Add MTL platforms enums and intel_device_info_is_mtl()
Ref: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/drm/i915_pciids.h?h=v6.0-rc4#n736
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18482>
Alyssa Rosenzweig [Sat, 10 Sep 2022 20:08:13 +0000 (16:08 -0400)]
nir/lower_blend: Avoid emitting unnecessary fsats
The option struct passed to nir_lower_blend doesn't have a "blending
disabled" flag. Unless blending is skipped due to logic ops or
framebuffer formats, nir_lower_blend always blends, even if the blend
mode is "replace" (corresponding to the API level blend disable).
That's mostly okay, since NIR can optimize out the code, at the expense
of a little compile time. However, there's a catch: nir_lower_blend
emits fsat at the start of the shader (for UNORM framebuffers, or
fsat_signed for SNORM). We can expect hardware to saturate the input to
store_output itself, so these operations are redundant, but it's tricky
to optimize these instructions out otherwise. Don't even try: detect the
replace blend mode and don't call nir_blend in that case. Colour masking
is still applied as usual.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18535>
Timur Kristóf [Fri, 9 Sep 2022 16:26:15 +0000 (18:26 +0200)]
radv: Enable subgroup feature bits for mesh and task shaders.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18520>
Timur Kristóf [Fri, 9 Sep 2022 16:35:09 +0000 (18:35 +0200)]
radv: Replace NV_mesh_shader macros with EXT.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18521>
Yiwei Zhang [Mon, 12 Sep 2022 18:00:50 +0000 (18:00 +0000)]
venus: avoid fixing pipeline if not derivative
Fixes:
33e791bc02a ("venus/pipeline: Ignore basePipelineHandle")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18555>
Yiwei Zhang [Mon, 12 Sep 2022 17:46:59 +0000 (17:46 +0000)]
venus: zero out the pipeline handles
We only have to zero out the handles on failure, which is missed. For
pipelines, we can just do it at the beginning for simplicity.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18555>
Yiwei Zhang [Mon, 12 Sep 2022 05:39:17 +0000 (05:39 +0000)]
venus: vn_ResetDescriptorPool to reset mutable type states
Fixes:
de5879447b4 ("Track bitset when create descriptor pool")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18555>
Yiwei Zhang [Mon, 12 Sep 2022 05:30:53 +0000 (05:30 +0000)]
venus: fix an oob in descriptor pool state restoration
Fixes:
de5879447b4 ("Track bitset when create descriptor pool")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18555>
Adam Jackson [Mon, 12 Sep 2022 18:37:50 +0000 (14:37 -0400)]
Revert "glx: Use XSaveContext, delete glxhash.c"
This reverts commit
057c58b39bae8317ffbec666366a526cb17d0160.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7242
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18556>
Pavel Ondračka [Sat, 27 Aug 2022 18:16:56 +0000 (20:16 +0200)]
r300: add special path for merging movs with the same source
This is quite rare but still helps few tesseract shaders and
is quite straightforward.
shader-db with RV530:
total instructions in shared programs: 135671 -> 135646 (-0.02%)
instructions in affected programs: 322 -> 297 (-7.76%)
helped: 13
HURT: 0
Reviewed-by: Filip Gawin <filip@gawin.net>
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18288>
Pavel Ondračka [Thu, 11 Aug 2022 12:49:15 +0000 (14:49 +0200)]
r300: merge together MOV and MAD instructions
Assuming they write different channels of the same destination
and they share at least one source or one of the sources is
RC_FILE_NONE.
shader-db with RV530:
total instructions in shared programs: 136033 -> 135673 (-0.26%)
instructions in affected programs: 22987 -> 22627 (-1.57%)
total temps in shared programs: 18977 -> 18965 (-0.06%)
temps in affected programs: 74 -> 62 (-16.22%)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6188
Reviewed-by: Filip Gawin <filip@gawin.net>
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18288>
Pavel Ondračka [Fri, 26 Aug 2022 12:57:25 +0000 (14:57 +0200)]
r300: run copy propagate once more after merging channels
The previous pass can actually create some new movs that are eligible
for copy propagation. There is some minor inctruction and temps
improvement but the biggest win is a gained gnome-shell shader.
Nine more still fail with too many instructions though.
GAINED: shaders/gnome-shell-42/6-1.shader_test FS
shader-db with RV530:
total instructions in shared programs: 136382 -> 135538 (-0.62%)
instructions in affected programs: 31021 -> 30177 (-2.72%)
total temps in shared programs: 18939 -> 18937 (-0.01%)
temps in affected programs: 563 -> 561 (-0.36%)
Reviewed-by: Filip Gawin <filip@gawin.net>
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18288>
Tapani Pälli [Mon, 12 Sep 2022 10:18:39 +0000 (13:18 +0300)]
intel/compiler: fix assert from ver to verx10
Fixes:
027b8b42490 ("intel/compiler: Add helper for barrier message payload setup for gfx >= 125")
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/18546>
Jordan Justen [Thu, 8 Sep 2022 05:50:47 +0000 (22:50 -0700)]
intel/compiler: Use builder to allocate fs regs for gs control data bits
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18537>
Caio Oliveira [Sun, 11 Sep 2022 06:25:28 +0000 (23:25 -0700)]
intel/compiler: Use builder to allocate fs regs for TCS store output
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18537>
James Zhu [Mon, 29 Aug 2022 19:46:20 +0000 (15:46 -0400)]
amd/common: some ASICs with gfx9 use compute rings for render
Some ASICs with gfx9 use compute rings for render.
Fixes:
983223de5dc01f50 - ac/gpu_info: use the kernel-reported
GFX IP version to set gfx_level
-v2: update merge requests num
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18553>
Illia Polishchuk [Mon, 12 Sep 2022 07:36:17 +0000 (10:36 +0300)]
mesa: skip extra state updates for clear calls
The glClear call updates draw state in the same way as other draw calls
with _mesa_update_state func
If currently used shader uses textures, _mesa_update_state will try to
update the shader texture state
But if the texture not set yet, before glClear call, it will detect
incompleted texture and will create dummy texture with default values
(see the update_single_program_texture func).
And this will be complete waste of time for glClear
Closes: #7128
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18459>
Alyssa Rosenzweig [Sun, 11 Sep 2022 22:12:09 +0000 (18:12 -0400)]
pan/decode: Fix job cycle detection
We need to look at the job header pointers themselves, not the memory objects
that contain them, because there can be (and usually is) multiple jobs per BO.
Fixes:
3da8c9193c3 ("panfrost: Handle Job VA cycles when decoding a dump file")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18539>
Iago Toral Quiroga [Mon, 12 Sep 2022 08:54:52 +0000 (10:54 +0200)]
v3dv: expose VK_EXT_primitive_topology_list_restart
The hw supports restarts of list primmitives and we pass
all the relevant CTS tests.
We don't advertise patch list restarts because we don't support
tessellation shaders yet.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18544>
Oleksii Bozhenko [Thu, 8 Sep 2022 19:45:45 +0000 (22:45 +0300)]
anv: Allow aliasing with modifiers for WSI images
Ignore ALIAS_BIT when format comes from WSI because
we have the ability to bind the MEMORY_BINDING_PRIVATE
from the other WSI image.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7019
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18347>
Oleksii Bozhenko [Thu, 8 Sep 2022 19:44:40 +0000 (22:44 +0300)]
vulkan/wsi: Pass wsi_image_create_info into anv_GetPhysicalDeviceImageFormatProperties2
Signed-off-by: Oleksii Bozhenko <oleksii.bozhenko@globallogic.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18347>
Karmjit Mahil [Mon, 28 Mar 2022 12:02:44 +0000 (13:02 +0100)]
pvr: Add mid fragment pipeline barrier if needed.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18124>
Karmjit Mahil [Thu, 17 Mar 2022 11:25:54 +0000 (11:25 +0000)]
pvr: Implement clear ppp state emission from template.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18124>
Karmjit Mahil [Thu, 4 Aug 2022 13:00:57 +0000 (14:00 +0100)]
Revert "pvr: Make pvr_cmd_pack() macro clearly internal"
This reverts commit
27c57b86500ce48154533d78b74350c31152b2f3.
The driver doesn't always pack or emit words directly. In some
cases it might be desirable to store the struct equivalent for the
control word and emit/pack at a later stage. Thus reverting to
expose pvr_cmd_pack().
One such use case is in the following commit.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18124>
Karmjit Mahil [Thu, 17 Mar 2022 11:28:37 +0000 (11:28 +0000)]
pvr: Add graphics pipeline barrier handling.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18124>
Karmjit Mahil [Tue, 15 Mar 2022 14:43:17 +0000 (14:43 +0000)]
pvr: Add static clear VDM state in pvr_device.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18124>
Karmjit Mahil [Mon, 14 Mar 2022 16:14:26 +0000 (16:14 +0000)]
pvr: Add static clear control stream templates in pvr_device.
The templates will be used to flush fragment work at the
pipeline barrier. They will also be used in
vkCmdClearAttachments().
"pds_state" is a pointer to an array. This is done to prevent a
memcpy() patching the PDS state. Whenever the template requires
PDS state we will always be patching it so let's just pass a
pointer instead. Using a pointer here also allows to check (with a
NULL check) whether the pds state in the template was configured
prior to emitting.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18124>
Karmjit Mahil [Mon, 18 Jul 2022 12:29:32 +0000 (13:29 +0100)]
pvr: Add clear program in pvr_device.
It gets used to flush fragment work for a graphics pipeline
barrier.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18124>
Roman Stratiienko [Sat, 10 Sep 2022 15:42:50 +0000 (18:42 +0300)]
Android: Use libgbm_mesa name for SDK30+
libgbm.so name has been occupied in AOSP by minigbm starting from
Android-11 (SDKv30).
In AOSP's mesa3d fork, libgbm was renamed to libgbm_mesa.
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18533>
Samuel Pitoiset [Fri, 9 Sep 2022 07:55:49 +0000 (09:55 +0200)]
radv: fix pipelineStageCreationFeedbackCount when it's 0
From the Vulkan spec 1.3.227:
"If pipelineStageCreationFeedbackCount is not 0,
pPipelineStageCreationFeedbacks must be a valid pointer to an
array of pipelineStageCreationFeedbackCount
VkPipelineCreationFeedback structures."
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18513>
Karol Herbst [Sat, 10 Sep 2022 13:32:45 +0000 (15:32 +0200)]
rusticl: add README file
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Thu, 11 Aug 2022 16:11:07 +0000 (18:11 +0200)]
ci: rusticl with llvmpipe
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Fri, 5 Aug 2022 20:29:46 +0000 (22:29 +0200)]
rusticl/program: some more API validation
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Fri, 24 Jun 2022 16:55:53 +0000 (18:55 +0200)]
rusticl: call glsl_type_singleton_init_or_ref
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Thu, 12 May 2022 16:38:27 +0000 (18:38 +0200)]
rusticl: proper PIPE_MAP flags for internal maps
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Mon, 9 May 2022 11:21:26 +0000 (13:21 +0200)]
rusticl/kernel: use real references for arguments
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Thu, 5 May 2022 23:38:23 +0000 (01:38 +0200)]
rusticl/icd: add some way of debugging CL function calls
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Fri, 6 May 2022 11:10:56 +0000 (13:10 +0200)]
rusticl/icd: implement clGetExtensionFunctionAddressForPlatform
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Thu, 5 May 2022 22:27:32 +0000 (00:27 +0200)]
rusticl/device: report mesas version for CL_DRIVER_VERSION
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Wed, 4 May 2022 17:43:26 +0000 (19:43 +0200)]
rusticl/kernel: fix local buffers
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Wed, 4 May 2022 10:06:04 +0000 (12:06 +0200)]
rusticl/program: parse quoted paths in args
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Tue, 3 May 2022 19:52:42 +0000 (21:52 +0200)]
rusticl/device: allow overwriting the device_type via env
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Thu, 28 Apr 2022 00:49:00 +0000 (02:49 +0200)]
rusticl: disable fp64 support
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Wed, 27 Apr 2022 19:19:15 +0000 (21:19 +0200)]
rusticl/memory: kernel read_write images prep work
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Sat, 23 Apr 2022 01:05:09 +0000 (03:05 +0200)]
rusticl/program: some boilerplate code for SPIR-V support
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Sun, 24 Apr 2022 11:21:32 +0000 (13:21 +0200)]
rusticl/kernel: implement CL_KERNEL_ATTRIBUTES
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Thu, 21 Apr 2022 00:10:13 +0000 (02:10 +0200)]
rusticl: the CTS is a piece of shit
seriously, this fixes some image test, becaues ... rounding modes on CPU
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Wed, 20 Apr 2022 13:27:57 +0000 (15:27 +0200)]
rusticl/kernel: optimize local size
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
Karol Herbst [Tue, 19 Apr 2022 21:49:34 +0000 (23:49 +0200)]
rusticl: fix compiler features_macro
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>