platform/upstream/mesa.git
3 years agointel/fs: Lower uniform pull constant load message to LSC dataport
Jason Ekstrand [Sat, 26 Jun 2021 16:11:09 +0000 (11:11 -0500)]
intel/fs: Lower uniform pull constant load message to LSC dataport

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

3 years agointel/fs: Lower varying pull constant load message to LSC dataport
Sagar Ghuge [Tue, 4 May 2021 21:57:50 +0000 (14:57 -0700)]
intel/fs: Lower varying pull constant load message to LSC dataport

Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/fs: Lower A64 atomic messages to LSC dataport
Sagar Ghuge [Tue, 4 May 2021 04:13:09 +0000 (21:13 -0700)]
intel/fs: Lower A64 atomic messages to LSC dataport

Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/fs: Lower A64 byte scattered r/w messages to LSC dataport
Sagar Ghuge [Tue, 4 May 2021 03:11:29 +0000 (20:11 -0700)]
intel/fs: Lower A64 byte scattered r/w messages to LSC dataport

Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/fs: Lower A64 untyped r/w messages to LSC when available
Mark Janes [Mon, 3 May 2021 19:42:03 +0000 (12:42 -0700)]
intel/fs: Lower A64 untyped r/w messages to LSC when available

We set the ex_desc to 0, since the address surface type is FLAT.

v2 (Sagar Ghuge):
 - Fix message descriptor encoding

v2 (Jason Ekstrand):
 - Drop support for block messages

Co-authored-by: Sagar Ghuge <sagar.ghuge@intel.com>
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/fs: Lower Byte scattered r/w messages to LSC when available
Sagar Ghuge [Fri, 30 Apr 2021 06:58:26 +0000 (23:58 -0700)]
intel/fs: Lower Byte scattered r/w messages to LSC when available

v2 (Jason Ekstrand):
 - Squash in brw_scheduler changes
 - Update brw_ir_performance

Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/fs: Lower untyped float atomic messages to LSC when available
Sagar Ghuge [Fri, 30 Apr 2021 03:50:42 +0000 (20:50 -0700)]
intel/fs: Lower untyped float atomic messages to LSC when available

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/fs: Lower untyped atomic messages to LSC when available
Mark Janes [Fri, 30 Apr 2021 01:48:03 +0000 (18:48 -0700)]
intel/fs: Lower untyped atomic messages to LSC when available

Bspec programming note metions that "Atomic messages are always forced
to "un-cacheable" in the L1 cache". We can make the L1 cache
un-cacheable and L3 with write-back policy.

v2: (Sagar Ghuge):
 - Fix caching policy for atomic messages
 - Fix simd exec size

v3: (Sagar Ghuge):
 - Add atomic messages to brw_schedule_instructions

v4: (Jason Ekstrand):
 - Rebase on lsc_msg_desc reworks

Co-authored-by: Sagar Ghuge <sagar.ghuge@intel.com>
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/fs: Lower DW untyped r/w messages to LSC when available
Mark Janes [Tue, 26 Jan 2021 22:01:43 +0000 (14:01 -0800)]
intel/fs: Lower DW untyped r/w messages to LSC when available

This puts the basic infrastructure in place for lowering logical
dataport messages to LSC messages.  We start with the two most obvious
opcodes and add more in later patches.

v2 (Sagar Ghuge):
 - Pass required params to message desc
 - Remove duplicate mlen calculation
 - Change commit message.

v3 (Jason Ekstrand):
 - Drop TGM support

Co-authored-by: Jason Ekstrand <mark.a.janes@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/compiler: Add LSC messages to brw_schedule_instructions
Mark Janes [Thu, 29 Apr 2021 19:48:02 +0000 (12:48 -0700)]
intel/compiler: Add LSC messages to brw_schedule_instructions

v2 (Jason Ekstrand):
 - Use lsc_msg_desc_opcode()
 - Drop all opcodes for now and add them in later patches.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/compiler: Add LSC to messages brw_ir_performance
Jason Ekstrand [Thu, 24 Jun 2021 22:48:01 +0000 (17:48 -0500)]
intel/compiler: Add LSC to messages brw_ir_performance

This adds framework only.  No opcodes.

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

3 years agointel/disasm: Disassemble LSC message extended descriptors
Sagar Ghuge [Wed, 5 Aug 2020 06:04:52 +0000 (23:04 -0700)]
intel/disasm: Disassemble LSC message extended descriptors

v2 (Mark Janes):
 - changed to lsc convention

v3 (Jason Ekstrand):
 - Use lsc_msg_desc_addr_type

Co-authored-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/disasm: Disassmeble LSC messages
Sagar Ghuge [Sun, 12 Jul 2020 01:35:37 +0000 (18:35 -0700)]
intel/disasm: Disassmeble LSC messages

