platform/upstream/mesa.git
3 years agoaco: add aco_print_program() flag to print kill flags
Rhys Perry [Mon, 15 Mar 2021 14:08:33 +0000 (14:08 +0000)]
aco: add aco_print_program() flag to print kill flags

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

3 years agoaco: implement image_deref_samples
Rhys Perry [Thu, 18 Mar 2021 15:02:30 +0000 (15:02 +0000)]
aco: implement image_deref_samples

It used to be that this intrinsic was never created and texture
instructions were always used.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Fixes: 50881d59e66 ("compiler/spirv: fix image sample queries")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9686>

3 years agogenxml/gen12: 3D_MODE bits 31:16 are no longer must-be-one
Jordan Justen [Wed, 10 Mar 2021 17:54:15 +0000 (09:54 -0800)]
genxml/gen12: 3D_MODE bits 31:16 are no longer must-be-one

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9505>

3 years agoi965/gen11: Fix must-be-ones bit positions in 3D_MODE
Jordan Justen [Wed, 10 Mar 2021 17:26:13 +0000 (09:26 -0800)]
i965/gen11: Fix must-be-ones bit positions in 3D_MODE

Fixes: f0d29238df3 ("i965/gen11: Emit SLICE_HASH_TABLE when pipes are unbalanced.")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9505>

3 years agoRevert "glsl/test: Don't run whitespace tests in parallel"
Michel Dänzer [Fri, 19 Feb 2021 16:59:56 +0000 (17:59 +0100)]
Revert "glsl/test: Don't run whitespace tests in parallel"

This reverts commit c60cea0daa2b140547088188d90bce6f09bb1517.

Didn't have the intended effect, and slowed down the meson test run.

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoRevert "meson: add enable-glcpp-tests option"
Michel Dänzer [Thu, 11 Mar 2021 17:23:56 +0000 (18:23 +0100)]
Revert "meson: add enable-glcpp-tests option"

This reverts commit f9ae947e7272897bc31b0ec9dca3be0d7ab33119.

Not needed anymore.

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoRevert "ci: disable glcpp tests for now"
Michel Dänzer [Fri, 12 Feb 2021 14:41:30 +0000 (15:41 +0100)]
Revert "ci: disable glcpp tests for now"

This reverts commit e25a3e21f83390342a1de5f13d41caa0ea076dfa.

The test timeouts should be fixed now.

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoglsl/tests: Use exit code 126 to detect valgrind errors
Michel Dänzer [Fri, 5 Mar 2021 23:24:09 +0000 (00:24 +0100)]
glsl/tests: Use exit code 126 to detect valgrind errors

valgrind returns exit code 126 if it can't write to the file passed to
--log-file. Hopefully it'll be the same for any other invalid valgrind
command line parameters or internal errors as well.

Using a different exit code (31) for this was hiding the fact that the
valgrind test wasn't actually working.

v2:
* Use exit code 126; can't treat any non-0 exit code as failure because
  glcpp is expected to exit with non-0 for some of the input we feed it

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com> # v1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoglsl/tests: Don't use tempfiles
Michel Dänzer [Fri, 5 Mar 2021 22:05:51 +0000 (23:05 +0100)]
glsl/tests: Don't use tempfiles

Use pipes for direct communication between child & parent process.

Using tempfiles sometimes resulted in hitting the meson timeout if there
was high filesystem pressure (I saw a single unlink system call take as
long as 4 seconds; attempts to re-use a single tempfile just shifted the
delays to truncate/close systems calls).

As a bonus, this gets the valgrind test actually working as intended.
It wasn't working because the tempfile passed to --log-file didn't exist
(due to the earlier os.close(fd)?).

v2:
* Wrap .read() in "with open()" (Dylan Baker)

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoglsl/tests: Bump glcpp valgrind test timeout to 240 seconds
Michel Dänzer [Thu, 11 Mar 2021 17:04:30 +0000 (18:04 +0100)]
glsl/tests: Bump glcpp valgrind test timeout to 240 seconds

Once it's actually working as intended again, it may need that much
time.

v2:
* Bump to 240 seconds, still hit timeouts with 180.
* Don't change test priority.

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com> # v1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoci: Disable valgrind in some build jobs
Michel Dänzer [Thu, 11 Mar 2021 17:17:52 +0000 (18:17 +0100)]
ci: Disable valgrind in some build jobs

Once the glcpp valgrind test works as intended again, it would delay
the dependent test jobs by ~1-4 minutes.

The meson-clover job would run the glcpp valgrind test multiple times
and take more than 10 minutes to finish.

valgrind can't work in the meson-android job, would need an ARM backend.

v2:
* Disable in meson-clover as well.

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com> # v1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoglcpp: Fully initialize struct gl_context
Michel Dänzer [Fri, 5 Mar 2021 22:48:00 +0000 (23:48 +0100)]
glcpp: Fully initialize struct gl_context

