Dave Airlie [Fri, 19 Jun 2020 07:00:46 +0000 (17:00 +1000)]
gallivm/nir: split tex/sampler indirect offsets
vulkan has these separate, should be fine for GL as well as
the values will be the same anyways.
Fixes:
dEQP-VK.binding_model.shader_access.secondary_cmd_buf.uniform_texel_buffer.*
dEQP-VK.binding_model.descriptorset_random.sets4.noarray.ubolimitlow.sbolimitlow.sampledimglow.outimgtexlow.noiub.uab.vert.noia*
dEQP-VK.binding_model.descriptor_copy.graphics.uniform_texel_buffer.*
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Tue, 7 Apr 2020 01:11:51 +0000 (11:11 +1000)]
gallivm/nir: fixup compact TCS variable storage.
This fixes a lot of tessellation shaders, since tess factors
get emitted with spir-v now.
Fixes a bunch of:
dEQP-VK.tessellation*
along with 7000 others.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Mon, 17 Aug 2020 04:52:04 +0000 (14:52 +1000)]
gallium/nir/tgsi: add support for compact variables
vulkan tessellation uses compact variables for tess factors,
and trips over in the nir->tgsi info gathering, add support
to the info extraction for compact inputs and outputs.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Mon, 17 Aug 2020 01:42:42 +0000 (11:42 +1000)]
llvmpipe: lower uadd_carry/usub_borrow.
Fixes:
dEQP-VK.glsl.builtin.function.integer.uaddcarry.*
dEQP-VK.glsl.builtin.function.integer.usubborrow.*
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Mon, 17 Aug 2020 01:09:19 +0000 (11:09 +1000)]
gallivm/sample: fix lod query on array textures.
The lod query doesn't take a layer, but the code tries to use one,
detect lodq and don't use a layer in those cases.
There appears to be no GL tests for this behaviour, but the vulkan
CTS hits it.
Fixes:
dEQP-VK.glsl.texture_functions.query.texturequerylod.*
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Fri, 19 Jun 2020 07:07:31 +0000 (17:07 +1000)]
gallivm/nir: add imod support
Just adds support for the imod instruction
Fixes:
dEQP-VK.glsl.operator.binary_operator.mod.*
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Tue, 18 Aug 2020 18:52:06 +0000 (04:52 +1000)]
gallium/nir/tgsi: reindent some code in the nir->tgsi info (v2)
v2: Eric pointed out some code changes snuck in here.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Fri, 19 Jun 2020 05:27:51 +0000 (15:27 +1000)]
llvmpipe/cs: update compute counters not fragment shader.
This was updating the wrong counters.
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Fixes: a6f6ca37c82bb6810971 ("llvmpipe: add initial shader create/bind/destroy variants framework.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Dave Airlie [Tue, 18 Aug 2020 05:17:57 +0000 (15:17 +1000)]
vallium: fix input attachment lowering variable shadowing
This caused a bunch of tests to crash due to pos being shadowed
wrongly.
Fixes:
dEQP-VK.binding_model.descriptor_copy.graphics.input_attachment*
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Fixes: b38879f8c5f57b7f1802 ("vallium: initial import of the vulkan frontend")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6339>
Hyunjun Ko [Sun, 19 Apr 2020 15:20:41 +0000 (17:20 +0200)]
freedreno: support GL_EXT_semaphore
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Eduardo Lima Mitev [Tue, 7 Apr 2020 06:54:16 +0000 (08:54 +0200)]
freedreno: Enable GL_EXT_memory_object and GL_EXT_memory_object_fd
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Eduardo Lima Mitev [Thu, 11 Jun 2020 16:54:10 +0000 (18:54 +0200)]
freedreno: Implement pipe screen's get_device/driver_uuid()
v2: Don't need to prefix included uuid headers path with
'freedreno'. (Rob Clark)
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Eduardo Lima Mitev [Wed, 8 Apr 2020 11:59:48 +0000 (13:59 +0200)]
freedreno: implement pipe screen's resource_from_memobj
v2: Use 'prsc' and 'rsc', 'pmemobj' and 'memobj' for consistency with
rest of the code. (Rob Clark)
v3: - Use the existing flag PIPE_BIND_LINEAR instead (Marek Olšák)
- Assert that the resource is not intended for scanout (Rob Clark)
- Use the fd_resource_allocate_and_resolve() helper (Rob Clark)
- Check that bo's resolved size fit into memobj's bo size (Rob Clark)
v4: Don't steal memobj's bo, but share it instead by getting a new
ref. (Rob Clark)
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Eduardo Lima Mitev [Wed, 13 May 2020 10:51:36 +0000 (12:51 +0200)]
freedreno/layout: Move hard-coded minimum width for UBWC to a macro
This will also allow reuse of the value later in this series.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Eduardo Lima Mitev [Tue, 18 Aug 2020 08:04:02 +0000 (10:04 +0200)]
freedreno: Refactor fd_resource_create_with_modifiers() into a helper
The helper just allocates and resolves layout, but does not deal with
scanout buffers nor allocation of the actual bo.
The resolved bo size is returned as an output argument.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Eduardo Lima Mitev [Tue, 7 Apr 2020 06:52:25 +0000 (08:52 +0200)]
freedreno: Implement memory object create/destroy for GL_EXT_memory_object
v2: Add implementation of fd_memobj_destroy() virtual func, which was newly
added.
v3: The memobj bo must be non-NULL and destroyed as part of memobj
destruction (instead of its reference being stolen). (Rob Clark)
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Eduardo Lima Mitev [Thu, 7 May 2020 15:28:44 +0000 (17:28 +0200)]
st: Pass TextureTiling option from texture to memory obj
If tiling is linear, also adds the corresponding pipe bind flag
to the resource template when creating a new resource from the
memory object.
Modified TexParameteri to update the TextureTiling option only when the
texObj is not immutable (before TexStorageMem*DEXT is called to create
the texture from external memory).
v2: Ensure that memory object is not NULL before setting the
TextureTiling option (fixes TexStorage*D).
v3: Also add flag PIPE_SHARED to bindings (needed for some gallium
drivers).
v4: Use PIPE_BIND_LINEAR instead of adding a new PIPE_RESOURCE_FLAG
(Marek Olšák)
Co-authored-by: Eduardo Lima Mitev <elima@igalia.com>
Co-authored-by: Eleni Maria Stea <estea@igalia.com>
Co-authored-by: Hyunjun Ko <zzoon@igalia.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4565>
Jason Ekstrand [Mon, 17 Aug 2020 15:51:32 +0000 (10:51 -0500)]
spirv: Don't emit RMW for vector indexing in shared or global
Anything that fails the is_external_block check is getting the
vtn_local_load/store path which does read-modify-write which isn't
correct if the variable mode can be written cross-workgroup.
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6372>
Bas Nieuwenhuizen [Sat, 8 Aug 2020 22:51:15 +0000 (00:51 +0200)]
radv: Fix handling of attribs 16-31.
We really need to update the enum for consistency, but that involves
a bunch of GL & bitfield work which is error-prone, so since this is
a fix for stable lets do the simple things.
Confirmed that nothing in radv/aco/nir/spirv uses MAX_VERT_ATTRIB
except the one thing I bumped.
CC: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6120>
Bas Nieuwenhuizen [Thu, 30 Jul 2020 00:49:33 +0000 (02:49 +0200)]
radv: Override the uniform buffer offset alignment for World War Z.
Game does the equivalent of a
ALIGN(..., minUniformBufferOffsetAlignment >> 4)
which breaks when said alignment is <16 with a SIGFPE.
CC: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6120>
Bas Nieuwenhuizen [Thu, 30 Jul 2020 00:33:01 +0000 (02:33 +0200)]
driconf: Support selection by Vulkan applicationName.
This adds applicationName + version through like engineName.
Rationale: A game (World War Z) includes the store name in the
executable name, so has multiple executable names.
CC: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6120>
Kristian H. Kristensen [Tue, 11 Aug 2020 02:05:05 +0000 (19:05 -0700)]
egl/android: Add support for CrOS buffer info perform op
This uses a new gralloc perform op that returns the buffer info we
need. No need to guess at formats, hard code offsets and recalculate
strides. This also gives us the format modifier as well as aux planes
for compressed RGBA buffers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Kristian H. Kristensen [Tue, 11 Aug 2020 01:44:34 +0000 (18:44 -0700)]
egl/android: Use droid_create_image_from_prime_fds() in get_back_bo()
This function wants to create a __DRIimage for an ANativeWindowBuffer,
which is mostly the same logic as when we create an EGLImage for an
ANativeWindowBuffer. Reuse droid_create_image_from_prime_fds().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Kristian H. Kristensen [Tue, 11 Aug 2020 01:42:33 +0000 (18:42 -0700)]
egl/android: Move droid_create_image_from_prime_fds() function up
We'll use it for get_back_bo() next.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Kristian H. Kristensen [Fri, 7 Aug 2020 00:39:47 +0000 (17:39 -0700)]
egl/android: Simplify droid_create_image_from_name() path
This can now return an __DRIimage which we'll wrap in the shared code
in dri2_create_image_android_native_buffer().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Kristian H. Kristensen [Fri, 7 Aug 2020 00:29:35 +0000 (17:29 -0700)]
egl/android: Drop unused ctx argument
EGL_ANDROID_image_native_buffer requires the ctx argument to always be
NULL, so not point in passing it around.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Kristian H. Kristensen [Thu, 6 Aug 2020 23:45:28 +0000 (16:45 -0700)]
egl/android: Look up prime fds in droid_create_image_from_prime_fds()
We always need to look them up before calling this function, so move
the lookup into the function to consolidate the code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Kristian H. Kristensen [Thu, 6 Aug 2020 23:38:28 +0000 (16:38 -0700)]
egl/android: Call createImageFromDmaBufs directly
Instead of building up EGL attribute lists and then having to parse
them again, call the DRI driver directly and then use the
dri2_create_image_from_dri() helper to wrap the __DRIimage in an
EGLImage.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6055>
Connor Abbott [Tue, 18 Aug 2020 12:38:46 +0000 (14:38 +0200)]
freedreno: Add afuc regression test
a5xx is still TODO, but at least this is a start.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6368>
Connor Abbott [Tue, 18 Aug 2020 12:37:13 +0000 (14:37 +0200)]
freedreno/afuc: Install asm/disasm
Make the name a bit longer, since when installed it's not tucked away
under afuc/ anymore.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6368>
Connor Abbott [Tue, 18 Aug 2020 12:36:37 +0000 (14:36 +0200)]
freedreno/afuc: Make 0 a valid number
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6368>
Connor Abbott [Mon, 17 Aug 2020 17:44:14 +0000 (19:44 +0200)]
freedreno/afuc: Handle xmov modifiers
Although it's kind-of similar to "(rptN)" in the shader ISA, I called it
"xmov" to make it clear that it's completely orthogonal to "(rep)",
although you certainly can use both modifiers on the same instruction.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6368>
Connor Abbott [Mon, 17 Aug 2020 18:29:20 +0000 (20:29 +0200)]
freedreno/afuc: Add iret
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6368>
Connor Abbott [Mon, 17 Aug 2020 12:26:49 +0000 (14:26 +0200)]
freedreno/afuc: Handle setsecure opcode
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6368>
Connor Abbott [Mon, 17 Aug 2020 12:11:39 +0000 (14:11 +0200)]
freedreno/afuc: Fix printing preemptleave on a5xx
This opcode is actually used on a5xx, but I'm not sure what it's for.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6368>
Boris Brezillon [Tue, 28 Jul 2020 06:42:53 +0000 (08:42 +0200)]
spirv: Add support for the CL Round instruction
Add a round() implementation that's conformant with the CL spec.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6256>
Gert Wollny [Thu, 23 Apr 2020 10:32:02 +0000 (12:32 +0200)]
meson: Make some warnings handled as errors with MSVC
We should really pass the right number and parameter types to
functions.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6227>
Daniel Stone [Mon, 6 Apr 2020 20:35:09 +0000 (21:35 +0100)]
meson: Add MSVC narrowing-int-to-char warnings
MSVC seems quite keen to warn us that we're narrowing an int into a
char, even if it fits entirely within range.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6227>
Tomeu Vizoso [Tue, 18 Aug 2020 12:37:27 +0000 (14:37 +0200)]
Revert "CI: Disable Panfrost T720/T760 CI"
This reverts commit
9ef192c100b4c4520c99a9948bf0cfbd52e363fc.
Revert "CI: Disable Panfrost T860 and AMD Stoney tests"
This reverts commit
3e447c1ad2d605bb234b43ef63c5d9ce53d9ff37.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6366>
Gert Wollny [Tue, 14 Jul 2020 13:28:00 +0000 (15:28 +0200)]
gallium/aux: reorder vertex attributes in triangle fans according to PV
With triangle fans when "first vertex convention" is active the
provoking vertex is actually the second vertex so that the different
triangle can have different colors with flat shading. Take this into
account when re-ordering the vertex indices (as proposed by Erik)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Thu, 25 Jun 2020 10:26:54 +0000 (12:26 +0200)]
gallium/indices: translate primitive-restart values
This adds a config-option to u_primconvert that translates primitive
restart values to the max-values for the index size. This allows us to
support arbitrary primitive-restart indices on hardware that only
supports fixed restart-indices.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Mon, 22 Jun 2020 13:05:17 +0000 (15:05 +0200)]
gallium/indices: introduce u_primconvert_config
This struct allows us to pass the configuration as a struct, which can
more easily be extended to take more arguemnts as long as we're careful
about zero-initialization.
We keep the old create-function, but implement it as a wrapper on top so
we don't have to update all existing call-sites right now.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Mon, 22 Jun 2020 18:13:45 +0000 (20:13 +0200)]
gallium/indices: implement prim-restart for triangle fans
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Mon, 22 Jun 2020 18:08:48 +0000 (20:08 +0200)]
gallium/indices: use prim_restart-helper for polygon
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Mon, 22 Jun 2020 16:38:03 +0000 (18:38 +0200)]
gallium/indices: implement prim-restart for line-loops
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Thu, 18 Jun 2020 13:05:13 +0000 (15:05 +0200)]
gallium/indices: generalize primitive-restart logic
These blocks are all the same logic, but with a few details changed.
Let's add a parameterized version and add calls to that instead.
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Mon, 22 Jun 2020 13:56:45 +0000 (15:56 +0200)]
gallium/indices: don't expand prim-type for 8-bit indices
Expanding the primitive-type has two undesirable effects:
1. It breaks primitive-restart. This is possible to fix by explicitly
handling primitive-restart in more conversion routines. But
u_indices_gen.py is kind of a mess, so it's not trivial as-is.
2. It changes the reported gl_VertexID.
While it might be possible to work around this in each driver, it seems
better to avoid this when we can.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Erik Faye-Lund [Wed, 17 Jun 2020 13:52:05 +0000 (15:52 +0200)]
gallium/util: factor out primitive-restart rewriting logic
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5976>
Danylo Piliaiev [Mon, 17 Aug 2020 09:02:22 +0000 (12:02 +0300)]
spirv: Only require bare types to match when copying variables
OpCopyMemory doesn't care about mismatched decorations, only about
matching types.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3418
Fixes: bf1a1eed882980a1cd08482386e3a001ce64a5a4
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6344>
Marcin Ślusarz [Mon, 11 May 2020 21:26:40 +0000 (23:26 +0200)]
glsl: fix crashes on out of bound matrix access using constant index
Fixes these piglit tests:
- spec@glsl-1.20@execution@matrix-out-of-bounds-access@fs-mat4-out-of-bounds-2
- spec@glsl-1.20@execution@matrix-out-of-bounds-access@fs-mat4-out-of-bounds-4
- spec@glsl-1.20@execution@matrix-out-of-bounds-access@fs-mat4-out-of-bounds-5
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4998>
Louis-Francis Ratté-Boulianne [Thu, 19 Mar 2020 08:59:27 +0000 (04:59 -0400)]
st/mesa: Replace UsesStreams by ActiveStreamMask for GS
Some drivers need to know which streams are used by a geometry
shader. Adding a mask of active streams makes the use of
UsesStreams superfluous as it's the equivalent of:
ActiveStreamMask != (1 << 0)
Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5984>
Eric Engestrom [Mon, 17 Aug 2020 18:58:43 +0000 (20:58 +0200)]
meson: fix trivial s/dir/dri/ typo
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6354>
Daniel Stone [Tue, 18 Aug 2020 10:16:31 +0000 (11:16 +0100)]
CI: Disable Panfrost T720/T760 CI
Lab maintenance has taken down more of the infrastructure than
originally planned; also disable these until it all comes back.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6362>
Erik Faye-Lund [Fri, 12 Jun 2020 14:30:01 +0000 (16:30 +0200)]
st/wgl: do not reject PFD_SUPPORT_GDI
The WGL implementation is currently on top of GDI, so it supports GDI
just fine. No need to reject this.
Acked-by: Jose Fonseca <jfonseca@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6217>
Daniel Stone [Mon, 17 Aug 2020 17:49:27 +0000 (18:49 +0100)]
CI: Skip another flaky GS test on softpipe
Seems like it has real issues with GS in general. Just skip it for now
due to random failures seen a couple of times in the wild over the past
couple of weeks.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6352>
Daniel Stone [Mon, 17 Aug 2020 17:47:16 +0000 (18:47 +0100)]
CI: Skip flaky CS test on VirGL
We've seen this crash a few times over the past couple of weeks, but
haven't yet managed to reproduce locally and fix. In the meantime, just
skip.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6352>
Daniel Stone [Thu, 13 Aug 2020 13:12:54 +0000 (14:12 +0100)]
CI: Disable Panfrost T860 and AMD Stoney tests
Due to scheduled physical lab maintenance to prepare for expansion and
better shard our device types across redundant infrastructure, these
device types will be inaccessible for approx. 3 hours. Disable them
until they are back.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6302>
Jesse Natalie [Wed, 24 Jun 2020 17:58:36 +0000 (10:58 -0700)]
nir/vtn: Support OpOrdered and OpUnordered opcodes
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6355>
Jesse Natalie [Tue, 23 Jun 2020 12:44:39 +0000 (05:44 -0700)]
nir/vtn: Handle LessOrGreater deprecated opcode
Reviewed-by Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6355>
Jesse Natalie [Tue, 23 Jun 2020 22:22:44 +0000 (15:22 -0700)]
nir/vtn: Support SpvOpIsFinite via fisfinite
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6355>
Jesse Natalie [Tue, 23 Jun 2020 22:22:29 +0000 (15:22 -0700)]
nir: Add fisfinite op
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6355>
Jesse Natalie [Mon, 8 Jun 2020 12:55:39 +0000 (05:55 -0700)]
nir/vtn: Support SpvOpIsNormal via fisnormal
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6355>
Jesse Natalie [Mon, 8 Jun 2020 12:54:53 +0000 (05:54 -0700)]
nir: Add fisnormal op
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6355>
Boris Brezillon [Wed, 12 Aug 2020 12:28:48 +0000 (14:28 +0200)]
nir: Fix i64tof32 lowering
The round-to-nearest-even implementation found in lower_2f() is incorrect
for any value having a significand that is not directly representable
and whose non-representable part lies between 1 and half the minimum
representable value. In this case, the significand is rounded up instead
of being rounded down.
Fixes: 936c58c8fcce ("nir: Extend nir_lower_int64() to support i2f/f2i lowering")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6290>
Dave Airlie [Mon, 20 Jul 2020 03:45:09 +0000 (13:45 +1000)]
llvmpipe: enable GL 4.5
This passes conformance on both the master and 4.6.0 (with patches)
branches. I'll be submitting results shortly from the 20.2.x branch
this lands in.
Cc: "20.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6044>
Dave Airlie [Mon, 20 Jul 2020 03:41:34 +0000 (13:41 +1000)]
llvmpipe/blit: for 32-bit unorm depth blits just copy 32-bit
Don't have the shader do a 32-bit unorn to float conversion,
the values don't remain accurate then.
Fixes:
GTF-GL45.gtf30.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_multisampled_to_singlesampled_blit
for 32-bit unorm depth buffers.
Cc: "20.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6044>
Boris Brezillon [Tue, 21 Apr 2020 11:41:41 +0000 (04:41 -0700)]
compiler/nir: Add new flags to lower pack/unpack split instructions
And add new rules to do this lowering in nir_opt_algebraic.py.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6309>
Jesse Natalie [Mon, 17 Aug 2020 17:32:21 +0000 (10:32 -0700)]
mesa: Move ATTRIBUTE_NOINLINE for glsl_to_tgsi_visitor::visit_expression for MSVC
Fixes
65d7172d ("util/macros: Add ATTRIBUTE_NOINLINE definition for MSVC")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6351>
Daniel Stone [Tue, 11 Aug 2020 11:13:17 +0000 (12:13 +0100)]
glsl/test: Don't run whitespace tests in parallel
For some unfathomable reason, three out of these four tests often time
out when running within CI. On the assumption that there is some
parallelisation badness happening rather than the non-UNIX tests
entering infinite loops, try just marking them as serial-only.
This should have a negligible impact on runtime since they are quick to
execute.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6301>
Adam Jackson [Wed, 12 Aug 2020 17:54:46 +0000 (13:54 -0400)]
drisw: Port the MIT-SHM check to XCB
The old version isn't thread-safe, and xlib makes it unreasonably
difficult to write thread-safely.
Fixes: mesa/mesa#3398
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6294>
Jesse Natalie [Thu, 21 May 2020 22:12:15 +0000 (15:12 -0700)]
nir/vtn: CL SPIR-V callers should specify address modes
Instead of inferring the address mode from the environment, allows
callers to override to suit their needs.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6330>
Jason Ekstrand [Sat, 15 Aug 2020 02:19:07 +0000 (21:19 -0500)]
nir/builder: Make nir_get_ptr_bitsize take a nir_shader
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6330>
Jesse Natalie [Mon, 25 May 2020 15:53:00 +0000 (08:53 -0700)]
nir: Add nir_address_format_32bit_index_offset_pack64
This new address mode is supported by nir_lower_explicit_io
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6330>
Jesse Natalie [Mon, 25 May 2020 15:57:14 +0000 (08:57 -0700)]
nir: Add nir_address_format_32bit_offset_as_64bit
This new address mode is supported by nir_lower_explicit_io
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6330>
Jesse Natalie [Thu, 21 May 2020 22:05:08 +0000 (15:05 -0700)]
nir: Optimize mask+downcast to just downcast
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6330>
Jesse Natalie [Fri, 1 May 2020 22:04:06 +0000 (15:04 -0700)]
nir: Fix serialize/deserialize of void samplers/images
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6222>
Jesse Natalie [Mon, 20 Apr 2020 19:27:27 +0000 (12:27 -0700)]
glsl: Add 'bare' shadow sampler type
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6222>
Gert Wollny [Mon, 6 Jul 2020 07:41:25 +0000 (09:41 +0200)]
compiler/nir: extend lower_fragcoord_wtrans to support VARYING_SLOT_POS
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Andreas Baierl <ichgeh@imkreisrum.de>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6220>
Gert Wollny [Mon, 6 Jul 2020 07:38:01 +0000 (09:38 +0200)]
compiler/nir: rewrite lower_fragcoord_wtrans to use nir_lower_instructions
This compacts the code and makes it easier to extend.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Andreas Baierl <ichgeh@imkreisrum.de>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6220>
Tomeu Vizoso [Mon, 17 Aug 2020 07:35:07 +0000 (09:35 +0200)]
Revert "CI: temp disable t720/t760 jobs."
There was an unresponsive server in Collabora's LAVA lab that has been
rebooted. Everything seems to be fine now.
This reverts commit
f1001a38275fc4bcc2491b58237a12dec08c621d.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6342>
Karol Herbst [Sun, 16 Aug 2020 17:33:02 +0000 (19:33 +0200)]
nv50/ir/nir: rework indirect function_temp handling
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6338>
Alyssa Rosenzweig [Fri, 14 Aug 2020 20:13:33 +0000 (16:13 -0400)]
panfrost: Update CI expectations
The GenXML approach is more stable, so somehow some failing tests
disappeared.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 20:04:47 +0000 (16:04 -0400)]
panfrost: Drop union mali_attr
Now replaced by the XML translation. I left the comment explaining
instancing since this is still very good information about how to
calculate these fields.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 20:03:12 +0000 (16:03 -0400)]
panfrost: Drop hand-rolled pandecode for attribute buffers
Sadly, we lose some of the validation, but indeed, much of the
validation has turend out to be wrong after enough development so... meh
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:50:13 +0000 (15:50 -0400)]
panfrost: Use packs for varying buffers
In addition to better aesthetics, this automatically fixed multiple
instances of accidental CPU readback of GPU buffers -- in a hot path,
too!
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:25:04 +0000 (15:25 -0400)]
panfrost: Remove mali_attr_meta
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:27:40 +0000 (15:27 -0400)]
pan/bit: Use packs for Bifrost unit tests
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:23:51 +0000 (15:23 -0400)]
panfrost: Use MALI_ATTRIBUTE_LENGTH
Removes an unwanted reference to mali_attr_meta.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:23:10 +0000 (15:23 -0400)]
panfrost: Use pack for general varying
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:21:20 +0000 (15:21 -0400)]
panfrost: Use pack for XFB varying
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:19:25 +0000 (15:19 -0400)]
panfrost: Factor out general varying case
To avoid hard-to-follow control flow now that we return void.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:12:39 +0000 (15:12 -0400)]
panfrost: Pass varying descriptors by reference
Instead of returning by value, as a stepping stone to packing directly.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 19:24:35 +0000 (15:24 -0400)]
panfrost: Reword comment
Avoid referencing data structures that no longer exist.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 17:27:51 +0000 (13:27 -0400)]
panfrost: Use packs for vertex built-ins
These probably need a bigger cleanup at some point but let's handle one
thing at a time.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:51:36 +0000 (12:51 -0400)]
panfrost: Use packs for vertex attribute buffers
Eliminates messy staging, I think.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:29:57 +0000 (12:29 -0400)]
panfrost: Inline panfrost_vertex_instanced
We'd like to have attribute code in one place together so we can
refactor effectively; this routine as-is wouldn't fit perfectly outside
Gallium anyway so let's do the simple thing.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:25:18 +0000 (12:25 -0400)]
panfrost: Hoist instance_shift/instance_odd fetch
We'll want to pass it as an argument shortly.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:19:10 +0000 (12:19 -0400)]
panfrost: Use packs for attributes
Now that state is grouped, this is natural.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:14:20 +0000 (12:14 -0400)]
panfrost: Move attr_meta emission to the draw routine
It's unfortunate that we can't do more at CSO time, but actually all we
really need is the format after all, and this lets us group the state.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:09:05 +0000 (12:09 -0400)]
panfrost: Make attribute-buffer map explicit
This helps decouple the attribute and attribute buffer emission.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>