Mike Blumenkrantz
b030b20d72
zink: unify some z24 sampler clamping code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
74cf4f4efc
zink: remove random format check in surface create
...
not sure why this was here
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
efcd6c11d9
zink: delete some redundant flagging of ctx->rp_changed
...
this already happens during unbind
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
635f0c5f4f
zink: delete transient attachments instead of leaking them
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
07cc25d968
zink: always directly create surfaces
...
no need to defer this anymore
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
a7bfa37c6a
zink: unify zink_resource_object_init_mutable() calling
...
this all goes through surface creation the same way
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
2ac0f97921
zink: delete surface handling of blockTexelViewCompatibleMultipleLayers
...
this is a pipe cap now
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
e7a2268ca2
zink: simplify code surrounding prep_fb_attachment()
...
there's no need to pass a surface here since no part
of the surface is actually used besides the resource
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
9a1f5e82ee
zink: clean up null surface case in prep_fb_attachment()
...
this is already checking for non-null surface in the caller,
and usage must be set after swapchain acquire to handle barriers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
78cd7f17af
zink: move zink_prep_fb_attachment up and make static
...
no longer used externally
also move update_res_sampler_layouts() as a dependency
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
0f58227324
zink: remove pipe_resource ref from bufferviews
...
this was only ever needed for shader images and bindless, which both
now take their own refs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
3da0853867
zink: make pipe_resource refs for image views more consistent
...
now they always get a ref on bind and lose the ref on unbind
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
6658533ad5
zink: add a pipe_resource ref to bindless descriptors
...
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
f385b87963
zink: delete zink_surface::usage_info
...
not needed, just regenerated on creation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
37bb3af312
zink: remove resource param from apply_view_usage_for_format()
...
not actually needed
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
a4d4fee9d3
zink: delete zink_surface::hash
...
this is barely used
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Mike Blumenkrantz
0a2c395394
zink: require nullDescriptor feature
...
this simplifies a huge amount of code and enables a lot of refactoring
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35722 >
2025-06-26 10:10:28 -04:00
Valentine Burley
bac51d2931
virtio/ci: Add nightly Android Venus jobs on Intel TGL and ADL
...
Introduce nightly Cuttlefish jobs on Intel Tiger Lake and Alder Lake.
Like `android-angle-venus-anv-cml`, these jobs run dEQP with the Android
guest using Venus + ANGLE, and the host using the ANV Vulkan driver.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35737 >
2025-06-26 12:51:54 +00:00
Valentine Burley
bf98db1c45
virtio/ci: Split android-angle-venus-anv into reusable template
...
Move shared variables and configuration for the android-angle-venus-anv
job into a new template so that it can be reused by other jobs.
This follows the structure used everywhere else.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35737 >
2025-06-26 12:51:54 +00:00
Valentine Burley
32264e7a00
virtio/ci: Increase timeout for AHB tests
...
Some of the tests occasionally time out on Tiger Lake.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35737 >
2025-06-26 12:51:54 +00:00
Valentine Burley
e2ac66efdd
ci: Uprev kernel to enable Multi-Gen LRU
...
Update the kernel to enable CONFIG_LRU_GEN.
This is the only change from the previous kernel build.
Mutli-gen LRU improves how Linux handles high memory pressure, which
allows Cuttlefish to boot on devices with limited RAM.
Signed-off-by: Valentine Burley <valentine.burley@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35737 >
2025-06-26 12:51:54 +00:00
Lucas Stach
29eb30c747
etnaviv/ci: drop fails due to ignored stencil valuemask
...
Now that the workaround for stencil valuemask 0 is gone on more
recent cores, we can drop the failures that were caused by this
workaround.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35704 >
2025-06-26 12:17:06 +00:00
Lucas Stach
41b08a2040
etnaviv: allow 0 back stencil valuemask on new cores
...
Older cores have a hardware bug where the stencil test misbehaves when
the valuemask is 0 in the back stencil. The workaround is to effectively
switch to single sided stencil and hope for the best. This seems to be
okay for most actual use-cases and tests, as a 0 valuemask is quite rare.
However, as 0 is a valid value for the mask the workaround breaks some
edge cases. Newer cores don't seem to require the workaround and operate
correctly with all stencil valuemasks, so drop the workaround for them.
I don't know which feature bit tells us about the bugfix. I made an
educated guess by checking behavior on multiple GPUs: GC880r5106 and
GC2000r5108 need the workaround, GC3000r5450, GC7000r6204 and GC600r4653
work fine without it. By comparing the set BugFixes feature bits between
the cores and the fact that BugFixes15 already fixes some PE issues, I
think this one is the most likely candidate.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35704 >
2025-06-26 12:17:06 +00:00
Lucas Stach
2dc5db625b
etnaviv: simplify stencil ref front/back selection condition
...
Drop the check for front stencil enable when selecting which stencil
ref value to put into the back stencil state. If the front stencil
isn't enabled then stencil operations as a whole aren't enabled and
we don't care which value ends up in the state.
While at it fix indentation.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35704 >
2025-06-26 12:17:06 +00:00
Lucas Stach
a6e9061880
etnaviv: drop obsolete question about alpha/stencil test interaction
...
There's a few things that will prevent enabling the more efficient
PE_COLOR_FORMAT_OVERWRITE mode, but pixel dicard due to alpha or
stencil testing isn't one of those conditions, as this behaves the
same way as pixel discard due to a failed depth test.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35704 >
2025-06-26 12:17:05 +00:00
Lucas Stach
277b9bba38
etnaviv: remove obsolete two-sided stencil comment
...
There is no question anymore: we need to swap front/back stencil
depending on the frontface winding order, as the hardware doesn't
have a front face configuration option. This is what is implemented
in the driver.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35704 >
2025-06-26 12:17:05 +00:00
Natalie Vock
af86cc37d5
aco/spill: Don't spill scratch_rsrc-related temps
...
These temps are used to create the scratch_rsrc. Spilling them will
never benefit anything, because assign_spill_slots will insert code
that keeps them live. Since the spiller assumes all spilled variables
to be dead, this can cause more variables being live than intended and
spilling to fail.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:53 +00:00
Natalie Vock
acf29e403a
aco/spill: Add a null scratch offset if no scratch_offset arg exists
...
Function callees' scratch_rsrc comes with the scratch offset
pre-applied.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:53 +00:00
Natalie Vock
630913e1b4
aco: Introduce static_scratch_rsrc program member
...
Function callees get their scratch resource as a parameter instead of
generating it on-the-fly.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:53 +00:00
Natalie Vock
e006f68b11
aco/isel: Don't add scratch offset as gfx8- soffset if no offsets exist
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:53 +00:00
Natalie Vock
a5eba11657
aco/isel: Use stack pointer parameter in load/store_scratch
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:53 +00:00
Natalie Vock
4a62b342f3
aco: Add common utility to load scratch descriptor
...
Also modifies the scratch descriptor to take the stack pointer into
account.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:52 +00:00
Natalie Vock
cd2caa5e2b
aco/spill: Use scratch stack pointer
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:52 +00:00
Natalie Vock
22624d6f12
aco: Add scratch stack pointer
...
Function callees shouldn't overwrite caller's stacks.
Track where to write scratch data with a stack pointer.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:52 +00:00
Natalie Vock
be89c02be5
aco: Add pseudo instr to calculate a function callee's stack pointer
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35031 >
2025-06-26 11:02:52 +00:00
Job Noorman
54151cfb76
ir3/cf: add support for movs
...
movs supports the same conversions as cov which means that any cov of
its dst can be folded into the movs if all uses of its dst are the same
type of cov.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:09 +00:00
Job Noorman
bf203fbf20
ir3: add codegen for movs
...
movs is just nir_intrinsic_read_invocation so this is a matter of
disabling the current lowering to nir_intrinsic_read_invocation_cond_ir3
and adding lowering to movs.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:09 +00:00
Job Noorman
d94bea85b8
ir3: make backend aware of movs
...
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:09 +00:00
Job Noorman
4b3f58701c
ir3/isa: add isaspec definition for movs
...
movs works like subgroupBroadcast/OpGroupNonUniformBroadcast. The fiber
id can either be an immediate or a value in a0.x. In the latter case,
the value has to be dynamically uniform or else the behavior is
undefined. The dst register has to be shared or else the behavior seems
to be equivalent to a normal mov (i.e., the fiber id is not taken into
account anymore).
movs can do a cov on the broadcasted value. It works exactly like a
normal cov except that using u8 as the src type does not seem to work at
all.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:09 +00:00
Job Noorman
d328b1e8c0
ir3/parser: add uinteger helper
...
To match unsigned immediates.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:09 +00:00
Job Noorman
f9b03fd170
ir3/a7xx: disable half shared mov quirk
...
The HW issue was fixed in a7xx so we can remove the workarounds there.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:09 +00:00
Job Noorman
edce6f410f
ir3: support half regs for read_{first,cond,getlast}
...
The emitted mov had a hard coded dst type of u32. This was fine because
we needed this to work around a HW bug with shared half movs. However,
since this bug was fixed in a7xx, we need to support half movs as well.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:08 +00:00
Job Noorman
a02d7b0131
ir3: add helper to apply half shared mov quirk
...
The quirk was copy-pasted in 3 separate places making it difficult to
make changes.
Signed-off-by: Job Noorman <jnoorman@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32624 >
2025-06-26 10:22:08 +00:00
Daniel Schürmann
7620957193
aco/ra: always set fill_operands=true when handling operands
...
This makes the behavior consistent and less prone to error.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35735 >
2025-06-26 10:05:07 +00:00
Daniel Schürmann
ee8424d839
aco/ra: always fill moved operands when handling vector-operands
...
update_renames() assumes that killed operands are already removed from
the register file, except for precolored and copy-kill operands.
When dealing with vector-operands, however, unrelated operands might
also be moved, in order to make space.
Fixes: fb689f133e ('aco/ra: handle register assignment of vector-aligned operands')
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35735 >
2025-06-26 10:05:07 +00:00
Georg Lehmann
7de352e99e
nir,radv: add an option to not move 8/16bit vecs
...
ACO will overestimate the register demand of the sources, so we don't
want to create the vector later.
Foz-DB Navi48:
Totals from 240 (0.30% of 80265) affected shaders:
MaxWaves: 6429 -> 6435 (+0.09%)
Instrs: 3406069 -> 3406646 (+0.02%); split: -0.01%, +0.03%
CodeSize: 18231596 -> 18233288 (+0.01%); split: -0.01%, +0.02%
VGPRs: 14768 -> 14732 (-0.24%)
Latency: 18981274 -> 18979170 (-0.01%); split: -0.02%, +0.01%
InvThroughput: 4247331 -> 4246634 (-0.02%); split: -0.02%, +0.01%
VClause: 85453 -> 85458 (+0.01%); split: -0.01%, +0.01%
Copies: 262046 -> 261971 (-0.03%); split: -0.06%, +0.03%
PreVGPRs: 10899 -> 10775 (-1.14%)
VALU: 1923441 -> 1923485 (+0.00%); split: -0.01%, +0.01%
SALU: 457983 -> 457982 (-0.00%)
VOPD: 4980 -> 4861 (-2.39%); split: +0.48%, -2.87%
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35729 >
2025-06-26 09:29:43 +00:00
Georg Lehmann
7ac9a87572
nir/opt_sink: don't assume moving conversion can't increase register pressure
...
Foz-DB Navi48:
Totals from 11311 (14.09% of 80265) affected shaders:
MaxWaves: 337664 -> 337648 (-0.00%); split: +0.00%, -0.01%
Instrs: 10102221 -> 10101625 (-0.01%); split: -0.05%, +0.04%
CodeSize: 55000184 -> 54999292 (-0.00%); split: -0.04%, +0.03%
VGPRs: 571052 -> 571064 (+0.00%); split: -0.03%, +0.03%
Latency: 59247189 -> 59204726 (-0.07%); split: -0.13%, +0.06%
InvThroughput: 10236407 -> 10215675 (-0.20%); split: -0.26%, +0.06%
VClause: 211730 -> 211677 (-0.03%); split: -0.07%, +0.04%
SClause: 284802 -> 284762 (-0.01%); split: -0.07%, +0.06%
Copies: 702890 -> 702539 (-0.05%); split: -0.18%, +0.13%
Branches: 205117 -> 205112 (-0.00%)
PreSGPRs: 475898 -> 475825 (-0.02%); split: -0.02%, +0.00%
PreVGPRs: 366318 -> 366449 (+0.04%); split: -0.14%, +0.17%
VALU: 5764791 -> 5764349 (-0.01%); split: -0.02%, +0.01%
SALU: 1259529 -> 1259517 (-0.00%); split: -0.04%, +0.04%
VOPD: 5854 -> 5724 (-2.22%); split: +0.70%, -2.92%
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35729 >
2025-06-26 09:29:43 +00:00
David Rosca
0c8b245094
radeonsi/vpe: Change some error messages to warnings
...
Error should be only used for critical failures.
Fixes warning spam when the input surface has DCC.
Reviewed-by: Peyton Lee <peytolee@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35719 >
2025-06-26 08:19:33 +00:00
Jose Maria Casanova Crespo
1377e18234
v3d: avoid submit of supertile coordinates on jobs without rasterization
...
If all draw calls of a job were submitted with GL_RASTERIZER_DISCARD
enabled we can avoid all the rasterization by not submitting the
supertile coordinates in the CLE.
There is a performance improvement in scenarios where only running the
geometry stages is needed like using TF. Altought the load/stores were
already avoided. Before this patch, the FS was still being executed for
each tile.
It helps on manhattan benchmarks.
fps_avg helped: gl_manhattan.trace: 12.71 -> 13.16 (3.54%)
fps_avg helped: gl_manhattan31.trace: 7.86 -> 8.02 (2.03%)
total fps_avg in affected (through threshold) runs: 20.57 -> 21.18 (2.96%)
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35739 >
2025-06-26 07:27:11 +00:00
Jose Maria Casanova Crespo
d0163f1096
v3d: Avoid fast TLB blit if reused job doesn't store the color buffer
...
Fixes: 66de8b4b5c ("v3d: add a faster TLB blit path")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35739 >
2025-06-26 07:27:11 +00:00