platform/upstream/mesa.git
15 months agoutil: Add dedicated hex conversion functions and use it.
Tatsuyuki Ishi [Mon, 17 Apr 2023 13:08:24 +0000 (22:08 +0900)]
util: Add dedicated hex conversion functions and use it.

This deduplicate two identical bytes_to_hex implementation into one.

The intention is to ease the introduction of a new hash algorithm, which
will also have its formatting helper (to ensure seamless transition from
sha1).

Note that the new functions always take the size of the binary buffer,
unlike the old disk_cache_format_hex_id which took `binary * 2` which was
inconsistent (binary size is `binary` and string size is `binary * 2 + 1`).

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

15 months agozink: fix non-db bindless texture buffers
Mike Blumenkrantz [Tue, 18 Apr 2023 21:08:40 +0000 (17:08 -0400)]
zink: fix non-db bindless texture buffers

the db members are only populated in db mode

fixes Dawn of War 3 crash on launch

Fixes: 99ba529feed ("zink: implement descriptor buffer handling of bindless texture")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22566>

15 months agoac/llvm,radeonsi: lower nir_load_point_coord_maybe_flipped in nir
Qiang Yu [Sat, 15 Apr 2023 05:04:05 +0000 (13:04 +0800)]
ac/llvm,radeonsi: lower nir_load_point_coord_maybe_flipped in nir

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22523>

15 months agonir,ac/llvm,radeonsi: replace nir_load_smem_buffer_amd with nir_load_ubo
Qiang Yu [Sat, 15 Apr 2023 07:51:41 +0000 (15:51 +0800)]
nir,ac/llvm,radeonsi: replace nir_load_smem_buffer_amd with nir_load_ubo

They use same instruction. Just because when the time
nir_load_smem_buffer_amd was introduced, radeonsi didn't support
pass buffer descriptor to nir_load_ubo directly.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22523>

15 months agoac/llvm,radeonsi: use texture non-uniform flag as waterfall switch
Qiang Yu [Thu, 13 Apr 2023 13:00:34 +0000 (21:00 +0800)]
ac/llvm,radeonsi: use texture non-uniform flag as waterfall switch

Also for calling nir_lower_non_uniform_access() when ACO.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22523>

15 months agoradeonsi: add si_mark_divergent_texture_non_uniform
Qiang Yu [Fri, 14 Apr 2023 10:25:46 +0000 (18:25 +0800)]
radeonsi: add si_mark_divergent_texture_non_uniform

For handle divergent index problem later for both
llvm and aco.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22523>

15 months agonir/lower_alpha_test: rzalloc state slots
Mike Blumenkrantz [Tue, 18 Apr 2023 16:23:21 +0000 (12:23 -0400)]
nir/lower_alpha_test: rzalloc state slots

this otherwise leads to uninitialized memory

cc: mesa-stable

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

15 months agoradeonsi/gfx11: updated vertex format changes
Ikshwaku Chauhan [Sat, 15 Apr 2023 11:56:30 +0000 (17:26 +0530)]
radeonsi/gfx11: updated vertex format changes

GFX11 format table is different than GFX10

Signed-off-by: Ikshwaku Chauhan <ikshwaku.chauhan@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22466>

15 months agoradeonsi/gfx11: updated si_is_format_supported
Ikshwaku Chauhan [Thu, 13 Apr 2023 14:02:53 +0000 (19:32 +0530)]
radeonsi/gfx11: updated si_is_format_supported

GFX11 format table is different than GFX10, the change is
required to pass below deqp tests for gfx11:
dEQP-GLES3.functional.texture.specification.teximage2d_pbo*,
texsubimage2d_pbo*, teximage3d_pbo*, texsubimage3d_pbo*.

Signed-off-by: Ikshwaku Chauhan <ikshwaku.chauhan@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22466>

15 months agoiris: use util_framebuffer_get_num_samples when setting ps dispatch samples
Mike Blumenkrantz [Tue, 18 Apr 2023 17:08:03 +0000 (13:08 -0400)]
iris: use util_framebuffer_get_num_samples when setting ps dispatch samples

pipe_framebuffer_state::samples may be zero, which is why this helper exists

cc: mesa-stable

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22563>

15 months agozink: avoid zero-sized memcmp for descriptor layouts
Mike Blumenkrantz [Tue, 18 Apr 2023 16:23:47 +0000 (12:23 -0400)]
zink: avoid zero-sized memcmp for descriptor layouts

cc: mesa-stable

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

15 months agopan/va: fix typo in IADD_IMM.i32 description
Aleksey Komarov [Fri, 30 Dec 2022 18:46:05 +0000 (21:46 +0300)]
pan/va: fix typo in IADD_IMM.i32 description

`IADD.f32` replaced with `IADD.i32`

Signed-off-by: Signed-off-by: Aleksey Komarov <q4arus@ya.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20467>

15 months agopan/va: Fix MUX.v2i16 and MUX.v4i8 description
Aleksey Komarov [Thu, 29 Dec 2022 09:59:40 +0000 (12:59 +0300)]
pan/va: Fix MUX.v2i16 and MUX.v4i8 description

For MUX.v2i16 should be:
`MUX.v2i16.bit A, B, mask` calculates `(A &amp; mask) | (B &amp; ~mask)`
For MUX.v4i8 should be:
`MUX.v4i8.bit A, B, mask` calculates `(A &amp; mask) | (B &amp; ~mask)`

Signed-off-by: Signed-off-by: Aleksey Komarov <q4arus@ya.ru>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20467>

