mesa.git
18 months agodraw/sample: add support for indirect images
Dave Airlie [Tue, 16 Jun 2020 02:53:43 +0000 (12:53 +1000)]
draw/sample: add support for indirect images

This uses the array functions to implement indirect image support
for draw shaders

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/nir: add support for indirect image loading
Dave Airlie [Tue, 16 Jun 2020 02:50:41 +0000 (12:50 +1000)]
gallivm/nir: add support for indirect image loading

This adds support for indirect image loading, image stores
can cause images with different formats to be stored to,
so this operates like the texture code now.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/img: refactor out the texel return type (v2)
Dave Airlie [Tue, 16 Jun 2020 07:18:36 +0000 (17:18 +1000)]
gallivm/img: refactor out the texel return type (v2)

v2:
refactor to just pass type as pointed out by Roland.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/nir: refactor image operations for indirect support.
Dave Airlie [Tue, 16 Jun 2020 02:49:30 +0000 (12:49 +1000)]
gallivm/nir: refactor image operations for indirect support.

This just refactors the image code, so that outdata is passed
explicitly, and refactors the internal handling of NONE formats.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/nir: support passing image index into image code.
Dave Airlie [Tue, 16 Jun 2020 02:47:25 +0000 (12:47 +1000)]
gallivm/nir: support passing image index into image code.

This doesn't do anything yet, just adds parsing support for it.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agollvmpipe: pass number of images into image soa create
Dave Airlie [Tue, 16 Jun 2020 02:45:26 +0000 (12:45 +1000)]
llvmpipe: pass number of images into image soa create

Just store this for now to use later with indexing

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agodraw: pass number of images to image soa create
Dave Airlie [Tue, 19 May 2020 01:55:38 +0000 (11:55 +1000)]
draw: pass number of images to image soa create

This is stored for now but will be used as part of indirect
image support

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agollvmpipe: enable ARB_gpu_shader5
Dave Airlie [Fri, 5 Jun 2020 04:48:45 +0000 (14:48 +1000)]
llvmpipe: enable ARB_gpu_shader5

This isn't fully free of bugs, but it's good to get CI working,
so fixing those bugs doesn't break anything.

The main buggy areas are missing indirect texture size,
and transform feedback geometry streams.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/sample: handle size unit offset
Dave Airlie [Mon, 15 Jun 2020 07:22:01 +0000 (17:22 +1000)]
gallivm/sample: handle size unit offset

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agollvmpipe/draw: wire up indirect offset
Dave Airlie [Mon, 15 Jun 2020 07:21:27 +0000 (17:21 +1000)]
llvmpipe/draw: wire up indirect offset

This bounds checks and adds to the llvm index.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/sample: pass indirect offset into texture/image units
Dave Airlie [Mon, 15 Jun 2020 07:00:20 +0000 (17:00 +1000)]
gallivm/sample: pass indirect offset into texture/image units

This isn't needed for the basic indirect code, but it is needed for
texture size/image size unfortunately. They could be done with a super
switch, but it seems simple to query them.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/nir: handle non-uniform texture offsets
Dave Airlie [Fri, 10 Apr 2020 04:13:44 +0000 (14:13 +1000)]
gallivm/nir: handle non-uniform texture offsets

The way we construt vertex/geom shaders means these can
diverge, so we have to just hammer it out manually,
there are likely optimisation opportuniities in here

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/nir: add texture unit indexing
Dave Airlie [Fri, 27 Mar 2020 04:49:37 +0000 (14:49 +1000)]
gallivm/nir: add texture unit indexing

This hooks up the index from NIR into the sampler code.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agollvmpipe: add support for indirect texture access.
Dave Airlie [Tue, 19 May 2020 02:18:52 +0000 (12:18 +1000)]
llvmpipe: add support for indirect texture access.

This hooks up the sampler switch statement generator
 to the llvmpipe sampler interface.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agodraw: add support for indirect texture access
Dave Airlie [Tue, 19 May 2020 02:18:20 +0000 (12:18 +1000)]
draw: add support for indirect texture access

This hooks up the switch statement generator to the draw code.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm: add indirect texture switch statement builder.
Dave Airlie [Tue, 19 May 2020 02:16:34 +0000 (12:16 +1000)]
gallivm: add indirect texture switch statement builder.

This adds the apis to add an indirect accessor for arrays
of textures, using an LLVM switch statement and per-texture
sampler functions.

It also adds the indexer to the sampler parameters

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agogallivm/sample: change texture function generator api
Dave Airlie [Tue, 19 May 2020 02:01:54 +0000 (12:01 +1000)]
gallivm/sample: change texture function generator api

This passes some more paramters in directly and changes how
the returns are done in order to reuse this function for
indirect texture support later.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agollvmpipe: pass number of samplers into llvm sampler code.
Dave Airlie [Tue, 19 May 2020 01:51:13 +0000 (11:51 +1000)]
llvmpipe: pass number of samplers into llvm sampler code.