valgrind flagged members of gl_ctx->Extensions being used uninitialized:

==23417== Conditional jump or move depends on uninitialised value(s)
==23417==    at 0x112642: _glcpp_parser_handle_version_declaration.part.0 (glcpp-parse.y:2493)
==23417==    by 0x11A515: glcpp_lex_update_state_per_token (glcpp-lex.l:132)
==23417==    by 0x11A515: glcpp_lex (glcpp-lex.l:547)
==23417==    by 0x114D46: glcpp_parser_lex (glcpp-parse.y:2302)
==23417==    by 0x114D46: glcpp_parser_parse (glcpp-parse.c:1871)
==23417==    by 0x11ADC6: glcpp_preprocess (pp.c:238)
==23417==    by 0x111384: main (glcpp.c:174)
==23417==  Uninitialised value was created by a stack allocation
==23417==    at 0x111295: main (glcpp.c:136)

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agoRevert "ci: Restrict meson-gallium job to gstreamer runners"
Michel Dänzer [Thu, 11 Mar 2021 11:53:15 +0000 (12:53 +0100)]
Revert "ci: Restrict meson-gallium job to gstreamer runners"

This reverts commit 4b4bddcd99e7e98dc3e738f113cf6fa5d2225e6f.

Not needed anymore with the previous fix.

Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agointel/tools: Use subprocess.Popen to read output directly from a pipe
Michel Dänzer [Fri, 5 Mar 2021 16:49:03 +0000 (17:49 +0100)]
intel/tools: Use subprocess.Popen to read output directly from a pipe

Instead of using tempfiles to communicate between child & parent
process. The latter sometimes resulted in hitting the meson timeout if
there was high filesystem pressure.

Fixes: ccaa5b034f48 "intel/tools: rewrite run-test.sh in python"
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>

3 years agollvmpipe/setup: force fs constant updating upon beginning queries
Mike Blumenkrantz [Thu, 18 Mar 2021 17:31:01 +0000 (13:31 -0400)]
llvmpipe/setup: force fs constant updating upon beginning queries

this flushes any pending updates and avoids trying to access constant buffers
which have been unset (and are also potentially deleted)

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

3 years agolavapipe: force state updates when beginning queries
Mike Blumenkrantz [Thu, 18 Mar 2021 17:36:49 +0000 (13:36 -0400)]
lavapipe: force state updates when beginning queries

the full state update is maybe not entirely necessary since this is just
to address descriptor use, but probably it won't hurt

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

3 years agolavapipe: rewrite cmdbufs to always do descriptor binds/pushes first
Mike Blumenkrantz [Thu, 18 Mar 2021 17:34:32 +0000 (13:34 -0400)]
lavapipe: rewrite cmdbufs to always do descriptor binds/pushes first

llvmpipe has some crazy dependency ordering with constant buffers that
I don't want to mess with, so instead this ensures that descriptors are
always updated as early in the command stream as possible, avoiding any
use-after-free scenarios which might result from lavapipe freeing memory
in a still-bound descriptor that's pending an update

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

3 years agoglsl: add compilation errors for attribute and varying qualifiers
Timothy Arceri [Fri, 12 Mar 2021 07:25:15 +0000 (18:25 +1100)]
glsl: add compilation errors for attribute and varying qualifiers

These qualifiers were removed in GLSL 4.20 and GLSL ES 3.00. For
desktop GL they are now only allowed if the shader is declared as
a compatibility shader.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9552>

3 years agolavapipe: support VK_KHR_copy_commands2
Mike Blumenkrantz [Thu, 18 Mar 2021 18:13:21 +0000 (14:13 -0400)]
lavapipe: support VK_KHR_copy_commands2

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

3 years agozink: flatten 2d_array surfaces when necessary
Mike Blumenkrantz [Thu, 18 Mar 2021 14:17:25 +0000 (10:17 -0400)]
zink: flatten 2d_array surfaces when necessary

same as cube types, if this is a single layer then it's not an array

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

3 years agopanfrost: Disable early-z when alpha test is used
Icecream95 [Thu, 18 Mar 2021 07:02:22 +0000 (20:02 +1300)]
panfrost: Disable early-z when alpha test is used

Fixes rendering artefacts in Minetest on Midgard.

Fixes: 275277a2b48 ("panfrost: Implement alpha testing natively")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9676>

3 years agoanv: use the device size of CS prefetch to pad secondary buffer calls
Lionel Landwerlin [Thu, 18 Mar 2021 09:05:17 +0000 (11:05 +0200)]
anv: use the device size of CS prefetch to pad secondary buffer calls

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9679>

3 years agointel/mi_builder: use device info to use the right CS prefetch size
Lionel Landwerlin [Thu, 18 Mar 2021 09:04:49 +0000 (11:04 +0200)]
intel/mi_builder: use device info to use the right CS prefetch size

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9679>

