platform/upstream/mesa.git
3 years agozink: define and use <%guard> helper in zink_device_info
Hoe Hao Cheng [Tue, 24 Nov 2020 17:01:52 +0000 (01:01 +0800)]
zink: define and use <%guard> helper in zink_device_info

this is an attempt to improve readability of the template code, with
the elimination of excessive whitespace as a bonus.

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

3 years agoci: Move deploy stage to the end of the pipeline
Michel Dänzer [Sat, 5 Dec 2020 09:15:38 +0000 (10:15 +0100)]
ci: Move deploy stage to the end of the pipeline

This should make more important jobs visible without scrolling on
pipeline pages.

The deploy stage jobs only depend on the sanity job or none at all, so
this has no impact on when the former can run.

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

3 years agoci: Run sanity job only in pre-merge pipelines
Michel Dänzer [Thu, 3 Dec 2020 17:25:54 +0000 (18:25 +0100)]
ci: Run sanity job only in pre-merge pipelines

It's more of a nuisance than useful for forked branches.

This means the test-docs job can no longer have a direct dependency on
sanity for forked branches, so split it up into two jobs: one for
pre-merge pipelines, one for forked branches.

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

3 years agoegl/wayland: remove libwayland < 1.18 workaround
Simon Ser [Wed, 25 Nov 2020 13:07:34 +0000 (14:07 +0100)]
egl/wayland: remove libwayland < 1.18 workaround

Require libwayland 1.18 and remove the workaround for
WL_SHM_FORMAT_{A,X}BGR16161616F.

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

3 years agozink: use _mesa_pointer_set_create for simplicity
Erik Faye-Lund [Tue, 8 Dec 2020 11:43:32 +0000 (12:43 +0100)]
zink: use _mesa_pointer_set_create for simplicity

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

3 years agozink: fail if set failed to create
Erik Faye-Lund [Tue, 8 Dec 2020 11:45:23 +0000 (12:45 +0100)]
zink: fail if set failed to create

Fixes: a03d17ede77 ("zink: refcount zink_gfx_program objects")

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

3 years agogallium/u_threaded: set has_user_indices = false for merged draws
Pierre-Eric Pelloux-Prayer [Wed, 9 Dec 2020 16:39:52 +0000 (17:39 +0100)]
gallium/u_threaded: set has_user_indices = false for merged draws

Fixes an assert when running this piglit test:
   arb_shader_draw_parameters-drawid-single-draw

Fixes: 351ba767afe ("gallium/u_threaded: set has_user_indices = false in the driver thread")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8004>

3 years agoradeonsi: fix si_get_draw_start_count count value
Pierre-Eric Pelloux-Prayer [Wed, 9 Dec 2020 12:51:48 +0000 (13:51 +0100)]
radeonsi: fix si_get_draw_start_count count value

Fixes: 0ce68852c1a ("radeonsi: implement multi_draw but supporting only 1 draw")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3932
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8004>

3 years agoci: .lava-test:amd64 template needs arm_build
Michel Dänzer [Wed, 9 Dec 2020 10:02:09 +0000 (11:02 +0100)]
ci: .lava-test:amd64 template needs arm_build

It uses the arm_build image, but didn't depend on the job which ensures
it exists. So jobs using the template could run before the arm_build job
had finished, and fail if the image didn't exist.

Fixes: 6c8b921572a5 "ci: Build kernels and rootfs for x86 devices"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3632
Reviewed-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8003>

3 years agodocs: Adapt to FDO_DISTRIBUTION_TAG → MESA_IMAGE_TAG rename
Michel Dänzer [Tue, 8 Dec 2020 16:22:28 +0000 (17:22 +0100)]
docs: Adapt to FDO_DISTRIBUTION_TAG → MESA_IMAGE_TAG rename

Fixes: 0781d9825b31 "ci: Append $MESA_TEMPLATES_COMMIT to image tags"
Reviewed-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7957>

3 years agoci: Adapt armhf_test job to MESA_TEMPLATES_COMMIT related changes
Michel Dänzer [Tue, 8 Dec 2020 16:18:47 +0000 (17:18 +0100)]
ci: Adapt armhf_test job to MESA_TEMPLATES_COMMIT related changes

I missed this before somehow.

Fixes: 0781d9825b31 "ci: Append $MESA_TEMPLATES_COMMIT to image tags"
Reviewed-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7957>

3 years agoci: Add .use-base-image template
Michel Dänzer [Mon, 7 Dec 2020 08:51:16 +0000 (09:51 +0100)]
ci: Add .use-base-image template

And use it in jobs for images using another Mesa image as their base.

Should fix the build of images which don't use another Mesa image as
their base (by no longer setting the FDO_BASE_IMAGE variable).

Fixes: 0781d9825b31 "ci: Append $MESA_TEMPLATES_COMMIT to image tags"
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7957>

