Alyssa Rosenzweig
d7c0355725
asahi: advertise ASTC HDR formats
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35132 >
2025-05-28 14:49:06 +00:00
Alyssa Rosenzweig
f07ccd9142
hk: gate custom border colour emulation on feature
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35181 >
2025-05-27 15:00:13 +00:00
Alyssa Rosenzweig
794b6a14bb
asahi: clang-format
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35169 >
2025-05-27 13:23:12 +00:00
Alyssa Rosenzweig
ab9da6bc49
hk: gate min LOD emulation on the feature
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35169 >
2025-05-27 13:23:12 +00:00
Alyssa Rosenzweig
3065815c7c
hk: make hk_lower_nir static
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35169 >
2025-05-27 13:23:12 +00:00
Alyssa Rosenzweig
f47de306b8
vulkan: pass enabled features to drivers
...
for pipelines, we know enabled features. for classic shader objects, we do not.
therefore, we want to plumb this through explicitly for drivers using common
pipelines, rather than making drivers guess whether they can use the device
features.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35169 >
2025-05-27 13:23:12 +00:00
Alessandro Astone
b519cb80a6
asahi: Avoid AND-ing with string literal in static_assert
...
Some compilers have trouble dealing with this, including the clang prebuilts
used in older AOSP trees.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35137 >
2025-05-26 13:45:50 +00:00
Alessandro Astone
33e0330baf
asahi: Do not require fopencookie on Android
...
The android build lies when setting _GNU_SOURCE, presumably to have access to
other functions that Android's libc actually implements.
However, fopencookie is not one of those.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35137 >
2025-05-26 13:45:50 +00:00
Christian Gmeiner
41f2da1a6e
treewide: Do not use NIR_PASS_V for nir_divergence_analysis(..)
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35131 >
2025-05-23 21:19:25 +00:00
Sasha Finkelstein
2f4f9f0b98
hk: Implement VK_EXT_map_memory_placed
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13008
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34789 >
2025-05-06 18:41:08 +00:00
Alyssa Rosenzweig
0acb34b065
hk: use nir_lower_default_point_size
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34762 >
2025-05-06 17:07:00 +00:00
Alyssa Rosenzweig
a49403f4ac
agx/nir_lower_tess: use nir_lower_default_point_size
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34762 >
2025-05-06 17:07:00 +00:00
Alyssa Rosenzweig
d53a3a081b
agx/nir_lower_gs: use nir_lower_default_point_size
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34762 >
2025-05-06 17:07:00 +00:00
Janne Grunau
007d7418f8
asahi: build asahi_clc for -Dtools=asahi
...
This allows building tools for cross-compiling without building gallium
or vulkan drivers unnecessarily.
Backport-to: 25.1
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Signed-off-by: Janne Grunau <j@jannau.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34693 >
2025-04-30 14:23:53 +00:00
Alyssa Rosenzweig
5a55133ce7
hk: advertise VK_KHR_shader_quad_control
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
we already support this.
Closes : #13067
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34738 >
2025-04-29 13:14:07 +00:00
Alyssa Rosenzweig
3eb7575679
asahi: do not use "Null" layout
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This is the most serious bug we've had in a long time due to a fundamental
misunderstanding of the hardware (due to incomplete reverse-engineering). It
caught me off guard.
The texture descriptor has "mode" bits which configure two aspects of how the
address pointer is interpreted:
* whether it is indirected, pointing to a secondary page table for sparse
* whether it writes texture access counters (for Metal's idea of sparse).
...Neither of these is a "null texture" mode.
So why did I see Apple's blob using a non-normal mode for null textures, and why
did I copy those settings?
1. Because the hardware texture access counters provide a cheap way to detect
null texture accesses after the fact, which I think their GPU debug tools
use. I'm not sure why release builds of the driver do/did that, but whatever.
2. Because I assumed Cupertino knew best and I didn't bother looking too close.
We can't use them here (without doing extra memory allocations), since then
the GPU will increment access counters. And since our null texture address used
to just be a pointer in the command buffer, that mean the GPU will trash
whatever memory happened to be 0x400 bytes after the start of the null texture
descriptor. The symptom being random faults.
This bug was caught when trying to use the zero-page instead, which raised a
permission fault when the GPU tried to write counts. Then I remembered the
sparse mechanism and had a bit of a eureka moment. Immediately followed by an
"oh, f#$&" moment as I realized how many random bugs could potentially be root
caused to this.
The fix is two-fold:
1. Use normal layout instead.
2. Set the address to the zero-page (which is a fixed VA) and detect null
textures by checking the address, instead of the mode.
The latter is a good idea anyway, but both parts needs to be done atomically to
maintain bisectability.
Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34703 >
2025-04-24 19:05:07 +00:00
Alyssa Rosenzweig
4685d8e2d9
libagx: use common heap alloc for tessellator
...
this gets us bounds checking.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
d339bf7a98
libagx: rename agx_geometry_state to agx_heap
...
no other state persists. this cleans up a lot of naming.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
29cc2b6d42
libagx: do not include heap in geometry params
...
the only dynamic allocation left for geometry shaders is all done in the setup
indirect kernel. so just pass the heap to that kernel directly, so we don't
reserve a heap for direct draws with GS (including pure-VS XFB). this should
reduce our memory footprint a lot in certain apps.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
cb52aa58d6
agx/nir_lower_gs: bound static topologies
...
don't bloat up shader info.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
9b1d771747
agx/nir_lower_gs: compact static topologies
...
use 8-bit index buffer instead of 32-bit to significantly decrease the size of
serialized geometry shaders (agx_gs_info is not dynamic).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
5640266eb3
agx/nir_lower_gs: rework gs rast shape handling
...
rather than a bunch of subtle booleans telling the driver how to invoke the GS
rast shader, collect everything into a common enum, and provide (CL safe)
helpers to do the appropriate calculations rather than duplicating across
GL/VK/indirects.
this fixes suboptimal handling of instancing with list topologies.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
2a0314250b
agx/nir_lower_gs: don't use nir_def_rewrite_uses
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
3670f95e12
agx/nir_lower_gs: avoid redundant sr read's
...
saves 2 SR reads in a SW VS
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
8b0dca384f
agx/nir_lower_gs: fix type confusion
...
Fixes: b9b6828fda ("agx/nir_lower_gs: optimize static topologies")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
d548259b2f
agx: plumb vertex_id_zero_base
...
to accelerate SW VS.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
fbb85a8d09
agx: use abi.h defines
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Alyssa Rosenzweig
6f265ab83f
asahi: clang-format
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34661 >
2025-04-23 16:20:59 +00:00
Ella Stanforth
b38c4e8982
nir/alpha_to_coverage: Add an intrinsic for better dithering
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942 >
2025-04-23 09:03:41 +00:00
Ella Stanforth
d3aedbfe9d
asahi/lib: Move alpha_to_one and alpha_to_coverage lowering to common code.
...
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33942 >
2025-04-23 09:03:41 +00:00
Alyssa Rosenzweig
1050c69833
libagx: drop libagx_sub_sat
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
should optimize in nir if needed.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
bfc18b6fb1
libagx: drop libagx_popcount
...
use the common
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
9c4660d1a6
libagx: use #pragma once in geometry.h
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
63a2831967
agx/nir_lower_tess: drop dead todo
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
41960652e1
agx/nir_lower_tess: drop pointless helpers
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
2a065fc446
agx/nir_lower_gs: use common nir_verts_in_output_prim
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
ea209c98fc
agx/nir_lower_gs: drop silly fwd decl
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
ba9f86df51
agx/nir_lower_gs: privatize lower_output_to_var_state
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
d42a92fd93
agx/nir_lower_gs: clean up more state->info
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
470f226ed8
agx/nir_lower_gs: remove silly comment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
1017095c5a
agx/nir_lower_gs: clean up state/info duplication
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
753e3ba55b
asahi,hk: use indirect-local dispatches for GS
...
this gets us good workgroup sizes even for indirect draws with GS.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
70c805d863
hk: bump wg sizes for geometry shader
...
match GL driver, should help perf.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
164fc8a158
agx/nir_lower_gs: clean comment
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
b9b6828fda
agx/nir_lower_gs: optimize static topologies
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
3da8939197
libagx: factor out _libagx_end_primitive
...
so we can use from the cpu.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
b916c38c76
hk: optimize out empty dispatches
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
f6ee36a437
agx: add agx_is_shader_empty helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34638 >
2025-04-22 12:47:54 +00:00
Alyssa Rosenzweig
b756e7da65
agx: delete more inots
...
noticed in dEQP-GLES31.functional.geometry_shading.input.basic_primitive.triangles
total instrs in shared programs: 2852257 -> 2850958 (-0.05%)
instrs in affected programs: 291488 -> 290189 (-0.45%)
total alu in shared programs: 2335534 -> 2334236 (-0.06%)
alu in affected programs: 236924 -> 235626 (-0.55%)
total fscib in shared programs: 2333895 -> 2332597 (-0.06%)
fscib in affected programs: 236924 -> 235626 (-0.55%)
total code size in shared programs: 20529508 -> 20520338 (-0.04%)
code size in affected programs: 2074254 -> 2065084 (-0.44%)
total gprs in shared programs: 901327 -> 901307 (<.01%)
gprs in affected programs: 756 -> 736 (-2.65%)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34612 >
2025-04-18 18:34:55 +00:00
Alyssa Rosenzweig
e541ffcbe8
hk: fix patch count = 0 handling
...
fixes fault in dEQP-VK.tessellation.misc_draw.triangles_no_patches
Backport-to: 25.1
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34612 >
2025-04-18 18:34:55 +00:00