This is to be used later for indirect texture access

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agodraw: pass nr_samplers into llvm sample state creation.
Dave Airlie [Tue, 19 May 2020 01:48:23 +0000 (11:48 +1000)]
draw: pass nr_samplers into llvm sample state creation.

This will be used later to handle indirect texture support.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3778>

18 months agonir: add missing break to nir_opt_access()
Timothy Arceri [Wed, 1 Jul 2020 08:56:09 +0000 (18:56 +1000)]
nir: add missing break to nir_opt_access()

Fixes: f2d0e48ddc74 ("glsl/nir: Add optimization pass for access flags")
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5714>

18 months agoegl: move fallthrough comment so gcc can see it
Timothy Arceri [Wed, 1 Jul 2020 06:48:43 +0000 (16:48 +1000)]
egl: move fallthrough comment so gcc can see it

Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5714>

18 months agoiris: add missing fallthrough comment
Timothy Arceri [Wed, 1 Jul 2020 06:41:07 +0000 (16:41 +1000)]
iris: add missing fallthrough comment

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

18 months agointel/compiler: add and fix up fallthrough comments for gcc warnings
Timothy Arceri [Wed, 1 Jul 2020 06:30:01 +0000 (16:30 +1000)]
intel/compiler: add and fix up fallthrough comments for gcc warnings

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

18 months agoanv: update fallthrough comment so gcc sees it
Timothy Arceri [Wed, 1 Jul 2020 06:24:59 +0000 (16:24 +1000)]
anv: update fallthrough comment so gcc sees it

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

18 months agogallivm: add missing break
Timothy Arceri [Wed, 1 Jul 2020 05:25:40 +0000 (15:25 +1000)]
gallivm: add missing break

Fixes: 26c5ae80f0b5 ("llvmpipe: enable ARB_shader_group_vote")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5714>

18 months agollvmpipe: add missing fallthrough comments
Timothy Arceri [Wed, 1 Jul 2020 05:24:41 +0000 (15:24 +1000)]
llvmpipe: add missing fallthrough comments

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

18 months agoi965: add and fix fallthrough comments
Timothy Arceri [Wed, 1 Jul 2020 05:18:02 +0000 (15:18 +1000)]
i965: add and fix fallthrough comments

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

18 months agointel/compiler: Don't emit no-op cr0 changes
Matt Turner [Fri, 19 Jun 2020 19:33:31 +0000 (12:33 -0700)]
intel/compiler: Don't emit no-op cr0 changes

If mask is 0, we're asking for no changes to cr0.

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

18 months agointel/compiler: Add assert that set bits are within mask
Matt Turner [Fri, 19 Jun 2020 19:32:44 +0000 (12:32 -0700)]
intel/compiler: Add assert that set bits are within mask

We generate bitfields of bits that we want to retain (mask) and bits
that we want to set (brw_mode) in the cr0 register, so the bits we want
to set should be in the set of bits we want to retain.

Also, remove the initialization of mask from
fs_visitor::emit_shader_float_controls_execution_mode since
brw_rnd_mode_from_nir initializes the mask parameter unconditionally.

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

18 months agogallium,util: undef ALIGN on FreeBSD to prevent name clash
Greg V [Thu, 23 Apr 2020 13:15:38 +0000 (16:15 +0300)]
gallium,util: undef ALIGN on FreeBSD to prevent name clash

Some rare headers like ipc/shm and pthread_np cause
machine/param.h to be included which defines a macro called ALIGN.

Signed-off-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3559>

18 months agoi965: Explicitly cast value to uint64_t
Emmanuel [Fri, 24 Jan 2020 22:48:06 +0000 (23:48 +0100)]
i965: Explicitly cast value to uint64_t

In FreeBSD x86 and aarch64 __u64 is typedef to unsigned long and
is the same size as unsigned long long.
Since we are explicitly specifying the format, cast the value
to the proper type.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Emmanuel <manu@FreeBSD.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3559>

18 months agoiris: Explicitly cast value to uint64_t
Emmanuel [Fri, 24 Jan 2020 22:45:40 +0000 (23:45 +0100)]
iris: Explicitly cast value to uint64_t

In FreeBSD x86 and aarch64 __u64 is typedef to unsigned long and
is the same size as unsigned long long.
Since we are explicitly specifying the format, cast the value
to the proper type.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Emmanuel <manu@FreeBSD.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3559>

18 months agomeson: Do not enable USE_ELF_TLS for FreeBSD
Emmanuel [Fri, 24 Jan 2020 21:31:47 +0000 (22:31 +0100)]
meson: Do not enable USE_ELF_TLS for FreeBSD

Compiling with this option result in too much TLS usage and FreeBSD
cannot handle that.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Signed-off-by: Emmanuel <manu@FreeBSD.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3559>