3 years agoci: Move BASE_TAG expansion to FDO_BASE_IMAGE assignment
Michel Dänzer [Mon, 7 Dec 2020 08:35:53 +0000 (09:35 +0100)]
ci: Move BASE_TAG expansion to FDO_BASE_IMAGE assignment

This fixes the build of images which use another Mesa image as the base.

v2:
* Move $CI_REGISTRY_IMAGE expansion into FDO_BASE_IMAGE assignment as
  well (Dave Airlie)

Fixes: 0781d9825b31 "ci: Append $MESA_TEMPLATES_COMMIT to image tags"
Reported-by: Dave Airlie <airlied@redhat.com>
Acked-by: Eric Anholt <eric@anholt.net> # v1
Reviewed-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7957>

3 years agoanv: fix calculation of buffer size in case dynamic size is used
Tapani Pälli [Wed, 4 Nov 2020 09:11:41 +0000 (11:11 +0200)]
anv: fix calculation of buffer size in case dynamic size is used

VK spec got clarification about the pSizes parameter.

Fixes set of new tests:
   dEQP-VK.pipeline.extended_dynamic_state*with_offset*

v2: move offset subtract to be part of size calculation (Jason)

CC: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3871
Fixes: b9a05447a19 ("anv: dynamic vertex input binding stride and size support")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7439>

3 years agolavapipe: implement VK_EXT_vertex_attribute_divisor (v2)
Erik Faye-Lund [Fri, 4 Dec 2020 19:21:51 +0000 (20:21 +0100)]
lavapipe: implement VK_EXT_vertex_attribute_divisor (v2)

This is more or less just compile-tested, but this seems about right to
me. I see the extension being supported when running on top of Zink,
which makes me happy enough for now ;)

v2: fixed up to copy the structs on pipeline create [airlied]
gallium doesn't support the 0 divisor case yet.

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

3 years agolavapipe: interpret inputRate as an enum-value
Erik Faye-Lund [Fri, 4 Dec 2020 18:45:00 +0000 (19:45 +0100)]
lavapipe: interpret inputRate as an enum-value

This isn't an integer, it's an enum, We need to support
VK_EXT_vertex_attribute_divisor if we want to support using values other
than 0 and 1 here.

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

3 years agolavapipe: don't copy pNext
Dave Airlie [Mon, 7 Dec 2020 23:35:01 +0000 (09:35 +1000)]
lavapipe: don't copy pNext

We have to ignore unknown structs, so don't init the deep copy pNext
with the src.

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

3 years agolavapipe: split out pipeline struct duplication to a macro.
Dave Airlie [Mon, 7 Dec 2020 23:34:14 +0000 (09:34 +1000)]
lavapipe: split out pipeline struct duplication to a macro.

This just pulls a common pattern into a macro.

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

3 years agolavapipe: use ralloc for pipeline copies.
Dave Airlie [Mon, 7 Dec 2020 22:31:58 +0000 (08:31 +1000)]
lavapipe: use ralloc for pipeline copies.

We have to store every struct that is in the pipeline for processing
later, use ralloc to make freeing this mess easier.

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

3 years agoiris: Drop res variable in resolve_sampler_views
Nanley Chery [Tue, 8 Dec 2020 18:32:29 +0000 (10:32 -0800)]
iris: Drop res variable in resolve_sampler_views

Instead of storing isv->res in a local variable, just use it directly to
increase consistency with similar field accesses.

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

3 years agoiris: Fix resource ptr in resolve_sampler_views
Nanley Chery [Tue, 8 Dec 2020 18:27:14 +0000 (10:27 -0800)]
iris: Fix resource ptr in resolve_sampler_views

Use the sampler view's iris_resource instead of its pipe_resource. For
stencil views of a depth-stencil resource, this enables the stencil
resource to cause a depth cache flush when needed.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3287
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7996>

3 years agosoftpipe: Fix swizzled texture gather of int textures.
Eric Anholt [Wed, 9 Dec 2020 19:33:16 +0000 (11:33 -0800)]
softpipe: Fix swizzled texture gather of int textures.

We need to pick 1u vs 1.0f based on the type of the texture, just like for
normal samples.  Move the decision up to the create_sampler_view, and use
that value from both sampler paths.

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

3 years agoradeonsi: use a C++ template to decrease draw_vbo overhead by 13 %
Marek Olšák [Wed, 26 Aug 2020 04:16:23 +0000 (00:16 -0400)]
radeonsi: use a C++ template to decrease draw_vbo overhead by 13 %

With GALLIUM_THREAD=0 to disable draw merging.

Before:
   1, DrawElements ( 1 VBO| 0 UBO|  0    ) w/ no state change,                 8736

After:
   1, DrawElements ( 1 VBO| 0 UBO|  0    ) w/ no state change,                10059

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

3 years agoradeonsi: rename si_state_draw.c to .cpp
Marek Olšák [Wed, 26 Aug 2020 02:51:03 +0000 (22:51 -0400)]
radeonsi: rename si_state_draw.c to .cpp

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