3 years agointel/dev: store size of CS prefetch
Lionel Landwerlin [Thu, 18 Mar 2021 09:03:35 +0000 (11:03 +0200)]
intel/dev: store size of CS prefetch

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9679>

3 years agolavapipe: fix templated descriptor updates
Dave Airlie [Thu, 18 Mar 2021 04:09:50 +0000 (14:09 +1000)]
lavapipe: fix templated descriptor updates

The template path was buggy but CTS only tested it with Vulkan 1.1 enabled.

It was just missing the dstArrayElement offset.

Fixes: 41f7fa273d21 ("lavapipe: add support for VK_KHR_descriptor_update_template")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9675>

3 years agolavapipe: drop unused vk_format in image struct
Dave Airlie [Sun, 14 Mar 2021 20:14:14 +0000 (06:14 +1000)]
lavapipe: drop unused vk_format in image struct

This wasn't used at all.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9675>

3 years agolavapipe: add missing device group api
Dave Airlie [Tue, 9 Mar 2021 05:25:48 +0000 (15:25 +1000)]
lavapipe: add missing device group api

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9675>

3 years agolavapipe: add missing sampler minmax properties
Dave Airlie [Wed, 17 Mar 2021 05:31:33 +0000 (15:31 +1000)]
lavapipe: add missing sampler minmax properties

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9675>

3 years agolavapipe: fix image format properties
Dave Airlie [Tue, 22 Dec 2020 07:24:19 +0000 (17:24 +1000)]
lavapipe: fix image format properties

Fix the sample counts for compressed + non-renderable + cube compatible

Fix the mip levels max calcs

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9675>

3 years agofreedreno/ir3: Demote centroid usage to pixel on non-msaa.
Eric Anholt [Tue, 16 Mar 2021 19:00:01 +0000 (12:00 -0700)]
freedreno/ir3: Demote centroid usage to pixel on non-msaa.

Like with the sample qualifier on all GPUs, use pixel on older HW when
MSAA rasterization is disabled to get reliable results.  Since I ran many
CI jobs on this, this updates the A530 TF flakes list, though I don't
think that this MR necessarily made it flakier (we were already struggling
on a5xx TF, which was what was motivating me to look at this!)

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

3 years agoac/llvm: Fix alignment of shared load intrinsics.
Timur Kristóf [Thu, 18 Mar 2021 15:53:26 +0000 (16:53 +0100)]
ac/llvm: Fix alignment of shared load intrinsics.

After some research, I found out that the alignment needs to be set
on the return value of the load, rather than on the pointer.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Michel Dänzer <mdaenzer@redhat.com>
Fixes: 14ad82b4e98345214973d76b7395498b4a65292e "ac/llvm: Emit more efficient code for load_shared."
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9688>

3 years agoaco/ra: allow VCC on SMEM sbase operand on GFX10+
Daniel Schürmann [Thu, 11 Mar 2021 12:45:45 +0000 (13:45 +0100)]
aco/ra: allow VCC on SMEM sbase operand on GFX10+

Totals from 26 (0.02% of 146267) affected shaders (Navi10):
CodeSize: 324764 -> 324560 (-0.06%)
Instrs: 61090 -> 61039 (-0.08%)
Cycles: 2681952 -> 2668872 (-0.49%)
VMEM: 5773 -> 5769 (-0.07%)
SMEM: 1621 -> 1611 (-0.62%)
SClause: 2546 -> 2543 (-0.12%)
Copies: 4671 -> 4620 (-1.09%)

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9531>

3 years agoaco/optimizer: set VCC hint on new v_cmp_* definitions
Daniel Schürmann [Thu, 11 Mar 2021 12:42:50 +0000 (13:42 +0100)]
aco/optimizer: set VCC hint on new v_cmp_* definitions

Totals from 11692 (7.99% of 146267) affected shaders (Navi10):
CodeSize: 97419384 -> 97352560 (-0.07%); split: -0.07%, +0.00%
Instrs: 18571138 -> 18570969 (-0.00%); split: -0.00%, +0.00%
Cycles: 1431348400 -> 1431346296 (-0.00%); split: -0.00%, +0.00%
SMEM: 696646 -> 696650 (+0.00%)
SClause: 668511 -> 668490 (-0.00%); split: -0.00%, +0.00%
Copies: 1279475 -> 1279474 (-0.00%)

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9531>

3 years agoci/broadcom: use new piglit runner
Juan A. Suarez Romero [Wed, 17 Mar 2021 12:29:37 +0000 (13:29 +0100)]
ci/broadcom: use new piglit runner

Switch from the old piglit to the new piglit-runner executor.

Acked-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9680>

3 years agolima: update dEQP fails and skips lists
Vasily Khoruzhick [Sun, 14 Mar 2021 17:10:54 +0000 (10:10 -0700)]
lima: update dEQP fails and skips lists

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

3 years agofreedreno/a5xx: Fix stream-output binning handling.
Eric Anholt [Tue, 16 Feb 2021 22:57:40 +0000 (14:57 -0800)]
freedreno/a5xx: Fix stream-output binning handling.

