Boris Brezillon [Wed, 16 Dec 2020 13:48:57 +0000 (14:48 +0100)]
panfrost: Fix calculation of body/header pointers for 3D AFBC
When using 3D AFBC, all headers are placed at the beginning instead of
being interleaved with each surface body, which forces us to adjust
the calculation in that case.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 09:50:02 +0000 (10:50 +0100)]
panfrost: Allow AFBC on 2D arrays
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Fri, 18 Dec 2020 20:38:44 +0000 (21:38 +0100)]
panfrost: Fix panfrost_should_linear_convert()
Take 3D/array textures into accound when checking for entire overwrite.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Mon, 4 Jan 2021 08:53:45 +0000 (09:53 +0100)]
panfrost: Initialize AFBC headers to zero
This way we can load uninitialized AFBC surfaces without causing GPU
faults.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Fri, 18 Dec 2020 13:25:51 +0000 (14:25 +0100)]
panfrost: Use panfrost_get_layer_stride() instead of open-coding it
If we don't do that we don't account for CRC buffers.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Mon, 14 Dec 2020 10:43:22 +0000 (11:43 +0100)]
panfrost: Enable AFBC support on Bifrost
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 09:31:11 +0000 (10:31 +0100)]
panfrost: Fix AFBC support on Bifrost
Bifrost and Midgard render target and ZS extension descriptors are a bit
different, adjust the code to take those differences into account.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 07:24:39 +0000 (08:24 +0100)]
panfrost: Use proper format for Z16_UNORM
R16_UNORM isn't compatible with AFBC, we need to use the native Z16
format if we want to allow AFBC on those resources.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 09:57:05 +0000 (10:57 +0100)]
panfrost: Fix ZS block format v7 definition
This field takes 4 bits, not 2.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Fri, 18 Dec 2020 09:42:07 +0000 (10:42 +0100)]
panfrost: Adjust the format for AFBC textures on Bifrost v7
On Bifrost v7, AFBC textures can't be used with a non-identity component
order. Let's patch the format so the component order is always RGB[A].
That means we're lying about the internal format, but that shouldn't be
a problem as long as we don't share the resource.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Fri, 18 Dec 2020 09:37:11 +0000 (10:37 +0100)]
panfrost: Pass a pipe-like swizzle to panfrost_new_texture()
And let the function translate it to a mali swizzle. This way we will
be able to adjust the swizzle if needed.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Fri, 18 Dec 2020 10:56:25 +0000 (11:56 +0100)]
panfrost: Add R5G6B5_UNORM entries to the format tables
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 09:27:02 +0000 (10:27 +0100)]
panfrost: Adjust surface stride calculation to take AFBC into account
AFBC strides are different from tiled/linear stride and we need to
use the value defined in slice.afbc.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 09:22:20 +0000 (10:22 +0100)]
panfrost: Add AFBC slice.body_size and slice.{row,surface}_stride fields
Those are needed for render target and texture descriptors and can't be
easily extracted from the other fields present in panfrost_slice
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 09:06:44 +0000 (10:06 +0100)]
panfrost: Fix AFBC header_size and slice size calculation
3D AFBC textures have their AFBC headers grouped together at the
beginning of the buffer which means the header_size should be multiplied
by the depth. 2D arrays have their AFBC headers placed at the beginning
of each slice, meaning that the slice size should take them into account.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Mon, 14 Dec 2020 18:52:48 +0000 (19:52 +0100)]
panfrost: Move AFBC header_size to a sub-struct
So we can add more AFBC related fields under this struct.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Thu, 17 Dec 2020 11:12:28 +0000 (12:12 +0100)]
panfrost: Add a pan_image_layout object
Group the slices, dimension, modifier and array stride in a an object
representing the image layout. This way we shrink the number of
arguments passed to various pan_texture helpers and simplifies some
of the logic along the way.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 08:57:52 +0000 (09:57 +0100)]
panfrost: Stop mixing depth and number of samples
Texture depth and MSAA are two different concepts even if they are
exclusive on Mali GPUs (depth field is repurposed for sample index
there). Let's not mix them and adjust the slice_full_size calculation
to take both into account.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Thu, 17 Dec 2020 11:03:42 +0000 (12:03 +0100)]
panfrost: Use PAN_V6_SWIZZLE() in pan_blit.c
Suggested-by: Icecream95
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Thu, 17 Dec 2020 09:46:38 +0000 (10:46 +0100)]
panfrost: s/panfrost_slice.size0/panfrost_slice.surface_stride/
This field is encoding the stride between two consecutive surface
in a 3D texture. Let's use a name reflecting that.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 08:44:43 +0000 (09:44 +0100)]
panfrost: Merge panfrost_new_texture() and panfrost_new_texture_bifrost()
There's no reason to keep both now that the internal logic has been
deduplicated.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 07:45:36 +0000 (08:45 +0100)]
panfrost: Adjust the compression tag creation for Bifrost
Bifrost has a few more compression flags that are worth specifying.
Extend panfrost_compression_tag() to deal with those too.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Fri, 18 Dec 2020 11:19:07 +0000 (12:19 +0100)]
panfrost: Define AFBC surface flags
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 07:40:33 +0000 (08:40 +0100)]
panfrost: Pass a dev object to panfrost_needs_explicit_stride()
So we can soon use the same path for Bifrost and Midgard.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 08:14:48 +0000 (09:14 +0100)]
panfrost: Merge emit_texture_payload() and emit_texture_payload_v7()
The only reason we have two different functions to prepare the texture
payload is the different ordering between pre-v7 and v7+ GPUs. Abstract
the surface iteration so we can merge panfrost_emit_texture_payload_v7()
and panfrost_emit_texture_payload().
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Wed, 16 Dec 2020 07:36:46 +0000 (08:36 +0100)]
panfrost: Pass a device object to panfrost_new_texture()
We will need it to merge some of the Bifrost and Midgard logic.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Mon, 14 Dec 2020 18:50:08 +0000 (19:50 +0100)]
panfrost: Group CRC fields in a struct
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Boris Brezillon [Thu, 17 Dec 2020 09:33:50 +0000 (10:33 +0100)]
panfrost: Move checksum_bo to panfrost_resource
There's no reason to have the checksum_bo at the slice level since there
can only be one external CRC BO per resource. Move this field to the
panfrost_resource struct.
Suggested-by: Icecream95
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
Mike Blumenkrantz [Mon, 4 Jan 2021 14:46:07 +0000 (09:46 -0500)]
features: mark off textureGather for zink
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8151>
Mike Blumenkrantz [Mon, 4 Jan 2021 14:45:34 +0000 (09:45 -0500)]
zink: enable PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8151>
Mike Blumenkrantz [Fri, 24 Jul 2020 13:48:36 +0000 (09:48 -0400)]
zink: handle textureGather with Shadow-type samplers
these have to go through OpImageDrefGather without composite construction
on the result
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8151>
Mike Blumenkrantz [Wed, 15 Jul 2020 19:25:45 +0000 (15:25 -0400)]
zink: implement ARB_texture_gather
again pretty straightforward, just hooking up tg4 tex op in ntv
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8151>
Mike Blumenkrantz [Wed, 15 Jul 2020 19:18:24 +0000 (15:18 -0400)]
zink: use Offset param for txf ops
there's an image operand for handling offsets, so we can use this when it
hasn't previously been lowered away
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8151>
Mike Blumenkrantz [Thu, 24 Dec 2020 15:38:15 +0000 (10:38 -0500)]
zink: run nir_lower_tex for offsets if shaderImageGatherExtended is missing
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8151>
Danylo Piliaiev [Mon, 4 Jan 2021 14:16:32 +0000 (16:16 +0200)]
nir: fix missing nir_lower_pntc_ytransform.c in the makefile
Fixes:
33fd9e5d "nir: account for point-coord origin when lowering it"
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8308>
Mike Blumenkrantz [Tue, 28 Jul 2020 18:50:45 +0000 (14:50 -0400)]
zink: handle dynamic sampler array indexing for arb_gpu_shader5
this requires that arrays of samplers be declared as single variables with
a single binding point, which is then propagated through to the descriptor
set updates
constant sampler array indexing is now un-lowered during access so we can
construct an access chain for both constant and dynamic offset paths
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8155>
Mike Blumenkrantz [Thu, 31 Dec 2020 20:44:32 +0000 (15:44 -0500)]
radv: avoid oob read during clear
when clearing a depth/stencil image the passed colorvalue pointer is
smaller than the VkClearValue struct size
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8288>
Danylo Piliaiev [Tue, 22 Dec 2020 12:37:45 +0000 (14:37 +0200)]
nir: account for point-coord origin when lowering it
The resulting point-coord origin not only depends on whether
the draw buffer is flipped but also on GL_POINT_SPRITE_COORD_ORIGIN
state. Which makes its transform differ from a transform of wpos.
On freedreno fixes:
gl-3.2-pointsprite-origin
gl-3.2-pointsprite-origin -fbo
Fixes:
d934d320 "nir: Add flipping of gl_PointCoord.y in nir_lower_wpos_ytransform."
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8200>
Bas Nieuwenhuizen [Mon, 28 Dec 2020 02:14:18 +0000 (03:14 +0100)]
radv: Use VRAM for the initial gfx cmdbuffer.
Not expect it to make any real difference, but lets be consistent.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7979>
Bas Nieuwenhuizen [Mon, 7 Dec 2020 23:09:29 +0000 (00:09 +0100)]
radv: Put commandbuffers in VRAM if all VRAM is CPU visible.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7979>
Bas Nieuwenhuizen [Mon, 7 Dec 2020 23:25:56 +0000 (00:25 +0100)]
radv: Use VRAM for upload buffers if entire VRAM is CPU-visible.
Not doing this for APUs because spilling is quite likely, due to
overall VRAM pressure.
Also adding a flag to disable for performance debugging.
Finally adds some memset for places where we depended on the memory
being initialized to zero, which we won't get with VRAM anymore.
(I think these places should stop depending on it since it hides
issues with executing the cmdbuffer multiple times, but this
preserves behavior)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7979>
Jesse Natalie [Mon, 28 Dec 2020 20:52:00 +0000 (12:52 -0800)]
microsoft/compiler: Fix clang fallthrough warnings
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:57:02 +0000 (10:57 -0800)]
microsoft/resource_state_manager: Remove unused private variable
Clang detects that this variable is unused. We can re-add it if
we end up needing it but for now let's just remove it.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:56:17 +0000 (10:56 -0800)]
microsoft/compiler: Fix tautological comparison
Clang detects that a signed character can't be >= 128. Instead,
we should just explicitly check for the 8th bit via bitmask compare.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:55:29 +0000 (10:55 -0800)]
microsoft/compile: Fix incorrect enum type in function signature
Clang warns for passing one enum type where another was expected.
This was just a copy/paste bug, and had no real impact since the
enum was just used as an integer in this function.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:54:24 +0000 (10:54 -0800)]
d3d12: Remove copy/pasted line of array initialization
Clang warns that the second instance overrides array entry
initialization, so remove the copy/pasted line. UNORM entries
are already initialized above (with alpha explicitly, and
NO_ALPHA used for the others), so this was just a duplicate and
had no real impact.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:52:44 +0000 (10:52 -0800)]
d3d12: Fix uninitialized variable referenced in error case
Clang warns that errorString is uninitialized if printBlobUtf8
is null, meaning GetBlobAsUtf8 failed, but then we go ahead and
access it (and printBlobUtf8) after the if. Expand the if to
encompass the printing.
Fixes:
2ea15cd6 ("d3d12: introduce d3d12 gallium driver")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:50:40 +0000 (10:50 -0800)]
d3d12: Fix clang warnings from {0} in C++ code
There's no reason for the 0 here since C++ supports {},
and clang doesn't like it, so drop it.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:49:38 +0000 (10:49 -0800)]
microsoft/resoure_state_manager: Silence GCC invalid offsetof warning
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:48:54 +0000 (10:48 -0800)]
d3d12: Fix implicit fallthrough warnings
Changes comments to use FALLTHROUGH macro, to silence warnings
from both GCC and clang.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:48:21 +0000 (10:48 -0800)]
d3d12: Fix unused local variable warning in release build
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:47:48 +0000 (10:47 -0800)]
d3d12: Signed/unsigned comparison warning fixes
Missed these last time through, not sure how. I couldn't find a
reason for the nested loop in d3d12_enable_fake_so_buffers to go
backwards, which would require signed, so I switched it to forward.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:46:21 +0000 (10:46 -0800)]
d3d12: Unused variable warning indicated bug in bo_unmap
Fixes:
2ea15cd6 ("d3d12: introduce d3d12 gallium driver")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:44:08 +0000 (10:44 -0800)]
microsoft/compiler: Fix incorrect size passed to strncpy
GCC correctly detects/warns that this was the wrong size
Fixes:
b9c61379 ("microsoft/compiler: translate nir to dxil")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Jesse Natalie [Mon, 28 Dec 2020 18:42:37 +0000 (10:42 -0800)]
microsoft/compiler: Fix warnings produced by GCC in release mode
Inline some variables/functions that are only used for asserts.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8248>
Marek Vasut [Sat, 19 Dec 2020 00:23:12 +0000 (01:23 +0100)]
etnaviv: Fix rework ZSA into a derived state
In case the stencil is modified, it is also enabled. That was the
behavior of the original code, which was also the correct behavior,
so reinstate the behavior.
Fixes dEQP-GLES2.functional.fragment_ops.depth_stencil.* on STM32MP1 GC400T.
Fixes:
b29fe26d438 ("etnaviv: rework ZSA into a derived state")
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: Marek Vasut <marex@denx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8174>
Vinson Lee [Thu, 31 Dec 2020 03:59:08 +0000 (19:59 -0800)]
softpipe: Fix typos.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8279>
Eric Anholt [Wed, 23 Dec 2020 21:52:22 +0000 (13:52 -0800)]
ci: Add a530 and a630 piglit runs.
These bring a whole lot of new coverage to these drivers, since dEQP is
bad at desktop GL feature coverage around early GL 3.x. piglit also gets
at a lot of MSAA, fast clearing, and texture layout issues that dEQP
doesn't do much with.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Eric Anholt [Tue, 29 Dec 2020 18:59:07 +0000 (10:59 -0800)]
ci/bare-metal: Pass through FDO_CI_CONCURRENT on bare-metal runners.
I've set it up in the gitlab-runer config on all the freedreno boards.
This means that for piglit, where the run.sh always choose either this
variable or 4 threads otherwise, we'll have the right number of parallel
tasks.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Eric Anholt [Tue, 29 Dec 2020 18:59:07 +0000 (10:59 -0800)]
ci/bare-metal: Drop extra DEQP_PARALLEL settings.
The .baremetal_test sets DEQP_PARALLEL: 0 (number of CPUs), so existing
DEQP tasks should already be auto-configured. This means we can drop
a530's single-threaded overrides, since it's non-SMP.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Christian Gmeiner [Tue, 20 Oct 2020 17:33:51 +0000 (19:33 +0200)]
ci/bare-metal: pass thorugh PIGLIT env vars
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Christian Gmeiner [Tue, 20 Oct 2020 17:33:07 +0000 (19:33 +0200)]
ci/fastboot: exclude either deqp or piglit
Keep the generated initramfs image as small as possible.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Christian Gmeiner [Sat, 17 Oct 2020 19:34:42 +0000 (21:34 +0200)]
ci/bare-metal: build full piglit for baremetal ARM targets.
ARM64 had it for traces only, upgrade it to a full build so we can test
a630. We also add it for armhf, as we'll want it on both rpi and etnaviv.
Bumped the LAVA tag as well, since the script changes a bit and it does
impact the final image (even if we aren't pulling in full piglit there
yet). Note I also had to drop the "v" on the tarring of their rootfs, as
the verbosity on baremetal was exceeding job log size.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Christian Gmeiner [Mon, 26 Oct 2020 21:01:07 +0000 (22:01 +0100)]
ci: build mesa with gbm
We need gbm support for piglit.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Christian Gmeiner [Sat, 17 Oct 2020 12:00:45 +0000 (14:00 +0200)]
ci: build ARM mesa with X11 OpenGL support
I want to run piglit with baremetal ci and for this opengl support
is needed.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7370>
Pierre Moreau [Thu, 12 Nov 2020 20:39:10 +0000 (21:39 +0100)]
clover: Expose cl_khr_extended_versioning
With the extension specification merged in and the last query now
supported, the extension can be advertised.
v2: Fix indentation (Dave Airlie)
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Tue, 5 May 2020 11:16:52 +0000 (13:16 +0200)]
clover: Implement clCreateProgramWithIL from OpenCL 2.1
v2: Remove clCreateProgramWithIL from api/invalid.cpp
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Thu, 12 Nov 2020 11:01:14 +0000 (12:01 +0100)]
clover: Advertise cl_khr_il_program
v2:
* Change the code to avoid the macro (Karol Herbst, Francisco Jerez);
* Update the code to add a `cl_name_version`.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Tue, 5 May 2020 11:16:47 +0000 (13:16 +0200)]
clover/api: Implement CL_DEVICE_IL_VERSION
v2: Move `supported_il_versions_as_string()` from `device` to an
anonymous namespace, and remove the static storage of the results
(Francisco Jerez)
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Tue, 5 May 2020 11:16:44 +0000 (13:16 +0200)]
clover: Handle CL_PROGRAM_IL in clGetProgramInfo
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Tue, 5 May 2020 11:16:42 +0000 (13:16 +0200)]
clover: Implement clCreateProgramWithILKHR
v2: Use the same storage for OpenCL C sources and ILs representations
(Karol Herbst, Francisco Jerez)
v3:
* Remove `program::has_source` and instead add a value to
`program::il_type` for sources. (Francisco Jerez)
* Use `std::move()` on sources.
* Replace `CL_MAKE_VERSION(99999999u, 0u, 0u)` with
`std::numeric_limits<uint32_t>::max()` (Francisco Jerez)
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Thu, 12 Nov 2020 19:38:18 +0000 (20:38 +0100)]
clover: List supported ILs versions
v2:
* Change the existing method to return a `std::vector<cl_name_version`;
* Add a string function that uses the previous method but returns a
`std::string`.
v3:
* Remove `supported_il_versions_as_string()` (Francisco Jerez)
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Thu, 12 Nov 2020 19:36:15 +0000 (20:36 +0100)]
clover/spirv: Use cl_version for SPIR-V versions (v2)
v2: Explicitly construct the cl_name_version object.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Tue, 5 May 2020 11:16:39 +0000 (13:16 +0200)]
clover/spirv: Add function checking the SPIR-V version
An OpenCL implementation advertising a certain version of the API does
not have to support all existing version: some versions are mandatory
but not all. For example, the OpenCL 2.1 Specification mentions that
conforming implementations have to support SPIR-V 1.0, but only might
support higher versions.
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Sun, 13 Dec 2020 20:25:33 +0000 (21:25 +0100)]
clover/spirv: Change API to use std::string binaries
clover::program stores IL representations using a std::string, so change
the API to also use std::string to avoid copies and additional
allocations.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Tue, 5 May 2020 11:16:36 +0000 (13:16 +0200)]
clover/spirv: Add function checking whether a binary contains SPIR-V
v2: Change API to take a std::string
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Pierre Moreau [Thu, 12 Nov 2020 19:08:45 +0000 (20:08 +0100)]
clover/spirv: Add version conversion utilities
SPIR-V and OpenCL encodes differently version numbers and since SPIR-V
version numbers are reported in OpenCL, there is a need for utilities to
convert back and forth.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078>
Marek Olšák [Mon, 12 Oct 2020 01:27:21 +0000 (21:27 -0400)]
st/mesa: skip glDrawPixels if it's totally clipped for all codepaths
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7720>
Marek Olšák [Mon, 12 Oct 2020 01:25:14 +0000 (21:25 -0400)]
st/mesa: relax requirements for doing glCopyPixels via blit
glCopyPixels doesn't use a vertex shader, so ignore it.
The rest should be obvious.
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7720>
Marek Olšák [Wed, 9 Dec 2020 01:40:57 +0000 (20:40 -0500)]
st/mesa: don't do glCopyPixels via blit if depth bounds test is enabled
Fixes:
36a6f848bb0 - st/mesa: add EXT_depth_bounds_test
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7720>
Marek Olšák [Mon, 21 Dec 2020 07:39:13 +0000 (02:39 -0500)]
gallium/util: fix util_can_blit_via_copy_region for conditional rendering
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7720>
Alyssa Rosenzweig [Fri, 1 Jan 2021 04:52:04 +0000 (23:52 -0500)]
docs: Document extensions exposing GL3.0
Conditional rendering bumps us to big GL 3.0 on Midgard, but broken
texture buffer handling keeps us from GL 3.1. That should be fixed
shortly, I hope.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8292>
Icecream95 [Sun, 6 Sep 2020 11:26:51 +0000 (23:26 +1200)]
panfrost: Set conditional render cap
Enables OpenGL 3.0 by default on t760+:
$ PAN_MESA_DEBUG= glxinfo | grep "GL version"
OpenGL version string: 3.0 Mesa 20.3.0-devel
Inverted conditional rendering is also enabled as the conditional
rendering code handles that case.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8292>
Alyssa Rosenzweig [Fri, 1 Jan 2021 04:49:10 +0000 (23:49 -0500)]
panfrost: Respect the render condition
Clears, draws, and blits should check. All from freedreno.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8292>
Alyssa Rosenzweig [Fri, 1 Jan 2021 04:44:32 +0000 (23:44 -0500)]
panfrost: Import render condition check from fd
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8292>
Icecream95 [Sat, 5 Sep 2020 11:19:56 +0000 (23:19 +1200)]
panfrost: Stub out panfrost_render_condition
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8292>
Icecream95 [Thu, 31 Dec 2020 12:39:49 +0000 (01:39 +1300)]
pan/mdg: Support loads and stores to scratch memory
Similar to shared memory load/store, except giving a different memory
type to the hardware.
Add nir->scratch_size to ctx->tls_size to allocate the memory.
Tested with the Piglit OpenCL test i32-stack-array.cl.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Thu, 31 Dec 2020 12:59:27 +0000 (01:59 +1300)]
pan/mdg: Invert the type conditional for load intrinsics
There are now more intrinsics for which nir_type_uint is forced than
where the destination type is used to find the intrinsic type, so
invert the conditional so that nir_type_uint is the default case when
nothing more specific is given.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Thu, 31 Dec 2020 12:29:04 +0000 (01:29 +1300)]
pan/mdg: Pass the memory type to mir_set_offset directly
We want to add support for more memory types, so replace the is_shared
bool with an integer that is directly stored to load_store.arg_1.
The new memory type values are off by 0x40, as that bit now comes from
the index type.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Mon, 28 Dec 2020 12:00:24 +0000 (01:00 +1300)]
pan/mdg: Add i2i64 to mir_match_offset
Similar to the existing u2u64 function, but with a different type.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Thu, 31 Dec 2020 12:44:04 +0000 (01:44 +1300)]
pan/mdg: Return false instead of asserting in mir_args_ssa
mir_args_ssa asserted that the given number of arguments to use is
greater than or equal to the actual number, but this is not checked by
callers, so instead of crashing return false to mark failure.
Fixes the local memory atomics OpenCL tests in Piglit.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Thu, 31 Dec 2020 12:18:51 +0000 (01:18 +1300)]
pan/mdg: Replace zext with a type enum
The index type is actually a two-bit field, with support for both sign
and zero extension.
What was previously labelled as `zext` actually does sign-extension,
but we want that in most cases anyway.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Mon, 28 Dec 2020 12:13:49 +0000 (01:13 +1300)]
panfrost: Allow NULL for some binding functions
Handle Clover passing NULL to bind_sampler_states and
set_sampler_views when cleaning up after launching a job.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Mon, 28 Dec 2020 12:08:10 +0000 (01:08 +1300)]
pan/mdg: Support nir_intrinsic_group_memory_barrier
Treat it like the other memory barriers and do nothing.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Mon, 28 Dec 2020 11:57:42 +0000 (00:57 +1300)]
pan/mdg: Support nir_intrinsic_load_global_constant
Treat it the same as nir_intrinsic_load_global.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Sat, 26 Dec 2020 11:04:52 +0000 (00:04 +1300)]
pan/mdg: Use the pan_nir_lower_64bit_intrin NIR pass
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Sat, 26 Dec 2020 11:04:14 +0000 (00:04 +1300)]
panfrost: Add a NIR pass to lower 64-bit vec3 intrinsic loads
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Tue, 22 Dec 2020 12:27:42 +0000 (01:27 +1300)]
panfrost: Stop lowering cs derived sysvals in glsl
Mali GPUs have native gl_GlobalInvocationID support, so we don't want
it to be lowered.
Although we do want to lower gl_LocalInvocationIndex, the single CAP
doesn't allow for choosing what to lower. We've already told NIR to do
the lowering instead, so just disable the GLSL-level lowering.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Tue, 22 Dec 2020 12:53:15 +0000 (01:53 +1300)]
pan/mdg: Set compute lowering options
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>
Icecream95 [Tue, 22 Dec 2020 12:54:01 +0000 (01:54 +1300)]
pan/mdg: Implement load_global_invocation_id
NIR generates global_invocation_id, but Clover lowers it to
global_invocation_id_zero_base. It isn't lowered for OpenGL,
so we need to support both intrinsics.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8264>