3 years agoradeonsi: resolve a tricky C++ failure with goto jumping over initializations
Marek Olšák [Wed, 26 Aug 2020 02:35:29 +0000 (22:35 -0400)]
radeonsi: resolve a tricky C++ failure with goto jumping over initializations

C++ doesn't allow jumping over variable initializations, so we have to use
a macro.

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

3 years agoradeonsi: fix future C++ compile failures and warnings
Marek Olšák [Wed, 26 Aug 2020 02:30:55 +0000 (22:30 -0400)]
radeonsi: fix future C++ compile failures and warnings

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

3 years agoradeonsi: allow including a few files from C++
Marek Olšák [Wed, 26 Aug 2020 02:50:30 +0000 (22:50 -0400)]
radeonsi: allow including a few files from C++

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

3 years agoamd/llvm: fix C++ compile failures
Marek Olšák [Wed, 26 Aug 2020 02:29:15 +0000 (22:29 -0400)]
amd/llvm: fix C++ compile failures

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

3 years agogallium/util: allow including a few files in C++
Marek Olšák [Wed, 26 Aug 2020 02:49:31 +0000 (22:49 -0400)]
gallium/util: allow including a few files in C++

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

3 years agocompiler: fix glsl_types.h compile failures when including as C++ in drivers
Marek Olšák [Wed, 26 Aug 2020 02:28:23 +0000 (22:28 -0400)]
compiler: fix glsl_types.h compile failures when including as C++ in drivers

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

3 years agoac/llvm: handle no_(un)signed_wrap NIR flags
Marek Olšák [Wed, 9 Dec 2020 00:25:51 +0000 (19:25 -0500)]
ac/llvm: handle no_(un)signed_wrap NIR flags

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

3 years agoac: unify shader arguments that are duplicated
Marek Olšák [Tue, 8 Dec 2020 23:51:57 +0000 (18:51 -0500)]
ac: unify shader arguments that are duplicated

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

3 years agoradeonsi: move si_llvm_compiler_shader and deps into si_shader_llvm.c
Marek Olšák [Fri, 4 Dec 2020 17:34:55 +0000 (12:34 -0500)]
radeonsi: move si_llvm_compiler_shader and deps into si_shader_llvm.c

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

3 years agoradeonsi: move si_build_main_function into si_shader_llvm.c
Marek Olšák [Fri, 4 Dec 2020 17:17:45 +0000 (12:17 -0500)]
radeonsi: move si_build_main_function into si_shader_llvm.c

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

3 years agoradeonsi: move si_create_function into si_shader_llvm.c
Marek Olšák [Fri, 4 Dec 2020 17:17:45 +0000 (12:17 -0500)]
radeonsi: move si_create_function into si_shader_llvm.c

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

3 years agoradeonsi: split ac_shader_args initialization from LLVM code
Marek Olšák [Fri, 4 Dec 2020 16:22:14 +0000 (11:22 -0500)]
radeonsi: split ac_shader_args initialization from LLVM code

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

3 years agoac: add shader return values into ac_shader_args
Marek Olšák [Fri, 4 Dec 2020 16:19:16 +0000 (11:19 -0500)]
ac: add shader return values into ac_shader_args

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

3 years agoac: correct ac_shader_args types, remove sgpr_count
Marek Olšák [Fri, 4 Dec 2020 16:17:58 +0000 (11:17 -0500)]
ac: correct ac_shader_args types, remove sgpr_count

sgpr_count is unused. The size of the others is too small.

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

3 years agoradeonsi: fix a crash in si_fence_server_sync
Marek Olšák [Wed, 9 Dec 2020 19:41:13 +0000 (14:41 -0500)]
radeonsi: fix a crash in si_fence_server_sync

Fixes: 1f31a216640 - radeonsi: remove SDMA support

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

3 years agoaco: rename s_subb_u32 operands to borrow
Rhys Perry [Wed, 9 Dec 2020 15:40:40 +0000 (15:40 +0000)]
aco: rename s_subb_u32 operands to borrow

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

3 years agoaco: fix various s_subb_u32 operands to SCC
Rhys Perry [Wed, 9 Dec 2020 15:28:46 +0000 (15:28 +0000)]
aco: fix various s_subb_u32 operands to SCC

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

3 years agov3d: use job's nr_cbufs field
Juan A. Suarez Romero [Wed, 9 Dec 2020 13:41:32 +0000 (14:41 +0100)]
v3d: use job's nr_cbufs field

Instead of computing the number of color buffers in the start binning
function, just use the job's nr_cbufs, which already contains that
value.

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

3 years agopanfrost: Fix provoking vertex selection for lines
Boris Brezillon [Tue, 1 Dec 2020 08:18:18 +0000 (09:18 +0100)]
panfrost: Fix provoking vertex selection for lines

