platform/upstream/mesa.git
3 years agoradv,aco: Compile with -Wimplicit-fallthrough when available
Tony Wasserka [Tue, 1 Dec 2020 11:31:05 +0000 (12:31 +0100)]
radv,aco: Compile with -Wimplicit-fallthrough when available

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7847>

3 years agoaco: Annotate switch fallthroughs
Tony Wasserka [Tue, 1 Dec 2020 10:52:20 +0000 (11:52 +0100)]
aco: Annotate switch fallthroughs

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7847>

3 years agoradv: add support for resolving layered depth/stencil images
Samuel Pitoiset [Thu, 10 Dec 2020 08:33:36 +0000 (09:33 +0100)]
radv: add support for resolving layered depth/stencil images

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8025>

3 years agoglx/xlib: Build fix
Adam Jackson [Fri, 11 Dec 2020 21:52:10 +0000 (16:52 -0500)]
glx/xlib: Build fix

Helgrind support missed a spot.

Fixes: 53f7d539cd9 ("util: Add helgrind support for simple_mtx")
Acked-by: Rob Clark <robclark@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8108>

3 years agozink: Simplify MoltenVK support a bit
Adam Jackson [Wed, 9 Dec 2020 17:20:45 +0000 (12:20 -0500)]
zink: Simplify MoltenVK support a bit

There's no harm in checking for the extension on non-macOS, just do it.
Nor can I see any point in checking for both the layer and the
extension, since you're never going to see the extension if the layer
isn't available, so just check for the extension instead of the reduced
boolean. Simplify some variable naming while we're at it.

Acked-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8019>

3 years agozink: Factor out zink_create_logical_device
Adam Jackson [Tue, 8 Dec 2020 22:11:19 +0000 (17:11 -0500)]
zink: Factor out zink_create_logical_device

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8019>

3 years agozink: Factor out zink_get_loader_version()
Adam Jackson [Tue, 8 Dec 2020 22:02:47 +0000 (17:02 -0500)]
zink: Factor out zink_get_loader_version()

This result isn't actually used within zink_create_instance, so don't do
it there.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8019>

3 years agozink: Factor out winsys awareness from zink_internal_create_screen
Adam Jackson [Wed, 2 Dec 2020 20:38:35 +0000 (15:38 -0500)]
zink: Factor out winsys awareness from zink_internal_create_screen

Magic parameters are gross, this makes zink_internal_create_screen a bit
more reusable.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8019>

3 years agozink: Fix indentation in zink_create_instance
Adam Jackson [Wed, 9 Dec 2020 17:27:27 +0000 (12:27 -0500)]
zink: Fix indentation in zink_create_instance

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8019>

3 years agogallium/util: add bitcast helpers for double and uint
Erik Faye-Lund [Thu, 10 Dec 2020 12:20:53 +0000 (13:20 +0100)]
gallium/util: add bitcast helpers for double and uint

This complements u_bitcast_f2u and u_bitcast_u2f with similar helpers
to cast between double and unsigned integers as well.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8034>

3 years agogallium/util: make bitcast-helpers explicitly sized
Erik Faye-Lund [Thu, 10 Dec 2020 12:18:36 +0000 (13:18 +0100)]
gallium/util: make bitcast-helpers explicitly sized

These always work on 32-bit variables, so let's make that assumption
explicit.

Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8034>

3 years agoetnaviv: tex_state: fix miplevel selection
Lucas Stach [Fri, 14 Aug 2020 21:55:20 +0000 (23:55 +0200)]
etnaviv: tex_state: fix miplevel selection

Fixes the piglit tex-miplevel-selection test by:
1. properly taking texture baselevel and maxlevel into account
2. only enable lodbias when mipmapping is enabled

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7634>

3 years agogallium/dri2: Don't forget protected content flag
Lionel Landwerlin [Mon, 14 Dec 2020 19:32:55 +0000 (21:32 +0200)]
gallium/dri2: Don't forget protected content flag

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: bd182777c8f2c4 ("egl: implement EGL_EXT_protected_surface support")
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8094>

3 years agoanv: Add DRM_RDWR flag in anv_gem_handle_to_fd
Robin Ole Heinemann [Sun, 13 Dec 2020 01:22:57 +0000 (02:22 +0100)]
anv: Add DRM_RDWR flag in anv_gem_handle_to_fd

The DRM_RDWR flag is needed for mmap with PROT_WRITE to work.

Cc: mesa-stable
Signed-off-by: Robin Ole Heinemann <robin.ole.heinemann@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8075>

3 years agovulkan/overlay: add new options to display device/swapchain-format
Lionel Landwerlin [Mon, 14 Dec 2020 08:53:42 +0000 (10:53 +0200)]
vulkan/overlay: add new options to display device/swapchain-format

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3973
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8080>