This makes it match (to the best I was able) a6xx's behavior, with the
exception of the XXX note in fd5_gmem.c highlighting what I think is an
issue on both a5xx and a6xx.

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

3 years agou_format: Add restrict to fn pointer and manual format pack/unpack/fetch
Jesse Natalie [Wed, 17 Mar 2021 22:05:35 +0000 (15:05 -0700)]
u_format: Add restrict to fn pointer and manual format pack/unpack/fetch

MSVC warns (loudly) about a mismatch between the generated functions in
u_format_table.c and the definition of util_format_[un]pack_description,
specifically having 'restrict' in the function but not in the pointer
type in the struct.

So, add 'restrict' everywhere - to the function types, and to the rest
of the implementations that are assigned to those structs.

v2: util_format_unpack_description is used in gallium/auxiliary/translate

Fixes: 5785fdac ("u_format: Mark the generated pack/unpack src/dst args as restrict.")
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9670>

3 years agozink: handle nir_intrinsic_image_deref_samples
Mike Blumenkrantz [Thu, 18 Mar 2021 13:49:13 +0000 (09:49 -0400)]
zink: handle nir_intrinsic_image_deref_samples

same as the texop but for images

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

3 years agocompiler/spirv: fix image sample queries
Mike Blumenkrantz [Thu, 18 Mar 2021 13:47:54 +0000 (09:47 -0400)]
compiler/spirv: fix image sample queries