18 months agogitlab-ci: Do not create the "success" job when the test-docs job exists
Michel Dänzer [Mon, 22 Jun 2020 09:16:17 +0000 (11:16 +0200)]
gitlab-ci: Do not create the "success" job when the test-docs job exists

It's redundant in that case.

v2:
* Adapt to v2 of test-docs job rules.

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

18 months agogitlab-ci: Extend .ci-run-policy template for docs jobs
Michel Dänzer [Mon, 22 Jun 2020 09:21:06 +0000 (11:21 +0200)]
gitlab-ci: Extend .ci-run-policy template for docs jobs

Requires using rules: in the pages job as well, so it doesn't inherit
the rules from the template.

v2:
* Add comment explaining that cases not covered by explicit rules
  default to "when: never".

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

18 months agogitlab-ci: Use rules: instead of except:/only: for test-docs job
Michel Dänzer [Mon, 22 Jun 2020 09:13:05 +0000 (11:13 +0200)]
gitlab-ci: Use rules: instead of except:/only: for test-docs job

Only run the job automatically for Marge Bot, otherwise let it be
triggered manually.

v2:
* Never run this job for the main project, since it's only needed in
  pre-merge pipelines.
* Add comment explaining that cases not covered by explicit rules
  default to "when: never".

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

18 months agoci: move test-docs to container stage
Erik Faye-Lund [Mon, 22 Jun 2020 09:10:40 +0000 (11:10 +0200)]
ci: move test-docs to container stage

While we're at it, rename it to reflect that we're now also testing docs
here.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5469>

18 months agoci: move deploy-stage later in the pipeline
Erik Faye-Lund [Mon, 22 Jun 2020 09:10:34 +0000 (11:10 +0200)]
ci: move deploy-stage later in the pipeline

This makes it not clutter up the pipeline results page so much.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5469>

18 months agoci: test docs for non-master builds
Erik Faye-Lund [Mon, 22 Jun 2020 09:10:29 +0000 (11:10 +0200)]
ci: test docs for non-master builds

This ensures that we test on CI before merge-requests gets merged.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5469>

18 months agoci: only build docs if any docs changed
Erik Faye-Lund [Mon, 22 Jun 2020 09:10:24 +0000 (11:10 +0200)]
ci: only build docs if any docs changed

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5469>

18 months agoci: only build docs in the upstream-repo
Erik Faye-Lund [Mon, 22 Jun 2020 09:10:17 +0000 (11:10 +0200)]
ci: only build docs in the upstream-repo

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5469>

18 months agofreedreno/ir3: add support for INTERP_MODE_NOPERSPECTIVE
Jonathan Marek [Sun, 21 Jun 2020 19:10:49 +0000 (15:10 -0400)]
freedreno/ir3: add support for INTERP_MODE_NOPERSPECTIVE

Check the interp mode and use SYSTEM_VALUE_BARYCENTRIC_LINEAR_* instead
when it is INTERP_MODE_NOPERSPECTIVE.

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

18 months agoturnip: set missing bary sysvals
Jonathan Marek [Sun, 21 Jun 2020 03:03:53 +0000 (23:03 -0400)]
turnip: set missing bary sysvals

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

18 months agofreedreno/a6xx: set missing bary sysvals
Jonathan Marek [Sun, 21 Jun 2020 18:39:29 +0000 (14:39 -0400)]
freedreno/a6xx: set missing bary sysvals

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

18 months agofreedreno/a5xx: set missing bary sysvals
Jonathan Marek [Sun, 21 Jun 2020 18:38:21 +0000 (14:38 -0400)]
freedreno/a5xx: set missing bary sysvals

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

18 months agofreedreno/ir3: add generic get_barycentric()
Jonathan Marek [Sun, 21 Jun 2020 20:31:10 +0000 (16:31 -0400)]
freedreno/ir3: add generic get_barycentric()

This will be useful to support the missing barycentric sysvals.

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

18 months agofreedreno/a4xx: fake LINEAR_PIXEL varying support for u_blitter
Jonathan Marek [Sun, 28 Jun 2020 02:01:16 +0000 (22:01 -0400)]
freedreno/a4xx: fake LINEAR_PIXEL varying support for u_blitter

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

18 months agofreedreno/a3xx: support LINEAR_PIXEL/PERSP_CENTROID/LINEAR_CENTROID sysvals
Jonathan Marek [Sun, 21 Jun 2020 18:22:45 +0000 (14:22 -0400)]
freedreno/a3xx: support LINEAR_PIXEL/PERSP_CENTROID/LINEAR_CENTROID sysvals

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

18 months agofreedreno/registers: update varying-related registers
Jonathan Marek [Sun, 14 Jun 2020 04:12:05 +0000 (00:12 -0400)]
freedreno/registers: update varying-related registers

Note:

* a3xx change based on available register documentation
* a4xx guesses (RB_RENDER_CONTROL2 bits especially)
* a5xx change based on a6xx, these registers seem identical

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