3 years agovulkan/overlay: don't display frame numbers unless required
Lionel Landwerlin [Mon, 14 Dec 2020 08:50:25 +0000 (10:50 +0200)]
vulkan/overlay: don't display frame numbers unless required

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3972
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8080>

3 years agoegl/android: implement image cleanup callback
David Stevens [Thu, 26 Nov 2020 04:52:58 +0000 (13:52 +0900)]
egl/android: implement image cleanup callback

According to ANDROID_get_native_client_buffer, EGL implementations must
guarantee that the lifetime of an EGLClientBuffer returned by
eglGetNativeClientBufferANDROID is at least as long as that of the
EGLImage which is bound to. Do this by acquiring a reference to the
underlying AHardwareBuffer for all ANativeWindowBuffers which are bound
to an _EGLImage.

Signed-off-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7805>

3 years agoi965: plumb loader image cleanup callback
David Stevens [Wed, 9 Dec 2020 01:38:25 +0000 (10:38 +0900)]
i965: plumb loader image cleanup callback

Signed-off-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7805>

3 years agofrontend/dri: plumb loader image cleanup callback
David Stevens [Thu, 26 Nov 2020 04:15:55 +0000 (13:15 +0900)]
frontend/dri: plumb loader image cleanup callback

Signed-off-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7805>

3 years agodri: add image cleanup callback to loader extensions
David Stevens [Thu, 26 Nov 2020 05:03:16 +0000 (14:03 +0900)]
dri: add image cleanup callback to loader extensions

The callback may be used by dri drivers to perform cleanup when images
are destroyed. It is added to the dri2 and image loader extensions.

Signed-off-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7805>

3 years agoegl/android: don't pass loaderPriv in get_front_bo
David Stevens [Thu, 26 Nov 2020 09:29:31 +0000 (18:29 +0900)]
egl/android: don't pass loaderPriv in get_front_bo

This is a noop, as no loader extensions pass a __DRIimage's
loader_private data back to the loader.

Signed-off-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7805>

3 years agozink: Fix typos.
Vinson Lee [Sat, 12 Dec 2020 02:41:39 +0000 (18:41 -0800)]
zink: Fix typos.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8071>

3 years agogallium: Add optional pipe_context to flush_frontbuffer
Jesse Natalie [Thu, 10 Dec 2020 18:50:54 +0000 (10:50 -0800)]
gallium: Add optional pipe_context to flush_frontbuffer

It's hooked up in all the pipe wrapper drivers, and all the
frontends except a couple places in glx/xlib.

This enables a more efficient path for drivers which use
swrast's Present, but hardware rendering (e.g. d3d12, zink).

Reviewed-by: Dave Airlie <airlied@redhat.com>
Acked-by: Marek Ol\9aák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8045>

3 years agoaco: allow divergent mbcnt_amd masks
Rhys Perry [Mon, 14 Dec 2020 13:18:39 +0000 (13:18 +0000)]
aco: allow divergent mbcnt_amd masks

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8085>

3 years agoaco: fix mbcnt_amd with wave32
Rhys Perry [Mon, 14 Dec 2020 13:18:25 +0000 (13:18 +0000)]
aco: fix mbcnt_amd with wave32

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8085>

3 years agoxmlconfig: Disable WITH_XMLCONFIG on Windows
James Park [Mon, 7 Dec 2020 18:36:05 +0000 (10:36 -0800)]
xmlconfig: Disable WITH_XMLCONFIG on Windows

This change was stomped by recent refactor.

Fixes: 1618bd1bee6 ("xmlconfig: Add unit tests for recent bugs in the driconf rewrite.")
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7975>

3 years agoglx: fix spelling issues
Andrii Simiklit [Mon, 7 Dec 2020 11:03:09 +0000 (13:03 +0200)]
glx: fix spelling issues

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7965>

3 years agoglx: lets compare drawing command sizes using MIN3
Andrii Simiklit [Mon, 7 Dec 2020 10:50:28 +0000 (12:50 +0200)]
glx: lets compare drawing command sizes using MIN3

It has to fix coverity issue CID1470555:
```
481        if (bufSize > __GLX_RENDER_CMD_SIZE_LIMIT) {
482           bufSize = __GLX_RENDER_CMD_SIZE_LIMIT;
483        }
484        if (bufSize > __GLX_MAX_RENDER_CMD_SIZE) {
>>>     CID 1470555:  Control flow issues  (DEADCODE)
>>>     Execution cannot reach this statement: "bufSize = 64000;".
485           bufSize = __GLX_MAX_RENDER_CMD_SIZE;
486        }
```

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7965>

3 years agoaco/spill: only prevent rematerializable vars from being DCE'd if they haven't been...
Daniel Schürmann [Fri, 11 Dec 2020 18:37:50 +0000 (19:37 +0100)]
aco/spill: only prevent rematerializable vars from being DCE'd if they haven't been renamed