For line primitives, the provoking vertex selection is done through the
DRAW.flat_shading_vertex field and PRIMITIVE.first_provoking_vertex must
be set to true.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7923>

3 years agopanfrost: Preload SampleID when reloading multisample FBs
Boris Brezillon [Mon, 30 Nov 2020 13:38:30 +0000 (14:38 +0100)]
panfrost: Preload SampleID when reloading multisample FBs

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7923>

3 years agopanfrost: Take the number of samples into account in blend shaders
Boris Brezillon [Tue, 8 Dec 2020 10:42:15 +0000 (11:42 +0100)]
panfrost: Take the number of samples into account in blend shaders

Midgard has to split the writeout instruction if the number of bits per
pixel exceeds 128. We thus need to take the number of samples into
account when creating blend shaders.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7984>

3 years agopan/mdg: Add support for multi sample iteration writeout
Boris Brezillon [Tue, 8 Dec 2020 10:38:50 +0000 (11:38 +0100)]
pan/mdg: Add support for multi sample iteration writeout

Some MSAA+fmt combination require writeout to be split. Right now, it
only impacts blend shaders since we only support MSAA 4x, and the only
formats that could exceed the 128bit/pixel limit in MSAA 4x are
not supported by the fixed-function blend unit. We thus rely on the
blend shader to split things properly. Things will change once we add
MSAA 8x/16x to the mix, since even the blendable formats will exceed
the 128b/pixel limit in that case.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7984>

3 years agopanfrost: Fix fencing
Boris Brezillon [Mon, 30 Nov 2020 10:07:33 +0000 (11:07 +0100)]
panfrost: Fix fencing

Commit 64d6f56ad26f ("panfrost: Allocate syncobjs in panfrost_flush")
aimed at optimizing the fencing logic but it looks it also broke the
fence-based synchronization in subtle ways.

Indeed, now that the fence only waits on a single syncobj, we're not
guaranteed that all jobs queued in panfrost_flush_all_batches() will
be done when the fence is signaled, because jobs at the top level
(those stored in the batches hashmap) have not inter-dependencies.