18 months agogitlab-ci: Automatically run pipelines for Marge Bot pre-merge only
Michel Dänzer [Mon, 29 Jun 2020 09:33:13 +0000 (11:33 +0200)]
gitlab-ci: Automatically run pipelines for Marge Bot pre-merge only

Marge only merges an MR if the pipeline passed. Running the pipeline
again after merging is redundant.

v2:
* Add rule to ensure docker images are up to date in the main project
  registry (Eric Anholt)

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5680>

18 months agov3d/compiler: fix image size for 1D arrays
Iago Toral Quiroga [Tue, 30 Jun 2020 08:59:47 +0000 (10:59 +0200)]
v3d/compiler: fix image size for 1D arrays

Reviewed by: Alejandro Piñeiro <apinheiro@igalia.com>

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

18 months agost/mesa: do not clear NewDriverState for inactive states
Pierre-Eric Pelloux-Prayer [Thu, 25 Jun 2020 15:12:57 +0000 (17:12 +0200)]
st/mesa: do not clear NewDriverState for inactive states

Fixes: 085aa7f91e8 ("st/mesa: don't update atomic, SSBO, UBO and TBO states that have no effect")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2951
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5660>

18 months agogallium/docs: remove unused imgmath extension
Erik Faye-Lund [Tue, 30 Jun 2020 09:57:53 +0000 (11:57 +0200)]
gallium/docs: remove unused imgmath extension

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5691>

18 months agogallium/docs: remove non-existent static dir
Erik Faye-Lund [Tue, 30 Jun 2020 09:06:31 +0000 (11:06 +0200)]
gallium/docs: remove non-existent static dir

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5691>

18 months agogallium/docs: prefix exts dir with underscore
Erik Faye-Lund [Tue, 30 Jun 2020 10:09:31 +0000 (12:09 +0200)]
gallium/docs: prefix exts dir with underscore

It's generally considered good practice to use underscore-prefixes for
directories that contains non-doumentation files, so let's do this for
our custom extensions as well.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5691>

18 months agogallium/docs: use none for highlight_language
Erik Faye-Lund [Tue, 30 Jun 2020 10:06:03 +0000 (12:06 +0200)]
gallium/docs: use none for highlight_language

We have much more blocks that are of no particular language (mostly
custom ASM variants), so let's instead opt in if we want
syntax-highlighting.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5691>

18 months agogallium/docs: remove reference to non-existent label
Erik Faye-Lund [Tue, 30 Jun 2020 09:13:51 +0000 (11:13 +0200)]
gallium/docs: remove reference to non-existent label

This label was removed a long time ago, let's also remove the reference
to it.

Fixes: 3acd7a34ab0 ("st/vega: Remove.")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5691>

18 months agogallium/docs: fixup formatting of numbered lists
Erik Faye-Lund [Tue, 30 Jun 2020 09:09:20 +0000 (11:09 +0200)]
gallium/docs: fixup formatting of numbered lists

Fixes: 0caf74bbcdf ("gallium: add PIPE_CAP_FRAMEBUFFER_MSAA_CONSTRAINTS")
Fixes: 8632626c81a ("gallium: add pipe_resource::nr_storage_samples, and set it same as nr_samples")
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5691>

18 months agogallium/docs: update to recent sphinx
Erik Faye-Lund [Tue, 30 Jun 2020 09:05:42 +0000 (11:05 +0200)]
gallium/docs: update to recent sphinx

add_description_unit has been deprectated for a really long time, and was
finally removed (seemingly in Sphinx 2.0, but this doesn't seem to be
properly documented anywhere I can find), so we shouldn't be using this
any more.

Anyway, let's update the code.

Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5691>

18 months agodraw/llvm: fix big-endian mask adjusting
Dave Airlie [Tue, 30 Jun 2020 03:21:04 +0000 (13:21 +1000)]
draw/llvm: fix big-endian mask adjusting

This code was broken, but it worked by accident, as the
pad and the edgeflag were reversed, however when Roland
removed the cliptest field back in 2015, he stopped copying
the pad which actually stopped copy the edgeflag.

Fix the function to actually copy the edgeflag.

Fixes: 1b22815af624 ("draw: don't pretend have_clipdist is per-vertex")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5679>

18 months agomesa/get: fix enum16 big-endian getting.
Dave Airlie [Mon, 29 Jun 2020 19:04:19 +0000 (05:04 +1000)]
mesa/get: fix enum16 big-endian getting.

These values were getting casted up to 32-bit, but then extracted
via 16-bit pointer later. Just store via 16-bit.

Fixes a lot of piglit on s390

Fixes: f96a69f916ae ("mesa: replace GLenum with GLenum16 in common structures (v4)");
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5679>