v2 (Jordan Justen):
 - Use PRIu64

v3 (Jason Ekstrand):
 - Drop ranged fence ops, Jason

v4: (Mark Janes)
 - fixed missing parameter to brw_message_desc_cmask_or_vector
 - changed to use lsc methods to extract fields

v5 (Jason Ekstrand):
 - Squash original disassembler patch and fixes togetherk
 - Use lsc_opcode_has_cmask
 - Prefix atomic ops with "atomic_"

Co-authored-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/compiler: Add getter helpers for LSC message descriptor fields
Mark Janes [Fri, 12 Feb 2021 21:20:44 +0000 (13:20 -0800)]
intel/compiler: Add getter helpers for LSC message descriptor fields

v2: (Sagar Ghuge):
 - rename addr_reg_size to src0_len to match with bspec

v3 (Jason Ekstrand):
 - Re-arrange things in increasing bit order

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/compiler: Add helpers for LSC message descriptors
Sagar Ghuge [Tue, 28 Jul 2020 23:10:25 +0000 (16:10 -0700)]
intel/compiler: Add helpers for LSC message descriptors

v2 (Jason Ekstrand):
 - Squash all the similar patches together
 - Re-arrange and rename some things to be more consistent
 - Add a lsc_opcode_has_cmask helper
 - Drop is_one_addr_reg

v3 (Jason Ekstrand):
 - Add transpose
 - Re-order arguments to make more logical sense
 - Switch from `write` to `has_dest`

Co-authored-by: Mark Janes <mark.a.janes@intel.com>
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/compiler: Add support for LSC fence operations
Sagar Ghuge [Sun, 12 Jul 2020 01:33:05 +0000 (18:33 -0700)]
intel/compiler: Add support for LSC fence operations

v2 (Jason Ekstrand):
 - Squash SLM and global fence ops together

v3 (Jason Ekstrand):
 - Rework to use message descriptors instead of instruction fields

v4 (Jason Ekstrand):
 - Don't pass BTI into back-end emit function.  Always use FLAT.

Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/compiler: Define new LSC data port encodings
Sagar Ghuge [Sat, 11 Jul 2020 23:37:29 +0000 (16:37 -0700)]
intel/compiler: Define new LSC data port encodings

Xe-HPG comes with a massively reworked dataport.  The new thing, called
Load/Store Cache or LSC, has a significantly improved interface.
Instead of bespoke messages for every case, there's basically one or two
messages with different bits to control things like address size, how
much data is read/written, etc.  It's way nicer but also means we get to
rewrite all our dataport encoding/decoding code.  This patch kicks off
the party with all of the new enums.

v2 (Jason Ekstrand, Mark Janes):
 - Rename to LSC

v3 (Jason Ekstrand):
 - Add numbers to all enums

Co-authored-by: Mark Janes <mark.a.janes@intel.com>
Co-authored-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11600>

3 years agointel/devinfo: Add a has_lsc bit
Jason Ekstrand [Thu, 24 Jun 2021 20:13:57 +0000 (15:13 -0500)]
intel/devinfo: Add a has_lsc bit

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

3 years agoradeon/vcn: calc_dpb_size should be based on dpb_type
SureshGuttula [Tue, 29 Jun 2021 05:11:14 +0000 (10:41 +0530)]
radeon/vcn: calc_dpb_size should be based on dpb_type

This patch will fix the dpb size calculated for each dpb_type.
Current implementaion always calculating based on DPB_MAX_RES.To fix
this dpb_type should be decided before calc_dpb_size.

Signed-off-by: SureshGuttula <suresh.guttula@amd.corp-partner.google.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11633>

3 years agoradv: pre-calc vertex buffer descriptor size on pipeline object
Mike Blumenkrantz [Wed, 2 Jun 2021 16:55:34 +0000 (12:55 -0400)]
radv: pre-calc vertex buffer descriptor size on pipeline object

util_bitcount has a nonzero cost, and calling it like this in a hotpath
generates unnecessary overhead

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

3 years agozink: attempt to handle some resource unmap cases in 32bit envs
Mike Blumenkrantz [Fri, 7 May 2021 23:08:18 +0000 (19:08 -0400)]
zink: attempt to handle some resource unmap cases in 32bit envs

address space is limited here, so in some cases it's worthwhile to
unmap resources

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>

3 years agozink: cache visible vram
Mike Blumenkrantz [Fri, 7 May 2021 21:51:02 +0000 (17:51 -0400)]
zink: cache visible vram

yolo

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>