The small DCE of the spiller only removes the original instructions
of rematerialized variables in case they are unused. If a variable
has been renamed, it cannot match any original instruction anymore.
Thus, the lookup is then unnecessary and can be omitted.

No fossil-db changes.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8055>

3 years agoaco: fix DCE of rematerializable phi operands
Daniel Schürmann [Fri, 11 Dec 2020 13:30:30 +0000 (14:30 +0100)]
aco: fix DCE of rematerializable phi operands

Otherwise, if a phi gets spilled, the operand might be considered unused.

Fixes: d48d72e98af9436babeeb3a94b312f94bc582b36 ('aco: Initial commit of independent AMD compiler')

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8055>

3 years agoradv: advertise VK_KHR_fragment_shading_rate on GFX10.3+
Samuel Pitoiset [Mon, 30 Nov 2020 17:54:06 +0000 (18:54 +0100)]
radv: advertise VK_KHR_fragment_shading_rate on GFX10.3+

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoaco: implement a workaround for gl_FragCoord.z with VRS on GFX10.3
Samuel Pitoiset [Thu, 10 Dec 2020 20:47:23 +0000 (21:47 +0100)]
aco: implement a workaround for gl_FragCoord.z with VRS on GFX10.3

Without it, FragCoord.z will have the value of one of the fine pixels
instead of the center of the coarse pixel.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoradv/llvm: implement a workaround for gl_FragCoord.z with VRS on GFX10.3
Samuel Pitoiset [Fri, 11 Dec 2020 07:46:19 +0000 (08:46 +0100)]
radv/llvm: implement a workaround for gl_FragCoord.z with VRS on GFX10.3

Without it, FragCoord.z will have the value of one of the fine pixels
instead of the center of the coarse pixel.

It's only enabled for RADV.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoradv: track if VRS is enabled to apply a workaround on GFX10.3
Samuel Pitoiset [Fri, 11 Dec 2020 12:35:45 +0000 (13:35 +0100)]
radv: track if VRS is enabled to apply a workaround on GFX10.3

On some chips, gl_FragCoord.z has to be adjusted.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoaco: implement fragment shading rate
Samuel Pitoiset [Mon, 23 Nov 2020 15:01:00 +0000 (16:01 +0100)]
aco: implement fragment shading rate

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoradv/llvm: implement fragment shading rate
Samuel Pitoiset [Thu, 26 Nov 2020 16:37:38 +0000 (17:37 +0100)]
radv/llvm: implement fragment shading rate

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoradv: implement VK_KHR_fragment_shading_rate
Samuel Pitoiset [Thu, 26 Nov 2020 16:39:53 +0000 (17:39 +0100)]
radv: implement VK_KHR_fragment_shading_rate

Only supported on GFX10.3+. Attachment Fragment Shading Rate is
for later.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoradv: add VK_KHR_fragment_shading_rate but leave it disabled
Samuel Pitoiset [Tue, 20 Oct 2020 13:11:00 +0000 (15:11 +0200)]
radv: add VK_KHR_fragment_shading_rate but leave it disabled

To declare new prototypes.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoamd/registers: add missing VRS registers
Samuel Pitoiset [Mon, 23 Nov 2020 16:59:10 +0000 (17:59 +0100)]
amd/registers: add missing VRS registers

These register definitions are copied from AMDVLK because they
aren't even in the kernel.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>

3 years agoaco: don't create dead exec mask phis on merge blocks
Daniel Schürmann [Fri, 11 Dec 2020 16:44:19 +0000 (17:44 +0100)]
aco: don't create dead exec mask phis on merge blocks

Avoids some unnecessary exec copies and allows for a bit more
jump threading.

Totals from 112 (0.08% of 139391) affected shaders (NAVI10):
SpillSGPRs: 3084 -> 3050 (-1.10%)
CodeSize: 2657516 -> 2652376 (-0.19%)
Instrs: 492074 -> 490824 (-0.25%)
Cycles: 40369704 -> 40317052 (-0.13%)
VMEM: 24212 -> 24128 (-0.35%)
SClause: 12018 -> 12010 (-0.07%)
Copies: 72950 -> 72275 (-0.93%)
Branches: 13249 -> 12701 (-4.14%)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8059>

3 years agoetnaviv: remove imm_ prefix from etna_shader_uniform_info members
Christian Gmeiner [Wed, 18 Nov 2020 14:54:16 +0000 (15:54 +0100)]
etnaviv: remove imm_ prefix from etna_shader_uniform_info members

This prefix is meaningless.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8062>

3 years agoetnaviv: rename from immedaite to uniform in some places
Christian Gmeiner [Wed, 18 Nov 2020 14:36:03 +0000 (15:36 +0100)]
etnaviv: rename from immedaite to uniform in some places

This naming change should clarify what we are actually doing here.

We are defining/managing what data is stored in the GPUs
uniform data storage area. A shader can access this area with
the ETNA_RGROUP_UNIFORM register group.