18 months agollvmpipe: fix occlusion queries on big-endian.
Dave Airlie [Mon, 29 Jun 2020 05:57:14 +0000 (15:57 +1000)]
llvmpipe: fix occlusion queries on big-endian.

Casting to u8 arrays and picking the lowest byte is fairly LE specific
grab the other byte.

Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5679>

18 months agogallivm/nir: fix big-endian 64-bit splitting/merging.
Dave Airlie [Mon, 29 Jun 2020 04:59:20 +0000 (14:59 +1000)]
gallivm/nir: fix big-endian 64-bit splitting/merging.

The shuffles need to be swapped to do this properly on big-endian

Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5679>

18 months agoglsl: fix constant packing for 64-bit big endian.
Dave Airlie [Mon, 29 Jun 2020 03:26:56 +0000 (13:26 +1000)]
glsl: fix constant packing for 64-bit big endian.

In a piglit run on s390 a lot of double tests fail, explicitly
packing/shifting things rather than using memcpy seems to help

Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5679>

18 months agodocs: add a page explaining the GitLab CI and the Intel CI
Eric Engestrom [Mon, 7 Oct 2019 22:26:39 +0000 (23:26 +0100)]
docs: add a page explaining the GitLab CI and the Intel CI

This explains what they are, what they do and how to use them.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Clayton Craft <clayton.a.craft@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2250>

18 months agomesa/swrast: use logf2 instead of util_fast_log2
Dylan Baker [Thu, 30 Apr 2020 19:40:56 +0000 (12:40 -0700)]
mesa/swrast: use logf2 instead of util_fast_log2

The fast version is apparently not accurate enough. I wrote a very
simply test program that called logf2 and the old LOG2 function 100000
times. Across that the two functions had very similar run times, neither
appeared meaningfully faster, so the optimization of bringing back yet
another way to calculate log2f seems pointless.

Fixes: bd4e769515345a6b20562310334bc828c0bb6605
       ("replace LOG2 with util_fast_log2")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2856
Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5406>

18 months agoanv: disable i915_perf warning on non-Linux
Jan Beich [Thu, 21 May 2020 01:55:11 +0000 (01:55 +0000)]
anv: disable i915_perf warning on non-Linux

$ vkcube
INTEL-MESA: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

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

18 months agomeson: Revert commit overriding C++ standard with gnu++11 on ppc64el
Frédéric Bonnard [Thu, 7 May 2020 14:30:52 +0000 (16:30 +0200)]
meson: Revert commit overriding C++ standard with gnu++11 on ppc64el

Since a few versions, mesa now needs c++14 and compiling with gnu++11
on ppc64el fails.
Let's use the default standard and fix the collision of types between
c++ and altivec in a another patch.

Cc: mesa-stable
Signed-off-by: Frédéric Bonnard <frediz@debian.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4948>

18 months agoclover: Fix types collision between c++ and altivec
Frédéric Bonnard [Mon, 11 May 2020 13:57:20 +0000 (15:57 +0200)]
clover: Fix types collision between c++ and altivec

For that, we undefine bool, vector, pixel as advised by altivec.h in the
specific case that defines them.

Cc: mesa-stable
Signed-off-by: Frédéric Bonnard <frediz@debian.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4948>

18 months agonir: Propagate *2*16 conversions into vectors
Alyssa Rosenzweig [Mon, 11 May 2020 14:02:49 +0000 (10:02 -0400)]
nir: Propagate *2*16 conversions into vectors

If we have code like:

   ('f2f16', ('vec2', ('f2f32', 'a@16'), '#b@32'))

We would like to eliminate the conversions, but the existing rules can't
see into the the (heterogenous) vector. So instead of trying to
eliminate in one pass, we add opts to propagate the f2f16 into the
vector. Even if nothing further happens, this is often a win since then
the created vector is smaller (half2 instead of float2). Hence the above
gets transformed to

   ('vec2', ('f2f16', ('f2f32', 'a@16')), ('f2f16', '#b@32'))

Then the existing f2f16(f2f32) rule will kick in for the first component
and constant folding will for the second and we'll be left with

   ('vec2', 'a@16', '#b@16')

...eliminating all conversions.

v2: Predicate on !options->vectorize_vec2_16bit. As discussed, this
optimization helps greatly on true vector architectures (like Midgard)
but wreaks havoc on more modern SIMD-within-a-register architectures
(like Bifrost and modern AMD). So let's predicate on that.

v3: Extend for integers as well and add a comment explaining the
transforms.

Results on Midgard (unfortunately a true SIMD architecture):

total instructions in shared programs: 51359 -> 50963 (-0.77%)
instructions in affected programs: 4523 -> 4127 (-8.76%)
helped: 53
HURT: 0
helped stats (abs) min: 1 max: 86 x̄: 7.47 x̃: 6
helped stats (rel) min: 1.71% max: 28.00% x̄: 9.66% x̃: 7.34%
95% mean confidence interval for instructions value: -10.58 -4.36
95% mean confidence interval for instructions %-change: -11.45% -7.88%
Instructions are helped.