3 years agozink: uncap mem caching
Mike Blumenkrantz [Fri, 7 May 2021 21:24:53 +0000 (17:24 -0400)]
zink: uncap mem caching

if it fits, it sits

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>

3 years agozink: make mem cache limits dynamically scalable
Mike Blumenkrantz [Fri, 7 May 2021 20:05:51 +0000 (16:05 -0400)]
zink: make mem cache limits dynamically scalable

this removes the hardcoded count of 5 mem blocks to cache and replaces
it with a value that's based on the number of allocations seen

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>

3 years agozink: don't align device-local buffer memory
Mike Blumenkrantz [Fri, 7 May 2021 20:07:47 +0000 (16:07 -0400)]
zink: don't align device-local buffer memory

this can't be mapped

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>

3 years agozink: try for better buffer allocation heaps
Mike Blumenkrantz [Thu, 6 May 2021 13:53:37 +0000 (09:53 -0400)]
zink: try for better buffer allocation heaps

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>

3 years agor600/sfn: initialize all texture lower options
Gert Wollny [Wed, 30 Jun 2021 09:06:11 +0000 (11:06 +0200)]
r600/sfn: initialize all texture lower options

Fixes: d1edf3cdf285f62c153c6bb910fc0a2c40c4e159
    r600/sfn: Lower offset in TXF instructions

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11650>

3 years agoanv: drop unused argument of anv_descriptor_set_address
Marcin Ślusarz [Mon, 28 Jun 2021 15:14:08 +0000 (17:14 +0200)]
anv: drop unused argument of anv_descriptor_set_address

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577>

3 years agoanv: handle push descriptor sets when they are sent with push constants
Marcin Ślusarz [Mon, 28 Jun 2021 11:06:07 +0000 (13:06 +0200)]
anv: handle push descriptor sets when they are sent with push constants

When vkCmdPushDescriptorSetKHR is used, the descriptor set is allocated
internally without belonging to any pool. Such descriptor set will be
visible on the GPU side because it's a part of the dynamic state stream,
but we still have to store its address in the array of descriptor sets.

Complements: 379b9bb7b04 ("anv: Support fetching descriptor addresses from push constants")

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577>

3 years agoanv: keep descriptor set's address directly in anv_descriptor_set
Marcin Ślusarz [Mon, 28 Jun 2021 10:56:31 +0000 (12:56 +0200)]
anv: keep descriptor set's address directly in anv_descriptor_set

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577>

3 years agoutil/disk_cache: delete more cache items in one go when full
Timothy Arceri [Tue, 22 Jun 2021 09:50:47 +0000 (19:50 +1000)]
util/disk_cache: delete more cache items in one go when full

Currently the cache just deletes enough items when the cache is
full to make room for the new item being stored. This hasn't
been too much of a problem in practice but for things like running
piglit where we have thousands of unique shaders and all threads
being utilised we end up with a pretty big bottle neck.

With this change rather than just brute forcing our way to having
enough room for the new item, we instead grab 10% of the least
recently used items in the random directory we chose and delete
them all. This should only be around 0.04% of total cache items
but should hopefully releave some of the pressure on system calls
like fstatat().

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11523>

3 years agoCI: Disable LAVA devices for maintenance
Daniel Stone [Wed, 30 Jun 2021 06:43:47 +0000 (07:43 +0100)]
CI: Disable LAVA devices for maintenance

LAVA will be unavailable for probably most of the day today due to
scheduled maintenance; doing some spring cleaning to upgrade to a new
version, clean out the database, etc.

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

3 years agoradv: fix fd leak in vkAcquireImageANDROID()
Samuel Pitoiset [Tue, 22 Jun 2021 06:36:16 +0000 (08:36 +0200)]
radv: fix fd leak in vkAcquireImageANDROID()

Copied from ANV.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4915
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11518>

3 years agovulkan/wsi: prefer the Wayland linux-dmabuf protocol
Simon Ser [Thu, 28 May 2020 17:59:35 +0000 (19:59 +0200)]
vulkan/wsi: prefer the Wayland linux-dmabuf protocol

When the linux-dmabuf protocol is available, prefer it over the old
wl_drm protocol. Previously wl_drm was used when modifiers aren't
supported, however linux-dmabuf supports formats without modifiers too.
In this case, linux-dmabuf will send a DRM_FORMAT_MOD_INVALID modifier
for each supported format [1].

All of this allows compositors to better handle these buffers, getting a
DMA-BUF and implementing features like direct scan-out.

A similar logic has been implemented for EGL [2].

In this patch, we bind to linux-dmabuf even if the driver doesn't support
modifiers. In this case the formats advertised by the compositor will
still be added to the display->dmabuf.formats list.

