Dave Airlie [Wed, 7 Jun 2023 05:33:34 +0000 (15:33 +1000)]
draw: add a max stage define and use it in a few places
This should decrease the size of some memory allocations.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23487>
Dave Airlie [Wed, 7 Jun 2023 05:16:47 +0000 (15:16 +1000)]
draw: refactor resources to use arrays instead of explicit structs.
This should simplify the code and make it easier to refactor later.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23487>
Dave Airlie [Wed, 7 Jun 2023 05:00:56 +0000 (15:00 +1000)]
gallium/tgsi/draw/softpipe: remodel shader const/buffer bindings.
This remodels things around a buffer object.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23487>
Dave Airlie [Wed, 7 Jun 2023 05:00:25 +0000 (15:00 +1000)]
draw/tess: drop unused tgsi bits.
tess isn't supported by tgsi
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23487>
Dave Airlie [Wed, 7 Jun 2023 04:33:34 +0000 (14:33 +1000)]
draw: rename jit to vs_jit in lots of places.
we should have done this when geom shaders got added,
do it now, will make it easier to consolidate some code in macros
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23487>
Dave Airlie [Wed, 7 Jun 2023 01:25:49 +0000 (11:25 +1000)]
gallivm/nir: fix shuffleup tests.
So the shuffleup tests did a shuffle up with const 5,
we'd use invocation id (0..8) shuffle it down by 5,
get (-5..3), then call llvmshufflevector with that
which is totally illegal.
There might be a nicer way to fix this, but I can't see
it straight away, just bail on the fast path.
Fixes:
dEQP-VK.subgroups.shuffle.compute.subgroupshuffleup*
Cc: mesa-stable
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23484>
Mike Blumenkrantz [Fri, 2 Jun 2023 14:22:11 +0000 (10:22 -0400)]
lavapipe: NV_device_generated_commands
this adds sufficient handling to pass the vkd3d-proton tests as well
as running cts on zink, which is gonna have to be enough since there's
no vkcts
it works by dynamically generating a vk_cmd_queue list of commands just
like the regular cmd queue would generate, with the minor change that
the final link has a nulled next pointer to correctly handle buffer copies,
where the last link would otherwise have a next pointer pointing to the
original cmd list
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23394>
Mike Blumenkrantz [Fri, 2 Jun 2023 14:19:36 +0000 (10:19 -0400)]
lavapipe: handle index buffers with offsets for indirect draws
gallium has no mechanism for setting an offset to the index buffer,
so this requires a new buffer to be created+bound dynamically at
the specified offset in order to read the correct data
cc: mesa-stable
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23394>
Mike Blumenkrantz [Wed, 31 May 2023 16:01:24 +0000 (12:01 -0400)]
lavapipe: add a zeroed buffer that can be bound in place of an index buffer
technically this is illegal in vulkan semantics, but some extensions have
their own definition of "illegal" when it comes to binding index buffers
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23394>
Mike Blumenkrantz [Wed, 31 May 2023 15:59:25 +0000 (11:59 -0400)]
lavapipe: add a mapping for BDA
when passing around BDA, it's important to be able to link the pointer
back to the pipe_resource since BDA doesn't have an explicit lifetime
this mapping enables cmds to receive a BDA pointer and then map it back
to a pipe_resource in order to avoid gymnastics with dynamically creating
pipe_resource objects which may or may not be able to be freed
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23394>
Mike Blumenkrantz [Thu, 25 May 2023 14:11:33 +0000 (10:11 -0400)]
lavapipe: pass list to cmdbuf exec, not cmdbuf
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23394>
Daniel Schürmann [Wed, 10 May 2023 07:48:46 +0000 (09:48 +0200)]
radv/rt: remove now dead code
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Wed, 22 Mar 2023 01:12:35 +0000 (02:12 +0100)]
radv/rt: use priorities to select the next shader
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Wed, 22 Mar 2023 20:21:31 +0000 (21:21 +0100)]
radv/debug: dump ray tracing shaders in case of a hang
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Fri, 10 Mar 2023 17:40:58 +0000 (18:40 +0100)]
radv/rt: separate shader compilation
With this patch, we compile separately
- general shaders (raygen, miss, callable)
- closest-hit shaders
- traversal shader (incl. all intersection / any-hit shaders)
Each shader uses the following scheme:
if (shader_pc == shader_va) {
<shader code>
}
next = select_next_shader(shader_va)
jump next
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Thu, 9 Mar 2023 16:44:46 +0000 (17:44 +0100)]
aco: adjust RT prolog for shader functions [disables RT]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Thu, 9 Mar 2023 15:13:41 +0000 (16:13 +0100)]
radv/rt: adjust lower_rt_instructions() for shader functions [disables RT]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Wed, 8 Mar 2023 11:27:27 +0000 (12:27 +0100)]
radv/rt: set up RT shader args for separate compilation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Friedrich Vock [Sun, 30 Apr 2023 18:01:35 +0000 (20:01 +0200)]
radv: Disable capture/replay handles
They don't work with separate compilation. Fixing this involves some
refactoring work, which will come in future MRs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Tue, 9 May 2023 09:15:19 +0000 (11:15 +0200)]
radv/rt: create compile_rt_prolog() function
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Tue, 9 May 2023 00:13:30 +0000 (02:13 +0200)]
radv/rt: don't write cache hit feedback per stage.
Too much boilerplate for no benefit.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Mon, 8 May 2023 17:41:12 +0000 (19:41 +0200)]
radv/rt: reference library shaders during radv_rt_fill_stage_info()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Mon, 20 Mar 2023 23:42:11 +0000 (00:42 +0100)]
radv/rt: add and use specialized cache search/insert functions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Thu, 1 Jun 2023 10:20:31 +0000 (12:20 +0200)]
radv/rt: pass radv_ray_tracing_pipeline to RT shader creation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Thu, 1 Jun 2023 09:59:29 +0000 (11:59 +0200)]
radv/rt: replace pCreateInfo with VkPipelineCreateFlags in rt_variables
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Tue, 9 May 2023 10:06:46 +0000 (12:06 +0200)]
radv/rt: change RT main shader to MESA_SHADER_INTERSECTION
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Wed, 8 Mar 2023 03:27:30 +0000 (04:27 +0100)]
radv/rt: implement radv_rt_nir_to_asm()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Mon, 6 Mar 2023 19:03:49 +0000 (20:03 +0100)]
radv/rt: implement radv_nir_lower_rt_abi to lower RT shaders for separate compilation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Tue, 11 Apr 2023 19:58:15 +0000 (21:58 +0200)]
radv/shader_info: add RT stages to radv_get_user_data_0()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Tue, 7 Mar 2023 23:36:45 +0000 (00:36 +0100)]
radv/rt: extend radv_pipeline_group_handle with shader VAs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Fri, 10 Mar 2023 19:10:25 +0000 (20:10 +0100)]
radv/rt: adjust shared_size when lowering hit_attribs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Fri, 10 Mar 2023 18:56:43 +0000 (19:56 +0100)]
aco: implement select_program_rt()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Thu, 12 May 2022 21:29:37 +0000 (23:29 +0200)]
aco: implement nir_intrinsic_load_resume_shader_address_amd
Similar to p_constaddr but targeting BBs.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Thu, 12 May 2022 21:21:57 +0000 (23:21 +0200)]
nir: add nir_intrinsic_resume_shader_address_amd
This intrinsic returns a pointer to the end of the shader
and is intended for stitched binaries.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Fri, 13 May 2022 10:49:40 +0000 (12:49 +0200)]
nir,amd: add nir_intrinsic_store_[scalar|vector]_arg_amd to overwrite inputs
This intrinsic must only be used at top-level CF in order
to not break SSA properties.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Daniel Schürmann [Wed, 8 Mar 2023 15:02:42 +0000 (16:02 +0100)]
radv: add remaining RT shader args for separate compilation
Also wrap RT args into struct {} rt for improved consistency
and remove some 'ray_' prefixes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22096>
Kenneth Graunke [Mon, 5 Jun 2023 21:14:09 +0000 (14:14 -0700)]
intel/genxml: Drop Tiled Resource Mode fields
Neither RENDER_SURFACE_STATE nor VDENC_SURFACE_CONTROL_BITS have a
Tiled Resource Mode field anymore. The RENDER_SURFACE_STATE field
was also overlapping with the L1 Cache Control settings field.
This also drops the assignment of that field in isl, because we were
just explicitly setting it to NONE (0) which is already the default
value genxml packing will give us. That saves us some ifdefs.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23449>
Nanley Chery [Thu, 18 May 2023 18:10:03 +0000 (11:10 -0700)]
iris: Assert against FCV_CCS_E for blitter writes
The FCV feature is documented to occur on regular render writes. Blitter
writes don't fall under that category. So, if the destination resource
of a blitter write had the FCV aux usage, we would have a good reason to
change the aux usage of the access to plain CCS_E.
We don't actually need to write code to handle this. iris doesn't use
any compression on blitter writes. Make that obvious with an assert.
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23220>
Nanley Chery [Thu, 18 May 2023 18:05:44 +0000 (11:05 -0700)]
iris: Avoid FCV_CCS_E for shader image accesses
The FCV feature is documented to occur on regular render writes. Images
are written to with the DC data port however.
By using plain CCS_E for image writes, we can avoid the COMPRESSED_CLEAR
aux state in more cases. Doing this can avoid full resolves or partial
resolves for future accesses.
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23220>
Nanley Chery [Wed, 24 May 2023 17:05:45 +0000 (10:05 -0700)]
iris: Avoid extra CCS_E flushes for aux mode changes
We're going to start toggling between FCV_CCS_E and CCS_E. When
switching aux modes, flush_previous_aux_mode would typically perform
cache flushes for good reason. In the case of switching between CCS_E
with FCV on vs off, we haven't found aux mode flushing to matter. Treat
both CCS_E variants as equivalent to avoid extra cache flushing.
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23220>
Nanley Chery [Wed, 12 Apr 2023 18:01:11 +0000 (11:01 -0700)]
intel: Rename the GFX12_CCS_E aux-usage to FCV_CCS_E
Rename the isl_aux_usage enum to clarify that it is optional on gfx125.
The new name comes from the Alchemist docs, where the feature is
referred to as "Fast Clear Optimization (FCV)".
The rename was done with this command:
git grep -l "GFX12_CCS_E" | xargs sed -ie "s/GFX12_CCS_E/FCV_CCS_E/g"
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23220>
Nanley Chery [Thu, 18 May 2023 20:11:07 +0000 (13:11 -0700)]
iris: Drop a GFX12_CCS_E check in can_fast_clear_color
The 8 bpp restriction isn't specific to the automatic fast clear
behavior of GFX12_CCS_E. It is applicable to both GFX12_CCS_E and CCS_E.
Drop the aux usage check completely.
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23220>
Caio Oliveira [Sat, 27 May 2023 04:54:53 +0000 (21:54 -0700)]
compiler/types: Make key in subroutine_name more effective
Use the string itself as a key for searching -- and the internal
allocated name as a key when storing.
Because record_key_hash doesn't consider the name field, which is
the only used field for a SUBROUTINE type, the hash key was always
the same for all types. Using the name fixes this.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23277>
Mark Janes [Mon, 5 Jun 2023 17:13:19 +0000 (10:13 -0700)]
anv: convert Wa_14010455700 to use workaround mechanism
The original lineage for
14010455700 is
1808121037. Use this defect
number to apply the workaround to relevant platforms with the new
workaround mechanism.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23380>
Mark Janes [Thu, 1 Jun 2023 16:18:28 +0000 (09:18 -0700)]
iris: convert Wa_14010455700 to use workaround mechanism
The original lineage for
14010455700 is
1808121037. Use this defect
number to apply the workaround to relevant platforms with the new
workaround mechanism.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23380>
Simon Ser [Fri, 19 May 2023 23:12:41 +0000 (01:12 +0200)]
Update OpenGL headers
Token from commit
91cdaf381d77b6e700654ecd78cb88a95c1fde1a of
OpenGL-Registry.
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23144>
Marek Olšák [Tue, 6 Jun 2023 15:40:13 +0000 (11:40 -0400)]
amd: drop support for LLVM 14
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23471>
Marek Olšák [Tue, 6 Jun 2023 15:09:11 +0000 (11:09 -0400)]
amd: drop support for LLVM 13
We can remove the LLVM 13 Wave32 discard workaround and
SI_PROFILE_IGNORE_LLVM13_DISCARD_BUG that disabled the workaround.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23471>
Marek Olšák [Tue, 6 Jun 2023 14:59:46 +0000 (10:59 -0400)]
amd: drop support for LLVM 12
The demote emulation can be removed, and FS_CORRECT_DERIVS_AFTER_KILL
can be removed because it's always enabled on LLVM >= 13.
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23471>
Marek Olšák [Tue, 6 Jun 2023 14:47:03 +0000 (10:47 -0400)]
amd: drop support for LLVM 11
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23471>
Yogesh Mohan Marimuthu [Tue, 6 Jun 2023 06:04:05 +0000 (11:34 +0530)]
ac/gpu_info: rearrange if checks for dcc config
rearrange the if checks so that there is less if checks
for newer gpus.
v2: fix block comment coding guideline (Marek Olšák)
simplify gfx9 if condition (Marek Olšák)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23454>
Yogesh Mohan Marimuthu [Tue, 6 Jun 2023 05:26:16 +0000 (10:56 +0530)]
ac/gpu_info: num_cu = 4 and gfx11 enable dcc with retile
With num_cu = 4 in gfx11 measured power for idle, video playback and observed
power savings, hence enable dcc with retile for gfx11 with num_cu >= 4.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23454>
Christian Gmeiner [Mon, 5 Jun 2023 13:32:13 +0000 (15:32 +0200)]
etnaviv: nir: do not call nir_lower_idiv(..) unconditionally
GPUs without native integers lower idiv in lower_int_to_float and
there is no need to call nir_lower_idiv(..) for such GPUs.
Fixes nir crashes I am seeing with gc2000_gles2 CI job.
Fixes:
f532202f2d5 ("etnaviv: use nir_lower_idiv(..) before opt loop")
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23450>
Iago Toral Quiroga [Tue, 6 Jun 2023 08:39:37 +0000 (10:39 +0200)]
v3d,v3dv: fix viewport offset for negative viewport center
If the viewport center is not positive we can't express it
through the fine coordinates, which are unsigned, and we
need to use the coarse coordinates too.
Fixes new crashes in Vulkan CTS 1.3.6.0:
dEQP-VK.draw.renderpass.offscreen_viewport.*negative*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23489>
Iago Toral Quiroga [Tue, 6 Jun 2023 08:38:26 +0000 (10:38 +0200)]
broadcom/cle: fix up viewport offset packet definition for V3D 4.1+
These are split between fine and coarse coordinates. We have only been
using fine until now, so we kept the same naming convention we had
prior to V3D 4.1 for simplicity, but we will start using the coarse
coordinates soon too.
Also, the signedness was reversed: coarse coordinates are signed and
fine coordinates are unsigned.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23489>
Iago Toral Quiroga [Mon, 5 Jun 2023 09:39:19 +0000 (11:39 +0200)]
v3dv: simplify scissor setup for negative viewport height
KHR_maintenance1 allows clients to specify a negative
height, but not a negative width, so assert on that and
simplify the computations for the horizontal dimension.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23489>
Iago Toral Quiroga [Mon, 5 Jun 2023 08:52:57 +0000 (10:52 +0200)]
v3dv: remove bogus viewport code
This is incorrectly undoing the code right above it.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23489>
Mike Blumenkrantz [Wed, 7 Jun 2023 13:03:40 +0000 (09:03 -0400)]
zink: add a ci flake
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23092>
Mike Blumenkrantz [Thu, 4 May 2023 13:49:23 +0000 (09:49 -0400)]
zink: enable EXT_shader_object globally with have_EXT_attachment_feedback_loop_dynamic_state
this leaves fbfetch as the lone case where it can't yet be used
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23092>
Mike Blumenkrantz [Thu, 4 May 2023 13:42:22 +0000 (09:42 -0400)]
zink: use dynamic state for feedback loops when available
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23092>
Mike Blumenkrantz [Thu, 4 May 2023 13:31:29 +0000 (09:31 -0400)]
zink: hook up VK_EXT_attachment_feedback_loop_dynamic_state
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23092>
Karmjit Mahil [Thu, 18 May 2023 16:02:43 +0000 (17:02 +0100)]
pvr: Fix PDS temps allocation on fragment stage
Previously the USC temps count was incorrectly being used for the
PDS temps count.
It was causing:
csbgen/pvr_packet_helpers.h:79:
__pvr_uint: Assertion `v <= max' failed.
This fixes the assert being hit on:
dEQP-VK.ubo.random.basic_arrays.2
dEQP-VK.ubo.random.all_shared_buffer.3
dEQP-VK.ubo.random.all_shared_buffer.48
dEQP-VK.ubo.random.all_out_of_order_offsets.3
This does not fully fix the tests though.
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Matt Coster <matt.coster@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23356>
Karmjit Mahil [Thu, 18 May 2023 15:31:34 +0000 (16:31 +0100)]
pvr: Rename temps_count to pds_temps_count
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Matt Coster <matt.coster@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23356>
Karmjit Mahil [Fri, 2 Jun 2023 16:19:06 +0000 (17:19 +0100)]
pvr: Fix draw indirect page faults due to missing index list buffer
Fixes:
dEQP-VK.draw.renderpass.basic_draw.draw_indirect.*
dEQP-VK.draw.renderpass.basic_draw.draw_indexed_indirect.*
Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Matt Coster <matt.coster@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23491>
Marek Olšák [Fri, 2 Jun 2023 08:01:40 +0000 (04:01 -0400)]
treewide: use uint64_t / (u)intptr_t in image address calculations
16K * 16K * 16bpp = 4G, which overflows int32, so layer_stride needs to
have 64 bits. More generally, any "byte_stride * height" computation
can overflow int32.
Use (u)intptr_t in some gallium and st/mesa places where we do CPU access.
Use uint64_t otherwise.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23389>
Oskar Rundgren [Wed, 3 May 2023 10:49:57 +0000 (11:49 +0100)]
pvr: add block compressed formats blit support
Surface dimensions and rectangle mappings need to be adjusted for
block compressed formats.
Signed-off-by: Oskar Rundgren <oskar.rundgren@imgtec.com>
Reviewed-by: Matt Coster <matt.coster@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23466>
Lucas Fryzek [Wed, 7 Jun 2023 10:58:01 +0000 (12:58 +0200)]
mailmap: Add Lucas Fryzek to mailmap
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23499>
Corentin Noël [Mon, 5 Jun 2023 07:40:57 +0000 (09:40 +0200)]
ci: uprev virglrenderer and crosvm
Update to their latest version on time
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23427>
Corentin Noël [Wed, 7 Jun 2023 07:11:26 +0000 (09:11 +0200)]
ci: Bump base tag to rebuild piglit
This has been forgotten in latest piglit uprev
Fixes:
d75973a1422d86799312d7aa60d0dce846fb3dba
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23427>
Samuel Pitoiset [Fri, 6 May 2022 11:58:48 +0000 (13:58 +0200)]
radv: advertise VK_KHR_fragment_shader_barycentric on GFX10.3+
It can't be supported on older hardware because it's impossible to
determine the provoking vertex ID without LOAD_PROVOKING_VTX which is
GFX10.3+ only.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6557
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Tue, 6 Jun 2023 15:25:41 +0000 (17:25 +0200)]
radv: gather info about nir_intrinsic_load_sample_positions_amd
nir_intrinsic_load_barycentric_coord_at_sample is lowered before the
radv_shader_info pass and load_sample_positions_amd might be needed.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Thu, 26 May 2022 09:37:24 +0000 (11:37 +0200)]
radv: add a NIR pass that lower fragment shader barycentric intrinsics
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Wed, 31 May 2023 07:19:00 +0000 (09:19 +0200)]
radv: configure RSRC1.LOAD_PROVOKING_VTX for the fragment shader
This enables provoking vertex info.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Wed, 31 May 2023 07:44:38 +0000 (09:44 +0200)]
radv: set ROTATE_PC_PTR for custom interpolations
This seems needed for computing stable barycentric coordinates.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Wed, 31 May 2023 07:44:21 +0000 (09:44 +0200)]
radv: handle per_vertex variables when gathering FS inputs
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Wed, 31 May 2023 14:31:15 +0000 (16:31 +0200)]
radv: add support for nir_intrinsic_load_rasterization_primitive_amd
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Wed, 31 May 2023 14:26:57 +0000 (16:26 +0200)]
nir: add nir_intrinsic_load_rasterization_primitive_amd
For VK_KHR_fragment_shader_barycentric, AMD needs to know the primitive
topology in the fragment shader but with fast-link GPL this is unknown
at compile time and it needs to be passed dynamically.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Mon, 5 Jun 2023 07:47:09 +0000 (09:47 +0200)]
radv: track if the rasterization primitive is known at compile time
For fast-linking with GPL, we might not know the pre-rasterization
stages at compile time (when only the FS is compiled) and we will need
to load the rasterization primitive through an user SGPR.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Tue, 21 Jun 2022 07:15:24 +0000 (09:15 +0200)]
radv: add support for nir_intrinsic_load_provoking_vtx_amd
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Samuel Pitoiset [Tue, 21 Jun 2022 07:12:35 +0000 (09:12 +0200)]
nir: add nir_intrinsic_load_provoking_vtx_amd
Will be used to load provoking vertex info from the hardware to
determine the provoking vertex ID.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16742>
Andres Gomez [Mon, 7 Mar 2022 08:49:51 +0000 (10:49 +0200)]
.mailmap: add an alias for Clayton Craft
Signed-off-by: Andres Gomez <agomez@igalia.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Clayton Craft <clayton@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15260>
Andres Gomez [Mon, 7 Mar 2022 08:46:13 +0000 (10:46 +0200)]
.mailmap: add an alias for Miguel Casas-Sanchez
Signed-off-by: Andres Gomez <agomez@igalia.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15260>
Matt Coster [Mon, 5 Jun 2023 15:31:14 +0000 (16:31 +0100)]
pvr: Don't overwrite PDS vertex input flags
Fixes:
dEQP-VK.draw.renderpass.simple_draw.simple_draw_triangle_list
dEQP-VK.draw.renderpass.simple_draw.simple_draw_triangle_strip
dEQP-VK.draw.renderpass.indexed_draw.draw_indexed_triangle_list
dEQP-VK.draw.renderpass.indexed_draw.draw_indexed_triangle_strip
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23458>
Matt Coster [Fri, 2 Jun 2023 15:05:50 +0000 (16:05 +0100)]
pvr: Allow S8_UINT to be used as a stencil attachment format
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23431>
Matt Coster [Fri, 2 Jun 2023 09:40:43 +0000 (10:40 +0100)]
pvr: Refactor pvr_unwind_rects()
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23430>
Matt Coster [Thu, 1 Jun 2023 15:15:32 +0000 (16:15 +0100)]
pvr: Correct calculations in pvr_unwind_rects()
Fixes:
6d3d1f884ceadf62e332e797e994b810a0e010b0
pvr: Fix rect splitting logic in pvr_unwind_rects()
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reported-by: Soroush Kashani <soroush.kashani@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23430>
Rhys Perry [Tue, 28 Feb 2023 16:05:44 +0000 (16:05 +0000)]
aco: remove memory_barrier_buffer implementation
This is no longer used.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21624>
Rhys Perry [Tue, 28 Feb 2023 17:44:33 +0000 (17:44 +0000)]
ac/nir: use scoped barriers to finish stores before exports
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21624>
Rhys Perry [Tue, 28 Feb 2023 17:44:01 +0000 (17:44 +0000)]
aco: consider position/primitive exports around memory barriers
This is needed to create barriers which ensure stores finish before
position/primitive exports.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21624>
Georg Lehmann [Thu, 20 Apr 2023 13:25:17 +0000 (15:25 +0200)]
aco: use v_fma_mix for f2f32 and f2f16 on gfx11 if wave64
v_fma_mix can be dual issued, trade some code size for throughput.
Foz-DB GFX1100:
Totals from 8204 (6.08% of 134864) affected shaders:
CodeSize:
89608584 ->
89693968 (+0.10%)
Latency:
160744811 ->
160699309 (-0.03%); split: -0.03%, +0.00%
InvThroughput:
19737977 ->
19678308 (-0.30%)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21402>
Georg Lehmann [Wed, 22 Feb 2023 16:31:06 +0000 (17:31 +0100)]
aco: use v_add_f{16,32} with clamp for fsat
v_add can be dual issued on gfx11, v_med3 cannot.
Don't use v_add directly to still optimize omod(fsat(x)).
Foz-DB GFX1100:
Totals from 32702 (24.24% of 134913) affected shaders:
Latency:
475008203 ->
474928037 (-0.02%); split: -0.02%, +0.00%
InvThroughput:
59226198 ->
59140787 (-0.14%); split: -0.14%, +0.00%
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21402>
Georg Lehmann [Thu, 11 May 2023 15:42:12 +0000 (17:42 +0200)]
aco/statistics: improve v_fma_mix dual issuing detection
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21402>
Georg Lehmann [Wed, 7 Jun 2023 08:01:06 +0000 (10:01 +0200)]
aco/ir: return true in hasRegClass for Operand(reg, rc)
Makes isOfType() usable after lower_to_hw_instr.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21402>
Vinson Lee [Sat, 3 Jun 2023 23:06:55 +0000 (16:06 -0700)]
vulkan/wsi: Remove duplicate NULL check
Fix defect reported by Coverity Scan.
Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement: return NULL;.
Fixes:
eadc64ab248 ("vulkan/wsi/display: do not dereference a NULL pointer")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23415>
Vinson Lee [Wed, 7 Jun 2023 06:34:31 +0000 (23:34 -0700)]
tu: Fix missing unlock
Fix defect reported by Coverity Scan.
Missing unlock (LOCK)
missing_unlock: Returning without unlocking dev->vma_mutex.
Fixes:
c20139c2922 ("tu: Enable bufferDeviceAddressCaptureReplay")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23490>
Christian Gmeiner [Fri, 2 Jun 2023 14:55:58 +0000 (16:55 +0200)]
etnaviv: move printing of final shader out of etna_link_shaders(..)
Printing the final shaders in etna_link_shaders(..) can be quite noisy and
does not work when using shader-db. Lets make it possible to stare at the
generaded shader code when using shader-db by moving the etna_dump_shader(..)
call into create_variant(..).
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23396>
Christian Gmeiner [Fri, 2 Jun 2023 14:51:23 +0000 (16:51 +0200)]
etnaviv: correct number of instructions in dump_shader_info(..)
code_size is overall size in uint32 words of the whole shader. As
Vivante GPUs have a fixed size ISA we simply need to divide code_size
by 4 to get the number if ISA instructions.
shader-db shows the correct numbers now.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23396>
Karol Herbst [Wed, 24 May 2023 14:30:04 +0000 (16:30 +0200)]
nv50/ir: convert to scoped_barrier
Contrary to how we implemented barriers the MEMBAR instruction actually
does not allow us to specify which memory to synchronize. We can only
specify the scope.
No regressions on TU102.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: M Henning <drawoc@darkrefraction.com>
Signed-off-by: Karol Herbst <git@karolherbst.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23208>
Juan A. Suarez Romero [Tue, 6 Jun 2023 11:51:38 +0000 (13:51 +0200)]
v3d: handle samplerExternalOES
Add handling for GLSL_SAMPLER_DIM_EXTERNAL.
Fixes `spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3`.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23469>
Yonggang Luo [Mon, 5 Jun 2023 09:26:51 +0000 (17:26 +0800)]
vulkan: move nir_convert_ycbcr into vulkan runtime
This only used by vulkan drivers and depends on vulkan util, so do the move to decouple
nir from vulkan utils
Reviewed-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23444>