total bundles in shared programs: 25825 -> 25670 (-0.60%)
bundles in affected programs: 2057 -> 1902 (-7.54%)
helped: 53
HURT: 0
helped stats (abs) min: 1 max: 26 x̄: 2.92 x̃: 2
helped stats (rel) min: 2.86% max: 30.00% x̄: 8.64% x̃: 8.33%
95% mean confidence interval for bundles value: -3.93 -1.92
95% mean confidence interval for bundles %-change: -10.69% -6.59%
Bundles are helped.

total quadwords in shared programs: 41359 -> 41055 (-0.74%)
quadwords in affected programs: 3801 -> 3497 (-8.00%)
helped: 57
HURT: 0
helped stats (abs) min: 1 max: 57 x̄: 5.33 x̃: 4
helped stats (rel) min: 1.92% max: 21.05% x̄: 8.22% x̃: 6.67%
95% mean confidence interval for quadwords value: -7.35 -3.32
95% mean confidence interval for quadwords %-change: -9.54% -6.90%
Quadwords are helped.

total registers in shared programs: 3849 -> 3807 (-1.09%)
registers in affected programs: 167 -> 125 (-25.15%)
helped: 32
HURT: 1
helped stats (abs) min: 1 max: 3 x̄: 1.34 x̃: 1
helped stats (rel) min: 20.00% max: 50.00% x̄: 26.35% x̃: 20.00%
HURT stats (abs)   min: 1 max: 1 x̄: 1.00 x̃: 1
HURT stats (rel)   min: 16.67% max: 16.67% x̄: 16.67% x̃: 16.67%
95% mean confidence interval for registers value: -1.54 -1.00
95% mean confidence interval for registers %-change: -29.41% -20.69%
Registers are helped.

total threads in shared programs: 2471 -> 2520 (1.98%)
threads in affected programs: 49 -> 98 (100.00%)
helped: 25
HURT: 0
helped stats (abs) min: 1 max: 2 x̄: 1.96 x̃: 2
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
95% mean confidence interval for threads value: 1.88 2.04
95% mean confidence interval for threads %-change: 100.00% 100.00%
Threads are [helped].

total spills in shared programs: 168 -> 168 (0.00%)
spills in affected programs: 0 -> 0
helped: 0
HURT: 0

total fills in shared programs: 186 -> 186 (0.00%)
fills in affected programs: 0 -> 0
helped: 0
HURT: 0

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4999>

18 months agopanfrost: Do fine-grained flushing for occlusion query results
Icecream95 [Sun, 28 Jun 2020 08:48:36 +0000 (20:48 +1200)]
panfrost: Do fine-grained flushing for occlusion query results

This allows doing occlusion queries in one frame and getting the
results in the next frame without having to flush.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5676>

18 months agofreedreno/a4xx: fix *_NONE enum conversion
Shawn Guo [Tue, 30 Jun 2020 12:40:53 +0000 (20:40 +0800)]
freedreno/a4xx: fix *_NONE enum conversion

