Alyssa Rosenzweig
8dcdf5040b
ail: use is_level_compressed
...
to get unit testing coverage. identified several bugs!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
67d92e0bb6
ail: add is_level_compressed query
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
2728995f12
asahi: fix eMRT + background load interaction
...
for when some render targets are spilled only. prevents regression in
KHR-GLES31.core.draw_buffers_indexed.color_masks
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26963 >
2024-01-10 08:44:37 -04:00
Alyssa Rosenzweig
e7f3112eb9
asahi: Implement lod queries
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26861 >
2024-01-04 01:51:07 +00:00
Daniel Schürmann
bdbf873b0f
nir: remove redundant passes from nir_opt_if()
...
These are now covered by nir_opt_loop():
- opt_if_loop_last_continue()
- opt_merge_breaks()
- opt_if_loop_terminator()
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24940 >
2024-01-03 20:48:05 +00:00
Yonggang Luo
0210b554d6
treewide: Replace the include of nir_types.h with glsl_types.h
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26753 >
2023-12-30 15:08:11 +00:00
Alyssa Rosenzweig
d11c9f9836
asahi: clamp draw count for mdi
...
spec req. KHR-GL43.indirect_parameters_tests.MultiDrawArraysIndirectCount
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
982e644d18
agx: don't produce split of immediate
...
can't be consumed, affects KHR-GL42.shader_image_load_store.basic-allTargets-load-ms
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6e2c71dc3b
agx: Lower 64-bit I/O to 32-bit
...
Fixes KHR-GL42.vertex_attrib_64bit.*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
d6474be46b
agx: fix fp64 lowering options
...
we have no fp64 whatsoever.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
8d451fe9f2
asahi: fix integer RT clamping
...
fixes the rest of KHR-GL33.packed_pixels.*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6d05bf8761
asahi: fix dupe rgb65 formats
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
b68caa13e4
asahi: add more BGR formats
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
c89f0becf7
asahi: Implement ARB_cull_distance
...
Passes KHR-GL33.cull_distance.* and the piglits.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
ba077d899e
asahi: handle compact clip/cull in gs component gather
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
f02190b688
asahi: prepare gs copy shaders for compact clip/cull
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
0dc004888c
asahi: handle some components/offsets in GS lowering
...
occurs for compact clip/cull xfb. not hard to deal with, do so instead of
getting caught up in assertions.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
17f348f73a
asahi: Implement ARB_viewport_array
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
af9241ce92
asahi: add XML for multiple viewports
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
bb59c787ec
agx: report if we have a nonzero viewport
...
so driver can optimize.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
bc7afbf23d
agx: allocate varying slot if writing viewport only
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
643acacd1b
agx: note that sample_mask runs occlusion queries
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
79e58e1d77
agx: handle force early-z + discard
...
fixes ./arb_shader_image_load_store-early-z. experimentally, an opaque pass type
works too but better match what the blob does.
also, I now have proof that sample_mask triggers occlusion query updates because
if you run it multiple times, you get >1 hits per fragment in a counting query
:p
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
3987c8a35f
agx: remove spurious z/s writes in force early-z shaders
...
fixes crash in arb_shader_image_load_store-early-z
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
c43c90a5fa
asahi: rewrite pointsize handling
...
In the wise words of Mike Blumenkrantz, "I hate gl_PointSize and so can you".
The mesa/st lowering won't mesh well with vertex shader epilogues, and it falls
over in various circumstances. I am too tired to go against the grain, so let's
just pretend to be a normal gallium driver and trust in the rasterizer CSO,
lowering point size internally. This properly handles transform feedback without
any hacks, both GL and GLES behaviours, etc.
Fixes:
KHR-GL31.transform_feedback.capture_vertex_separate_test
gl-2.0-large-point-fs
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
23f216d6e7
asahi: Lower edge flags
...
With the common geometry shader based lowering added for zink. Fixes edge flag
related piglits.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
f4a648c607
asahi: Unroll GS/XFB primitive restart on the GPU
...
..and fix bugs versus the CPU unroll while we're at it. CPU based unrolling is
invalid in Vulkan, but this slow-as-dogs GPU unroll is ok.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
15957219ad
agx: rework libagx linking a bit
...
for correctness with generic ptrs, avoids splat with the next patch.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
4a4c6d1bc6
agx: Avoid scratch mem with tri strip w/ adjacency
...
with restart unroll kernel where nir fails to optimize this away without a
little help from us.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
7f9ef5b176
agx: fix VARYING_SLOT_COL0 getting flatshaded
...
it's a bit mask.
didn't fix the piglit i was debugging :-(
but did fix the shadow glitching out in neverball.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6437578435
asahi: add xml for flatshading fans
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
403a20a9f2
asahi: rework cf binding xml
...
for flat shading of fans.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
2fec6bf951
asahi: fix tri fan enum
...
from tracing macos. fixes piglits:
spec@!opengl 1.1@gl-1.1-drawarrays-vertex-count 100000 varray gl_triangle_fan
spec@!opengl 1.1@gl-1.1-drawarrays-vertex-count 100000 vbo gl_triangle_fan
spec@!opengl 1.4@triangle-rasterization-overdraw
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
6ae72a2f2a
asahi: Support L/A/I formats for texture buffers
...
mesa/st doesn't know how to emulate them. Fixes
arb_texture_buffer_object-formats.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
5b33c74626
agxdecode: fix stack smash with border colour
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
0fa7252d8a
asahi: Implement multidraw indirect
...
GS only for now (inserting a passthru GS if needed). This should be optimized
later, but it's ~correct.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
5987e47a29
asahi: rework GS input assembly
...
in prep for tessellation (which will share the IA lowering), and for multidraw
indirect (which greatly complicates IA lowering with geom/tess).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
0805fef082
asahi: make UB easier to see
...
would've saved us
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Alyssa Rosenzweig
09e46aa168
asahi: add agx_push macro
...
Thanks, Ella!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 12:08:39 -04:00
Asahi Lina
25d185a501
ail: Fix tile size & strides for compressed textures
...
Compressed textures have two additional quirks that affect the tiling
code (but not the mip offsets): they get extra stride padding in some
cases for the large miptree, and the tile size is based on the POT size
and not the real size for the small miptree.
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Asahi Lina
be3890a898
ail: Add explicit specification of mip level strides
...
For compressed textures, mip levels > 0 can have additional stride
padding. This (in some cases) affects the tile stride calculation, so it
cannot be implicitly represented with the existing members.
Add an explicit array containing the stride, in elements, of each
miptree level. The tiling code uses this instead of the minified and
element-aligned width when computing tile addressing.
This commit should be a functional no-op.
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Asahi Lina
2221eb6cec
ail: Fix miptree offset generation for compressed textures
...
For compressed textures, the POT miptree starting size is calculated
backwards (POT then minify instead of minify then POT).
In addition, the existing POT miptree start level code does not work for
compressed textures. Due to the extra block alignment requirement each
step of the way, we can no longer get away with nice log-based O(1)
math. Switch to a loop. This should be equivalent for uncompressed
textures, but yields different results with compression (element size >
1x1).
Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Alyssa Rosenzweig
bc6b2d087b
agx: wire up texture_samples/image_samplers
...
CL makes this too easy, lmao
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:45 -04:00
Karol Herbst
6979a1aa07
nir/opt_preamble: make load_workgroup_size handling optional
...
not all drivers support it being in the preamble, e.g. asahi.
Signed-off-by: Karol Herbst <git@karolherbst.de>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
47337e7918
asahi: Implement draw parameters
...
This is the easy part, passes the piglits.
---
N.b.: this also includes a bug fix for ARB_base_instance that would be
nontrivial to extract out, so I'm backporting the whole feature for release. How
terrible, more features :-P
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
e10e21120b
asahi: Rotate tri fans based on provoking vtx
...
I don't have a spec citation for the rotation but it's implied by the GL and VK
specs taken together with piglit.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
decd134c0c
asahi: fix xfb of pointsize when not drawing points
...
stupid case.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
9d1a0f11e2
agx: Fix flatshading of matrices
...
Fixes dEQP-VK.glsl.conversions.scalar_to_matrix.float_to_mat4_vertex
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:37 -04:00
Alyssa Rosenzweig
2ad5bcc41e
asahi: fix output to non-rast streams
...
fixes arb_gpu_shader5-emitstreamvertex_nodraw
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00
Alyssa Rosenzweig
fd91d46487
ail: handle >4GiB textures
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26614 >
2023-12-09 10:56:17 -04:00