Commit 9e397956b092 ("panfrost: signal syncobj if nothing is going to
be flushed") made this even more apparent by signaling the fence right
away if nothing was left to be drawn in the current context, thus
ignoring any of the batches left to flushed in the ->batches map.

If we want to keep relying the existing kernel APIs there's clearly no
ideal solution here. We can either go back to the original fencing
mechanism where each fence contained an array of syncobjs to be tested
or serialize jobs that have no explicit dependencies so we know the last
submitted job will also be the last one to return. The orginal approach
has proven to add quite a significant overhead (caused by the amount of
ioctls and the time spent in kernel space to gather dma fences attached
to those syncobjs and test them). So let's go for the simple solution
where we have a single syncobj bound to the context which we update to
point to the last job out_sync every time we submit a top-level job.

This approach implies reworking the way we create fences since we
need to capture the syncobj state at the time the fence is created.
Unfortunately, there's not SYNCOBJ_CLONE ioctl, which forces us to
export/create/import a fence so we have a new object that's not
subject to changes done to the context syncobj.

If we want to further optimize the logic, we should probably explore
some of those options:

1/ Adding array based SYNCOBJ ioctls (SYNCOBJ_{CREATE,DESTROY,CLONE}_ARRAY)
   so we can mitigate the cost of ioctls when we need to manipulate
   arrays of syncobjs
2/ Support synchronization jobs. That is, jobs that have a NULL job chain
   but an array of sync_in and a sync_out to allow creating
   synchronization points
3/ Add syncobj aggregators so we only have to wait on one syncobj from
   userspace. The syncobj aggregator would wait for all sub syncobjs to
   be signaled before signaling the top-level one.

Fixes: 64d6f56ad26f ("panfrost: Allocate syncobjs in panfrost_flush")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7831>

3 years agopanfrost: Make sure we always add a reader -> write dependency when needed
Boris Brezillon [Mon, 30 Nov 2020 09:23:32 +0000 (10:23 +0100)]
panfrost: Make sure we always add a reader -> write dependency when needed

We shouldn't reset the ->writer field when a reader comes in because we
want subsequent readers to have a dependency on the writer too. Let's
add a new field encoding the last access type and use it to replace the
writer != NULL test.

Reported-by: Roman Elshin
Fixes: c6ebff3ecdde ("panfrost: Remove panfrost_bo_access type")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7831>

3 years agost/mesa: enable compute shader derivatives in SPIR-V
Marek Olšák [Mon, 21 Sep 2020 13:08:31 +0000 (09:08 -0400)]
st/mesa: enable compute shader derivatives in SPIR-V

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

3 years agoac,radeonsi: implement GL_NV_compute_shader_derivatives
Marek Olšák [Mon, 21 Sep 2020 11:54:12 +0000 (07:54 -0400)]
ac,radeonsi: implement GL_NV_compute_shader_derivatives

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

3 years agowinsys/amdgpu: use VRAM for command buffers if all VRAM is visible
Marek Olšák [Tue, 8 Dec 2020 19:43:07 +0000 (14:43 -0500)]
winsys/amdgpu: use VRAM for command buffers if all VRAM is visible

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

3 years agoradeonsi: map PIPE_USAGE_STREAM to VRAM if all VRAM is visible
Marek Olšák [Sun, 6 Dec 2020 19:49:28 +0000 (14:49 -0500)]
radeonsi: map PIPE_USAGE_STREAM to VRAM if all VRAM is visible

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

3 years agoradeonsi: unify uploaders and upload to VRAM if all VRAM is visible
Marek Olšák [Sun, 6 Dec 2020 19:46:20 +0000 (14:46 -0500)]
radeonsi: unify uploaders and upload to VRAM if all VRAM is visible

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

3 years agoradeonsi: only use staging for linear textures when all VRAM is not visible
Marek Olšák [Sun, 6 Dec 2020 19:03:46 +0000 (14:03 -0500)]
radeonsi: only use staging for linear textures when all VRAM is not visible

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

3 years agoradeons: only force staging uploads for VRAM when all VRAM is not visible
Marek Olšák [Sun, 6 Dec 2020 19:01:15 +0000 (14:01 -0500)]
radeons: only force staging uploads for VRAM when all VRAM is not visible

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

3 years agoac: add radeon_info::all_vram_visible for Smart Access Memory
Marek Olšák [Sun, 6 Dec 2020 18:59:53 +0000 (13:59 -0500)]
ac: add radeon_info::all_vram_visible for Smart Access Memory

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

3 years agoradeonsi: initialize ctx and gfx_cs first, then allocators
Marek Olšák [Sun, 6 Dec 2020 18:49:21 +0000 (13:49 -0500)]
radeonsi: initialize ctx and gfx_cs first, then allocators

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

3 years agocompiler: update gl_access_qualifier comments
Rhys Perry [Tue, 1 Dec 2020 14:24:53 +0000 (14:24 +0000)]
compiler: update gl_access_qualifier comments

Clarify ACCESS_NON_{READABLE,WRITEABLE} and update ACCESS_CAN_REORDER.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: infer writeonly
Rhys Perry [Tue, 25 Aug 2020 16:36:14 +0000 (17:36 +0100)]
nir/opt_access: infer writeonly

This isn't always done for GL because it could cause ImageAccess to be
incorrect: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3278

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: consider global stores
Rhys Perry [Tue, 25 Aug 2020 15:35:44 +0000 (16:35 +0100)]
nir/opt_access: consider global stores

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: handle variable pointers
Rhys Perry [Tue, 25 Aug 2020 15:50:24 +0000 (16:50 +0100)]
nir/opt_access: handle variable pointers

We might not be able to determine what variable a instruction accesses.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: add basic Vulkan support
Rhys Perry [Tue, 25 Aug 2020 16:03:03 +0000 (17:03 +0100)]
nir/opt_access: add basic Vulkan support

This involves determining the variables referenced by intrinsics, setting and
using the access qualifier correctly and considering that images and buffers
can alias.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: rename can_reorder() and set ACCESS_NON_WRITEABLE in it
Rhys Perry [Tue, 25 Aug 2020 13:30:52 +0000 (14:30 +0100)]
nir/opt_access: rename can_reorder() and set ACCESS_NON_WRITEABLE in it

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: don't check restrict in can_reorder()
Rhys Perry [Tue, 1 Dec 2020 14:38:32 +0000 (14:38 +0000)]
nir/opt_access: don't check restrict in can_reorder()

ACCESS_NON_WRITEABLE means that the memory is read-only, not the variable,
so we don't have to check for aliasing.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: check restrict before marking a variable as readonly
Rhys Perry [Tue, 1 Dec 2020 14:34:48 +0000 (14:34 +0000)]
nir/opt_access: check restrict before marking a variable as readonly

ACCESS_NON_WRITEABLE means that the memory is read-only, not the variable,
so we have to check for aliasing first.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: ignore barriers and coherent qualifier
Rhys Perry [Tue, 1 Dec 2020 14:30:22 +0000 (14:30 +0000)]
nir/opt_access: ignore barriers and coherent qualifier

It shouldn't matter whether an access/variable is coherent or not, just
that it's not written. The coherent qualifier doesn't mean anything with
read-only memory.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agonir/opt_access: don't ignore image arrays in process_variable()
Rhys Perry [Tue, 1 Dec 2020 14:26:40 +0000 (14:26 +0000)]
nir/opt_access: don't ignore image arrays in process_variable()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>

3 years agoiris: update depth value for stages after fast clear depth
Andrii Simiklit [Mon, 30 Nov 2020 18:15:10 +0000 (20:15 +0200)]
iris: update depth value for stages after fast clear depth

This should fix an outdated depth value visible from the shader side.

v1: (Nanley Chery)
- fix commit message

v2: (Nanley Chery)
- replace `fixes` tag by `mesa-stable`

Closes: #3883
Cc: 20.3 20.2 <mesa-stable>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7838>

3 years agov3d: remove old tile blit code
Juan A. Suarez Romero [Tue, 1 Dec 2020 08:45:39 +0000 (09:45 +0100)]
v3d: remove old tile blit code

This code was a direct copy from VC4, and it was disabled, as it did not
work.

Now that we have an implementation, let's remove it.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: implement tile-based blit operation
Juan A. Suarez Romero [Tue, 1 Dec 2020 08:39:52 +0000 (09:39 +0100)]
v3d: implement tile-based blit operation

This implements fast-path blit using the TLB to blit from one buffer to
another, if conditions for allowing this are met.

v1:
 - Move checks in the code (Iago)

v2:
 - Use function to compute tile width and height (Iago)
 - Fix commit message (Iago)
 - Use surface size to compute draw_tiles_{x,y} (Iago)
 - Move checks (Iago)
 - Fix tile draw parameters (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: refactor set tile buffer size function
Juan A. Suarez Romero [Thu, 3 Dec 2020 10:32:40 +0000 (11:32 +0100)]
v3d: refactor set tile buffer size function

Change it to not require a v3d job to compute the tile buffer
parameters.

v1:
 - Pass nr_cbufs parameter to get tile buffer size function (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: implement tile buffer blits
Juan A. Suarez Romero [Fri, 27 Nov 2020 13:23:43 +0000 (14:23 +0100)]
v3d: implement tile buffer blits

This implements blit operation using the TLB.

It uses a source color buffer (bbuf) which will be blitted to color
buffer 0.

It also takes in account the number of samples for the input and output
so it can perform multisample resolve.

v1:
 - Fix comment (Iago)
 - Removed needless brackets (Iago)
 - Ensure msaa is correctly set (Iago)
 - Get rid of job->resolve (Iago)
 - Add rbuf as part of job's key (Iago)
 - Rename rbuf/rsurf by bbuf/bsurf (Iago)
 - Revert needless change (Iago)

v2:
 - Remove spurious change (Iago)
 - Add assert for safety reasons (Iago)
 - Add brackets in condition (Iago)
 - Fix commit message and title (Iago)
 - Do tile blit only for version >=4.0 (Iago)

v3:
 - Add assertion (Iago)
 - Fix comment (Iago)
 - Change commit title (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: add helper to check if format supports TLB resolve
Juan A. Suarez Romero [Fri, 27 Nov 2020 13:17:59 +0000 (14:17 +0100)]
v3d: add helper to check if format supports TLB resolve

It checks if the TLB can perform multisample resolve for the specified
format.

v1:
 - Fix commit title (Iago)

v2:
 - Fix identation (Iago)
 - Fix prototype style (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: split binning start from draw
Juan A. Suarez Romero [Fri, 27 Nov 2020 13:14:00 +0000 (14:14 +0100)]
v3d: split binning start from draw

Separate the binning part in the draw and make it public, so we can
invoke it later from a different part.

v1:
 - Ensure the job needs flush (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: store number of color buffers in job
Juan A. Suarez Romero [Wed, 2 Dec 2020 12:53:17 +0000 (13:53 +0100)]
v3d: store number of color buffers in job

Avoids requiring to calculate in other places.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: make set tile buffer size function public
Juan A. Suarez Romero [Fri, 27 Nov 2020 13:10:18 +0000 (14:10 +0100)]
v3d: make set tile buffer size function public

This will be used later when implementing Tile-based blit function.

v1:
 - Fix commit title (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agov3d: force alpha to 1 when rendering RGBX formats
Juan A. Suarez Romero [Fri, 27 Nov 2020 12:07:43 +0000 (13:07 +0100)]
v3d: force alpha to 1 when rendering RGBX formats

This adds an enum to the load tile buffer that forces the alpha channel
to be set to 1. This will be required later to load RGBX formats.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agoutil: function to check for rgbX format
Juan A. Suarez Romero [Fri, 27 Nov 2020 12:03:16 +0000 (13:03 +0100)]
util: function to check for rgbX format

Function that checks if the format has its alpha component forced to 1.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7816>

3 years agointel/tools/aubinator_error_decode: fix small memory leaks
Marcin Ślusarz [Tue, 8 Dec 2020 18:38:01 +0000 (19:38 +0100)]
intel/tools/aubinator_error_decode: fix small memory leaks

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7994>

3 years agointel/tools/aubinator_error_decode: cleanup path/file handling
Marcin Ślusarz [Tue, 8 Dec 2020 18:27:43 +0000 (19:27 +0100)]
intel/tools/aubinator_error_decode: cleanup path/file handling

Should help some compilers/static analyzers understand this code and avoid
things like this:

../src/intel/tools/aubinator_error_decode.c:850:19: warning: "path" may be used uninitialized in this function [-Wmaybe-uninitialized]
  850 |             ret = asprintf(&filename, "%s/%d/i915_error_state", path, minor);

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7994>

3 years agor600/sfn: Initialize ShaderInputVarying members in constructors.
Vinson Lee [Thu, 3 Dec 2020 23:12:07 +0000 (15:12 -0800)]
r600/sfn: Initialize ShaderInputVarying members in constructors.

Fix defects reported by Coverity Scan.

uninit_member: Non-static class member m_interpolate is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member m_lds_pos is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member m_mask is not initialized in this constructor nor in any functions that it calls.

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

3 years agomeson: Fix build with llvm-12.
Vinson Lee [Wed, 25 Nov 2020 21:18:03 +0000 (13:18 -0800)]
meson: Fix build with llvm-12.

This patch fixes this Meson build error.

$ meson builddir \
-Dshared-llvm=disabled
-Ddri-drivers=''
-Dbuild-tests=true \
-Dgallium-drivers=swrast \
-Dvulkan-drivers=''
[...]
/usr/bin/ld: src/gallium/auxiliary/libgallium.a(gallivm_lp_bld_misc.cpp.o): in function `llvm::InitializeNativeTarget()':
llvm/Support/TargetSelect.h:118: undefined reference to `LLVMInitializeX86TargetInfo'
/usr/bin/ld: llvm/Support/TargetSelect.h:119: undefined reference to `LLVMInitializeX86Target'
/usr/bin/ld: llvm/Support/TargetSelect.h:120: undefined reference to `LLVMInitializeX86TargetMC'
/usr/bin/ld: src/gallium/auxiliary/libgallium.a(gallivm_lp_bld_misc.cpp.o): in function `llvm::InitializeNativeTargetAsmPrinter()':
llvm/Support/TargetSelect.h:132: undefined reference to `LLVMInitializeX86AsmPrinter'
/usr/bin/ld: src/gallium/auxiliary/libgallium.a(gallivm_lp_bld_misc.cpp.o): in function `llvm::InitializeNativeTargetDisassembler()':
llvm/Support/TargetSelect.h:156: undefined reference to `LLVMInitializeX86Disassembler'

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7777>

3 years agoci/vc4: Skip VS dynamic loops tests that cause GPU hangs.
Eric Anholt [Tue, 8 Dec 2020 23:18:34 +0000 (15:18 -0800)]
ci/vc4: Skip VS dynamic loops tests that cause GPU hangs.

We've been getting spurious failures from the new VC4 CI, which I believe
are due to this set of tests (which have been showing up along with a GPU
hang report in the list of flaky tests in the failing jobs).  This was a
known issue I had in vc4.

Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7998>

3 years agoradeonsi: fix the blit test for SW_64KB_R_X
Marek Olšák [Tue, 8 Dec 2020 21:58:29 +0000 (16:58 -0500)]
radeonsi: fix the blit test for SW_64KB_R_X

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

3 years agoradeonsi: rename SI_TEST_DMA to SI_TEST_BLIT
Marek Olšák [Tue, 8 Dec 2020 21:50:03 +0000 (16:50 -0500)]
radeonsi: rename SI_TEST_DMA to SI_TEST_BLIT

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

3 years agoradeonsi: remove SDMA support
Marek Olšák [Thu, 3 Dec 2020 22:57:45 +0000 (17:57 -0500)]
radeonsi: remove SDMA support

There are many issues with SDMA across many generations of hardware.
A recent example is that gfx10.3 suffers from random GPU hangs if
userspace uses SDMA.

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

3 years agoradeonsi: rename buffer functions so as not to reference rings
Marek Olšák [Thu, 3 Dec 2020 23:01:11 +0000 (18:01 -0500)]
radeonsi: rename buffer functions so as not to reference rings

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

3 years agoradeonsi: move si_screen_clear_buffer into si_compute_blit.c w/o SDMA option
Marek Olšák [Thu, 3 Dec 2020 22:10:06 +0000 (17:10 -0500)]
radeonsi: move si_screen_clear_buffer into si_compute_blit.c w/o SDMA option

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

3 years agoci/freedreno: Detect the cheza power management bus error and restart.
Eric Anholt [Tue, 8 Dec 2020 18:29:06 +0000 (10:29 -0800)]
ci/freedreno: Detect the cheza power management bus error and restart.

This is an issue on the cheza platform, the theory is due to some old
firmware bug that will be fixed in future platforms.  Given that cheza was
a target that didn't get released and we expect future platforms to be
fixed, just detect the issue and restart.

I've noticed this error in my CI monitoring less than once a week.

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

3 years agoandroid: spirv: fix '::' typo in gen rules
Mauro Rossi [Mon, 7 Dec 2020 22:26:30 +0000 (23:26 +0100)]
android: spirv: fix '::' typo in gen rules

among all Android gen rules '::' was used only here to declare dependencies;
mesa development and stable branch are worth receiving the fix

Fixes the following building errors with Android 7:

obj/STATIC_LIBRARIES/libmesa_nir_intermediates/spirv/gl_spirv.P:184: *** target file
gen/STATIC_LIBRARIES/libmesa_nir_intermediates/spirv/vtn_generator_ids.h' has both : and :: entries.  Stop.

Cc: "20.3" <mesa-stable@lists.freedesktop.org>
Fixes: 1070bba19e26 ("android: fix SPIR-V -> NIR build")
Reported-by: youling257 <youling257@gmail.com>
3 years agomesa/st: set reserved storage for params+values to 16
Mike Blumenkrantz [Sat, 5 Dec 2020 16:42:54 +0000 (11:42 -0500)]
mesa/st: set reserved storage for params+values to 16

zink apparently has a lot of uniform data, and 8x8 isn't enough to avoid realloc

fixes mesa/mesa#3930

Fixes: eda37fb2 ("mesa: properly disallow param list reallocation")

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

3 years agomeson: fix multiline string warning
Michel Zou [Sun, 6 Dec 2020 11:35:42 +0000 (12:35 +0100)]
meson: fix multiline string warning

gets rid of: WARNING: Newline character in a string detected, use '''
(three single quotes) for multiline strings instead.

Reviewed-by: Yevhenii Kharchenko <yevhenii.kharchenko@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7946>

3 years agoutil: Add cnd_monotonic to Makefile.sources
Ian Romanick [Tue, 8 Dec 2020 03:39:57 +0000 (19:39 -0800)]
util: Add cnd_monotonic to Makefile.sources

Fixes: 33a78948283 ("util,radv: Cross-platform monotonic condition variable")
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7980>

3 years agomesa: remove MAX_3D_TEXTURE_LEVELS, MAX_CUBE_TEXTURE_LEVELS
Marek Olšák [Sat, 5 Dec 2020 17:20:07 +0000 (12:20 -0500)]
mesa: remove MAX_3D_TEXTURE_LEVELS, MAX_CUBE_TEXTURE_LEVELS

they are redundant with MAX_TEXTURE_LEVELS

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7956>

3 years agomesa: remove code for old (mostly unsupported) GL_NV_point_sprite
Marek Olšák [Sat, 5 Dec 2020 17:03:42 +0000 (12:03 -0500)]
mesa: remove code for old (mostly unsupported) GL_NV_point_sprite

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7956>

3 years agomesa: fix glPopAttrib for GL_COORD_REPLACE for r200
Marek Olšák [Sat, 5 Dec 2020 16:47:50 +0000 (11:47 -0500)]
mesa: fix glPopAttrib for GL_COORD_REPLACE for r200

Fixes: 959380dc "mesa: more optimizations in glPopAttrib (colormask, drawbuffers, coord replace)"

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7956>

3 years agoturnip: always set LRZ registers to zero for 3d clear/blit
Jonathan Marek [Thu, 3 Dec 2020 05:05:37 +0000 (00:05 -0500)]
turnip: always set LRZ registers to zero for 3d clear/blit

Apparently LRZ will be read/written regardless of depth being enabled or
not, so we have to make sure these registers are zero.

Fixes: 1d83f5ae8435 ("turnip: disable LRZ on vkCmdClearattachments() 3D fallback path")

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7899>

3 years agoturnip: move up LRZ invalidate in CmdClearAttachments
Jonathan Marek [Thu, 3 Dec 2020 05:03:14 +0000 (00:03 -0500)]
turnip: move up LRZ invalidate in CmdClearAttachments

There is an early return if cmd->state.predication_active is true, so do
the LRZ invalidate before that.

Fixes: 2f79e0066405 ("turnip: disable LRZ on vkCmdClearAttachments()")

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7899>

3 years agoturnip: do not emit draw states in draw_cs outside of renderpass
Jonathan Marek [Thu, 3 Dec 2020 04:59:24 +0000 (23:59 -0500)]
turnip: do not emit draw states in draw_cs outside of renderpass

This avoids a possible issue with MSAA sysmem clears, which use a 3D clear
path which assumes draw states are disabled, and are emitted in draw_cs in
BeginRenderPass.

(checking for TU_CMD_DIRTY_DRAW_STATE also allows not emitting the draw
states if they will be re-emitted on the next draw anyway. the previous
patch makes it so TU_CMD_DIRTY_DRAW_STATE is always set outside of
renderpasses)

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7899>

3 years agoturnip: correctly disable draw states outside of renderpasses
Jonathan Marek [Thu, 3 Dec 2020 04:49:26 +0000 (23:49 -0500)]
turnip: correctly disable draw states outside of renderpasses

* do the disable in EndRenderPass2 to fix the missing disable for sysmem
* we don't need a disable at the end of every tile, or between binning pass
  and gmem pass (the first draw in draw_cs emits all the draw states)

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7899>