In wsi_wl_image_init, drop the assertions that display->drm_wrapper and
display->dmabuf.wl_dmabuf can't be both present. If the driver doesn't
support modifiers, the modifier is already set to DRM_FORMAT_MOD_INVALID.
If the parent compositor doesn't support modifiers, the modifiers list
passed to wsi_create_native_image will be empty, and the common code
will ensure that the image's modifier is set to DRM_FORMAT_MOD_INVALID.

In wsi_wl_surface_create_swapchain, create the wl_proxy proxy if we've
bound to it earlier. Don't decide to create the proxy depending on the
number of supported modifiers.

[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/fb9b2a87317c77e26283da5f6c9559d709f6fdcd
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/commit/c376865f5eeca535c4aa8e33bcf166052c1ce2f2

Signed-off-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4942>

3 years agovulkan/wsi: unify format logic in dmabuf_handle_modifier
Simon Ser [Thu, 28 May 2020 17:54:49 +0000 (19:54 +0200)]
vulkan/wsi: unify format logic in dmabuf_handle_modifier

This function has a switch which currently duplicates the format
handling logic.

Move this logic out of the switch.

This avoids repeating the same code for each supported format and
prepares the work for proper DRM_FORMAT_MOD_INVALID handling.

Signed-off-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4942>

3 years agozink: split dummy buffer creation and populate
Mike Blumenkrantz [Thu, 6 May 2021 19:26:54 +0000 (15:26 -0400)]
zink: split dummy buffer creation and populate

populate requires the queue to be set up, but the resources must be created
before descriptor init

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11591>

3 years agozink: add direct conversion from pipe_shader_type->VkPipelineStageFlags
Mike Blumenkrantz [Fri, 7 May 2021 11:57:19 +0000 (07:57 -0400)]
zink: add direct conversion from pipe_shader_type->VkPipelineStageFlags

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11592>

3 years agocrocus: disable Z16 unorm textures on pre-gen8 as well.
Dave Airlie [Wed, 30 Jun 2021 00:44:25 +0000 (10:44 +1000)]
crocus: disable Z16 unorm textures on pre-gen8 as well.

This fixes:
dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_short

as gallium will try an allocate a DS usage, but fallback to just
a sampling usage if that fails.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11646>

3 years agocrocus/gen8: add back z16 support for gen8
Dave Airlie [Wed, 30 Jun 2021 00:42:43 +0000 (10:42 +1000)]
crocus/gen8: add back z16 support for gen8

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11646>

3 years agofreedreno+ir3: Enable INT16
Rob Clark [Mon, 21 Jun 2021 21:21:00 +0000 (14:21 -0700)]
freedreno+ir3: Enable INT16

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11545>

3 years agonir: Add pass to lower phi precision
Rob Clark [Mon, 21 Jun 2021 21:19:51 +0000 (14:19 -0700)]
nir: Add pass to lower phi precision

In addition to register pressure benefits from getting more fp16/int16,
this avoids i2imp's from standing in the way of loop unrolling.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11545>

3 years agomicrosoft/compiler: Add support for get_ssbo_size to translator
Enrico Galli [Mon, 28 Jun 2021 22:00:39 +0000 (15:00 -0700)]
microsoft/compiler: Add support for get_ssbo_size to translator

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11629>

3 years agonir/lower_packing: use shader_instructions_pass
Thomas H.P. Andersen [Sun, 27 Jun 2021 23:00:31 +0000 (01:00 +0200)]
nir/lower_packing: use shader_instructions_pass

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

3 years agonir: return progress from nir_lower_packing
Thomas H.P. Andersen [Sat, 26 Jun 2021 22:44:56 +0000 (00:44 +0200)]
nir: return progress from nir_lower_packing

Compiling with clang warns about an unused variable in
nir_lower_packing.

Tracking progress was added to nir_lower_packing in
adb157ddfd52ab495878a8b2b1bf70586d773aa2 but the function
will ignore the progress from impl calls and always return
false.

This patch changes it to return the progress. It fixes the
warning and should enable validation calls in NIR_PASS when
progress is made.

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: adb157ddfd52 "nir: Return progress from nir_lower_64bit_pack()"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11615>

3 years agoradeonsi/driconf: add workaround for SpaceEngine
Pierre-Eric Pelloux-Prayer [Mon, 28 Jun 2021 16:09:02 +0000 (18:09 +0200)]
radeonsi/driconf: add workaround for SpaceEngine

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4483
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>

3 years agoac/surface: don't print stencil info if tex has no stencil
Pierre-Eric Pelloux-Prayer [Fri, 25 Jun 2021 11:58:14 +0000 (13:58 +0200)]
ac/surface: don't print stencil info if tex has no stencil

color/zs are stored in a union so testing for zs.stencil_offset
isn't the correct way to test for stencil.

Fixes: 988f148db3c ("ac/surface: overlap color and Z/S fields using a union in gfx9_surf_layout")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>

3 years agoradeonsi/gfx7: always sync pfp/me
Pierre-Eric Pelloux-Prayer [Mon, 28 Jun 2021 12:52:07 +0000 (14:52 +0200)]
radeonsi/gfx7: always sync pfp/me

Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/4764

Fixes: c5326164 ("radeonsi: add SI_CONTEXT_PFP_SYNC_ME to skip syncing PFP for image operations")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>

3 years agoradeonsi: fix fb_too_small condition
Pierre-Eric Pelloux-Prayer [Mon, 21 Jun 2021 13:11:27 +0000 (15:11 +0200)]
radeonsi: fix fb_too_small condition

fb->num_layers can be 0 so use util_num_layers(tex) instead.

Fixes: f7c58559f57 ("radeonsi: refine fast clears for small buffers, always use them for large HTILE")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4764
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>

3 years agoac/llvm: call the callback in all return paths of ac_cull_triangle
Pierre-Eric Pelloux-Prayer [Mon, 21 Jun 2021 13:04:19 +0000 (15:04 +0200)]
ac/llvm: call the callback in all return paths of ac_cull_triangle

Fixes: 12d2df15f17 ("ac/llvm: add a callback to ac_cull_triangle to generate code in inner-most block")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4959
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>

3 years agoci: bare-metal: drop webdav support
Christian Gmeiner [Fri, 25 Jun 2021 15:56:11 +0000 (17:56 +0200)]
ci: bare-metal: drop webdav support

The NFS method is much faster.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11611>

3 years agoiris/bufmgr: Stop changing mapping modes on buffers
Jason Ekstrand [Thu, 24 Jun 2021 16:26:05 +0000 (11:26 -0500)]
iris/bufmgr: Stop changing mapping modes on buffers

With discrete GPUs, we aren't able to change mapping modes after we've
created a buffer.  This is a limitation of TTM.  However, we already
have a buffer cache and it's pretty likely that stuff in any given
memzone will end up with just the one mapping type anyway so this
shouldn't have much of a cost.

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11583>

3 years agointel: Early exit from inst_is_in_block().
Emma Anholt [Mon, 28 Jun 2021 22:56:38 +0000 (15:56 -0700)]
intel: Early exit from inst_is_in_block().

Surely the compiler would sort that out, you would think.  But no, my
debugoptimized build improves
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.13 runtime by 25%
on my SKL from this change.

This was the slowest test in the GLES31 tests on APL in CI, at 22s.  And
yes, we were spending around half of our runtime in this function.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11631>

3 years agovirgl: Enable ASTC formats also for 3D textures
Gert Wollny [Tue, 29 Jun 2021 08:36:08 +0000 (10:36 +0200)]
virgl: Enable ASTC formats also for 3D textures

The texture compression can also be used for 2D arrays and
3D textures.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11634>

3 years agodocs/envvars: fix RADV_TEX_ANISO
Rhys Perry [Tue, 29 Jun 2021 13:10:13 +0000 (14:10 +0100)]
docs/envvars: fix RADV_TEX_ANISO

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

3 years agor600/sfn: Lower offset in TXF instructions
Gert Wollny [Tue, 29 Jun 2021 12:28:51 +0000 (14:28 +0200)]
r600/sfn: Lower offset in TXF instructions

Closes: #4960
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11639>

3 years agoradv: fix RADV_FORCE_VRS for 2x1 and 1x2
Samuel Pitoiset [Thu, 24 Jun 2021 14:16:25 +0000 (16:16 +0200)]
radv: fix RADV_FORCE_VRS for 2x1 and 1x2

The rates were inverted.

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

3 years agoci/vc4: update piglit failures
Juan A. Suarez Romero [Tue, 22 Jun 2021 08:39:07 +0000 (10:39 +0200)]
ci/vc4: update piglit failures

Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11521>

3 years agobroadcom/compiler: use nir_sort_variables_with_modes
Iago Toral Quiroga [Mon, 28 Jun 2021 10:54:46 +0000 (12:54 +0200)]
broadcom/compiler: use nir_sort_variables_with_modes

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11624>

3 years agoaco/tests: fix 32-bit build
Rhys Perry [Tue, 22 Jun 2021 12:43:33 +0000 (13:43 +0100)]
aco/tests: fix 32-bit build

"call of overloaded ‘Operand(long unsigned int)’ is ambiguous"

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

3 years agoradv: ignore redundant variable descriptor counts (v2)
Ishi Tatsuyuki [Thu, 24 Jun 2021 12:12:48 +0000 (21:12 +0900)]
radv: ignore redundant variable descriptor counts (v2)

The Vulkan specification says: "If VkDescriptorSetAllocateInfo::pSetLayouts[i]
does not include a variable count descriptor binding, then
pDescriptorCounts[i] is ignored". The previous code triggered an assertion
in such cases, and this patch fixes it.

v2: removed the offending assertion that is now always satisfied and
    reworded the commit message with a reference to Vulkan spec.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4992
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11576>

3 years agoir3/lower_parallelcopy: Use SWZ
Connor Abbott [Thu, 22 Apr 2021 17:49:29 +0000 (19:49 +0200)]
ir3/lower_parallelcopy: Use SWZ

shader-db results on a650:

total instructions in shared programs: 1575484 -> 1574866 (-0.04%)
instructions in affected programs: 32579 -> 31961 (-1.90%)
helped: 75
HURT: 0
helped stats (abs) min: 1 max: 98 x̄: 8.24 x̃: 7
helped stats (rel) min: 0.41% max: 30.12% x̄: 2.47% x̃: 1.13%
95% mean confidence interval for instructions value: -10.97 -5.51
95% mean confidence interval for instructions %-change: -3.44% -1.51%
Instructions are helped.

total nops in shared programs: 355742 -> 355628 (-0.03%)
nops in affected programs: 18635 -> 18521 (-0.61%)
helped: 55
HURT: 147
helped stats (abs) min: 1 max: 14 x̄: 4.76 x̃: 6
helped stats (rel) min: 1.41% max: 100.00% x̄: 8.13% x̃: 4.76%
HURT stats (abs)   min: 1 max: 2 x̄: 1.01 x̃: 1
HURT stats (rel)   min: 0.56% max: 25.00% x̄: 2.09% x̃: 1.20%
95% mean confidence interval for nops value: -0.98 -0.15
95% mean confidence interval for nops %-change: -1.93% 0.55%
Inconclusive result (%-change mean confidence interval includes 0).

total non-nops in shared programs: 1219742 -> 1219238 (-0.04%)
non-nops in affected programs: 61125 -> 60621 (-0.82%)
helped: 220
HURT: 0
helped stats (abs) min: 1 max: 99 x̄: 2.29 x̃: 1
helped stats (rel) min: 0.19% max: 29.17% x̄: 0.90% x̃: 0.40%
95% mean confidence interval for non-nops value: -3.26 -1.32
95% mean confidence interval for non-nops %-change: -1.24% -0.56%
Non-nops are helped.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3: Add min gen for multi-mov instructions
Connor Abbott [Wed, 28 Apr 2021 15:46:44 +0000 (17:46 +0200)]
ir3: Add min gen for multi-mov instructions

swz works on a5xx/a6xx but not a3xx according to CI. I don't have any
access to a4xx HW so I can't tell whether it works there.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3: Print multi-mov instructions
Connor Abbott [Thu, 22 Apr 2021 17:49:07 +0000 (19:49 +0200)]
ir3: Print multi-mov instructions

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3/validate: Support multi-mov instructions
Connor Abbott [Mon, 21 Jun 2021 16:46:37 +0000 (18:46 +0200)]
ir3/validate: Support multi-mov instructions

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3: Use correct flags for movmsk & multi-mov
Connor Abbott [Thu, 22 Apr 2021 17:40:00 +0000 (19:40 +0200)]
ir3: Use correct flags for movmsk & multi-mov

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3/legalize: Support multi-mov instructions
Connor Abbott [Thu, 22 Apr 2021 17:14:42 +0000 (19:14 +0200)]
ir3/legalize: Support multi-mov instructions

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3/postsched: Support multi-mov instructions
Connor Abbott [Thu, 22 Apr 2021 17:11:05 +0000 (19:11 +0200)]
ir3/postsched: Support multi-mov instructions

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3/delay: Support multi-mov instructions
Connor Abbott [Thu, 22 Apr 2021 17:06:54 +0000 (19:06 +0200)]
ir3/delay: Support multi-mov instructions

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3: Support multi-mov instructions
Connor Abbott [Fri, 25 Jun 2021 09:34:53 +0000 (11:34 +0200)]
ir3: Support multi-mov instructions

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3: Add foreach_dst/foreach_dst_n
Connor Abbott [Mon, 21 Jun 2021 15:46:33 +0000 (17:46 +0200)]
ir3: Add foreach_dst/foreach_dst_n

And cleanup a few places I know of that are open-coding it

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3: Prepare dest helpers for multi-dst instructions
Connor Abbott [Fri, 25 Jun 2021 09:06:35 +0000 (11:06 +0200)]
ir3: Prepare dest helpers for multi-dst instructions

Assert in dest_regs() that dst_count == 1, since most users of it will
blow up if they encounter multiple destinations, and split out the core
of writes_gpr() so that we can easily make code using it multi-dst
aware.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agoir3: Stop creating dummy dest registers
Connor Abbott [Fri, 25 Jun 2021 08:51:25 +0000 (10:51 +0200)]
ir3: Stop creating dummy dest registers

These were a holdover from before the src/dst split and are no longer
necessary. Just don't create any dest registers for instructions that
never have a destination.

This has the side-effect that it becomes easier to replace uses of
dest_regs() with a per-register thing, once we start adding support for
multiple destinations.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>

3 years agov3dv: expose support for basic subgroup operations
Iago Toral Quiroga [Tue, 22 Jun 2021 10:13:56 +0000 (12:13 +0200)]
v3dv: expose support for basic subgroup operations

Relevant CTS tests (requires Vulkan 1.1):
dEQP-VK.subgroups.builtin_var.compute.*
dEQP-VK.subgroups.basic.compute.*

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agov3dv: expose correct subgroup size
Iago Toral Quiroga [Tue, 22 Jun 2021 09:30:11 +0000 (11:30 +0200)]
v3dv: expose correct subgroup size

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/util: don't use compute supergroup packing with subgroups
Iago Toral Quiroga [Tue, 22 Jun 2021 10:34:02 +0000 (12:34 +0200)]
broadcom/util: don't use compute supergroup packing with subgroups

When using subgroups there are additional restrictions to consider,
so for now we keep it simple and disable supergroup packing in that
scenario.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/compiler: track if a compute shader uses subgroup functionality
Iago Toral Quiroga [Tue, 22 Jun 2021 10:33:23 +0000 (12:33 +0200)]
broadcom/compiler: track if a compute shader uses subgroup functionality

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/compiler: add a set_a_flags_for_subgroup helper
Iago Toral Quiroga [Mon, 28 Jun 2021 07:45:18 +0000 (09:45 +0200)]
broadcom/compiler: add a set_a_flags_for_subgroup helper

We will need this in the future to implement more subgroup operations,
so make this code available in a helper.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/compiler: add a ntq_emit_cond_to_bool helper
Iago Toral Quiroga [Mon, 28 Jun 2021 07:44:49 +0000 (09:44 +0200)]
broadcom/compiler: add a ntq_emit_cond_to_bool helper

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/compiler: implement more subgroup intrinsics
Iago Toral Quiroga [Tue, 22 Jun 2021 09:04:06 +0000 (11:04 +0200)]
broadcom/compiler: implement more subgroup intrinsics

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/compiler: add FLAFIRST and FLNAFIRST opcodes
Iago Toral Quiroga [Wed, 23 Jun 2021 09:18:50 +0000 (11:18 +0200)]
broadcom/compiler: add FLAFIRST and FLNAFIRST opcodes

We will at least need the former to implement subgroupElect()

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/compiler: lower nir_intrinsic_load_num_subgroups
Iago Toral Quiroga [Tue, 22 Jun 2021 10:00:55 +0000 (12:00 +0200)]
broadcom/compiler: lower nir_intrinsic_load_num_subgroups

The number of subgroups is the local workgroup size divided by the
dispatch width.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agobroadcom/compiler: implement nir_intrinsic_load_subgroup_id correctly
Iago Toral Quiroga [Tue, 22 Jun 2021 08:55:04 +0000 (10:55 +0200)]
broadcom/compiler: implement nir_intrinsic_load_subgroup_id correctly

For some reason, this was implemented with the bulk of the compute
shader enablement, but this intrinsic is specific to subgroups and
thus was not really used. Also, its implementation was not correct,
since it was returning the element index within the subgroup, not
the subgroup index itself, which is the index of the batch in the
dispatch.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>

3 years agointel/perf: use the right popcount for 64bits
Lionel Landwerlin [Fri, 25 Jun 2021 10:54:51 +0000 (13:54 +0300)]
intel/perf: use the right popcount for 64bits

We're currently using the 32bit version which is dropping half the
bits of the 64bits values.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11607>

3 years agoutil: add some workarounds for the game Luna Sky
Timothy Arceri [Fri, 25 Jun 2021 11:31:16 +0000 (21:31 +1000)]
util: add some workarounds for the game Luna Sky

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4948

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602>

3 years agoutil/driconf: add new ignore_write_to_readonly_var workaround
Timothy Arceri [Fri, 25 Jun 2021 11:29:31 +0000 (21:29 +1000)]
util/driconf: add new ignore_write_to_readonly_var workaround

This forces the GLSL compiler to ignore writes to readonly vars
rather than throwing an error.

Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602>

3 years agoglsl: force_glsl_version to shaders with no defined version
Timothy Arceri [Fri, 25 Jun 2021 10:30:32 +0000 (20:30 +1000)]
glsl: force_glsl_version to shaders with no defined version

If a shader has no defined version force_glsl_version was
previous ignored and the shader would default to 110. This updates
the code so that those shaders are forced to a new level also.

We reused the existing code to make sure a sensible value is set
for the version.

Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602>

3 years agoi965: don't crash on incorrect texture use
Timothy Arceri [Mon, 28 Jun 2021 04:26:54 +0000 (14:26 +1000)]
i965: don't crash on incorrect texture use

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4995

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11603>

3 years agomesa: don't crash on incorrect texture use
Timothy Arceri [Fri, 25 Jun 2021 12:33:22 +0000 (22:33 +1000)]
mesa: don't crash on incorrect texture use

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4995

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11603>

3 years agoutil/tests: initialise key in cache_test
Timothy Arceri [Mon, 28 Jun 2021 10:31:46 +0000 (20:31 +1000)]
util/tests: initialise key in cache_test

Fixes: e8495646afb0 ("glsl/tests: changes to test_disk_cache_create test")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2631

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11623>

3 years agovenus: resolve AHB external format with DRM format
Yiwei Zhang [Fri, 18 Jun 2021 21:45:28 +0000 (21:45 +0000)]
venus: resolve AHB external format with DRM format

AHardwareBuffer_Format is lossier than DRM_FORMAT_*, which ends up with
unable to resolve implementation defined format upon creating sampler
ycbcr conversion. So we now use DRM format as AHB external format.

An external format error return in vkCreateSamplerYcbcrConversion is
also removed here since that is already an invalid usage per spec
(partly because there is no proper error code to return here).

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480>

3 years agovenus: remove unsupported AHB formats
Yiwei Zhang [Sat, 19 Jun 2021 05:30:43 +0000 (05:30 +0000)]
venus: remove unsupported AHB formats

Likely not going to support them either.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480>

3 years agovenus: use the mesa "drm-uapi/drm_fourcc.h" header
Yiwei Zhang [Thu, 17 Jun 2021 22:03:02 +0000 (22:03 +0000)]
venus: use the mesa "drm-uapi/drm_fourcc.h" header

Prepare for later CI integration.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480>

3 years agoi915g: Fix off-by-one in constant count assertion.
Emma Anholt [Mon, 28 Jun 2021 03:30:27 +0000 (20:30 -0700)]
i915g: Fix off-by-one in constant count assertion.

You can have up to C[31].

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>

3 years agoi915g: Mark program errors on setting up temps, constants, and immediates.
Emma Anholt [Sun, 27 Jun 2021 22:00:59 +0000 (15:00 -0700)]
i915g: Mark program errors on setting up temps, constants, and immediates.

We would proceed through the compiler, and usually fail for some other
reason (ALU ops, etc.), but best to be sure.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>

3 years agoi915g: Remove redundant p->error setting.
Emma Anholt [Sun, 27 Jun 2021 21:51:53 +0000 (14:51 -0700)]
i915g: Remove redundant p->error setting.

i915_program_error() already does it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>

3 years agoi915g: Use stdbool.h instead of custom bools.
Emma Anholt [Sun, 27 Jun 2021 21:47:02 +0000 (14:47 -0700)]
i915g: Use stdbool.h instead of custom bools.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>

3 years agoi915g: replace "uint" with normal uint32_t.
Emma Anholt [Sun, 27 Jun 2021 21:43:58 +0000 (14:43 -0700)]
i915g: replace "uint" with normal uint32_t.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>

3 years agoi915g: Improve logging of unsupported opcodes.
Emma Anholt [Sun, 27 Jun 2021 21:35:32 +0000 (14:35 -0700)]
i915g: Improve logging of unsupported opcodes.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>

3 years agoi915g: Stop translating the fragment program on the first error.
Emma Anholt [Sun, 27 Jun 2021 21:36:46 +0000 (14:36 -0700)]
i915g: Stop translating the fragment program on the first error.

It would proceed through printing errors for each of the unsupported loop
opcodes in the program.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>

3 years agoi915g: Log program compile errors to mesa_loge().
Emma Anholt [Sun, 27 Jun 2021 21:15:41 +0000 (14:15 -0700)]
i915g: Log program compile errors to mesa_loge().

Now these major driver failures are no longer hidden under -DDEBUG, and
would also work on android (you know, if you cared).  We do want to
suppress logging for u_blitter shaders that fail to compile during
util_blitter_cache_all_shaders().

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>