this was only implemented for textures (I assume because drivers which implement
the corresponding intrinsic don't support multisampled images), but it's also
used for shader images

Fixes: 22fdb2f8551 ("nir/spirv: Update to the latest revision")

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

3 years agozink: enable spirv extension for post depth coverage
Mike Blumenkrantz [Thu, 18 Mar 2021 14:00:30 +0000 (10:00 -0400)]
zink: enable spirv extension for post depth coverage

Fixes: 3c72c867422 ("zink: Wire up ARB_post_depth_coverage")

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

3 years agoaco: Fix constant address offset calculation for ds_read2 instructions.
Timur Kristóf [Thu, 18 Mar 2021 09:15:14 +0000 (10:15 +0100)]
aco: Fix constant address offset calculation for ds_read2 instructions.

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

3 years agogallium/st: reserve space in default uniform block for lowered constants
Erik Faye-Lund [Tue, 16 Mar 2021 17:40:01 +0000 (18:40 +0100)]
gallium/st: reserve space in default uniform block for lowered constants

If we don't reserve these, we risk these lowering passes eating up more
uniforms than we have available.

This fixes a crash due to an assert in Zink, because we end up trying to
use a too large UBO after lowering.

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

3 years agogallium/st: fix shader_has_one_variant
Erik Faye-Lund [Tue, 16 Mar 2021 18:04:08 +0000 (19:04 +0100)]
gallium/st: fix shader_has_one_variant

I think we need to care about this here as well, otherwise the variant
logic might be short-circuited.

Fixes: 7eb5fd98fd1 ("mesa/st: handle running nir lower passes for ucp and psiz in tess stage")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9631>

3 years agogallium/st: fix shader_has_one_variant
Erik Faye-Lund [Tue, 16 Mar 2021 17:43:37 +0000 (18:43 +0100)]
gallium/st: fix shader_has_one_variant

I think we need to care about this here as well, otherwise the variant
logic might be short-circuited.

Fixes: ad0037fcfe1 ("mesa/st: set lower_point_size for tes/gs during program update")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9631>

3 years agonir_to_tgsi: Fix indices for CMP in nir_to_tgsi for nir_op_fcsel
Neha Bhende [Tue, 16 Mar 2021 22:45:26 +0000 (15:45 -0700)]
nir_to_tgsi: Fix indices for CMP in nir_to_tgsi for nir_op_fcsel

nir_to_tgsi utiliy was using wrong src for nir_op_fcsel.

Fixes regression with solidworks2012_viewport.trace and mudbox-2010sp1-basic-head.trace

v2: as per suggested by Brian, instead of relying assumption that
value will be 0.0 or 1.0 all the time, use -abs(src) to make any non-zero
value as negative.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9658>

3 years agonir_to_tgsi: Respect PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED.
Eric Anholt [Wed, 17 Mar 2021 17:39:35 +0000 (10:39 -0700)]
nir_to_tgsi: Respect PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED.

If the driver can't do it, we shouldn't be putting it in the TGSI,
regardless of what the NIR compiler above us decided.

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

3 years agozink: clear framebuffer state on context destroy
Mike Blumenkrantz [Wed, 17 Mar 2021 18:40:40 +0000 (14:40 -0400)]
zink: clear framebuffer state on context destroy

ensure we don't leak surface references

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

3 years agozink: move fence reset to zink_fence_init()
Mike Blumenkrantz [Tue, 16 Mar 2021 18:38:27 +0000 (14:38 -0400)]
zink: move fence reset to zink_fence_init()

fence stuff goes in fence file

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

3 years agozink: remove query batch-tracking init from begin_query()
Mike Blumenkrantz [Tue, 16 Mar 2021 18:34:46 +0000 (14:34 -0400)]
zink: remove query batch-tracking init from begin_query()

this is always created on startup now

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

3 years agozink: use macro to streamline batch struct member init
Mike Blumenkrantz [Tue, 16 Mar 2021 18:29:13 +0000 (14:29 -0400)]
zink: use macro to streamline batch struct member init

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

3 years agozink: move other batch-tracking implementations to unified codepath
Mike Blumenkrantz [Tue, 16 Mar 2021 17:56:46 +0000 (13:56 -0400)]
zink: move other batch-tracking implementations to unified codepath

prep for monotonic batch ids

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

3 years agozink: also move batch destructor into zink_batch.c
Mike Blumenkrantz [Thu, 5 Nov 2020 17:32:32 +0000 (12:32 -0500)]
zink: also move batch destructor into zink_batch.c

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

3 years agozink: move batch init into zink_batch.c
Mike Blumenkrantz [Thu, 5 Nov 2020 17:30:07 +0000 (12:30 -0500)]
zink: move batch init into zink_batch.c

this consolidates more batch code into the batch file

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

3 years agozink: move active query pruning to batch reset
Mike Blumenkrantz [Thu, 5 Nov 2020 17:10:57 +0000 (12:10 -0500)]
zink: move active query pruning to batch reset

this didn't ever really need to be on the fence in the first place

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

3 years agozink: split out batch resource-set clearing into separate function
Mike Blumenkrantz [Thu, 5 Nov 2020 17:05:15 +0000 (12:05 -0500)]
zink: split out batch resource-set clearing into separate function

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

3 years agozink: return enum zink_queue from zink_batch_reference_resource_rw()
Mike Blumenkrantz [Wed, 28 Oct 2020 18:15:28 +0000 (14:15 -0400)]
zink: return enum zink_queue from zink_batch_reference_resource_rw()

this is a little cleaner

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

3 years agozink: abstract zink_get_resource_usage() and move it to be internal
Mike Blumenkrantz [Wed, 28 Oct 2020 17:21:34 +0000 (13:21 -0400)]
zink: abstract zink_get_resource_usage() and move it to be internal

I'll be rewriting how resource tracking works, so abstracting it and removing
direct uses is going to reduce the chances of breaking things as well as code churn

plus it's a bit easier to use

downside is that until that rewrite happens, this will be a (very small) perf hit and
there's some kinda gross macros involved to consolidate code

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

3 years agozink: convert ZINK_RESOURCE_ACCESS defines to enum
Mike Blumenkrantz [Wed, 28 Oct 2020 17:19:53 +0000 (13:19 -0400)]
zink: convert ZINK_RESOURCE_ACCESS defines to enum

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

3 years agozink: refactor resource_sync_writes_from_batch_usage() to manage batch id internally
Mike Blumenkrantz [Wed, 28 Oct 2020 17:18:55 +0000 (13:18 -0400)]
zink: refactor resource_sync_writes_from_batch_usage() to manage batch id internally

this is always used the same way, so we can simplify the code a bit for future use

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

3 years agozink: add enum for different queues
Mike Blumenkrantz [Wed, 28 Oct 2020 17:17:52 +0000 (13:17 -0400)]
zink: add enum for different queues

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

3 years agozink: add a pipe_context::fence_server_sync hook
Mike Blumenkrantz [Tue, 27 Oct 2020 19:01:17 +0000 (15:01 -0400)]
zink: add a pipe_context::fence_server_sync hook

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

3 years agozink: more consolidation for null sampler/image view hashing
Mike Blumenkrantz [Fri, 30 Oct 2020 12:18:31 +0000 (08:18 -0400)]
zink: more consolidation for null sampler/image view hashing

by using the new helper functions, this is even more consistent

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

3 years agozink: ci updates
Mike Blumenkrantz [Thu, 18 Mar 2021 00:52:36 +0000 (20:52 -0400)]
zink: ci updates

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

3 years agozink: always use requested format for sampler view creation
Mike Blumenkrantz [Thu, 18 Mar 2021 00:37:44 +0000 (20:37 -0400)]
zink: always use requested format for sampler view creation

this should be fine and good

Fixes: c768c5297a8 ("zink: force stencil format for stencil-only samplers and swizzle the right component")

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

3 years agogallium/u_vbuf: use updated pipe_draw_start_count while using draw_vbo
Neha Bhende [Tue, 16 Mar 2021 22:20:28 +0000 (15:20 -0700)]
gallium/u_vbuf: use updated pipe_draw_start_count while using draw_vbo

new_draw has updated draw count. Stale info in draw caused regression
with piglit gl-3.0-multidrawarrays-vertexid -indirect

fixes piglit test ./gl-3.0-multidrawarrays-vertexid -indirect

Fixes: 1cd455b17b7a ("gallium: extend draw_vbo to support multi draws")

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9656>

3 years agoandroid: util: create some standalone compression helpers
Mauro Rossi [Mon, 15 Mar 2021 22:39:26 +0000 (23:39 +0100)]
android: util: create some standalone compression helpers

Fixes the following building errors:

FAILED: out/target/product/x86_64/obj/SHARED_LIBRARIES/vulkan.android-x86_intermediates/LINKED/vulkan.radv.so
...
ld.lld: error: undefined symbol: util_compress_inflate
>>> referenced by disk_cache_os.c:459 (external/mesa/src/util/disk_cache_os.c:459)
...
ld.lld: error: undefined symbol: util_compress_max_compressed_len
>>> referenced by disk_cache_os.c:614 (external/mesa/src/util/disk_cache_os.c:614)
...
ld.lld: error: undefined symbol: util_compress_deflate
>>> referenced by disk_cache_os.c:622 (external/mesa/src/util/disk_cache_os.c:622)

Fixes: d7ecbd5bf837 ("util: create some standalone compression helpers")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9613>

3 years agomesa: set states in fast path for restoring light attributes
Neha Bhende [Tue, 16 Mar 2021 22:48:31 +0000 (15:48 -0700)]
mesa: set states in fast path for restoring light attributes

Since states were not updated in fast path for restoring light attributes,
seen darker images in solidworks2012_viewprt.trace

Fixes regression seen with solidworks2012_viewport.trace

Fixes: 7fa9d9d06c4 ("mesa: add a fast path for restoring light attributes")

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

3 years agoanv: Use fallback paths if DRM_I915_QUERY_ENGINE_INFO fails
Jordan Justen [Wed, 17 Mar 2021 17:08:56 +0000 (10:08 -0700)]
anv: Use fallback paths if DRM_I915_QUERY_ENGINE_INFO fails

Anvil can handle if this call fails, but not if we assert. :)

