Commit Graph

132223 Commits

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

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

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

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

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>

Closes: #320
Closes: #877
Closes: #2297
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1243>
2020-12-10 18:38:13 +00:00
Eric Anholt
6ffc5611c8 docs: Fix the documentation of the OSMesa path.
Typo in gallium, along with the fact that gallium's osmesa installs to the
same directory as classic's.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1243>
2020-12-10 18:38:13 +00:00
Eric Anholt
7497917cfd osmesa/test: Clear the stencil bits in the depth test.
Since the depth buffer starts out as a malloc, and we weren't clearing it,
you could get undefined values in your top 8 bits.  This should fix
intermittent failures of the depth test.

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

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1243>
2020-12-10 18:38:13 +00:00
Timur Kristóf
a9a8e05b69 aco: Skip TCS s_barrier when VS outputs are not stored in the LDS.
When VS outputs are known to be never stored in LDS, there is no
reason for HS waves to wait for all LS waves to complete. So, the
s_barrier between the LS and HS can be safely skipped.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7727>
2020-12-10 17:23:16 +00:00
Rob Clark
790144e65a util+treewide: container_of() cleanup
Replace mesa's slightly different container_of() with one more aligned
to the linux kernel's version which takes a type as the 2nd param.  This
avoids warnings like:

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

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

Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941>
2020-12-10 16:48:36 +00:00
Rob Clark
6fe84c5dda util: Allow STATIC_ASSERT() everywhere
Remove -Werror=vla from c_msvc_compat_args so we can use STATIC_ASSERT()
in core code.  We have a CI job for this.

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

Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941>
2020-12-10 16:48:36 +00:00
Rob Clark
5a082911cd util: Promote __builtin_types_compatible_p compat
Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7941>
2020-12-10 16:48:36 +00:00
jzielins
f63c595a73 swr: fix crashes caused by incorrectly reporting SSBO support
Reviewed-by: Krzysztof Raszkowski <krzysztof.raszkowski@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8036>
2020-12-10 15:54:49 +01:00
Tomeu Vizoso
5d833f433a ci: Only run the sanity job if there's a MR
As it will fail right away if there isn't, and that prevents the CI to
run on people's branches.

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

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Fixes: d4151f2e ("ci: Run sanity job only in pre-merge pipelines")
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8032>
2020-12-10 12:57:08 +00:00
Hoe Hao Cheng
f27ee2a3ad zink: remove useless import in zink_device_info.py
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>
2020-12-10 12:40:59 +00:00
Hoe Hao Cheng
3f1d4de25b zink: move blend_operation_advanced conditions to zink_device_info.py
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>
2020-12-10 12:40:59 +00:00
Hoe Hao Cheng
a103666b02 zink: decouple features and enabling conditions in zink_device_info.py
replace `have_feature` with `conditions` and add `features=True`
to places where `have_feature` was used.

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>
2020-12-10 12:40:59 +00:00
Hoe Hao Cheng
6e313bc918 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>
2020-12-10 12:40:59 +00:00
Michel Dänzer
f0ca77c478 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>
2020-12-10 10:23:22 +00:00
Michel Dänzer
d4151f2efd 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>
2020-12-10 10:23:22 +00:00
Simon Ser
ef75ede4ed 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>
2020-12-10 09:55:22 +00:00
Erik Faye-Lund
f5711ae7d2 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>
2020-12-10 09:45:28 +00:00
Erik Faye-Lund
8a30ac49ac zink: fail if set failed to create
Fixes: a03d17ede7 ("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>
2020-12-10 09:45:28 +00:00
Pierre-Eric Pelloux-Prayer
7c85b1d2f0 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: 351ba767af ("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>
2020-12-10 09:17:45 +00:00
Pierre-Eric Pelloux-Prayer
5eda9673b2 radeonsi: fix si_get_draw_start_count count value
Fixes: 0ce68852c1 ("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>
2020-12-10 09:17:45 +00:00
Michel Dänzer
5d073b5aa1 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: 6c8b921572 "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>
2020-12-10 08:58:49 +00:00
Michel Dänzer
cd4f6cdcf4 docs: Adapt to FDO_DISTRIBUTION_TAG → MESA_IMAGE_TAG rename
Fixes: 0781d9825b "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>
2020-12-10 08:22:46 +00:00
Michel Dänzer
01175c38c2 ci: Adapt armhf_test job to MESA_TEMPLATES_COMMIT related changes
I missed this before somehow.

Fixes: 0781d9825b "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>
2020-12-10 08:22:46 +00:00
Michel Dänzer
6701662ae0 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: 0781d9825b "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>
2020-12-10 08:22:46 +00:00
Michel Dänzer
f957d0d915 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: 0781d9825b "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>
2020-12-10 08:22:46 +00:00
Tapani Pälli
5998a6543a 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: b9a05447a1 ("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>
2020-12-10 08:26:34 +02:00
Erik Faye-Lund
3f0da800eb 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>
2020-12-10 11:01:07 +10:00
Erik Faye-Lund
5b0b03733a 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>
2020-12-10 11:00:56 +10:00
Dave Airlie
eec9d67e44 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>
2020-12-10 10:46:27 +10:00
Dave Airlie
6a27262cc2 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>
2020-12-10 10:46:23 +10:00
Dave Airlie
a2cf059023 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>
2020-12-10 10:46:18 +10:00
Nanley Chery
04c7fce799 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>
2020-12-09 22:28:38 +00:00
Nanley Chery
1f7427f972 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>
2020-12-09 22:28:38 +00:00
Eric Anholt
4ba884b814 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>
2020-12-09 22:08:34 +00:00
Marek Olšák
2b09bde1f5 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>
2020-12-09 16:01:32 -05:00
Marek Olšák
6347b0b5c4 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>
2020-12-09 16:01:32 -05:00
Marek Olšák
639b1366d0 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>
2020-12-09 16:01:32 -05:00
Marek Olšák
fe839baf6a 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>
2020-12-09 16:01:29 -05:00
Marek Olšák
85af48b0ee 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>
2020-12-09 16:01:21 -05:00
Marek Olšák
fc212dcaa5 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>
2020-12-09 16:01:21 -05:00
Marek Olšák
f95fb3ab9c 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>
2020-12-09 16:01:21 -05:00
Marek Olšák
ea23ca8869 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>
2020-12-09 16:01:21 -05:00
Marek Olšák
3d41712193 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>
2020-12-09 20:13:25 +00:00
Marek Olšák
3b67c6451f 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>
2020-12-09 20:13:25 +00:00
Marek Olšák
248268fb7d 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>
2020-12-09 20:13:25 +00:00
Marek Olšák
8cd1522622 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>
2020-12-09 20:13:25 +00:00
Marek Olšák
273be1686e 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>
2020-12-09 20:13:24 +00:00
Marek Olšák
d9c1a47d48 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>
2020-12-09 20:13:24 +00:00
Marek Olšák
4a50096ab4 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>
2020-12-09 20:13:24 +00:00
Marek Olšák
2cf44ad30a 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>
2020-12-09 20:13:24 +00:00