In this uniform data area we need to store const buffer data and
own immediate/constant data.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8062>

3 years agoradv: fix access to uninitialized radeon_bo_metadata
Simon Ser [Thu, 3 Dec 2020 15:03:15 +0000 (16:03 +0100)]
radv: fix access to uninitialized radeon_bo_metadata

If the image tiling is set to VK_IMAGE_TILING_LINEAR,
buffer_set_metadata will read an uninitialized radeon_bo_metadata.

Signed-off-by: Simon Ser <contact@emersion.fr>
Fixes: d5fd8cd46eee ("radv: Allow non-dedicated linear images and buffer.")
Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7898>

3 years agost/pbo: fix pbo uploads without PIPE_CAP_TGSI_VS_LAYER_VIEWPORT
Mike Blumenkrantz [Sat, 12 Dec 2020 00:00:23 +0000 (19:00 -0500)]
st/pbo: fix pbo uploads without PIPE_CAP_TGSI_VS_LAYER_VIEWPORT

the code here tries to be too smart and only use a geometry shader if there's
actually multiple layers being uploaded, but the fragment shader also unconditionally
reads gl_Layer as long as the pipe cap for gs is set, which means that
in the case when the gs is dynamically disabled due to uploading a
single-layer surface, the fs has no input to read for gl_Layer and everything breaks

always using a gs isn't ideal, but it's considerably more work to manage multiple
fs variants based on layer usage

Fixes: c99f2fe70ec ("st/mesa: implement PBO upload for multiple layers")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8067>

3 years agozink: really fix direct image mapping offset (I mean it this time)
Mike Blumenkrantz [Sat, 12 Dec 2020 16:59:40 +0000 (11:59 -0500)]
zink: really fix direct image mapping offset (I mean it this time)

I got confused and:
* used the vkformat instead of the pipe format for getting format description
* incorrectly calculated bpp

but this time it's definitely 100% fixed I promise

Fixes: 456b57802ea ("zink: fix direct image mapping offset")

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8074>

3 years agoci: skip failing test on lavapipe
Simon Ser [Sun, 13 Dec 2020 10:04:58 +0000 (11:04 +0100)]
ci: skip failing test on lavapipe

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8077>

3 years agozink: fix property detection
Hoe Hao Cheng [Sun, 13 Dec 2020 05:03:34 +0000 (13:03 +0800)]
zink: fix property detection

yikes, that's a bad typo right there

Fixes: a103666b ("zink: decouple features and enabling conditions in zink_device_info.py")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8076>

3 years agomesa: Remove cmd_size < 0 check.
Vinson Lee [Thu, 10 Dec 2020 02:51:16 +0000 (18:51 -0800)]
mesa: Remove cmd_size < 0 check.