Reported-by: Brian Paul <brianp@vmware.com>
Fixes: 5d84c764fde ("anv: Gather engine info from i915 if available")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9664>

3 years agointel/fs: Add support for 16-bit A64 float and integer atomics
Jason Ekstrand [Tue, 12 Jan 2021 04:18:11 +0000 (22:18 -0600)]
intel/fs: Add support for 16-bit A64 float and integer atomics

The messages for those 16-bit operations still use 32-bit sources and
destinations, so expand them accordingly when building the payload.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8750>

3 years agospirv: Add support for SPV_EXT_shader_atomic_float_min_max
Jason Ekstrand [Thu, 27 Aug 2020 06:11:25 +0000 (01:11 -0500)]
spirv: Add support for SPV_EXT_shader_atomic_float_min_max

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8750>

3 years agonir: Add image atomic_fmin/fmax intrinsics
Jason Ekstrand [Thu, 27 Aug 2020 18:11:54 +0000 (13:11 -0500)]
nir: Add image atomic_fmin/fmax intrinsics

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8750>

3 years agonir: Handle deref_atomic_fadd in a couple of passes
Caio Marcelo de Oliveira Filho [Wed, 17 Mar 2021 21:20:14 +0000 (14:20 -0700)]
nir: Handle deref_atomic_fadd in a couple of passes

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

3 years agospirv: Update headers and metadata from latest Khronos commit
Caio Marcelo de Oliveira Filho [Wed, 17 Mar 2021 04:20:12 +0000 (21:20 -0700)]
spirv: Update headers and metadata from latest Khronos commit

This corresponds to bcf55210f13a4fa3c3d0963b509ff1070e434c79
("Merge pull request #178 from orbea/datadir") in
https://github.com/KhronosGroup/SPIRV-Headers.

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

3 years agolavapipe: bump maxMemoryAllocationCount
Dave Airlie [Wed, 17 Mar 2021 03:33:14 +0000 (13:33 +1000)]
lavapipe: bump maxMemoryAllocationCount

not sure why this was so low

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9644>

3 years agost/mesa: add a driconf option to transcode ETC2 to DXTC
Marek Olšák [Wed, 24 Feb 2021 18:11:07 +0000 (13:11 -0500)]
st/mesa: add a driconf option to transcode ETC2 to DXTC

for performance analysis

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

3 years agointel/fs/vec4: add missing dependency in write-on-write fixed GRFs
Lionel Landwerlin [Wed, 17 Mar 2021 19:30:52 +0000 (21:30 +0200)]
intel/fs/vec4: add missing dependency in write-on-write fixed GRFs

If we load constant data using pull constant SENDS, and we later load
that register with some other data, we can end up in a situation where
we don't track the initial fixed register write and therefore end up
using uninitialized registers.

This tracks write-on-write of fixed GRFs like we do for normal virtual
GRFs.

