Mike Blumenkrantz [Thu, 7 Apr 2022 13:54:08 +0000 (09:54 -0400)]
zink: ci updates
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 18:51:37 +0000 (14:51 -0400)]
zink: export PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 18:51:19 +0000 (14:51 -0400)]
zink: run the cubemap -> array compiler pass if the shader key is set
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 18:50:12 +0000 (14:50 -0400)]
zink: handle nonseamless cube sampler binding
now when a cube is sampled with a nonseamless sampler, the relevant shader
stage is flagged for a variant update, the
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 18:52:31 +0000 (14:52 -0400)]
zink: create an array view for all cube samplerviews
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 18:52:02 +0000 (14:52 -0400)]
zink: set nonseamless hint for sampler states
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 18:48:19 +0000 (14:48 -0400)]
zink: handle shader key variants that have nonseamless cubemaps
this is just the program-based handling, which means finding the right
variant and/or creating new ones based on matching a 32bit mask indicating
which textures must be rewritten
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 23:45:30 +0000 (19:45 -0400)]
zink: specify struct member name when copying inline uniforms for gfx variants
avoid memory mismatch if inline uniform values aren't first member of struct
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 20:22:15 +0000 (16:22 -0400)]
zink: support nir_op_imod
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 18:46:26 +0000 (14:46 -0400)]
zink: add a gently mangled version of the d3d12 cubemap -> array compiler pass
this differs in that it doesn't handle images and also doesn't filter
based on sampler type, instead using a 32bit mask for determining which
samplers to rewrite
also zink doesn't use sampler derefs
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Mike Blumenkrantz [Mon, 21 Mar 2022 16:39:07 +0000 (12:39 -0400)]
zink: rename a variable
no functional changes
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15536>
Alyssa Rosenzweig [Wed, 23 Mar 2022 14:44:05 +0000 (10:44 -0400)]
pan/va: Add LD_TILE.v3.f16 packing test
This tests the staging register behaviour.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Thu, 7 Apr 2022 13:47:46 +0000 (09:47 -0400)]
pan/bi: Consider flow control in DCE
We don't want to remove instructions like `NOP.wait` on Valhall; this would be
tantamount to deleting barriers.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Thu, 31 Mar 2022 15:08:17 +0000 (11:08 -0400)]
pan/bi: Don't lower vertex_id for malloc IDVS
Based on hardware behaviour, it appears vertex_id is zero-based with the legacy
geometry flow but not with the new malloc IDVS flow. Since the geometry flow is
per-shader (not per-machine), there's not a good way to communicate this to NIR.
Rather than trying to shoehorn this obscure detail into NIR, just do the
lowering ourselves instead of in NIR. It's not much more code anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Wed, 30 Mar 2022 20:31:39 +0000 (16:31 -0400)]
pan/bi: Report whether workgroups can be merged
This flag gates a Valhall hardware optimization for compute shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Wed, 23 Mar 2022 16:21:12 +0000 (12:21 -0400)]
pan/bi: Avoid masked writes for now
Our swizzle lowering optimizations depend on replication of scalar fp16. This
holds on Bifrost (at least for now), but not on Valhall which has proper support
for write masks. For now, enforce Bifrost-compatible behaviour as we do not make
use of the write masks on Valhall yet.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Fri, 21 Jan 2022 19:05:39 +0000 (14:05 -0500)]
pan/bi: Generate LD_BUFFER on Valhall
Replace LOAD.ubo with LD_BUFFER since the .ubo segment doesn't exist on Valhall.
We could do this with a lowering pass instead but this is probably fine.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Sun, 13 Mar 2022 15:29:23 +0000 (11:29 -0400)]
pan/bi: Make psiz variants
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Fri, 28 Jan 2022 17:07:41 +0000 (12:07 -0500)]
pan/bi: Lower gl_PointSize to FP16 on Valhall
It is unclear if FP32 point sizes are supported on Valhall -- I can't get the
DDK to use them at any rate. Always lower them to FP16 and store them as FP16
for hardware use.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Thu, 3 Feb 2022 21:16:36 +0000 (16:16 -0500)]
pan/bi: Force psiz to mediump
To match driver behaviour.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Sat, 11 Dec 2021 23:15:03 +0000 (18:15 -0500)]
pan/bi: Set table for Valhall LD_ATTR
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Wed, 8 Dec 2021 00:14:58 +0000 (19:14 -0500)]
pan/bi: Emit Valhall-style varying stores
Varying stores was changed in Valhall. Rather than using attribute descriptors
like on Bifrost and Midgard, on Valhall we store to memory directly with
hardware-allocated buffers. This requires a new implementation of store_output,
with special provisions for writing gl_PointSize from a position shader.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Tue, 7 Dec 2021 23:56:24 +0000 (18:56 -0500)]
pan/bi: Emit Valhall-style varying loads
Memory-allocated IDVS requires special varying load instructions that take an
offset into the hardware-allocated varying buffer, as opposed to a varying slot.
Emit these instructions.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Thu, 24 Mar 2022 20:39:52 +0000 (16:39 -0400)]
pan/bi: Track whether the malloc IDVS flow is used
This affects what instructions the fragment shader uses. Will be used for the
legacy geometry flow in blit shaders. Whether that is a good idea remains to be
seen, admittedly.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Tue, 3 Aug 2021 15:11:42 +0000 (11:11 -0400)]
pan/bi: Handle Valhall texturing in helper analysis
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Wed, 23 Mar 2022 16:05:43 +0000 (12:05 -0400)]
pan/bi: Emit Valhall texture instructions
Valhall uses an updated version fo the TEXC path. To avoid disrupting the
existing Bifrost code, add a new Valhall-specific texture path that generates
the new-style texture instructions.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Thu, 29 Jul 2021 21:39:14 +0000 (17:39 -0400)]
pan/bi: Specialize BLEND emit for Valhall
Fewer arguments compared to Bifrost; the corresponding information is encoded in
a Valhall-specific blend shader prologue instead.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Sun, 9 Jan 2022 21:01:34 +0000 (16:01 -0500)]
pan/bi: Waits before tilebuffer access on Valhall
On Bifrost, this is handled in the scheduler. Until we grow a Valhall scheduler,
add a NOP with the appropriate flow control. This is correct but carries a small
performance cost.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Tue, 21 Dec 2021 22:06:05 +0000 (17:06 -0500)]
pan/bi: Fix spilling on Valhall
We need a slightly different idiom on Valhall, since the segment modifiers no
longer exist but we now have an immediate offset.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Fri, 28 Jan 2022 23:16:09 +0000 (18:16 -0500)]
pan/bi: Mark LD_TILE as w=format
This tracks register usage more precisely for LD_TILE, which is an encoding
difference on Valhall.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Alyssa Rosenzweig [Wed, 30 Mar 2022 18:11:56 +0000 (14:11 -0400)]
panfrost: Add a table for images
For the default Valhall ABI.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15793>
Mike Blumenkrantz [Wed, 6 Apr 2022 14:49:26 +0000 (10:49 -0400)]
radv: improve failure logging for amdgpu on init
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15771>
Alyssa Rosenzweig [Thu, 31 Mar 2022 14:46:07 +0000 (10:46 -0400)]
pan/va: Allow small constants in register pairs
They are zero extended 32->64-bit. Allow this. Noticed debugging spilling on
Valhall.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15756>
Alyssa Rosenzweig [Wed, 30 Mar 2022 21:46:20 +0000 (17:46 -0400)]
pan/va: Add flow control lowering pass
Something an instruction has two logic flow controls, namely wait + reconverge.
These are orthogonal -- we need to insert a NOP to handle this. Add a lowering
pass that works out flow control to replace the ad hoc previous va_pack_flow.
Fixes dEQP-GLES31.functional.ssbo.layout.single_basic_type.shared.lowp_vec3.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15756>
Alyssa Rosenzweig [Wed, 30 Mar 2022 20:02:03 +0000 (16:02 -0400)]
pan/va: Don't truncate slots
Causes BARRIER not to work.
Fixes:
f45654af595 ("pan/va: Add packing routines")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15756>
Alyssa Rosenzweig [Wed, 30 Mar 2022 19:51:38 +0000 (15:51 -0400)]
pan/va: Model image load instructions
These use the attribute pipe, the new versions of LD_ATTR_TEX, but reading
texture descriptors instead of attribute descriptors unlike their Bifrost
predecessors.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15756>
Alyssa Rosenzweig [Wed, 30 Mar 2022 19:23:04 +0000 (15:23 -0400)]
pan/va: Pack LEA_TEX_IMM
Mostly automatic.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15756>
Alyssa Rosenzweig [Wed, 30 Mar 2022 16:45:07 +0000 (12:45 -0400)]
pan/va: Add indirect LEA_{ATTR, TEX}
For parity with Bifrost. We might need these for images.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15756>
Alyssa Rosenzweig [Wed, 30 Mar 2022 19:52:09 +0000 (15:52 -0400)]
pan/bi: Model Valhall image loads
Like LD_ATTR_TEX.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15756>
Lionel Landwerlin [Wed, 6 Apr 2022 14:20:04 +0000 (17:20 +0300)]
intel/nir: don't report progress on rayqueries if no queries
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
c78be5da300a ("intel/fs: lower ray query intrinsics")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15769>
Danylo Piliaiev [Tue, 5 Apr 2022 09:41:10 +0000 (12:41 +0300)]
turnip: Implement VK_EXT_primitives_generated_query
Similar to pipeline statistics but done for a single counter.
We use REG_A6XX_RBBM_PRIMCTR_7 to get generated primitives
and not PRIMCTR_8 because PRIMCTR_7 counts pre-clipped prims
while PRIMCTR_8 counts them after clipping.
OpenGL spec for GL_PRIMITIVES_GENERATED says:
"Subsequent rendering will increment the counter once for every
vertex that is emitted from the geometry shader, or from the
vertex shader if no geometry shader is present."
Passes tests:
dEQP-VK.transform_feedback.primitives_generated_query.*
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15746>
Samuel Pitoiset [Wed, 6 Apr 2022 09:10:56 +0000 (11:10 +0200)]
radv: mark all states declared dynamic at pipeline creation
It will be easier to merge dynamic states from libraries this way.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15764>
Samuel Pitoiset [Wed, 6 Apr 2022 08:48:22 +0000 (10:48 +0200)]
radv: add a new helper to determine if rasterization is enabled
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15764>
Samuel Pitoiset [Wed, 6 Apr 2022 08:43:04 +0000 (10:43 +0200)]
radv: fix dynamic raster discard with VK_EXT_depth_clip_control
Fixes:
43e83949dc6 ("radv: implement VK_EXT_depth_clip_control")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15764>
Mike Blumenkrantz [Fri, 1 Apr 2022 16:54:41 +0000 (12:54 -0400)]
zink: update ci list
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Fri, 1 Apr 2022 13:14:39 +0000 (09:14 -0400)]
zink: ci fixup
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Thu, 24 Mar 2022 17:53:03 +0000 (13:53 -0400)]
zink: handle zombie swapchains
inject a dummy, matching image that can be used until the frontend
catches up and rescues us from whatever is happening
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:32:33 +0000 (15:32 -0400)]
driconf: add override for Xwayland
zink needs this to avoid deadlocking on startup
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:22:57 +0000 (15:22 -0400)]
zink: export PIPE_CAP_DEVICE_RESET_STATUS_QUERY
this can work now
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Thu, 13 Jan 2022 20:29:54 +0000 (15:29 -0500)]
zink: it's kopperin' time
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:05:09 +0000 (15:05 -0400)]
zink: add kopper api
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:29:45 +0000 (15:29 -0400)]
zink: check whether clear is enabled before applying in unbind
this is implicit, but make it explicit
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:29:17 +0000 (15:29 -0400)]
zink: move variable decl up in unbind_fb_surface
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:28:44 +0000 (15:28 -0400)]
zink: pass index to unbind_fb_surface
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:26:55 +0000 (15:26 -0400)]
zink: move drirc handling up
this can modify instance creation
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:24:25 +0000 (15:24 -0400)]
zink: split surface creation more to allow disabling caching
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:21:26 +0000 (15:21 -0400)]
zink: add fail logging for drmPrimeFDToHandle
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:20:23 +0000 (15:20 -0400)]
zink: add VK_KHR_swapchain_mutable_format
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:14:55 +0000 (15:14 -0400)]
zink: use two submits for every queue submit
first one empty for now
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:10:42 +0000 (15:10 -0400)]
zink: change early returns in zink_blit to gotos
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:10:02 +0000 (15:10 -0400)]
zink: move blit src/dst decls up in function
no changes
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 19:08:13 +0000 (15:08 -0400)]
zink: move update_framebuffer_state() higher up in file
no changes
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 18:58:12 +0000 (14:58 -0400)]
zink: put screen param into flush queue global data
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Tue, 22 Mar 2022 18:38:58 +0000 (14:38 -0400)]
zink: move flush queue init down a little further
no functional changes
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Adam Jackson [Tue, 15 Mar 2022 19:36:28 +0000 (15:36 -0400)]
gallium: Learn about kopper
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Adam Jackson [Tue, 15 Mar 2022 19:35:19 +0000 (15:35 -0400)]
glx: Learn about kopper
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Adam Jackson [Tue, 15 Mar 2022 19:35:48 +0000 (15:35 -0400)]
egl: Learn about kopper
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Adam Jackson [Tue, 15 Mar 2022 19:32:30 +0000 (15:32 -0400)]
kopper: Define the driver interface
The loader extension provides upcalls to get surface state (native
resource and size) into the driver. The driver extension is called by a
kopper-aware loader in preference to __DRI_SWRAST's createNewDrawable.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Adam Jackson [Thu, 24 Mar 2022 19:05:32 +0000 (15:05 -0400)]
meson: Define a HAVE_XXXX macro for every gallium driver we build
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Mike Blumenkrantz [Wed, 29 Sep 2021 17:15:01 +0000 (13:15 -0400)]
st/manager: update framebuffer size if texture has been resized
zink/kopper can and does expect this when resizing swapchains,
so don't ignore it
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14541>
Erik Faye-Lund [Tue, 5 Apr 2022 10:35:05 +0000 (12:35 +0200)]
clc/tests: use dxil_validator
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>
Erik Faye-Lund [Tue, 5 Apr 2022 10:28:53 +0000 (12:28 +0200)]
dzn: use dxil_validator
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>
Erik Faye-Lund [Tue, 5 Apr 2022 09:29:19 +0000 (11:29 +0200)]
microsoft/spirv_to_dxil: use dxil_validator
This has one negative side-effect; we're no longer able to print
validation errors without dxcompiler.dll. I doubt that's a real problem,
but if it is, we should add this ability to dxil_validator instead of
having a second implementation here.
The reasons I didn't try adding this in the first place is:
1. This code seems a bit janky; it doesn't consult the "known"-variable
to figure out if the encoding is OK, and it's lacking a fallback path
in that case.
2. It seems unlikely that the compiler varies the encoding of the output
in the first place; one of the two code-paths in here is probably
untested.
3. Since dxil_validator leaves reporting to the call-site, we'd need to
either add and output-encoding to the API (yuck), or re-encode the
string to UTF-8 using WinAPI.
Right now, it seems questionable if fixing all of the above is worth it.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>
Erik Faye-Lund [Tue, 5 Apr 2022 09:11:54 +0000 (11:11 +0200)]
d3d12: use dxil_validator
Now that we have a shiny, new dxil validator interface, let's start
using it in the D3D12 gallium driver.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>
Erik Faye-Lund [Tue, 5 Apr 2022 08:39:01 +0000 (10:39 +0200)]
microsoft/compiler: add common dxil-validator API
This API is only available on Windows, which is the only OS where DXIL
validation is a requirement, and where DXIL.dll (and dxcompiler.dll) are
available.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15751>
Jason Ekstrand [Wed, 6 Apr 2022 19:22:43 +0000 (14:22 -0500)]
iris: Allow userptr on 1D and 2D images
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15779>
Jason Ekstrand [Wed, 6 Apr 2022 19:22:23 +0000 (14:22 -0500)]
iris: Allow non-page-aligned userptr
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15779>
Jason Ekstrand [Wed, 6 Apr 2022 20:07:10 +0000 (15:07 -0500)]
iris: Take offsets into account when mapping resources
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15779>
Mike Blumenkrantz [Tue, 5 Apr 2022 14:07:54 +0000 (10:07 -0400)]
zink: simplify shader i/o assignment
by utilizing a separate slot map for patch variables, the entire i/o
assignment mechanism can be simplified to accurately manage i/o for all
types of variables and avoid location conflicts
affects:
KHR-Single-GL46.enhanced_layouts*
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15770>
Mike Blumenkrantz [Wed, 6 Apr 2022 14:21:32 +0000 (10:21 -0400)]
zink: use local variable in consumer shader i/o assign to match producer usage
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15770>
Mike Blumenkrantz [Wed, 6 Apr 2022 14:21:32 +0000 (10:21 -0400)]
zink: use local variable more consistently in producer shader i/o assign
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15770>
Mike Blumenkrantz [Wed, 6 Apr 2022 12:32:49 +0000 (08:32 -0400)]
zink: prune shader i/o more aggressively
fixes some radv validation spam on:
KHR-Single-GL46.enhanced_layouts*
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15770>
Mike Blumenkrantz [Wed, 6 Apr 2022 15:57:50 +0000 (11:57 -0400)]
zink: run shader optimize loop during initial create
this is important for removing dead variables
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15770>
Mike Blumenkrantz [Wed, 6 Apr 2022 18:24:03 +0000 (14:24 -0400)]
zink: rework missing feature warnings
the previous methodology triggered warnings any time a rasterizer state
was created with unsupported features without determining whether those
features would actually be used
a more optimal process is to check for missing features at pipeline creation,
as all the necessary info is now available, and spurious warnings can be avoided
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15778>
Mike Blumenkrantz [Wed, 6 Apr 2022 18:31:26 +0000 (14:31 -0400)]
zink: fix warning text in missing feature macro
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15778>
Mike Blumenkrantz [Wed, 6 Apr 2022 18:30:49 +0000 (14:30 -0400)]
zink: add a param to warn_missing_feature() macro
this lets the macro be used more programmatically since the variable
is defined externally
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15778>
Mike Blumenkrantz [Tue, 8 Mar 2022 15:49:02 +0000 (10:49 -0500)]
zink: switch warn_missing_feature to mesa_logw
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15778>
Emma Anholt [Wed, 16 Mar 2022 21:49:21 +0000 (14:49 -0700)]
ci: Uprev deqp-runner and piglit.
deqp-runner uprevved to reduce memory usage on HW runners, let us
experiment with shader cache on tmpfs, and hopefully provide a tool for
virgl to be able to plausibly run piglit under crosvm instead of vtest.
piglit uprevved to avoid a flake in softpipe in glx-multithread-texture,
and improve performance of the test, too. This also brings in the
fbo-blending-format-quirks fix to properly initialize the buffers, fixing
some fails/flakes.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15419>
Emma Anholt [Tue, 5 Apr 2022 20:03:47 +0000 (13:03 -0700)]
ci/turnip: Drop xfails for create_list_modifiers.
These were fixed in
5ce06f8474fa ("turnip: Use correct type for OUTARRAY
in FormatProperties2"), but they aren't included in the pre-merge CI run.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15419>
Jason Ekstrand [Wed, 6 Apr 2022 18:17:38 +0000 (13:17 -0500)]
iris: Handle range tracking for global bindings
The moment something is bound globally, the whole thing is valid.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15777>
Jason Ekstrand [Wed, 6 Apr 2022 18:14:14 +0000 (13:14 -0500)]
iris: Account for BO offsets in iris_set_global_binding()
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15777>
Danylo Piliaiev [Wed, 6 Apr 2022 15:12:39 +0000 (18:12 +0300)]
ci/freedreno: Add fractional test of forced unaligned gmem store
Unaligned gmem store is a mostly untested path since most
of the times faster path is chosen. We have to force unaligned
store to really test it.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15773>
Lionel Landwerlin [Wed, 6 Apr 2022 08:50:13 +0000 (11:50 +0300)]
blorp: disable depth bounds
Otherwise the driver setting interacts with it.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes:
939ddccb7a54 ("anv: Add support for depth bounds testing.")
Fixes:
1df871f8ff75 ("iris: Add support for depth bounds testing.")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15763>
Lionel Landwerlin [Wed, 6 Apr 2022 08:49:51 +0000 (11:49 +0300)]
anv: remove unused 3DSTATE_DEPTH_BOUNDS fields
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15763>
Jason Ekstrand [Wed, 6 Apr 2022 15:50:10 +0000 (10:50 -0500)]
lavapipe: Go back to manually signaling in lvp_AcquireNextImage2()
When porting lavapipe to the common sync framework, I stole the dummy
sync signal_for_memory idea from RADV but didn't actually do it
correctly. Unless you set wsi_device::signal_semaphore_with_memory and
wsi_device::signal_fence_with_memory, it doesn't actually signal
anything. If you do set those, it works but also results in dummy
syncs being created for present fences which we see as signals. We
could choose to just skip those like RADV does but that's too magic.
Instead, have our own AcquireNextImage2() again which sets dummy syncs.
Fixes:
3b547a9b5816 ("lavapipe: Switch to the common sync framework")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15774>
Danylo Piliaiev [Fri, 1 Apr 2022 17:00:30 +0000 (20:00 +0300)]
turnip: Fix subpassLoad from CUBE input attachments
Cube descriptors require a different sampling instruction in shader,
however we don't know whether image is a cube or not until the start
of a renderpass. We have to patch the descriptor to make it compatible
with how it is sampled in shader.
For the reference subpassLoad is currently translated into isaml.a
Blob v615 also doesn't handle this case correctly.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15734>
Erik Faye-Lund [Tue, 5 Apr 2022 06:40:42 +0000 (08:40 +0200)]
d3d12: fix return-code without dxcompiler.dll
When we don't have a good dxcompiler.dll that we can load IDxcLibrary
from to help with diagnostics, we currently return true for validation
even if the validation actually failed.
Let's fix that, and also add a debug-message explaining what went wrong
for those who are debugging and wondering what's up.
Fixes:
2ea15cd661c ("d3d12: introduce d3d12 gallium driver")
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15744>
Cristian Ciocaltea [Wed, 30 Mar 2022 06:57:19 +0000 (09:57 +0300)]
ci: Lock Intel GPU frequency for performance tests
In order to ensure consistent results when running performance tests,
lock the frequency for Intel GPUs to ~70% of the maximum allowed by
hardware.
This seems to offer a good balance between execution speed and results
consistency.
An increase of the frequency will also increase the rate of throttling
events, with a negative impact on consistency. Such events are logged,
as in the following example:
GPU throttling detected: act=200 min=850 cur=850 RPn=100
This shows the actual GPU frequency (200 MHz) dropped below the minimum
requested (850 MHz).
For more details about the various frequency information sources, please
see the script header comments in ".gitlab-ci/common/intel-gpu-freq.sh".
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15662>
Cristian Ciocaltea [Wed, 30 Mar 2022 06:50:39 +0000 (09:50 +0300)]
ci: Provide intel-gpu-freq.sh in LAVA and bare-metal rootfs
The script will be used for tuning Intel GPU frequency to maximize
performance tests execution, while also trying to reduce throttling,
which has a negative impact on results consistency.
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15662>
Cristian Ciocaltea [Tue, 29 Mar 2022 12:55:38 +0000 (15:55 +0300)]
ci: Add Intel GPU frequency utility
Add script to manage Intel GPU frequencies.
It can be used for debugging performance problems or to lock a stable
frequency while executing benchmark tests.
Typical use cases:
- Get all available GPU frequency information
$ ./intel-gpu-freq.sh -g all
* Hardware capabilities
RP0: 1350 MHz
RPn: 100 MHz
RP1: 400 MHz
* Enforcements
max: 1350 MHz
min: 100 MHz
boost: 1350 MHz
* Actual
act: 100 MHz
cur: 400 MHz
- Lock frequency to 80% of the maximum allowed by hardware and enable
throttling detection
$ ./intel-gpu-freq.sh -s 80% -d
GPU throttling detected: act=1050 min=1350 cur=1350 RPn=100
GPU throttling detected: act=1100 min=1350 cur=1350 RPn=100
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15662>