Commit e369b8931c67 ("freedreno: Use explicit *_NONE enum for undefined
formats") only partially converts ~0 to *_NONE enum.  It breaks texture
support, and glmark2 texture scene gives a black screen.

Adding the missing conversion of ~0 to *_NONE enum fixes the issue.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5693>

18 months agoCI: Re-enable Panfrost T860 jobs
Daniel Stone [Tue, 30 Jun 2020 13:49:16 +0000 (14:49 +0100)]
CI: Re-enable Panfrost T860 jobs

The lab is back online.

This reverts commit 34db50558d9a6dca89218f74c4418cdf0b0acbcb.

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

18 months agoradeonsi: add a debug option to enable NGG culling for tessellation
Marek Olšák [Wed, 17 Jun 2020 15:59:27 +0000 (11:59 -0400)]
radeonsi: add a debug option to enable NGG culling for tessellation

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

18 months agoradeonsi: don't try to enable NGG culling for GS
Marek Olšák [Wed, 17 Jun 2020 15:57:45 +0000 (11:57 -0400)]
radeonsi: don't try to enable NGG culling for GS

It doesn't do anything.

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

18 months agoradeonsi: always use Wave64 for HS/GS/VS shader stages (except GS fast launch)
Marek Olšák [Tue, 16 Jun 2020 18:53:03 +0000 (14:53 -0400)]
radeonsi: always use Wave64 for HS/GS/VS shader stages (except GS fast launch)

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

18 months agoradeonsi: always use Wave32 for GS fast launch, because Wave64 hangs
Marek Olšák [Wed, 17 Jun 2020 15:45:16 +0000 (11:45 -0400)]
radeonsi: always use Wave32 for GS fast launch, because Wave64 hangs

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

18 months agoradeonsi: fix NGG culling for Wave64
Marek Olšák [Tue, 16 Jun 2020 18:52:19 +0000 (14:52 -0400)]
radeonsi: fix NGG culling for Wave64

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

18 months agoac/gpu_info: fix num_physical_sgprs_per_simd for gfx10
Marek Olšák [Wed, 17 Jun 2020 14:55:33 +0000 (10:55 -0400)]
ac/gpu_info: fix num_physical_sgprs_per_simd for gfx10

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

18 months agoradeonsi: don't flush in fence_server_sync
Marek Olšák [Tue, 23 Jun 2020 03:54:59 +0000 (23:54 -0400)]
radeonsi: don't flush in fence_server_sync

This reverts commit 50b06cbc10dbca1dfee89b529ba9b564cc4ea6f6 and fixes
an Android performance regression.

Fixes: 50b06cbc10dbca1dfee89b529ba9b564cc4ea6f6 "radeonsi: fix fence_server_sync() holding up extra work v2"
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5602>

18 months agoCI: Temporarily disable Panfrost T860 jobs
Daniel Stone [Tue, 30 Jun 2020 09:34:51 +0000 (10:34 +0100)]
CI: Temporarily disable Panfrost T860 jobs

Phase two of our network reconfiguration is happening this afternoon, so
we need to drop our RK3399 out for a little while. (Part of this
reconfiguration is to shard our devices across networks and racks, so
losing one part of our infrastructure doesn't mean losing any particular
device type.)

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

18 months agoCI: Re-enable the Windows VS2019 build job
Daniel Stone [Thu, 18 Jun 2020 07:35:19 +0000 (08:35 +0100)]
CI: Re-enable the Windows VS2019 build job

Let's try this and see how it goes.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5689>

18 months agoCI: Correct build-directory path on Windows, and keep it
Daniel Stone [Thu, 18 Jun 2020 07:34:52 +0000 (08:34 +0100)]
CI: Correct build-directory path on Windows, and keep it

Build job artifacts capture Meson logs from _build, so we can analyse
what Meson did during configuration, as well as the full output of any
test jobs.

We were previously calling our build directory 'build', which meant it
wouldn't have been captured by the artifacts, and we were also deleting
it to make really sure there was no chance of logs getting captured
either.

Rename the build directory to '_build' to match the others, and don't
delete it either, so we can keep our configure/test logs.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5689>

18 months agoCI: Try shared libraries on Windows
Daniel Stone [Thu, 18 Jun 2020 07:31:50 +0000 (08:31 +0100)]
CI: Try shared libraries on Windows

This might make linking a bit less prone to OOM when trying to pull in
LLVM.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5689>

18 months agoCI: Enable assertions on Windows
Daniel Stone [Thu, 18 Jun 2020 07:31:31 +0000 (08:31 +0100)]
CI: Enable assertions on Windows

Getting assertion failures is helpful to have, even if we are doing a
release build.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5689>

18 months agoradeonsi: bump SI_NUM_SHADER_BUFFERS to 32
Pierre-Eric Pelloux-Prayer [Fri, 29 May 2020 09:59:50 +0000 (11:59 +0200)]
radeonsi: bump SI_NUM_SHADER_BUFFERS to 32

Some app uses more than 8 SSBOs (https://gitlab.freedesktop.org/mesa/mesa/-/issues/2946),
so increase SI_NUM_SHADER_BUFFERS to 32 (which allows 16 SSBOs).

Since we're now using a 64 bits number to track buffers, we could bump
SI_NUM_SHADER_BUFFERS to 48 but that would conflict with Mesa's
MAX_COMBINED_ATOMIC_BUFFERS limit (= 90).

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

18 months agoglsl: remove stale FIXME
Timothy Arceri [Fri, 26 Jun 2020 07:01:25 +0000 (17:01 +1000)]
glsl: remove stale FIXME

This is no longer an issue, was likely fixed years ago.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5657>

18 months agost/glsl_to_nir: disable st_nir_lower_builtin() when packing supported
Timothy Arceri [Fri, 26 Jun 2020 05:28:51 +0000 (15:28 +1000)]
st/glsl_to_nir: disable st_nir_lower_builtin() when packing supported

There is no need to lower builtins when uniform packing is
supported by the driver. Lowering is only required by other drivers
because we prepack builtin uniforms.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3140
CC: <stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5656>

18 months agoglsl: define gl_LightSource members in ARB_vertex_program order
Timothy Arceri [Fri, 26 Jun 2020 08:54:56 +0000 (18:54 +1000)]
glsl: define gl_LightSource members in ARB_vertex_program order

GLSL shares functionality with ARB_vertex_program but the GLSL
spec defines the gl_LightSource builtin with a member order that
is different from the packing expected in ARB_vertex_program.
This difference introduces a need for specialist lowering code
when handling builtin structs that is not required for normal
uniform structs due to member location mismatches.

Since gl_LightSource can't be redefined it shouldn't matter if
we add the members in the order listed in the spec, just so long
as we add them all. So here we rearrange the definition of the
glsl builtin to reflex our internal layout and that of
ARB_vertex_program. This required for the following patch.

CC: <stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5656>

18 months agomesa: add _mesa_program_state_value_size() helper
Timothy Arceri [Fri, 26 Jun 2020 09:56:11 +0000 (19:56 +1000)]
mesa: add _mesa_program_state_value_size() helper

This allows us to query the uniform size required to store the
state value.

CC: <stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5656>

18 months agomesa: remove _mesa prefix from static function
Timothy Arceri [Fri, 26 Jun 2020 05:37:26 +0000 (15:37 +1000)]
mesa: remove _mesa prefix from static function

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5656>

18 months agozink: set lower_uadd_carry in nir options
Mike Blumenkrantz [Fri, 26 Jun 2020 23:07:20 +0000 (19:07 -0400)]
zink: set lower_uadd_carry in nir options

fixes a bunch of mulextended piglit tests

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

18 months agoloader/dri3: Check for window destruction in dri3_wait_for_event_locked
Michel Dänzer [Fri, 5 Jun 2020 17:07:55 +0000 (19:07 +0200)]
loader/dri3: Check for window destruction in dri3_wait_for_event_locked

If the underlying X11 window gets destroyed, the event we're waiting
for may never be delivered, in which case xcb_wait_for_special_event
would hang indefinitely.

Solution:

1. Use xcb_poll_for_special_event to check if an event has arrived yet.
2. If not, Wait up to ~1s for XCB's file descriptor to become readable;
   if it does, go back to step 1.
3. If the file descriptor didn't become readable, make a round-trip to
   the X server to check that the window still exists. Go back to step
   1 if it does, otherwise bail.

Also add an early bail-out when it's known that the window was
destroyed.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/116
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5368>

18 months agoloader/dri3: Use dri3_wait_for_event_locked in loader_dri3_wait_for_msc
Michel Dänzer [Fri, 5 Jun 2020 16:22:31 +0000 (18:22 +0200)]
loader/dri3: Use dri3_wait_for_event_locked in loader_dri3_wait_for_msc

Before, if one thread ended up waiting in dri3_wait_for_event_locked
and another one in loader_dri3_wait_for_msc at the same time, one thread
could end up processing an event the other thread was waiting for, which
could result in the latter thread waiting longer than necessary
(possibly indefinitely).

Noticed by inspection.

v2:
* Drop xcb_flush call from loader_dri3_wait_for_msc in favour of the one
  in dri3_wait_for_event_locked (Kenneth Graunke)

Fixes: 7b0e8264dd21 "loader/dri3: Try to make sure we only process our
                     own NotifyMSC events"

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5368>

18 months agoloader/dri3: Add dri3_wait_for_event_locked full_sequence out parameter
Michel Dänzer [Fri, 5 Jun 2020 16:12:33 +0000 (18:12 +0200)]
loader/dri3: Add dri3_wait_for_event_locked full_sequence out parameter

Preparation for the next commit, no functional change intended.

Cc: mesa-stable
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5368>

18 months agov3d: Fix -Wmaybe-uninitialized compiler warning in the v33 code.
Eric Anholt [Fri, 26 Jun 2020 23:31:55 +0000 (16:31 -0700)]
v3d: Fix -Wmaybe-uninitialized compiler warning in the v33 code.

We weren't initializing the VCM bits in the !gs path, but v33 doesn't have
GS so we can just mark it unreachable.

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

18 months agov3d: Enable PIPE_CAP_TGSI_TEXCOORD.
Eric Anholt [Tue, 3 Dec 2019 22:48:39 +0000 (14:48 -0800)]
v3d: Enable PIPE_CAP_TGSI_TEXCOORD.

Dave wants to drop the !TEXCOORD path from NIR, and it's easy enough to
do.  Untested.

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

18 months agovc4: Enable PIPE_CAP_TGSI_TEXCOORD.
Eric Anholt [Tue, 3 Dec 2019 22:46:56 +0000 (14:46 -0800)]
vc4: Enable PIPE_CAP_TGSI_TEXCOORD.

Dave wants to drop the !TEXCOORD path from NIR, and it's easy enough to
do.  Untested.

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

18 months agogallium/util: Add a helper function for point sprite handling.
Eric Anholt [Tue, 3 Dec 2019 23:26:29 +0000 (15:26 -0800)]
gallium/util: Add a helper function for point sprite handling.

Many drivers will need to do the same thing here, so consolidate it.

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

18 months agoturnip: enable depthBiasClamp
Jonathan Marek [Mon, 29 Jun 2020 00:27:46 +0000 (20:27 -0400)]
turnip: enable depthBiasClamp

Passes at least dEQP-VK.dynamic_state.rs_state.depth_bias_clamp

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