v2: Fix post_alloc_reg case (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9667>

3 years agozink: Wire up ARB_post_depth_coverage
Adam Jackson [Fri, 12 Mar 2021 19:44:29 +0000 (14:44 -0500)]
zink: Wire up ARB_post_depth_coverage

Just a matter of passing the bits through in the right place.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9637>

3 years agomesa: fix parameter reservation size
Marek Olšák [Mon, 15 Mar 2021 13:58:19 +0000 (09:58 -0400)]
mesa: fix parameter reservation size

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

3 years agomesa: clear reserved parameter storage because it's stored in the shader cache
Marek Olšák [Tue, 2 Mar 2021 06:07:10 +0000 (01:07 -0500)]
mesa: clear reserved parameter storage because it's stored in the shader cache

The elements might not be initialized and we don't want random bytes
in the shader cache.

Discovered by valgrind.

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9360>

3 years agomesa: don't overallocate ParameterValues 4 times (v2)
Marek Olšák [Tue, 2 Mar 2021 09:19:53 +0000 (04:19 -0500)]
mesa: don't overallocate ParameterValues 4 times (v2)

The additional memory was never used.

v2: rework

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9360>

3 years agomesa: fix a oldNum typo in reallocation in _mesa_reserve_parameter_storage
Marek Olšák [Tue, 2 Mar 2021 09:17:46 +0000 (04:17 -0500)]
mesa: fix a oldNum typo in reallocation in _mesa_reserve_parameter_storage

oldNum was incorrect. oldValNum is the correct number of elements
to copy inside realloc. (oldNum is for Parameters, not ParameterValues)

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9360>

3 years agomesa: add assertions for buffer reference counts
Marek Olšák [Tue, 2 Mar 2021 05:56:29 +0000 (00:56 -0500)]
mesa: add assertions for buffer reference counts

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9360>

3 years agomesa: fix Blender crash due to optimizations in buffer reference counting
Marek Olšák [Tue, 2 Mar 2021 06:38:26 +0000 (01:38 -0500)]
mesa: fix Blender crash due to optimizations in buffer reference counting

The problem was that I assumed that deleted zombie buffers can't have any
references in the context, so buffers were released sooner than they should
have been.

The fix is to count the non-atomic references in the new field
gl_buffer_object::CtxRefCount. When we detach the context from the buffer,
we can just add CtxRefCount to RefCount to re-enable atomic reference
counting. This also allows removing code that was doing a similar thing.

Fixes: e014e3b6be63 "mesa: don't count buffer references for the context that created them"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4259

Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9360>

3 years agoradeonsi: use pipe_sampler_state::border_color_is_integer to simplify stuff
Marek Olšák [Sat, 13 Mar 2021 09:11:36 +0000 (04:11 -0500)]
radeonsi: use pipe_sampler_state::border_color_is_integer to simplify stuff

We don't need the separate integer sampler state if we know the border
color type.

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

3 years agoci: Don't run meson tests in strace for meson-mingw32-x86_64 job
Michel Dänzer [Wed, 17 Mar 2021 10:41:31 +0000 (11:41 +0100)]
ci: Don't run meson tests in strace for meson-mingw32-x86_64 job

There have been repeated timeouts:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/3437#note_842273

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

3 years agoradeonsi: fix leak when the in-memory cache is full
Axel Davy [Sun, 14 Mar 2021 18:31:48 +0000 (19:31 +0100)]
radeonsi: fix leak when the in-memory cache is full

When the hw_binary is not put in the in-memory
cache it must be freed.

Fixes: 8283ed65cfd ("radeonsi: Limit the size of the in-memory shader cache")

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9587>

3 years agogbm: remove fprintf calls in gbm_dri_bo_create
Simon Ser [Wed, 17 Mar 2021 08:09:48 +0000 (09:09 +0100)]
gbm: remove fprintf calls in gbm_dri_bo_create

These errors can be handled by the caller. The caller can't guess
whether the GBM implementation supports modifiers, for instance.

Signed-off-by: Simon Ser <contact@emersion.fr>
References: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7601#note_778845
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8715>

3 years agogbm: fail early when modifier list only contains INVALID
Simon Ser [Tue, 26 Jan 2021 12:46:25 +0000 (13:46 +0100)]
gbm: fail early when modifier list only contains INVALID

The current check only accomodates for a list with a single INVALID
item. However the driver won't be able to pick any modifier if the
list only contains INVALID. This includes the following cases:

- The modifier list is empty (count == 0)
- The modifier list contains more than a single item, but all items
  are INVALID

In these cases, also fail early.

Signed-off-by: Simon Ser <contact@emersion.fr>
References: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7601#note_778845
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8715>

3 years agozink: switch to deqp-runner for piglit jobs
Mike Blumenkrantz [Tue, 16 Mar 2021 18:10:49 +0000 (14:10 -0400)]
zink: switch to deqp-runner for piglit jobs

There's a few changes in the expected results. First of all, there's a
few failures that are now interpreted as crashes. These test are:

- glx@glx-visuals-depth
- glx@glx-visuals-depth -pixmap
- glx@glx-visuals-stencil
- glx@glx-visuals-stencil -pixmap

Secondly, and more surprisingly, there's three tests that were
previously passing, but are now failing. These are all EGL-related, so
it's likely that there's some EGL interaction that is different with the
new runner. These tests are:

- spec@egl 1.4@eglterminate then unbind context
- spec@egl_khr_surfaceless_context@viewport
- spec@egl_mesa_configless_context@basic

commit log and skiplist by Erik Faye-Lund <erik.faye-lund@collabora.com>

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

3 years agoci/freedreno: Mark the rest of the glx_arb_sync_control@timing as flakes.
Eric Anholt [Wed, 17 Mar 2021 17:10:17 +0000 (10:10 -0700)]
ci/freedreno: Mark the rest of the glx_arb_sync_control@timing as flakes.

IIRC I've seen -msc-delta 2 flake set, so just complete the set.

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

3 years agoci/freedreno: Mark an a630 piglit flake from async shader compiling.
Eric Anholt [Wed, 17 Mar 2021 17:09:06 +0000 (10:09 -0700)]
ci/freedreno: Mark an a630 piglit flake from async shader compiling.

It seems that right around when we enabled piglit, some timing also
changed so this one started flaking.

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

3 years agoanv/apply_pipeline_layout: Add support for A64 descriptor access
Jason Ekstrand [Tue, 16 Mar 2021 15:08:21 +0000 (10:08 -0500)]
anv/apply_pipeline_layout: Add support for A64 descriptor access

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agoanv: Do UBO loads with global addresses for bindless
Jason Ekstrand [Fri, 15 Jan 2021 22:44:44 +0000 (16:44 -0600)]
anv: Do UBO loads with global addresses for bindless

This makes UBO loads in the variable pointers or bindless case work just
like SSBO loads in the sense that they use A64 messages and 64-bit
global addresses.  The primary difference is that we have an
optimization in anv_nir_lower_ubo_loads which uses a (possibly
predicated) block load message when the offset is constant so we get
roughly the same performance as we would from plumbing load_ubo all the
way to the back-end.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agoanv: Add a pass for lowering A64 UBO access
Jason Ekstrand [Fri, 15 Jan 2021 20:59:42 +0000 (14:59 -0600)]
anv: Add a pass for lowering A64 UBO access

Instead of load_global_constant_offset/bounded, we want to use the
Intel-specific block load intrinsic whenever we can.  This way we get
the same wide block loads that we usually use for constant offset UBO
pulls with a binding table.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agonir/lower_io: Support global addresses for UBOs in nir_lower_explicit_io
Jason Ekstrand [Fri, 15 Jan 2021 06:35:19 +0000 (00:35 -0600)]
nir/lower_io: Support global addresses for UBOs in nir_lower_explicit_io

For nir_address_format_64bit_global_32bit_offset and
nir_address_format_64bit_bounded_global, we use a new intrinsics which
take the base address and offset as separate parameters.  For bounds-
checked access, the bound is also included in the intrinsic.  This gives
the drive more control over the bounds checking so that UBOs don't
suddenly become massively more expensive.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agoanv/apply_pipeline_layout: Use the new helpers for images
Jason Ekstrand [Sun, 14 Mar 2021 05:58:13 +0000 (23:58 -0600)]
anv/apply_pipeline_layout: Use the new helpers for images

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agoanv/apply_pipeline_layout: Use the new helpers for early lowering
Jason Ekstrand [Fri, 12 Mar 2021 23:35:32 +0000 (17:35 -0600)]
anv/apply_pipeline_layout: Use the new helpers for early lowering

This also means that some of the newly added helpers need to grow a bit
to support VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_DATA_EXT.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agoanv/apply_pipeline_layout: Rework the desc_addr_format helper
Jason Ekstrand [Fri, 12 Mar 2021 23:49:40 +0000 (17:49 -0600)]
anv/apply_pipeline_layout: Rework the desc_addr_format helper

We're about to add a new helper which is more detailed.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agoanv/apply_pipeline_layout: Refactor all our descriptor address builders
Jason Ekstrand [Fri, 12 Mar 2021 21:25:13 +0000 (15:25 -0600)]
anv/apply_pipeline_layout: Refactor all our descriptor address builders

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>

3 years agoanv/apply_pipeline_layout: Apply dynamic offsets in load_ssbo_descriptor
Jason Ekstrand [Wed, 20 Jan 2021 21:59:23 +0000 (15:59 -0600)]
anv/apply_pipeline_layout: Apply dynamic offsets in load_ssbo_descriptor

This function has exactly two call sites.  The first is where we had
these calculations before.  The second only cares about the size of the
SSBO so all the extra code we emit will be dead.  However, NIR should
easily clean that up and this lets us consolidate things a bit better.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8635>