Rob Clark
73ab83d228
freedreno/drm: Add bo list iterator macros
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20263 >
2022-12-17 19:14:12 +00:00
Rob Clark
8c355c7cbc
freedreno/drm: Add BO cache stats
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20263 >
2022-12-17 19:14:12 +00:00
Rob Clark
1bf88d0bf9
freedreno/drm: Allow submit merging with explicit sync
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20263 >
2022-12-17 19:14:12 +00:00
Rob Clark
87f89a0383
freedreno/drm: Move no_implicit_sync to base
...
No need to duplicate between backends.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20263 >
2022-12-17 19:14:12 +00:00
Rob Clark
9372f11c81
freedreno/drm: Remove cpu_fini
...
It has been unused since nearly forever.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20263 >
2022-12-17 19:14:12 +00:00
Rob Clark
5c96dea638
freedreno: Update obsolete comment
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20263 >
2022-12-17 19:14:12 +00:00
Yiwei Zhang
8a16c5283c
venus: fix signaled fence creation under multiple timeline
...
Fixes: 3beb4f055e ("venus: allow renderer submissions on per-context virtgpu rings")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20366 >
2022-12-17 18:58:58 +00:00
Alyssa Rosenzweig
3827c465e1
asahi: Implement anisotropy
...
Passes KHR-GLES3.texture_filter_anisotropic.*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
0347d1c358
asahi: Identify seamful cube map bit
...
Fixes
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest
when run with a GLES2 version.
We wire up seamless cube maps for GLES3+ only, working around an obscure
mesa/st limitation. See 6148e3aae7 ("mesa: Fix
ctx->Texture.CubeMapSeamless") for the full context.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
dc87d83a29
asahi: Set flatshading controls appropriately
...
Fixes dEQP-GLES3.functional.rasterization.flatshading.*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
623a2bf488
asahi: Identify XML for more flatshading controls
...
Names from PowerVR <3
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
3091f5a7f4
asahi: Enable VS_INSTANCEID and VERTEX_ELEMENT_INSTANCE_DIVISOR caps
...
These two should be functional at this point. The latter is required
(and quite well tested) by Darwinia.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
8ba44b6492
asahi: Implement depth and stencil export
...
For gl_FragDepth, passes dEQP-GLES3.functional.shaders.fragdepth.* and piglit
fragdepth_gles2.
For stencil export, passes piglit glsl-fs-shader-stencil-export.
For gl_FragDepth together with stencil export, passes
dEQP-GLES3.functional.fbo.blit.*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
9578b47af3
agx: Implement depth and stencil export
...
Lower FRAG_RESULT_DEPTH and FRAG_RESULT_STENCIL writes to a combnied zs_emit
instruction with a multisampling index. To be used in the following commit.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
15155268de
asahi: Allow texturing S8 portion of combined Z/S
...
Comes up in gles3.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
9fc2c0f341
asahi: Put meta shader keys into the meta shader itself
...
The hash table needs a key pointer with at least the lifetime of the
hash entry, which the key pointer we get does not have (since it is
stack-allocated by agx_build_meta). Copy it into the shader struct
itself and use that for the hash table.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
c12153cd89
asahi: Identify & disable triangle merging for shaders using derivatives
...
It seems triangle merging is incompatible with calculating derivatives
along primitive edges correctly. Take the appropriate NIR shader info
flags in the compiler and pass them down as a flag to the driver, so it
can set the disable triangle merging flag (formerly called "lines or
points").
TODO: Is this what macOS does when you set a sample mask there (which
apparently fixes the same bug on the Darwinia Metal backend)? Do we
also need to set this when sample masks are used?
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Fixes Darwinia and dEQP2 projected tests.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
005f556065
asahi: Fix include guard comment on decode.h
...
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
b80fb31678
asahi: Allocate enough push ranges for the worst possible case
...
We need one for every possible sysval, plus up to 16 VBOs.
Fixes plasma-systemmonitor.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
440601dead
asahi: Fix off-by-one assert in agx_create_vertex_elements
...
Needed to fix plasma-systemmonitor.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
d4270531c4
asahi: Consider shared resources always valid
...
Shared resources are in an unknown state, so we have to assume they
may contain valid data.
Fixes Xorg+Kwin random full-screen garbage on mouse cursor present.
However, we still get black flashing in some circumstances (that was
garbage flashing before this commit), which indicates that something
is reading an uninitialized/fresh shared framebuffer and expecting
valid data (prior screen contents?) TBD.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
0042f2beb2
asahi: Ensure we always have space for stream links + padding
...
It seems VDM can overread (maybe it does blockwise transfers?), so we
always need to leave space at the end of encoder buffers to avoid
faults.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
cea15fe06d
asahi: Don't crash on VBOs without resources
...
There's a Firefox QuakeJS heisenbug that triggers this sometimes, by
binding vertex attributes with no buffer...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
331c2f4b7e
asahi: Do not leak staging resources for PIPE_MAP_READ
...
We were only dereferencing the resource in the PIPE_MAP_WRITE path of
agx_transfer_unmap, which means that read-only transfers leaked the
staging resource/BO. Always free the staging resource unconditionally.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
eba2b182c8
agx: Fix packing of extension for block image stores
...
Probably impossible to hit in practice but let's get it right. Found when
forcing RA to use the upper half of the reg file.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
ef23bbfdbd
agx: Coalesce i2i16 and u2u16
...
Extract out the code for unpack_64_2x32_split_x and use it for other integer
downcasts too to coalesce out a move. Pointless, but I wanted to have a little
RA fun after getting stencil export working.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
58d02e4f59
ail: Assert that the mip level is in bounds
...
This preempts possible out-of-bounds accesses and later asserts when
trying to get the tile size.
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
a8ec3135bb
ail: Fix tile sizes
...
Fixes dEQP-GLES3.functional.texture.filtering.2d.sizes.3x7_nearest_mipmap_linear.
Tested for all sizes 1..256x1..256.
Tested-by: Asahi Lina <lina@asahilina.net >
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
d36a829fa1
ail: Fix typo
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Asahi Lina
0d57fcaf28
ail: Always allocate the full miptree
...
Layer strides are based on the full miptree, and even for single-layer
images macOS always allocates a full one (possibly relevant for
compression). Make sure we do the same, regardless of how many mip
levels the user asked for.
Fixes Darwinia.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Signed-off-by: Asahi Lina <lina@asahilina.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
3c892d0d54
docs/features: Mark ARB_occlusion_query2 as done on asahi
...
Part of GLES.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
5de1803658
docs/features: Mark panfrost supporting aniso
...
On Mali-G72+ (except for some buggy early G72 models).
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Alyssa Rosenzweig
71e2028ce3
nir: Add store_zs_agx intrinsic
...
Will be used for frag depth/stencil export with multisampling.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20365 >
2022-12-17 18:10:28 +00:00
Erico Nunes
e66df0d362
ci: Lima farm maintenance
...
General lab maintenance and addressing
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20051
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20343 >
2022-12-17 14:33:43 +00:00
Michał Górny
a6b16333c6
r600/sfn: Fix test compilation with -fno-rtti
...
79ca456b48 reintroduced the use
of dynamic_cast<> in r600/sfn tests. This breaks compilation with
-fno-rtti, as required to build against the LLVM configuration
recommended upstream. Use static_cast<> instead to fix this.
Fixes : #7820
Signed-off-by: Michał Górny <mgorny@gentoo.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20239 >
2022-12-17 11:01:50 +00:00
Gert Wollny
8646e397ae
r600/sfn: Fix test for possible dest slot
...
Fixes Coverity CID 1517721
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20367 >
2022-12-17 11:15:17 +01:00
Gert Wollny
d90da01bef
r600/sfn: don't use a return register when shader doesn't read it
...
This reduces register pressure.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20367 >
2022-12-17 11:10:30 +01:00
Jianxun Zhang
58e1d14edf
iris: Limit DG2 modifiers to DG2
...
These DG2 modifiers should be disabled on other devices.
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com >
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20363 >
2022-12-16 21:29:41 +00:00
Ryan Neph
50b7d36428
venus: rename sync_queue -> timeline
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
9ae5c6be12
venus: support vtest+multiple_timelines and enable
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
fea4af6234
venus: add supports_multiple_timelines capset and enable
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
929e52c35a
venus: support external fencing with multiple timelines
...
Without globalFencing, exportable fences and semaphores must instead
have their proxy vn_renderer_sync installed in the same renderer
ring_idx as ther last queue submissions to ensure they signal after
all work previously submitted to the same ring_idx. Exportable
fences/semaphores with a temporary (imported) payload don't need a proxy
vn_renderer_sync, since they already have a `poll()`able fd available.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
2c1a7f877c
venus: place wsi submissions on corresponding ring_idx
...
With implicit fencing, the image has a fence that blocks scanout until
rendering is complete. virtgpu doesn't support implicit fencing yet, but
Sommelier (a VM Wayland compositor) does the wait by exposing the bo as
a GEM handle and waiting on all fences in userspace with a
DRM_IOCTL_VIRTGPU_WAIT before issuing the wl_surface commit.
During vkQueueSubmit involving wsi images, we follow with an empty
renderer submission on the corresonding ring_idx to install a fence
on the appropriate virtgpu fence context after the last rendering
submission.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
c957d08600
venus: remove workaround for empty renderer submissions
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
3beb4f055e
venus: allow renderer submissions on per-context virtgpu rings
...
For submissions to renderers that support multiple timelines, put
them on the virtgpu fencing timeline (dma fence context) specified by
the VkQueue's bound ring_idx. CPU-sync'd renderer submissions
can be sent in the same manner by using ring_idx = 0.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
9bba5032c2
venus: bind VkQueue to available ring_idx at creation
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
6dce6012df
venus: use upstream DRM_IOCTL_VIRTGPU_CONTEXT_INIT
...
And remove SIMULATE_CONTEXT_INIT and PARAM_MAX_SYNC_QUEUE_COUNT now that
we expect guest kernel support for CONTEXT_INIT with standard support
for up to 64 rings.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
a72f84c4a3
venus: update venus-protocol for multiple timelines
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Ryan Neph
68be337235
venus: formatting fixes
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19691 >
2022-12-16 21:12:38 +00:00
Benjamin Tissoires
0bd9a062e1
CI: Overwrite valve infra's registry
...
This is a temporary workaround wihle we wait for valve-infra to sort
out this issue.
It is safe to do because registry.freedesktop.org is a mirror of
harbor.freedesktop.org.
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7913
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20362 >
2022-12-16 20:23:17 +00:00