cmd_size was changed to size_t in commit 4b2445916e6 ("glthread:
change sizes to unsigned or size_t where needed").

Fix defect reported by Coverity Scan.

Macro compares unsigned to 0 (NO_EFFECT)
unsigned_compare: This less-than-zero comparison of an unsigned
value is never true. cmd_size < 0UL

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8024>

3 years agointel/genxml: Avoid generating identical 12.5 and 12 branches.
Vinson Lee [Wed, 9 Dec 2020 06:32:16 +0000 (22:32 -0800)]
intel/genxml: Avoid generating identical 12.5 and 12 branches.

Fix defects reported by Coverity Scan.

Identical code for different branches (IDENTICAL_BRANCHES)

identical_branches: The same code is executed regardless of
whether 0 is true, because the 'then' and 'else' branches are
identical. Should one of the branches be modified, or the entire
'if' statement replaced?

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8001>

3 years agomesa: Remove extra texObj.
Vinson Lee [Wed, 9 Dec 2020 06:04:53 +0000 (22:04 -0800)]
mesa: Remove extra texObj.

Fix defect reported by Coverity Scan.

Evaluation order violation (EVALUATION_ORDER)
write_write_typo: In texObj = texObj = _mesa_get_tex_unit(ctx, u)->CurrentTex[tgt], texObj is written twice with the same value.

Fixes: d0e18550e26 ("mesa: optimize saving/restoring bound textures for glPush/PopAttrib")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8000>

3 years agonir: Redefine start/end_ip of blocks to fix NIR-to-TGSI liveness bugs.
Eric Anholt [Fri, 11 Dec 2020 17:48:15 +0000 (09:48 -0800)]
nir: Redefine start/end_ip of blocks to fix NIR-to-TGSI liveness bugs.

With the block's end_ip accidentally being the ip of the next instruction,
contrary to the comment, you would end up doing end-of-block freeing early
and have the value missing when it came time to emit the next instruction.
Just expand the ips to have separate ones for start and end of block --
while it means that nir_instr->index is no longer incremented by 1 per
instruction, it makes sense for use in liveness because a backend is
likely to need to do other things at block boundaries (like emit the if
statement's code), and having an ip to identify that stuff is useful.

Fixes: a206b581578d ("nir: Add a block start/end ip to live instr index metadata.")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7658>

3 years agogallium/ntt: Drop reindexing of SSA defs and regs.
Eric Anholt [Fri, 13 Nov 2020 20:29:39 +0000 (12:29 -0800)]
gallium/ntt: Drop reindexing of SSA defs and regs.

It made the nir_print_shader() for NIR_TO_TGSI_DEBUG not match up with the
instructions being emitted, confusing me.  Given that I'm seeing only like
1/3 shrinking in the SSA indices, just drop the reindexing since it's not
doing much (and we don't store that much per SSA index).

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7658>

3 years agogallium/ntt: Don't manually reindex instrs.
Eric Anholt [Fri, 13 Nov 2020 20:25:36 +0000 (12:25 -0800)]
gallium/ntt: Don't manually reindex instrs.

Getting the live SSA defs will do it if necessary, and that liveness is
what we use the instr index for.  (We used to need to do it manually, and
cleanups for merging resulted in the index being treated as metadata).

Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7658>

3 years agolavapipe: add support for VK_KHR_descriptor_update_template
Dave Airlie [Fri, 4 Dec 2020 00:25:32 +0000 (10:25 +1000)]
lavapipe: add support for VK_KHR_descriptor_update_template

Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7912>

3 years agolavapipe: add support for VK_KHR_push_descriptor
Dave Airlie [Fri, 4 Dec 2020 00:24:46 +0000 (10:24 +1000)]
lavapipe: add support for VK_KHR_push_descriptor

Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7912>

3 years agolavapipe: refactor descriptor set binding to support push later.
Dave Airlie [Fri, 4 Dec 2020 00:22:40 +0000 (10:22 +1000)]
lavapipe: refactor descriptor set binding to support push later.

This refactors the code push descriptor code so it can be reused
later for push descriptors.

Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7912>

3 years agogallium/u_threaded: fix pipe_resource leak for staging transfer
Pierre-Eric Pelloux-Prayer [Thu, 10 Dec 2020 13:35:34 +0000 (14:35 +0100)]
gallium/u_threaded: fix pipe_resource leak for staging transfer

In 2900f82e191 I mistakenly used tc_set_resource_reference in both
tc_transfer_unmap and tc_call_transfer_unmap.

This causes a leak because tc_call_transfer_unmap clears dst before
acquiring a reference, so it must only be used when initializing
tc_payloads.

This fixes the perf drop reported by Marek in MR 7098.

Fixes: 2900f82e191 ("gallium/u_threaded: fix staging and non-staging conflicts")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8035>

3 years agolima: add support for half float textures
Erico Nunes [Mon, 30 Nov 2020 00:39:26 +0000 (01:39 +0100)]
lima: add support for half float textures

Add support for the half float texel type and pixel types.
This enables the OES_texture_half_float extension.

Tested with piglit test oes_texture_float (half float and with linear
filtering) and passes all deqp half float related tests.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8020>

3 years agomesa: allow half float textures based on ARB_half_float_pixel
Erico Nunes [Wed, 9 Dec 2020 22:24:37 +0000 (23:24 +0100)]
mesa: allow half float textures based on ARB_half_float_pixel

In targets that support half float textures but not float textures (so
without ARB_texture_float), the previous logic did not allow for
enabling half float texture support in desktop OpenGL.
OES_texture_half_float is only valid for OpenGL ES 2.0 contexts, so
include ARB_half_float_pixel in the logic to cover OpenGL too.
Remove _mesa_is_gles3 from the check since in case of a gles3 context,
OES_texture_half_float is already assumed to be enabled.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8020>

3 years agozink: fix direct image mapping offset
Mike Blumenkrantz [Fri, 11 Dec 2020 15:53:53 +0000 (10:53 -0500)]
zink: fix direct image mapping offset

the x and y offsets here were improperly calculated without taking into account:
* layer/level offset
* x/y coord bpp

Fixes: 8d46e35d16e ("zink: introduce opengl over vulkan")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8058>

3 years agoCI: Add Windows source dependency map
Daniel Stone [Fri, 11 Dec 2020 10:41:32 +0000 (10:41 +0000)]
CI: Add Windows source dependency map

Now that we've soaked the Windows build in and it's working well,
restrict it to only running on given pipelines, albeit in a somewhat
surprising way.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8053>

3 years agonir: change return type to void
Christian Gmeiner [Fri, 11 Dec 2020 09:57:13 +0000 (10:57 +0100)]
nir: change return type to void

init_liveness_block(..) only gets called without using the
always true return value. Switch from bool to void.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8051>

3 years agoturnip: pCounterBufferOffsets can be NULL on vkCmd*TransformFeedbackEXT()
Samuel Iglesias Gonsálvez [Fri, 11 Dec 2020 14:53:50 +0000 (15:53 +0100)]
turnip: pCounterBufferOffsets can be NULL on vkCmd*TransformFeedbackEXT()

According to the spec for both vkCmd{Begin,End}TransformFeedbackEXT(),
if pCounterBufferOffsets is NULL, then it is assumed the offsets are
zero.

Fixes crash on dEQP-VK.transform_feedback.simple.backward_dependency_no_offset_array

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8057>

3 years agomesa: Remove silly "dummy_false" extension support
Adam Jackson [Thu, 10 Dec 2020 03:38:07 +0000 (22:38 -0500)]
mesa: Remove silly "dummy_false" extension support

This removes the memory of some old OES extensions from the table, which
seems to be harmless.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8037>

3 years agoaco/ra: use get_reg_specified() for p_extract_vector
Daniel Schürmann [Fri, 11 Dec 2020 08:23:04 +0000 (09:23 +0100)]
aco/ra: use get_reg_specified() for p_extract_vector

On GFX6/7, it might violate validation rules, otherwise.

Fixes: 51f4b22feec3720c89458094a3245efc984115ee ('aco: don't allow unaligned subdword accesses on GFX6/7')
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8047>

3 years agoaco: Use program->num_waves as maximum in scheduler.
Timur Kristóf [Thu, 10 Dec 2020 17:54:43 +0000 (18:54 +0100)]
aco: Use program->num_waves as maximum in scheduler.

The scheduler doesn't take SGPR use into account, which can be
a limiting factor on older GPUs. This patch fixes a CTS test crash
on GFX6.

CC: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8040>

3 years agonir/opt_access: don't ignore infer_non_readable
Rhys Perry [Wed, 9 Dec 2020 22:45:35 +0000 (22:45 +0000)]
nir/opt_access: don't ignore infer_non_readable

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Fixes: d7d0b4445ae ("nir/opt_access: infer writeonly")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3959
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8018>

3 years agozink: replace old code with generated zink_instance
Hoe Hao Cheng [Thu, 26 Nov 2020 17:32:39 +0000 (01:32 +0800)]
zink: replace old code with generated zink_instance

Acked-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7800>

3 years agozink: hook zink_instance to build
Hoe Hao Cheng [Thu, 26 Nov 2020 17:29:37 +0000 (01:29 +0800)]
zink: hook zink_instance to build

Acked-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7800>

3 years agozink: generate instance creation code with a python script
Hoe Hao Cheng [Thu, 26 Nov 2020 16:53:54 +0000 (00:53 +0800)]
zink: generate instance creation code with a python script

Acked-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7800>

3 years agozink: factor out GET_PROC_ADDR and friends to zink_screen.h
Adam Jackson [Wed, 2 Dec 2020 22:28:06 +0000 (17:28 -0500)]
zink: factor out GET_PROC_ADDR and friends to zink_screen.h

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7800>

3 years agozink: allow Extension/Version to be shared across files
Hoe Hao Cheng [Thu, 26 Nov 2020 16:50:59 +0000 (00:50 +0800)]
zink: allow Extension/Version to be shared across files

Acked-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7800>

3 years agomesa: check for extension instead of desktop GL
Erik Faye-Lund [Thu, 10 Dec 2020 11:10:37 +0000 (12:10 +0100)]
mesa: check for extension instead of desktop GL

If we ever decide to allow this extension for GLES, this will make life
easier.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8028>

3 years agomesa: do not allow es2-extension enums for es1
Erik Faye-Lund [Thu, 10 Dec 2020 11:10:12 +0000 (12:10 +0100)]
mesa: do not allow es2-extension enums for es1

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8028>

3 years ago.gitlab-ci: verify that Get-Content worked
Erik Faye-Lund [Fri, 11 Dec 2020 09:22:03 +0000 (10:22 +0100)]
.gitlab-ci: verify that Get-Content worked

This will hopefully prevent future breakages similar to what the
previous commit fixed.

Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8052>

3 years agogitlab-ci: copy piglit expected results to artifacts
Erik Faye-Lund [Fri, 11 Dec 2020 09:05:14 +0000 (10:05 +0100)]
gitlab-ci: copy piglit expected results to artifacts

I somehow missed this while reworking the CI bits to reduce bandwidth
usage. This emits an error on stdout, but doesn't actually fail the
tests.

Fixes: 195a001d736 ("gitlab-ci: do not clone git-repo for test-job")
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8052>

3 years agoandroid: fix build failure with libbacktrace
cheyang [Tue, 1 Dec 2020 06:41:08 +0000 (14:41 +0800)]
android: fix build failure with libbacktrace

because 848e7b94 commit cause.it  modify u_debug_stack_android.cpp
location from src/gallium/auxiliary/util to src/util but Android.mk
not modify

Fixes: 848e7b94 ("Move stack debug functions to src/util")
Signed-off-by: cheyang <cheyang@bytedance.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7851>

3 years agov3d: extend the list of formats supported by the TFU unit
Juan A. Suarez Romero [Thu, 10 Dec 2020 17:08:37 +0000 (18:08 +0100)]
v3d: extend the list of formats supported by the TFU unit

TFU can convert from these new formats, but can not autogenerate
mipmaps from them.

Hence we need to set what is the purpose to know if the formats are
supported or not.

v1:
 - Use the same and shorter variable name (Alejandro)

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8050>

3 years agopanfrost: Fix several depth/stencil format mappings
Boris Brezillon [Fri, 27 Nov 2020 20:03:36 +0000 (21:03 +0100)]
panfrost: Fix several depth/stencil format mappings

Stencil should always be loaded in component Y, even when the buffer
only contains stencil values. Patch the blit shaders accordingly, and
fix some format definitions.

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/7922>

3 years agogallium/util: Fix depth/stencil blit shaders
Boris Brezillon [Fri, 27 Nov 2020 12:07:21 +0000 (13:07 +0100)]
gallium/util: Fix depth/stencil blit shaders

When loading the depth, we want to store component X of the texel fetch
result into position.Z which can't be expressed without an extra MOV
unless the backend replicates the depth.

Stencil is always expected in the Y component, but some TGSI shaders
assume it will also be available in X, which only works if the backend
replicates the stencil value.

Let's fix those shaders so backend drivers are not forced to replicate
the depth/stencil values.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7922>

3 years agopanfrost: Reload depth/stencil when they are read
Boris Brezillon [Fri, 27 Nov 2020 19:51:18 +0000 (20:51 +0100)]
panfrost: Reload depth/stencil when they are read

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/7922>

3 years agopanfrost: Force ->s_writeback_base to ->zs_writeback_base for Z24S8 buffers
Boris Brezillon [Sun, 22 Nov 2020 10:37:54 +0000 (11:37 +0100)]
panfrost: Force ->s_writeback_base to ->zs_writeback_base for Z24S8 buffers

Apparently this field is used even if the stencil is part of the ZS
buffer. Fixes a bunch of page faults 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/7922>

3 years agopanfost: Fix depth/stencil writeback on Bifrost v7
Boris Brezillon [Thu, 26 Nov 2020 15:02:09 +0000 (16:02 +0100)]
panfost: Fix depth/stencil writeback on Bifrost v7

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/7922>

3 years agopanfrost: Allow 2DMS arrays
Boris Brezillon [Thu, 10 Dec 2020 18:48:17 +0000 (19:48 +0100)]
panfrost: Allow 2DMS arrays

The midgard compiler has been fixed to handle texture operations on
2DMS arrays, and Bifrost already had this case handled properly. Relax
the assert.

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/8042>

3 years agopan/mdg: Fix texture handling for 2DMS arrays
Boris Brezillon [Thu, 10 Dec 2020 18:46:14 +0000 (19:46 +0100)]
pan/mdg: Fix texture handling for 2DMS arrays

While at it, move the coordinate building logic to a dedicated helper
and make it generalize it to handle 1D arrays 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/8042>

3 years agovulkan: Enable VK_KHR_performance_query on android
Hyunjun Ko [Fri, 13 Nov 2020 13:02:08 +0000 (13:02 +0000)]
vulkan: Enable VK_KHR_performance_query on android

The tests of this extension seem to be added to Android 11 CTS,
since they can be found on android-11-x branches.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7602>

3 years agointel/blorp: Drop support for STC_CCS resolves
Nanley Chery [Wed, 9 Dec 2020 23:11:45 +0000 (15:11 -0800)]
intel/blorp: Drop support for STC_CCS resolves

There are no users of this feature.

Reverts the following commits:

87c57b8dae954c7de6a499506a4161f69076ce67 (effectively)
53d472df24d4bc05359120df0615321318922d6d
9ab0e92cff8bb8336cebd9dc68d02d7451ad78e1

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8021>

3 years agoiris: Stop using blorp_hiz_stencil_op
Nanley Chery [Wed, 9 Dec 2020 21:20:26 +0000 (13:20 -0800)]
iris: Stop using blorp_hiz_stencil_op

Delete this function call for two reasons:

1. Calling blorp_hiz_stencil_op within iris_resolve_color seems out of
   place.
2. AFAICT, iris stopped doing STC_CCS resolves with commit
   5b82d8ce8bc681905a8902902fb89151ca32d6c9.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8021>

3 years agoCI: add lavapipe vulkan testing
Dave Airlie [Wed, 19 Aug 2020 03:32:24 +0000 (13:32 +1000)]
CI: add lavapipe vulkan testing

Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7952>

3 years agost/mesa: Replace mesa_to_tgsi() with prog_to_nir() and nir_to_tgsi().
Eric Anholt [Mon, 24 Aug 2020 18:14:52 +0000 (11:14 -0700)]
st/mesa: Replace mesa_to_tgsi() with prog_to_nir() and nir_to_tgsi().

This introduces NIR optimizations to ARB programs in all gallium drivers,
while deleting code.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7927>

3 years agoci: Make sure that osmesa stays warnings-clean in release builds.
Eric Anholt [Thu, 3 Dec 2020 01:10:27 +0000 (17:10 -0800)]
ci: Make sure that osmesa stays warnings-clean in release builds.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1243>

3 years agomesa: Retire classic OSMesa.
Eric Anholt [Wed, 3 Jul 2019 18:10:32 +0000 (11:10 -0700)]
mesa: Retire classic OSMesa.

The classic OSMesa renders directly into user memory using
src/mesa/swrast, while gallium OSMesa renders using softpipe or llvmpipe
and copies out at glFlush() time.  This would make gallium look like a
worse choice for OSMesa, except that swrast is:

1) Painfully slow to render compared to llvmpipe
2) Incorrect at derivatives
3) Limited to GL 2.1 instead of GL 4.6

In my survey of OSMesa users, debian was the remaining holdout with
classic OSMesa in use on hurd and some rare non-LLVM-supported
architectures (sh4, alpha, etc.).  As of today, they've switched to
softpipe-based gallium OSMesa for them.

To prevent people from running the wrong OSMesa (to the extent that
running OSMesa can ever be the right thing), delete the classic
version.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Closes: #320
Closes: #877
Closes: #2297
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1243>

3 years agodocs: Fix the documentation of the OSMesa path.
Eric Anholt [Thu, 3 Dec 2020 00:46:06 +0000 (16:46 -0800)]
docs: Fix the documentation of the OSMesa path.

Typo in gallium, along with the fact that gallium's osmesa installs to the
same directory as classic's.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1243>

3 years agoosmesa/test: Clear the stencil bits in the depth test.
Eric Anholt [Wed, 9 Dec 2020 18:04:10 +0000 (10:04 -0800)]
osmesa/test: Clear the stencil bits in the depth test.

Since the depth buffer starts out as a malloc, and we weren't clearing it,
you could get undefined values in your top 8 bits.  This should fix
intermittent failures of the depth test.

(Sadly, valgrind wasn't catching this, presumably because the 32-bit value
there *is* written, just some bits are left undef)

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1243>

3 years agoaco: Skip TCS s_barrier when VS outputs are not stored in the LDS.
Timur Kristóf [Mon, 23 Nov 2020 08:42:25 +0000 (09:42 +0100)]
aco: Skip TCS s_barrier when VS outputs are not stored in the LDS.

When VS outputs are known to be never stored in LDS, there is no
reason for HS waves to wait for all LS waves to complete. So, the
s_barrier between the LS and HS can be safely skipped.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7727>

3 years agoutil+treewide: container_of() cleanup
Rob Clark [Sat, 5 Dec 2020 19:56:45 +0000 (11:56 -0800)]
util+treewide: container_of() cleanup

Replace mesa's slightly different container_of() with one more aligned
to the linux kernel's version which takes a type as the 2nd param.  This
avoids warnings like:

  freedreno_context.c:396:44: warning: variable 'batch' is uninitialized when used within its own initialization [-Wuninitialized]

At the same time, we can add additional build-time type-checking asserts

Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941>

3 years agoutil: Allow STATIC_ASSERT() everywhere
Rob Clark [Sat, 5 Dec 2020 20:46:43 +0000 (12:46 -0800)]
util: Allow STATIC_ASSERT() everywhere

Remove -Werror=vla from c_msvc_compat_args so we can use STATIC_ASSERT()
in core code.  We have a CI job for this.

(And arguably we could probably just drop c_msvc_compat_args entirely.)

Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941>

3 years agoutil: Promote __builtin_types_compatible_p compat
Rob Clark [Sat, 5 Dec 2020 19:26:44 +0000 (11:26 -0800)]
util: Promote __builtin_types_compatible_p compat

Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941>

3 years agoswr: fix crashes caused by incorrectly reporting SSBO support
jzielins [Thu, 10 Dec 2020 11:15:33 +0000 (12:15 +0100)]
swr: fix crashes caused by incorrectly reporting SSBO support

Reviewed-by: Krzysztof Raszkowski <krzysztof.raszkowski@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8036>

3 years agoci: Only run the sanity job if there's a MR
Tomeu Vizoso [Thu, 10 Dec 2020 11:48:32 +0000 (12:48 +0100)]
ci: Only run the sanity job if there's a MR

As it will fail right away if there isn't, and that prevents the CI to
run on people's branches.

$ ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
ERROR: No open merge request against mesa/mesa with sha 9f6aba4be0ceb59d35732651cc44f676e93b70b5

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Fixes: d4151f2e ("ci: Run sanity job only in pre-merge pipelines")
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8032>