15 months agoci: do not retry on forks to get the upstream kernel and rootfs
David Heidelberg [Sun, 9 Apr 2023 20:28:23 +0000 (22:28 +0200)]
ci: do not retry on forks to get the upstream kernel and rootfs

This commit introduces multiple changes:
  1. Now we check for mainline artifacts only when NOT running on
     the mainline branch
  2. if we run on the fork and get 404-like error, it doesn't retry.

Reviewed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22386>

15 months agoutil: enforce unreachable()'s argument being a literal string
Eric Engestrom [Mon, 17 Apr 2023 12:20:28 +0000 (13:20 +0100)]
util: enforce unreachable()'s argument being a literal string

This prevents the bugs fixed in the previous commits.

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22529>

15 months agovk/util: fix buggy usage of unreachable()
Eric Engestrom [Mon, 17 Apr 2023 12:01:41 +0000 (13:01 +0100)]
vk/util: fix buggy usage of unreachable()

Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22529>

15 months agopvr: fix buggy usage of unreachable()
Eric Engestrom [Mon, 17 Apr 2023 12:01:27 +0000 (13:01 +0100)]
pvr: fix buggy usage of unreachable()

Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22529>

15 months agocompiler: fix buggy usage of unreachable()
Eric Engestrom [Mon, 17 Apr 2023 12:01:17 +0000 (13:01 +0100)]
compiler: fix buggy usage of unreachable()

Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22529>

15 months agoamd: fix buggy usage of unreachable()
Eric Engestrom [Mon, 17 Apr 2023 11:47:45 +0000 (12:47 +0100)]
amd: fix buggy usage of unreachable()

Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22529>

15 months agoac/llvm: support implicit LOD for nir_texop_tg4
Rhys Perry [Fri, 31 Mar 2023 18:44:34 +0000 (19:44 +0100)]
ac/llvm: support implicit LOD for nir_texop_tg4

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22315>

15 months agoaco: support implicit LOD for nir_texop_tg4
Rhys Perry [Fri, 31 Mar 2023 18:43:03 +0000 (19:43 +0100)]
aco: support implicit LOD for nir_texop_tg4

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22315>

15 months agovtn: set is_gather_implicit_lod
Rhys Perry [Fri, 31 Mar 2023 18:40:27 +0000 (19:40 +0100)]
vtn: set is_gather_implicit_lod

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22315>

15 months agonir: add is_gather_implicit_lod
Rhys Perry [Thu, 13 Apr 2023 13:13:35 +0000 (14:13 +0100)]
nir: add is_gather_implicit_lod

Needed for SPV_AMD_texture_gather_bias_lod.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22315>

15 months agoanv/format: Fix GetPhysicalDeviceSparseImageFormatProperties definition
Michel Dänzer [Fri, 14 Apr 2023 09:28:58 +0000 (11:28 +0200)]
anv/format: Fix GetPhysicalDeviceSparseImageFormatProperties definition

To match its declaration (and the corresponding definition in Vulkan
headers).

Pointed out by GCC 13:

../src/intel/vulkan/anv_formats.c:1597:6: warning: conflicting types for ‘anv_GetPhysicalDeviceSparseImageFormatProperties’ due to enum/integer mismatch; have ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  uint32_t,  VkImageUsageFlags,  VkImageTiling,  uint32_t *, VkSparseImageFormatProperties *)’ {aka ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  unsigned int,  unsigned int,  VkImageTiling,  unsigned int *, VkSparseImageFormatProperties *)’} [-Wenum-int-mismatch]
 1597 | void anv_GetPhysicalDeviceSparseImageFormatProperties(
      |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/intel/vulkan/anv_private.h:123,
                 from ../src/intel/vulkan/anv_formats.c:24:
src/intel/vulkan/anv_entrypoints.h:122:30: note: previous declaration of ‘anv_GetPhysicalDeviceSparseImageFormatProperties’ with type ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  VkSampleCountFlagBits,  VkImageUsageFlags,  VkImageTiling,  uint32_t *, VkSparseImageFormatProperties *)’ {aka ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  VkSampleCountFlagBits,  unsigned int,  VkImageTiling,  unsigned int *, VkSparseImageFormatProperties *)’}
  122 |   VKAPI_ATTR void VKAPI_CALL anv_GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

15 months agovulkan: Fix GetPhysicalDeviceSparseImageFormatProperties definition
Michel Dänzer [Fri, 14 Apr 2023 09:33:01 +0000 (11:33 +0200)]
vulkan: Fix GetPhysicalDeviceSparseImageFormatProperties definition

To match its declaration (and the corresponding definition in Vulkan
headers).

Pointed out by GCC 13:

../src/vulkan/runtime/vk_physical_device.c:230:1: warning: conflicting types for ‘vk_common_GetPhysicalDeviceSparseImageFormatProperties’ due to enum/integer mismatch; have ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  uint32_t,  VkImageUsageFlags,  VkImageTiling,  uint32_t *, VkSparseImageFormatProperties *)’ {aka ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  unsigned int,  unsigned int,  VkImageTiling,  unsigned int *, VkSparseImageFormatProperties *)’} [-Wenum-int-mismatch]
  230 | vk_common_GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/vulkan/runtime/vk_physical_device.c:26:
src/vulkan/runtime/vk_common_entrypoints.h:116:30: note: previous declaration of ‘vk_common_GetPhysicalDeviceSparseImageFormatProperties’ with type ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  VkSampleCountFlagBits,  VkImageUsageFlags,  VkImageTiling,  uint32_t *, VkSparseImageFormatProperties *)’ {aka ‘void(struct VkPhysicalDevice_T *, VkFormat,  VkImageType,  VkSampleCountFlagBits,  unsigned int,  VkImageTiling,  unsigned int *, VkSparseImageFormatProperties *)’}
  116 |   VKAPI_ATTR void VKAPI_CALL vk_common_GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

15 months agomesa/st: Make st_convert_image(_from_unit) declaration match definition
Michel Dänzer [Fri, 14 Apr 2023 09:30:14 +0000 (11:30 +0200)]
mesa/st: Make st_convert_image(_from_unit) declaration match definition

Pointed out by GCC 13:

../src/mesa/state_tracker/st_atom_image.c:51:1: warning: conflicting types for ‘st_convert_image’ due to enum/integer mismatch; have ‘void(const struct st_context *, const struct gl_image_unit *, struct pipe_image_view *, enum gl_access_qualifier)’ [-Wenum-int-mismatch]
   51 | st_convert_image(const struct st_context *st, const struct gl_image_unit *u,
      | ^~~~~~~~~~~~~~~~
In file included from ../src/mesa/state_tracker/st_atom_image.c:41:
../src/mesa/state_tracker/st_texture.h:242:1: note: previous declaration of ‘st_convert_image’ with type ‘void(const struct st_context *, const struct gl_image_unit *, struct pipe_image_view *, unsigned int)’
  242 | st_convert_image(const struct st_context *st, const struct gl_image_unit *u,
      | ^~~~~~~~~~~~~~~~
../src/mesa/state_tracker/st_atom_image.c:134:1: warning: conflicting types for ‘st_convert_image_from_unit’ due to enum/integer mismatch; have ‘void(const struct st_context *, struct pipe_image_view *, GLuint,  enum gl_access_qualifier)’ {aka ‘void(const struct st_context *, struct pipe_image_view *, unsigned int,  enum gl_access_qualifier)’} [-Wenum-int-mismatch]
  134 | st_convert_image_from_unit(const struct st_context *st,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~
../src/mesa/state_tracker/st_texture.h:246:1: note: previous declaration of ‘st_convert_image_from_unit’ with type ‘void(const struct st_context *, struct pipe_image_view *, GLuint,  unsigned int)’ {aka ‘void(const struct st_context *, struct pipe_image_view *, unsigned int,  unsigned int)’}
  246 | st_convert_image_from_unit(const struct st_context *st,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~

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

15 months agollvmpipe: Make lp_build_interp_soa declaration match its definition
Michel Dänzer [Fri, 14 Apr 2023 09:26:10 +0000 (11:26 +0200)]
llvmpipe: Make lp_build_interp_soa declaration match its definition

Pointed out by GCC 13:

../src/gallium/drivers/llvmpipe/lp_bld_interp.c:545:1: warning: conflicting types for ‘lp_build_interp_soa’ due to enum/integer mismatch; have ‘struct LLVMOpaqueValue *(struct lp_build_interp_soa_context *, struct gallivm_state *, struct LLVMOpaqueValue *, struct LLVMOpaqueType *, struct LLVMOpaqueValue *, unsigned int,  unsigned int,  enum tgsi_interpolate_loc,  struct LLVMOpaqueValue *, struct LLVMOpaqueValue **)’ [-Wenum-int-mismatch]
  545 | lp_build_interp_soa(struct lp_build_interp_soa_context *bld,
      | ^~~~~~~~~~~~~~~~~~~
In file included from ../src/gallium/drivers/llvmpipe/lp_bld_interp.c:50:
../src/gallium/drivers/llvmpipe/lp_bld_interp.h:154:1: note: previous declaration of ‘lp_build_interp_soa’ with type ‘struct LLVMOpaqueValue *(struct lp_build_interp_soa_context *, struct gallivm_state *, struct LLVMOpaqueValue *, struct LLVMOpaqueType *, struct LLVMOpaqueValue *, unsigned int,  unsigned int,  unsigned int,  struct LLVMOpaqueValue *, struct LLVMOpaqueValue **)’
  154 | lp_build_interp_soa(struct lp_build_interp_soa_context *bld,
      | ^~~~~~~~~~~~~~~~~~~

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

15 months agotgsi: Make ureg_DECL_output_masked definition match its declaration
Michel Dänzer [Fri, 14 Apr 2023 09:25:02 +0000 (11:25 +0200)]
tgsi: Make ureg_DECL_output_masked definition match its declaration

Pointed out by GCC 13:

../src/gallium/auxiliary/tgsi/tgsi_ureg.c:483:1: warning: conflicting types for ‘ureg_DECL_output_masked’ due to enum/integer mismatch; have ‘struct ureg_dst(struct ureg_program *, unsigned int,  unsigned int,  unsigned int,  unsigned int,  unsigned int)’ [-Wenum-int-mismatch]
  483 | ureg_DECL_output_masked(struct ureg_program *ureg,
      | ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/gallium/auxiliary/tgsi/tgsi_ureg.c:32:
../src/gallium/auxiliary/tgsi/tgsi_ureg.h:245:1: note: previous declaration of ‘ureg_DECL_output_masked’ with type ‘struct ureg_dst(struct ureg_program *, enum tgsi_semantic,  unsigned int,  unsigned int,  unsigned int,  unsigned int)’
  245 | ureg_DECL_output_masked(struct ureg_program *,
      | ^~~~~~~~~~~~~~~~~~~~~~~

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

15 months agoanv: drop lowered storage images code
Lionel Landwerlin [Tue, 4 Apr 2023 17:45:36 +0000 (20:45 +0300)]
anv: drop lowered storage images code

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22302>

15 months agointel/nir: add options to storage image lowering
Lionel Landwerlin [Tue, 4 Apr 2023 17:42:39 +0000 (20:42 +0300)]
intel/nir: add options to storage image lowering

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22302>

15 months agoisl: fix a number of errors on storage format support on Gfx9/12.5
Lionel Landwerlin [Tue, 4 Apr 2023 10:32:53 +0000 (13:32 +0300)]
isl: fix a number of errors on storage format support on Gfx9/12.5

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22302>

15 months agoradv/amdgpu: remove legacy code for querying context status
Samuel Pitoiset [Mon, 17 Apr 2023 10:34:11 +0000 (12:34 +0200)]
radv/amdgpu: remove legacy code for querying context status

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

15 months agoradv/amdgpu: remove legacy code path for creating the BO list
Samuel Pitoiset [Wed, 13 Oct 2021 16:18:29 +0000 (18:18 +0200)]
radv/amdgpu: remove legacy code path for creating the BO list

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

15 months agoradv: require DRM 3.27
Samuel Pitoiset [Wed, 13 Oct 2021 16:16:47 +0000 (18:16 +0200)]
radv: require DRM 3.27

Linux kernel 4.20+ is now required to use RADV.

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

15 months agoisl: disable mcs (and mcs+ccs) for color msaa on gfxver 125
Tapani Pälli [Wed, 12 Apr 2023 05:41:21 +0000 (08:41 +0300)]
isl: disable mcs (and mcs+ccs) for color msaa on gfxver 125

Same/similar issues are seen on MTL platform as DG2 so disable for both.

Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22435>

15 months agorusticl/mem: more region and origin validation
Karol Herbst [Fri, 14 Apr 2023 22:18:20 +0000 (00:18 +0200)]
rusticl/mem: more region and origin validation

Fixes piglit's api@clenqueuefillimage test

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22506>

15 months agorusticl: add create_pipe_box to better deal with pipe_box restrictions
Karol Herbst [Fri, 14 Apr 2023 18:17:13 +0000 (20:17 +0200)]
rusticl: add create_pipe_box to better deal with pipe_box restrictions

This puts the CL -> pipe_box logic in one place and also make sure the
pipe_box is filled in correctly so we neither read out of bounds nor do
nothing at all.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22506>

15 months agowinsys/gdi: GDI B5G6R5 display target support
Weibin Wu [Fri, 14 Apr 2023 16:51:34 +0000 (11:51 -0500)]
winsys/gdi: GDI B5G6R5 display target support

Added RGB_565 support to GDI display target.

This is to fix the color corruption issue when showing 16-bit B5G6R5 framebuffer through GDI.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7637

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

15 months agod3d12: Support blit texture uploads
Jesse Natalie [Mon, 17 Apr 2023 17:45:43 +0000 (10:45 -0700)]
d3d12: Support blit texture uploads

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

15 months agod3d12: Respect buffer offsets for sampler views
Jesse Natalie [Mon, 17 Apr 2023 19:06:39 +0000 (12:06 -0700)]
d3d12: Respect buffer offsets for sampler views

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22542>

15 months agoanv: Work around the spec question about pipeline feedback vs GPL.
Lionel Landwerlin [Fri, 7 Apr 2023 00:14:25 +0000 (17:14 -0700)]
anv: Work around the spec question about pipeline feedback vs GPL.

This gives anv the same behavior as turnip in not asserting, and just not
filling out feedback for those stages.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: Refactor repeated pipeline creation feedback output code.
Emma Anholt [Fri, 7 Apr 2023 00:13:07 +0000 (17:13 -0700)]
anv: Refactor repeated pipeline creation feedback output code.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: Only enable GPL if ANV_GPL=true, or if zink or DXVK are the engine.
Emma Anholt [Thu, 6 Apr 2023 22:57:43 +0000 (15:57 -0700)]
anv: Only enable GPL if ANV_GPL=true, or if zink or DXVK are the engine.

Since there are concerns that the VK_EXT_GPL implementation may have
issues with mesh shading, disable it by default but give users a knob to
turn it on to experiment.

This doesn't automatically enable GPL use in zink, because we lack
extendedDynamicState2PatchControlPoints, but it means that you only need
to set ZINK_DEBUG=gpl and not both env vars.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: implement VK_EXT_graphics_pipeline_library
Lionel Landwerlin [Mon, 28 Mar 2022 12:42:27 +0000 (15:42 +0300)]
anv: implement VK_EXT_graphics_pipeline_library

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: add dynamic buffer offsets support with independent sets
Lionel Landwerlin [Wed, 6 Apr 2022 15:12:02 +0000 (18:12 +0300)]
anv: add dynamic buffer offsets support with independent sets

With independent sets, we're not able to compute immediate values for
the index at which to read anv_push_constants::dynamic_offsets to get
the offset of a dynamic buffer. This is because the pipeline layout
may not have all the descriptor set layouts when we compile the
shader.

To solve that issue, we insert a layer of indirection.

This reworks the dynamic buffer offset storage with a 2D array in
anv_cmd_pipeline_state :

   dynamic_offsets[MAX_SETS][MAX_DYN_BUFFERS]

When the pipeline or the dynamic buffer offsets are updated, we
flatten that array into the
anv_push_constants::dynamic_offsets[MAX_DYN_BUFFERS] array.

For shaders compiled with independent sets, the bottom 6 bits of
element X in anv_push_constants::desc_sets[] is used to specify the
base offsets into the anv_push_constants::dynamic_offsets[] for the
set X.

The computation in the shader is now something like :

  base_dyn_buffer_set_idx = anv_push_constants::desc_sets[set_idx] & 0x3f
  dyn_buffer_offset = anv_push_constants::dynamic_offsets[base_dyn_buffer_set_idx + dynamic_buffer_idx]

It was suggested by Faith to use a different push constant buffer with
dynamic_offsets prepared for each stage when using independent sets
instead, but it feels easier to understand this way. And there is some
room for optimization if you are set X and that you know all the sets in
the range [0, X], then you can still avoid the indirection. Separate
push constant allocations per stage do have a CPU cost.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: move preprocessing of NIR right before compilation
Lionel Landwerlin [Mon, 28 Mar 2022 12:35:43 +0000 (15:35 +0300)]
anv: move preprocessing of NIR right before compilation

For graphics pipelines, we'll need to load NIR for retained shaders.
We want to avoid as much processing as possible while doing that when
we're able to load ISA from cache.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: make input attachments available through bindless
Lionel Landwerlin [Fri, 25 Mar 2022 12:59:05 +0000 (14:59 +0200)]
anv: make input attachments available through bindless

With independent sets, we cannot bake into the shader the binding
table entry of input attachments anymore because that final location
is affected by multiple sets.

We can still access them by looking into the descriptor buffer. This
change enables the image handle to be stored in the descriptor buffer.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: move force shading rate writes checks
Lionel Landwerlin [Tue, 15 Mar 2022 13:50:31 +0000 (15:50 +0200)]
anv: move force shading rate writes checks

With variable fragment shading rate, the last pre-rasterization stage
is responsible to write the shading rate value.

The current checks is as follow :

   If the fragment shader can be dispatched at variable shading rate,
   look for the last pre-raster stage to force the write.

We change this to :

   If we're the last pre-raster stage, force the write.

That way this works for pre-rasterization shaders compiled without a
fragment shader.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoanv: introduce a base graphics pipeline object
Lionel Landwerlin [Sat, 5 Mar 2022 23:00:25 +0000 (01:00 +0200)]
anv: introduce a base graphics pipeline object

Pipeline libraries and linked pipelines will inherit from this.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agoisl: don't set inconsistent fields for depth when using stencil only
Lionel Landwerlin [Sun, 20 Feb 2022 18:46:17 +0000 (20:46 +0200)]
isl: don't set inconsistent fields for depth when using stencil only

Since Gfx12+ 3DSTATE_STENCIL_BUFFER gained its own
Width/Depth/Format/etc... fields. So don't set those fields but leave
the address/pitch to 0.

Issue found on simulation.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15637>

15 months agofrontend/va: Add VAProfileH264High10
Sil Vilerino [Mon, 17 Apr 2023 15:50:30 +0000 (11:50 -0400)]
frontend/va: Add VAProfileH264High10

Acked-by: Ruijing Dong <ruijing.dong@amd.com>
Reviewed-by: Giancarlo Devich <gdevich@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22539>

15 months agod3d12: Support PIPE_VIDEO_CAP_ENC_QUALITY_LEVEL
Sil Vilerino [Mon, 17 Apr 2023 12:56:48 +0000 (08:56 -0400)]
d3d12: Support PIPE_VIDEO_CAP_ENC_QUALITY_LEVEL

Only return we support 1 quality level. The point of returning this
cap is that vlVaEndPicture will check for it and otherwise overwrite
some rate control parameters with defaults

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

15 months agod3d12: Support PIPE_VIDEO_CAP_MIN_WIDTH/HEIGHT caps
Sil Vilerino [Sat, 15 Apr 2023 22:27:29 +0000 (18:27 -0400)]
d3d12: Support PIPE_VIDEO_CAP_MIN_WIDTH/HEIGHT caps

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

15 months agod3d12: Support QPMin/QPMax app params
Sil Vilerino [Sun, 16 Apr 2023 17:20:55 +0000 (13:20 -0400)]
d3d12: Support QPMin/QPMax app params

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

15 months agod3d12: Support rate control HRD and MaxFrameSize app params
Sil Vilerino [Sat, 15 Apr 2023 20:10:30 +0000 (16:10 -0400)]
d3d12: Support rate control HRD and MaxFrameSize app params

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

15 months agod3d12: Support QVBR rate control mode
Sil Vilerino [Sat, 15 Apr 2023 19:43:52 +0000 (15:43 -0400)]
d3d12: Support QVBR rate control mode

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

15 months agofrontend/va: Allow distinction for Min/MaxQP params sent from app and frontend defaults
Sil Vilerino [Sun, 16 Apr 2023 17:20:26 +0000 (13:20 -0400)]
frontend/va: Allow distinction for Min/MaxQP params sent from app and frontend defaults

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22530>

15 months agofrontend/va: Allow distinction for HRD params sent from app and frontend defaults
Sil Vilerino [Sat, 15 Apr 2023 20:09:58 +0000 (16:09 -0400)]
frontend/va: Allow distinction for HRD params sent from app and frontend defaults

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22530>

15 months agofrontend/va: Support QVBR rate control mode
Sil Vilerino [Sat, 15 Apr 2023 19:43:34 +0000 (15:43 -0400)]
frontend/va: Support QVBR rate control mode

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22530>

15 months agolima: fix refcnt imbalance related to framebuffer
Patrick Lerda [Wed, 29 Mar 2023 19:55:47 +0000 (21:55 +0200)]
lima: fix refcnt imbalance related to framebuffer

Indeed, the current framebuffer hardcoded cleanup
is not sufficient.

For instance, this issue is triggered with:
"piglit/bin/fbo-depthstencil clear default_fb -samples=2 -auto"
while setting GALLIUM_REFCNT_LOG=refcnt.log.

cc: mesa-stable

Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22234>

15 months agobuild: Add Iris and ANV to ARM's auto-generated drivers
José Roberto de Souza [Wed, 23 Nov 2022 20:33:56 +0000 (12:33 -0800)]
build: Add Iris and ANV to ARM's auto-generated drivers

Xe KMD supports ARM CPUs, so we are now able to have Intel discrete
GPUs with ARM CPUs working.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22476>

15 months agoiris: Fix vm bind of imported bos from other GPUs
José Roberto de Souza [Tue, 28 Mar 2023 15:49:30 +0000 (08:49 -0700)]
iris: Fix vm bind of imported bos from other GPUs

The imported buffer may be created in a device with different
memory alignment and this can cause vm bind to fail because bo
size is smaller than vm bind range aligned.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22476>

15 months agoiris: Implement batch_submit() in Xe kmd backend
José Roberto de Souza [Tue, 14 Feb 2023 19:43:44 +0000 (11:43 -0800)]
iris: Implement batch_submit() in Xe kmd backend

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22476>

15 months agoiris/bufmgr: Handle flat_ccs for BO_ALLOC_ZEROED
Nanley Chery [Mon, 10 Apr 2023 21:26:37 +0000 (14:26 -0700)]
iris/bufmgr: Handle flat_ccs for BO_ALLOC_ZEROED

We can't map the CCS memory region. So, rely on the kernel's zeroing of
new allocations. This is helpful when creating dmabufs that use
compression.

Cc: mesa-stable
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22487>

15 months agoiris/bufmgr: Add and use zero_bo
Nanley Chery [Mon, 10 Apr 2023 21:18:56 +0000 (14:18 -0700)]
iris/bufmgr: Add and use zero_bo

This simplifies the next patch.

Cc: mesa-stable
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22487>

15 months agoiris: Allocate ZEROED BOs for shared resources
Nanley Chery [Mon, 10 Apr 2023 19:39:42 +0000 (12:39 -0700)]
iris: Allocate ZEROED BOs for shared resources

A port of cbee2d1102c ("i965/screen: Allocate ZEROED BOs for images").

Cc: mesa-stable
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22487>

15 months agolima/ci: temporarily disable deqp-egl tests due to timeouts
Erico Nunes [Mon, 17 Apr 2023 14:06:02 +0000 (16:06 +0200)]
lima/ci: temporarily disable deqp-egl tests due to timeouts

A regression causing these tests to become unstable was introduced while
lima CI was disabled in the last days. It seems to be caused by the
latest kernel bump, but still needs more investigation.

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

15 months agod3d12: Do not fail d3d12_screen creation if D3D12_FEATURE_D3D12_OPTIONS14 not available
Sil Vilerino [Mon, 17 Apr 2023 14:54:09 +0000 (10:54 -0400)]
d3d12: Do not fail d3d12_screen creation if D3D12_FEATURE_D3D12_OPTIONS14 not available

Fixes: 52ee566bc550b4822c4a563e480e869b8228917b ("d3d12: Query device for D3D12_FEATURE_D3D12_OPTIONS14")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22534>

15 months agoradeonsi: create a new context for transcode with multiple video engines
Leo Liu [Thu, 13 Apr 2023 15:29:39 +0000 (11:29 -0400)]
radeonsi: create a new context for transcode with multiple video engines

For CHIP_GFX1100, there are 2 VCN instances but using unified queue i.e.
decode and encode will go to HW via same ring type. With AMDGPU kernel
scheduler, since the trancode is sharing the same pipe context, so that
the gpu scheduler assign the decode and encode into the same VCN engine.
In order to use both engines with transcode case, the new pipe context will
be created when the case being detected, with that the transcode can be
load balanced with multiple VCN engines.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22471>

15 months agointel/common: Add gt_id to intel_engine_class
José Roberto de Souza [Thu, 30 Mar 2023 19:13:11 +0000 (12:13 -0700)]
intel/common: Add gt_id to intel_engine_class

MTL and newer platforms on Xe kmd will have engines with gt_id != 0.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22477>

15 months agoiris: Fix close of exported bos
José Roberto de Souza [Fri, 14 Apr 2023 13:35:07 +0000 (06:35 -0700)]
iris: Fix close of exported bos

On commit 910e659e31cb ("iris: Add function to close gem bos") I used
iris_bo_close() to close exported bos with the wrong drm_fd.
Causing piglit ext_image_dma_buf_import.ext_image_dma_buf_import*
tests to crash during tear-down.

So here adding iris_bufmgr_bo_close() that will close bos that belongs
to bufmgr->fd and changing the parameters of iris_bo_close() to close
the bo of given fd.

Fixes: 910e659e31cb ("iris: Add function to close gem bos")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8836
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22501>

15 months agovulkan/overlay: deal with unknown pNext structures
Lionel Landwerlin [Sat, 12 Nov 2022 22:24:11 +0000 (00:24 +0200)]
vulkan/overlay: deal with unknown pNext structures

To implement some of the features of the layer, we need to enable some
of the feature bits at device/command_buffer creation. To do so, we
need to edit some of the structures coming from the application. Most
of those are const so we need to clone them before edition.

This change disables some of the layer features if we run into a
situation where one of the structure we need to clone is unknown such
that we can't make a copy of it (since we don't know its size).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7677
Cc: mesa-stable
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19897>

15 months agolima: fix stringop-overflow warning
Erico Nunes [Sun, 26 Mar 2023 19:12:18 +0000 (21:12 +0200)]
lima: fix stringop-overflow warning

New versions of gcc output a warning about this code, apparently
because of the mix of signed and unsigned operations in the loop
condition. Rework the types to fix the warning.

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

15 months agor600: fix refcnt imbalance related to evergreen_set_shader_images()
Patrick Lerda [Sat, 1 Apr 2023 21:08:09 +0000 (23:08 +0200)]
r600: fix refcnt imbalance related to evergreen_set_shader_images()

Indeed, the reference was overwritten.

For instance, this issue is triggered with:
"piglit/bin/shader_runner tests/spec/arb_shader_image_load_store/execution/write-to-rendered-image.shader_test -auto -fbo"
while setting GALLIUM_REFCNT_LOG=refcnt.log.

Fixes: a6b379284365 ("r600: add core pieces of image support.")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22394>

15 months agor600: Report multi-plane formats as unsupported
Andres Calderon Jaramillo [Sat, 15 Apr 2023 06:34:14 +0000 (06:34 +0000)]
r600: Report multi-plane formats as unsupported

This is the analogous of
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9490 but for
r600.

Discoloration of NV12 video frames was observed in Chrome/ChromeOS and
the problem was tracked down to the fact that Mesa was following the
PIPE_FORMAT_R8_G8B8_420_UNORM/lower_yuv_external() path. The symptom is
that (for an unknown reason) the YUV-to-RGB conversion is using the
value of Y as the value of Y, U, and V. So, for example, if the input
value is YUV = (50, 120, 130), then what actually gets converted to RGB
is YUV = (50, 50, 50).

Considering that PIPE_FORMAT_R8_G8B8_420_UNORM was introduced for
freedreno
(https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6693) and it
is already being reported as unsupported for radeonsi, it's reasonable
to assume that GPUs targeted by r600 don't support this path either.

Note: I tested this patch with an AMD Palm device which follows the
evergreen_is_format_supported() path. I did not have access to a device
to test the r600_is_format_supported() path.

v2: Changed >= 2 to > 1.

Fixes: 826a10255f5 ("st/mesa: Add NV12 lowering to PIPE_FORMAT_R8_G8B8_420_UNORM")
Tested-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22511>

15 months agoegl/wayland: fix oob buffer access during buffer_fds clean up
David Redondo [Fri, 14 Apr 2023 09:47:43 +0000 (11:47 +0200)]
egl/wayland: fix oob buffer access during buffer_fds clean up

After iterating through the number of planes in the above for
loop i is more than the number of planes which corresponds to
the size of the buffer_fds array.

Fixes: 967b9ad084e ("egl/wayland: for prime, allocate linear_copy from display GPU VRAM")
Signed-off-by: David Redondo <kde@david-redondo.de>
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22496>

15 months agoradv: disable fast-clears with CMASK for 128-bit formats
Samuel Pitoiset [Thu, 13 Apr 2023 08:28:52 +0000 (10:28 +0200)]
radv: disable fast-clears with CMASK for 128-bit formats

This isn't supported according to RadeonSI.

This fixes a piglit test with Zink that uses a R32G32B32A32_SINT format
with MSAA 8x. This is because DCC fast-clears with MSAA require to
clear CMASK too.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7313
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22462>

15 months agoradeonsi: remove separate_prolog parameter
Qiang Yu [Tue, 11 Apr 2023 11:39:28 +0000 (19:39 +0800)]
radeonsi: remove separate_prolog parameter

si_get_ps_prolog_key is only called by part mode shader now.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoradeonsi: restructure mono merged shader build
Qiang Yu [Tue, 11 Apr 2023 10:47:51 +0000 (18:47 +0800)]
radeonsi: restructure mono merged shader build

No function change, just refine to share more code.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoradeonsi: monolithic ps emit prolog in nir directly
Qiang Yu [Fri, 3 Mar 2023 07:09:25 +0000 (15:09 +0800)]
radeonsi: monolithic ps emit prolog in nir directly

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoradeonsi: handle lowered ps in scan_io_usage
Qiang Yu [Fri, 3 Mar 2023 11:33:42 +0000 (19:33 +0800)]
radeonsi: handle lowered ps in scan_io_usage

si_update_shader_binary_info() will call into this function
to collect memory usage info after shader has been lowered
finally. To avoid assertion failure in nir_instr_as_intrinsic()
we have to check instruction type first.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoradeonsi: add si_nir_emit_polygon_stipple
Qiang Yu [Fri, 3 Mar 2023 04:06:16 +0000 (12:06 +0800)]
radeonsi: add si_nir_emit_polygon_stipple

Ported from si_llvm_emit_polygon_stipple().

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoradeonsi: add si_nir_lower_ps_color_input
Qiang Yu [Fri, 3 Mar 2023 03:16:55 +0000 (11:16 +0800)]
radeonsi: add si_nir_lower_ps_color_input

For lowering legacy color inputs in PS.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoac/llvm,radeonsi: lower ps color load in nir
Qiang Yu [Thu, 13 Apr 2023 02:43:48 +0000 (10:43 +0800)]
ac/llvm,radeonsi: lower ps color load in nir

Remove the color0/1 in ac_shader_abi which is used by
radeonsi only.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoac/nir/ps: lower sample mask input when needed
Qiang Yu [Thu, 2 Mar 2023 13:23:44 +0000 (21:23 +0800)]
ac/nir/ps: lower sample mask input when needed

Ported from si_llvm_build_ps_prolog().

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoac/nir/ps: add force lower barycentric load options
Qiang Yu [Thu, 2 Mar 2023 12:56:48 +0000 (20:56 +0800)]
ac/nir/ps: add force lower barycentric load options

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoac/nir/ps: lower barycentric load when bc_optimize
Qiang Yu [Thu, 2 Mar 2023 12:08:14 +0000 (20:08 +0800)]
ac/nir/ps: lower barycentric load when bc_optimize

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agoradeonsi: implement nir_load_barycentric_optimize_amd
Qiang Yu [Thu, 2 Mar 2023 12:05:40 +0000 (20:05 +0800)]
radeonsi: implement nir_load_barycentric_optimize_amd

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agonir: add nir_load_barycentric_optimize_amd intrinsic
Qiang Yu [Thu, 2 Mar 2023 12:04:52 +0000 (20:04 +0800)]
nir: add nir_load_barycentric_optimize_amd intrinsic

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21683>

15 months agozink: make general bo allocation more robust by iterating
Mike Blumenkrantz [Thu, 13 Apr 2023 17:54:24 +0000 (13:54 -0400)]
zink: make general bo allocation more robust by iterating

previously there was a fallback path here (broken by f6d3a5755f6)
which would attempt to demote BAR allocations to other heaps on failure
to avoid oom

this was great, but it's not the most robust solution, which is to iterate
all the memory types matching the given heap and try them in addition to having
a demotion fallback

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

15 months agozink: restore BAR allocation failure demotion
Mike Blumenkrantz [Thu, 13 Apr 2023 17:56:55 +0000 (13:56 -0400)]
zink: restore BAR allocation failure demotion

this restores the fallback used when BAR allocation fails due to oom
by re-selecting memoryTypeIndex after the heap demotion

Fixes: f6d3a5755f6 ("zink: zink_heap isn't 1-to-1 with memoryTypeIndex")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22479>

15 months agozink: slightly rework memoryTypeIndex selection to pre-determine heap
Mike Blumenkrantz [Thu, 13 Apr 2023 17:50:12 +0000 (13:50 -0400)]
zink: slightly rework memoryTypeIndex selection to pre-determine heap

should be no functional changes

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

15 months agozink: move memoryTypeIndex selection down in general bo allocation
Mike Blumenkrantz [Thu, 13 Apr 2023 17:48:54 +0000 (13:48 -0400)]
zink: move memoryTypeIndex selection down in general bo allocation

no functional changes

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

15 months agoRevert "ci: disable lima farm, currently out-of-space, needs to be fixed"
Erico Nunes [Sun, 16 Apr 2023 11:40:28 +0000 (13:40 +0200)]
Revert "ci: disable lima farm, currently out-of-space, needs to be fixed"

This reverts commit 78644c9bb0d3b7920f7676c6388b472510a54f0b.

Fixes: 78644c9bb0d3b7920f76 ("ci: disable lima farm, currently out-of-space, needs to be fixed")

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22513>

15 months agov3dv/ci: drop fixed failure from fails.txt
Eric Engestrom [Sun, 16 Apr 2023 19:48:56 +0000 (20:48 +0100)]
v3dv/ci: drop fixed failure from fails.txt

Fixes: 8976d8280ff45cd7f947 ("wsi: remove get_sorted_vk_formats duplication")
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22514>

15 months agoci: uninstall libdrm from the GL and VK containers
David Heidelberg [Sun, 16 Apr 2023 00:28:57 +0000 (02:28 +0200)]
ci: uninstall libdrm from the GL and VK containers

Occasionally causing troubles on -valve jobs.

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22255>

15 months agoci: polish deqp-runner a bit
David Heidelberg [Sat, 15 Apr 2023 23:49:40 +0000 (01:49 +0200)]
ci: polish deqp-runner a bit

Plus cosmetics adjustments to pass more of shellcheck.

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22255>

15 months agoci/freedreno: fix the a530_piglit job and switch to Weston
David Heidelberg [Sat, 15 Apr 2023 16:00:41 +0000 (18:00 +0200)]
ci/freedreno: fix the a530_piglit job and switch to Weston

If we count devices which running a530 with mainline kernel and Mesa,
it's probably mostly phones and tablets running on Wayland. Adapt to it.

Fixes: 83c2b26acf1e ("ci/freedreno: Switch the piglit job to using a deqp-runner suite.")

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22255>

15 months agoci/freedreno: update a530 flakes, fails and skips
David Heidelberg [Sat, 15 Apr 2023 13:50:45 +0000 (15:50 +0200)]
ci/freedreno: update a530 flakes, fails and skips

Add multiple skips for the:
 - KHR-GLES31.core.pixelstoragemodes.teximage2d
 - KHR-GLES31.core.pixelstoragemodes.teximage3d

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8837

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22255>

15 months agoci/freedreno: a530 behaves stable in 6.3
David Heidelberg [Sat, 15 Apr 2023 13:12:35 +0000 (15:12 +0200)]
ci/freedreno: a530 behaves stable in 6.3

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22255>