platform/upstream/mesa.git
3 years agofreedreno: Remove FD_STAGE_* in favor of a "disable_all" flag.
Eric Anholt [Thu, 28 Jan 2021 21:29:15 +0000 (13:29 -0800)]
freedreno: Remove FD_STAGE_* in favor of a "disable_all" flag.

The only paths are "prepare queries for rendering" and "finish all
queries", everything else is handled by set_active_query_state().

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

3 years agofreedreno: Force updating active queries on batch reordering.
Eric Anholt [Thu, 28 Jan 2021 23:40:35 +0000 (15:40 -0800)]
freedreno: Force updating active queries on batch reordering.

The state of queries for the batch we've just switched to may not reflect
the current active flag, so make sure that we update at the start of the
next draw.

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

3 years agoci/virgl: Fix GLES31 testing on desktop GL.
Eric Anholt [Thu, 4 Feb 2021 00:38:04 +0000 (16:38 -0800)]
ci/virgl: Fix GLES31 testing on desktop GL.

The version overrides leaked into the virglrenderer server, breaking
compiling of all sorts of shaders.  We already get GLES3.1 when running
virgl on llvmpipe GL without doing any overrides.

Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8854>

3 years agofeatures: mark off GL 4.3 for zink
Mike Blumenkrantz [Wed, 10 Feb 2021 00:26:47 +0000 (19:26 -0500)]
features: mark off GL 4.3 for zink

\o/

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8941>

3 years agozink: GLSL 430
Mike Blumenkrantz [Wed, 12 Aug 2020 19:23:23 +0000 (15:23 -0400)]
zink: GLSL 430

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8941>

3 years agozink: enable compute
Mike Blumenkrantz [Wed, 12 Aug 2020 21:03:15 +0000 (17:03 -0400)]
zink: enable compute

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: export compute-specific shader/compute caps
Mike Blumenkrantz [Wed, 12 Aug 2020 21:02:42 +0000 (17:02 -0400)]
zink: export compute-specific shader/compute caps

this doesn't enable the compute cap itself, it just handles all the other
caps

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: add launch_grid pipe_context hook for compute handling
Mike Blumenkrantz [Wed, 12 Aug 2020 21:01:42 +0000 (17:01 -0400)]
zink: add launch_grid pipe_context hook for compute handling

we're reusing update_descriptors, so this is trivial

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: flush gfx/compute batches when the other pipeline needs resource sync
Mike Blumenkrantz [Wed, 12 Aug 2020 21:00:09 +0000 (17:00 -0400)]
zink: flush gfx/compute batches when the other pipeline needs resource sync

if compute or gfx use a resource which is already in use by the other pipeline,
we need to ensure tha we flush that pipeline now in order to have commands execute
in the expected order

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: handle descriptor set updates for compute operations
Mike Blumenkrantz [Wed, 12 Aug 2020 20:58:57 +0000 (16:58 -0400)]
zink: handle descriptor set updates for compute operations

this is almost identical, the difference being that we need to explicitly
use the compute batch/program in a few places

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: handle memory barriers for compute batch
Mike Blumenkrantz [Wed, 12 Aug 2020 20:56:35 +0000 (16:56 -0400)]
zink: handle memory barriers for compute batch

this is a bit different since the regular functions cycle the gfx batch
array, but the compute batch isn't in an array

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: setup compute batch and add handling
Mike Blumenkrantz [Wed, 12 Aug 2020 20:55:36 +0000 (16:55 -0400)]
zink: setup compute batch and add handling

this is separate to the gfx batch array,
so we need separate struct members in zink_context for it

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: break out descriptor updating into separate function
Mike Blumenkrantz [Wed, 12 Aug 2020 20:47:03 +0000 (16:47 -0400)]
zink: break out descriptor updating into separate function

this is a massive block of code that we need to reuse for compute shaders
because we absolutely don't want to be copying it around

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: add compute programs and pipelines
Mike Blumenkrantz [Wed, 12 Aug 2020 20:37:46 +0000 (16:37 -0400)]
zink: add compute programs and pipelines

these are similar to the gfx variants, but mostly smaller

some things are implemented as placeholders for now to make the code
similar to gfx programs/pipelines and thus easier to read/review

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: rename pipeline_cache_entry -> gfx_pipeline_cache_entry
Mike Blumenkrantz [Thu, 26 Nov 2020 17:50:07 +0000 (12:50 -0500)]
zink: rename pipeline_cache_entry -> gfx_pipeline_cache_entry

prep for compute pipelines

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: explicitly get shader stage from shader during binding setup in draw
Mike Blumenkrantz [Wed, 12 Aug 2020 20:25:12 +0000 (16:25 -0400)]
zink: explicitly get shader stage from shader during binding setup in draw

the iterator matches the shader stage currently, but this won't always be the
case

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: make allocate_descriptor_set() take more params instead of a gfx_program
Mike Blumenkrantz [Wed, 12 Aug 2020 20:21:25 +0000 (16:21 -0400)]
zink: make allocate_descriptor_set() take more params instead of a gfx_program

this makes the function reusable between different types of programs

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: refactor batch creation
Mike Blumenkrantz [Wed, 12 Aug 2020 20:15:59 +0000 (16:15 -0400)]
zink: refactor batch creation

by moving this into its own function, we can reuse it for creating a compute
batch, which will not be part of the gfx batch array

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: take a pipe_reference param in zink_batch_reference_program
Mike Blumenkrantz [Wed, 12 Aug 2020 20:11:02 +0000 (16:11 -0400)]
zink: take a pipe_reference param in zink_batch_reference_program

this lets us reuse the function for gfx and compute programs without much
churn, since in C we can use a pointer to the first member of a struct and
a pointer to the struct interchangeably

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: ignore compute batch when starting/ending batches
Mike Blumenkrantz [Wed, 12 Aug 2020 20:04:07 +0000 (16:04 -0400)]
zink: ignore compute batch when starting/ending batches

compute batches don't have queries

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: handle nir_intrinsic_memory_barrier_shared in ntv
Mike Blumenkrantz [Wed, 12 Aug 2020 20:03:31 +0000 (16:03 -0400)]
zink: handle nir_intrinsic_memory_barrier_shared in ntv

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: add handling for shared atomic ops in ntv
Mike Blumenkrantz [Wed, 12 Aug 2020 19:57:53 +0000 (15:57 -0400)]
zink: add handling for shared atomic ops in ntv

these are mostly the same as ssbo except they use the shared block variable

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: implement shared load/store nir ops in ntv
Mike Blumenkrantz [Wed, 12 Aug 2020 19:57:17 +0000 (15:57 -0400)]
zink: implement shared load/store nir ops in ntv

these access the data in the shared block variable at an offset

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: handle COMPUTE glsl variables
Mike Blumenkrantz [Wed, 12 Aug 2020 19:56:03 +0000 (15:56 -0400)]
zink: handle COMPUTE glsl variables

we can just use existing helpers for these

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: handle COMPUTE setup in ntv
Mike Blumenkrantz [Wed, 12 Aug 2020 19:54:48 +0000 (15:54 -0400)]
zink: handle COMPUTE setup in ntv

addressing mode, shared block, and execution modes all need to be handled
here

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: handle COMPUTE bindings in compiler/ntv
Mike Blumenkrantz [Wed, 12 Aug 2020 19:53:40 +0000 (15:53 -0400)]
zink: handle COMPUTE bindings in compiler/ntv

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: add spirv_builder function for emitting a 3word literal exec mode
Mike Blumenkrantz [Wed, 12 Aug 2020 18:24:57 +0000 (14:24 -0400)]
zink: add spirv_builder function for emitting a 3word literal exec mode

used by compute

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: wait on compute batch when necessary during transfer map
Mike Blumenkrantz [Tue, 11 Aug 2020 22:39:25 +0000 (18:39 -0400)]
zink: wait on compute batch when necessary during transfer map

now that we have the capability to wait on specific batches, we can
check whether we need to sync with the compute queue here before trying
to map resources

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: make zink_batch_reference_resource_rw return usage info
Mike Blumenkrantz [Tue, 11 Aug 2020 22:32:44 +0000 (18:32 -0400)]
zink: make zink_batch_reference_resource_rw return usage info

now this provides some info regarding which batches need to be flushed,
allowing gfx batches and compute batches to share resources

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: make get_resource_usage() public
Mike Blumenkrantz [Tue, 11 Aug 2020 22:36:15 +0000 (18:36 -0400)]
zink: make get_resource_usage() public

also cover compute batch id (still not yet used)

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: bump resource usage flags to allow 5 batches
Mike Blumenkrantz [Tue, 11 Aug 2020 22:35:15 +0000 (18:35 -0400)]
zink: bump resource usage flags to allow 5 batches

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agozink: add defines for compute batch and gfx batch count
Mike Blumenkrantz [Tue, 11 Aug 2020 22:31:43 +0000 (18:31 -0400)]
zink: add defines for compute batch and gfx batch count

this will be used for handling batch usage with compute

also bump some struct field sizes based on this

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>

3 years agointel/stub: plug some gaps in our ioctl faking
Lionel Landwerlin [Wed, 9 Dec 2020 15:57:25 +0000 (17:57 +0200)]
intel/stub: plug some gaps in our ioctl faking

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>

3 years agodrm-shim: report support for timeline semaphores
Lionel Landwerlin [Wed, 9 Dec 2020 15:56:52 +0000 (17:56 +0200)]
drm-shim: report support for timeline semaphores

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>

3 years agoanv: only signal wsi fence BO on last command buffer
Lionel Landwerlin [Sun, 6 Dec 2020 21:22:45 +0000 (23:22 +0200)]
anv: only signal wsi fence BO on last command buffer

I'm pretty sure this doesn't fix anything because the WSI code only
use a single VkSubmitInfo, but better be safe.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ccb7d606f1a293 ("anv: Use submit-time implicit sync instead of allocate-time")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>

3 years agoanv: break up internal queueing function
Lionel Landwerlin [Sun, 6 Dec 2020 21:11:32 +0000 (23:11 +0200)]
anv: break up internal queueing function

We want more control over batching things up when possible to minimize
the round trips to i915. This breaking up of one big internal function
into helpers will be useful later.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>

3 years agoanv: add a comment describing has_relocs field
Lionel Landwerlin [Sun, 6 Dec 2020 20:23:17 +0000 (22:23 +0200)]
anv: add a comment describing has_relocs field

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>

3 years agovulkan/lavapipe: add missing VKAPI_ATTR/CALL
Michel Zou [Sun, 18 Oct 2020 11:08:21 +0000 (13:08 +0200)]
vulkan/lavapipe: add missing VKAPI_ATTR/CALL

Acked-by: Jose Fonseca <jfonsec@vmware.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8823>

3 years agoaco: remove loop to flag loop blocks as WQM
Rhys Perry [Tue, 12 Jan 2021 16:18:47 +0000 (16:18 +0000)]
aco: remove loop to flag loop blocks as WQM

This is no longer necessary.

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

3 years agoaco: rewrite setting of Exact_Branch
Rhys Perry [Fri, 15 Jan 2021 16:00:35 +0000 (16:00 +0000)]
aco: rewrite setting of Exact_Branch

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

3 years agoaco: do not flag all blocks WQM to ensure we enter all nested loops in WQM
Rhys Perry [Tue, 12 Jan 2021 16:18:47 +0000 (16:18 +0000)]
aco: do not flag all blocks WQM to ensure we enter all nested loops in WQM

This should no longer be necessary since the mark_block_wqm() we use to
flag break conditions as WQM now adds block to the worklist. With them
added to the worklist, get_block_needs() will add WQM to block_needs.

Adding WQM to block_needs here without adding the block to the worklist
(like we do here) can cause issues because it does not ensure that the
predecessors' branches are in WQM (needed for it to be possible to
transition to WQM in the block). This happened in an Overwatch shader.

No fossil-db changes.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 661922f6ac9 ("aco: add block to worklist in mark_block_wqm()")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4066
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8446>

3 years agoci: Append build image tag to LAVA tag used for minio path
Michel Dänzer [Wed, 16 Dec 2020 11:17:46 +0000 (12:17 +0100)]
ci: Append build image tag to LAVA tag used for minio path

This automatically ensures the LAVA kernel / device-tree / rootfs files
are updated along with the build image, so any relevant changes in the
latter are reflected in the former.

v2:
* Use the same definition of DISTRIBUTION_TAG in .lava-test:amd64 as in
  kernel+rootfs_amd64
v3:
* Extend comment about $MESA_BASE_TAG in .lava-test:amd64 (Eric Anholt)

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

3 years agoci: Incorporate base image tag into dependent image tags
Michel Dänzer [Fri, 11 Dec 2020 18:00:40 +0000 (19:00 +0100)]
ci: Incorporate base image tag into dependent image tags

Using new .incorporate-base-tag+templates-commit & .set-image-base-tag
templates.

This automatically ensures dependent images get rebuilt along with the
base image, no more need to manually bump the dependent image tags.

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

3 years agoci: Add and use .set-image template to construct docker image name
Michel Dänzer [Wed, 9 Dec 2020 17:58:48 +0000 (18:58 +0100)]
ci: Add and use .set-image template to construct docker image name

Instead of open-coding everywhere.

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

3 years agoci: Move FDO_DISTRIBUTION_TAG assignment to template
Michel Dänzer [Wed, 9 Dec 2020 17:35:45 +0000 (18:35 +0100)]
ci: Move FDO_DISTRIBUTION_TAG assignment to template

This will be useful in more places later. Should have no functional
effect for now.

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

3 years agoci: Use MESA_IMAGE_TAG everywhere
Michel Dänzer [Wed, 9 Dec 2020 17:48:26 +0000 (18:48 +0100)]
ci: Use MESA_IMAGE_TAG everywhere

Instead of just "TAG".

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

3 years agoci: Use MESA_ namespace for image variables in Windows jobs
Michel Dänzer [Wed, 9 Dec 2020 17:42:15 +0000 (18:42 +0100)]
ci: Use MESA_ namespace for image variables in Windows jobs

Instead of a separate WINDOWS_ namespace.

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

3 years agoci: Set GALLIVM_PERF=nopt,no_filter_hacks for llvmpipe-gles2
Michel Dänzer [Sun, 10 May 2020 13:13:04 +0000 (15:13 +0200)]
ci: Set GALLIVM_PERF=nopt,no_filter_hacks for llvmpipe-gles2

Gives us 48 more passed tests, and possibly slightly shorter job times.

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4986>

3 years agoci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_gl
Michel Dänzer [Mon, 11 May 2020 09:24:29 +0000 (11:24 +0200)]
ci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_gl

Gives us 13 more passed tests.

(GALLIVM_PERF=nopt breaks some tests here)

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4986>

3 years agoci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_shader
Michel Dänzer [Mon, 11 May 2020 09:22:54 +0000 (11:22 +0200)]
ci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_shader

Gives us 1 more passed test.

(GALLIVM_PERF=nopt breaks some tests here)

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4986>

3 years agoci: Disable two radeonsi jobs
Tomeu Vizoso [Tue, 9 Feb 2021 13:38:40 +0000 (14:38 +0100)]
ci: Disable two radeonsi jobs

The machine to which these boards are connected to is having trouble
keeping up when the rootfs are expanded. This is causing jobs to time
out and fail.

So as a mitigation measure reduce the load by disabling two of these
jobs until the root problem is solved.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8930>

3 years agoradeon/vcn: enable dynamic dpb Tier2 support
Leo Liu [Mon, 8 Feb 2021 13:37:45 +0000 (08:37 -0500)]
radeon/vcn: enable dynamic dpb Tier2 support

On VCN3 with codec AV1 and VP9

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

3 years agoradeon/vcn: implement dynamic dpb Tier2 support
Leo Liu [Mon, 8 Feb 2021 13:31:52 +0000 (08:31 -0500)]
radeon/vcn: implement dynamic dpb Tier2 support

Fill up the t2 message buffers based on reference lists, so to
avoid unnecessary allocation of the buffers.

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

3 years agoradeon/vcn: add dynamic dpb Tier2 message buffer interface
Leo Liu [Mon, 8 Feb 2021 13:16:06 +0000 (08:16 -0500)]
radeon/vcn: add dynamic dpb Tier2 message buffer interface

Tier2 will dynamically manange the dpb buffers, so that can
save even more VRAMs

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

3 years agoradv: fix printing the debug option names
Samuel Pitoiset [Tue, 9 Feb 2021 10:55:22 +0000 (11:55 +0100)]
radv: fix printing the debug option names

radv_dump_enabled_options() doesn't like holes. While we are at it,
use ull everywhere.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8925>

3 years agoaco: optimize AC_FETCH_FORMAT_SNORM alpha adjust
Rhys Perry [Mon, 8 Feb 2021 15:37:02 +0000 (15:37 +0000)]
aco: optimize AC_FETCH_FORMAT_SNORM alpha adjust

This looks like it was copied from LLVM, which didn't have a fmax
intrinsic.

fossil-db (GFX8):
Totals from 43 (0.03% of 140385) affected shaders:
CodeSize: 49660 -> 49488 (-0.35%)
Instrs: 10434 -> 10348 (-0.82%)
Cycles: 41736 -> 41392 (-0.82%)
VMEM: 13793 -> 13719 (-0.54%)

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

3 years agoradv: Fix vram override with fully visible VRAM.
Bas Nieuwenhuizen [Mon, 8 Feb 2021 14:24:30 +0000 (15:24 +0100)]
radv: Fix vram override with fully visible VRAM.

Fixes: cf2eebdf4f1 ("radv,gallium: Add driconf option to reduce advertised VRAM size.")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8915>

3 years agogallium/tgsi-to-nir: Take property NUM_CLIPDIST_ENABLED into account
Gert Wollny [Sun, 31 Jan 2021 17:54:01 +0000 (18:54 +0100)]
gallium/tgsi-to-nir: Take property NUM_CLIPDIST_ENABLED into account

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
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/8919>

3 years agogallium/tgsi_to_nir: Handle SAMPLE_MASK output in FS
Gert Wollny [Sun, 31 Jan 2021 12:40:14 +0000 (13:40 +0100)]
gallium/tgsi_to_nir: Handle SAMPLE_MASK output in FS

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
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/8919>

3 years agoradv: use the global BO list from the winsys
Samuel Pitoiset [Thu, 4 Feb 2021 17:21:19 +0000 (18:21 +0100)]
radv: use the global BO list from the winsys

We had two different implements for the global BO list, one in RADV
and one in the winsys. This will also allow to make more BOs resident.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8868>

3 years agoradv/winsys: enable the global BO list unconditionally
Samuel Pitoiset [Thu, 4 Feb 2021 17:10:39 +0000 (18:10 +0100)]
radv/winsys: enable the global BO list unconditionally

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8868>

3 years agoradv/winsys: add the resident BOs to the list of BOs at submit time
Samuel Pitoiset [Thu, 4 Feb 2021 17:08:34 +0000 (18:08 +0100)]
radv/winsys: add the resident BOs to the list of BOs at submit time

The number of resident BOs is currently 0.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8868>

3 years agoradv/winsys: add buffer_make_resident() to the API
Samuel Pitoiset [Thu, 4 Feb 2021 17:03:02 +0000 (18:03 +0100)]
radv/winsys: add buffer_make_resident() to the API

To make a BO resident (or to evict one).

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8868>

3 years agoradv/winsys: set use_global_list to avoid adding a BO twice
Samuel Pitoiset [Mon, 8 Feb 2021 12:20:47 +0000 (13:20 +0100)]
radv/winsys: set use_global_list to avoid adding a BO twice

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8868>

3 years agoradv/winsys: move the debug_all_bos check outside of the add/del helpers
Samuel Pitoiset [Thu, 4 Feb 2021 16:58:08 +0000 (17:58 +0100)]
radv/winsys: move the debug_all_bos check outside of the add/del helpers

The add/del helpers will be used to implement the global BO list
directly in the winsys.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8868>

3 years agopan/bi: Don't check liveness unless the index is valid
Icecream95 [Tue, 9 Feb 2021 07:32:23 +0000 (20:32 +1300)]
pan/bi: Don't check liveness unless the index is valid

Otherwise we will read out-of-bounds when the index is ~0.

Fixes: b8f042c9bb0 ("pan/bi: Dead code eliminate per-channel")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8923>

3 years agov3dv: initialize render_fd at the top of physical_device_init
Arcady Goldmints-Orlov [Sun, 7 Feb 2021 18:12:23 +0000 (13:12 -0500)]
v3dv: initialize render_fd at the top of physical_device_init

This fixes an uninitialized variable warning.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8902>

3 years agogallium/u_tests: test no-op fragment shader instead of NULL fragment shader
Marek Olšák [Mon, 8 Feb 2021 00:12:19 +0000 (19:12 -0500)]
gallium/u_tests: test no-op fragment shader instead of NULL fragment shader

radeonsi stopped supporting NULL fragment shaders. This makes the test pass.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8906>

3 years agotgsi_to_nir: translate FBFETCH
Marek Olšák [Mon, 8 Feb 2021 00:08:51 +0000 (19:08 -0500)]
tgsi_to_nir: translate FBFETCH

Tested by u_tests.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8906>

3 years agotgsi_to_nir: translate SAMPLEID
Marek Olšák [Mon, 8 Feb 2021 00:08:27 +0000 (19:08 -0500)]
tgsi_to_nir: translate SAMPLEID

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8906>

3 years agost/mesa: do scissored clears on depth/stencil as well when supported
Ilia Mirkin [Sun, 7 Feb 2021 20:17:00 +0000 (15:17 -0500)]
st/mesa: do scissored clears on depth/stencil as well when supported

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tested-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8905>

3 years agozink: support nir_intrinsic_memory_barrier_buffer
Mike Blumenkrantz [Fri, 5 Feb 2021 13:20:20 +0000 (08:20 -0500)]
zink: support nir_intrinsic_memory_barrier_buffer

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

3 years agopanfrost: Fix clear color packing for 12-byte formats
Icecream95 [Wed, 3 Feb 2021 09:33:12 +0000 (22:33 +1300)]
panfrost: Fix clear color packing for 12-byte formats

Make the case for 6 bytes the same as for 8 while we're at it.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8886>

3 years agoradv: Update JSON generator if Windows
James Park [Mon, 8 Feb 2021 02:38:58 +0000 (18:38 -0800)]
radv: Update JSON generator if Windows

Use vulkan_radeon.dll, and apply current working directory.

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

3 years agonv50,nvc0: add scissored clear support
Ilia Mirkin [Sun, 7 Feb 2021 17:20:00 +0000 (12:20 -0500)]
nv50,nvc0: add scissored clear support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8901>

3 years agonv50: add PIPE_CAP_NIR_IMAGES_AS_DEREF to unsupported list
Ilia Mirkin [Sun, 7 Feb 2021 16:44:19 +0000 (11:44 -0500)]
nv50: add PIPE_CAP_NIR_IMAGES_AS_DEREF to unsupported list

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8901>

3 years agoradeonsi: don't use cp_dma prefetch on GFX6
Pierre-Eric Pelloux-Prayer [Mon, 8 Feb 2021 11:10:50 +0000 (12:10 +0100)]
radeonsi: don't use cp_dma prefetch on GFX6

It's not supported.

Fixes: 47587758f21 ("radeonsi: prefetch VB descriptors right after uploading")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4211
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8914>

3 years agospirv: Allow variable pointers pointing to an array of blocks
Caio Marcelo de Oliveira Filho [Thu, 4 Feb 2021 04:58:31 +0000 (20:58 -0800)]
spirv: Allow variable pointers pointing to an array of blocks

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: mesa-stable
Tested-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8864>

3 years agoci: Move out expect files from .gitlab-ci
Tomeu Vizoso [Wed, 27 Jan 2021 15:36:14 +0000 (16:36 +0100)]
ci: Move out expect files from .gitlab-ci

This way, when such a file is modified only the affected driver gets
tested.

It also helps to declutter the .gitlab-ci directory.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Rohan Garg <rohan.garg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8757>

3 years agoci: Move container files into their own dir
Tomeu Vizoso [Wed, 27 Jan 2021 15:38:01 +0000 (16:38 +0100)]
ci: Move container files into their own dir

To be more consistent and to declutter the .gitlab-ci dir.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Eric Anholt <eric@anholt.net>
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8757>

3 years agoci: Fix selection of linker in Android builds
Tomeu Vizoso [Thu, 28 Jan 2021 07:27:06 +0000 (08:27 +0100)]
ci: Fix selection of linker in Android builds

Otherwise, Clang will error out when it doesn't link:

Compiler stderr:
 clang: error: argument unused during compilation: '-fuse-ld=lld' [-Werror,-Wunused-command-line-argument]

When that happens when Meson is checking for the presence of macros in
sys/sysmacros.h, that file won't be included resulting in the following
errors:

ld.lld: error: undefined symbol: makedev
ld.lld: error: undefined symbol: major
ld.lld: error: undefined symbol: minor

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Acked-by: Eric Anholt <eric@anholt.net>
Gitlab: #4137
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8757>

3 years agopan/bi: Add nosched debug option
Alyssa Rosenzweig [Wed, 20 Jan 2021 22:36:03 +0000 (17:36 -0500)]
pan/bi: Add nosched debug option

Forces a trivial schedule to replicate the old behaviour (for debugging
or benchmarking). Actually the new scheduler is still used, just highly
constrained; the net result should still do what's expected.

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

3 years agopan/bi: Remove older cube map lowering
Alyssa Rosenzweig [Wed, 6 Jan 2021 17:57:56 +0000 (12:57 -0500)]
pan/bi: Remove older cube map lowering

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

3 years agopan/bi: Remove old FAU assignment code
Alyssa Rosenzweig [Fri, 5 Feb 2021 23:13:49 +0000 (18:13 -0500)]
pan/bi: Remove old FAU assignment code

Replaced by the scheduler.

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

3 years agopan/bi: Switch to new scheduler
Alyssa Rosenzweig [Wed, 6 Jan 2021 20:02:28 +0000 (15:02 -0500)]
pan/bi: Switch to new scheduler

Delete the old.

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

3 years agopan/bi: Schedule blocks
Alyssa Rosenzweig [Wed, 6 Jan 2021 19:59:56 +0000 (14:59 -0500)]
pan/bi: Schedule blocks

Replicate the pattern, greedily select clauses until we run out of
instructions.

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

3 years agopan/bi: Add constant modifier handling
Alyssa Rosenzweig [Sat, 6 Feb 2021 00:58:17 +0000 (19:58 -0500)]
pan/bi: Add constant modifier handling

Once we've merged the clauses' constants, we need to....

1. Swap where necessary so non-pcrel constants are correctly encoded.
2. Swap where necessary so pcrel constants are in canonical positions.
3. Force M1 values for pcrel constants and final single constants.

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

3 years agopan/bi: Add constant merging routines
Alyssa Rosenzweig [Sat, 6 Feb 2021 00:54:31 +0000 (19:54 -0500)]
pan/bi: Add constant merging routines

These work as you would expect: first handling paired constants
(swapping to a canonical form to deduplicate), then handling unpaired
constants (packing together in a canonical form). Most of the added
complexity is from pcrel handling, but we impose strict invariants on
pcrel (no more than one PC-relative constant per clause, only M1=4 mode)
without which the algorithm would be even uglier.

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

3 years agopan/bi: Add constant state constructor
Alyssa Rosenzweig [Sat, 6 Feb 2021 00:53:49 +0000 (19:53 -0500)]
pan/bi: Add constant state constructor

Based on the tuple state's constants, satisfying the pcrel invariant we
impose.

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

3 years agopan/bi: Add constant to passthrough rewrite
Alyssa Rosenzweig [Sat, 6 Feb 2021 00:53:09 +0000 (19:53 -0500)]
pan/bi: Add constant to passthrough rewrite

Mimicks the one previously done at pack time, but designed for schedule
time instead.

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

3 years agopan/bi: Add trivial rewrite helpers
Alyssa Rosenzweig [Sat, 6 Feb 2021 00:52:18 +0000 (19:52 -0500)]
pan/bi: Add trivial rewrite helpers

We need to do certain rewrites during scheduling before RA runs in order
to satsify scheduler post-conditions.

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

3 years agopan/bi: Derive M0 from pcrel_idx while packing
Alyssa Rosenzweig [Fri, 5 Feb 2021 23:17:06 +0000 (18:17 -0500)]
pan/bi: Derive M0 from pcrel_idx while packing

Assumes the usual M1=4 mode.

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

3 years agopan/bi: Add pcrel_idx to bi_clause
Alyssa Rosenzweig [Fri, 5 Feb 2021 23:16:45 +0000 (18:16 -0500)]
pan/bi: Add pcrel_idx to bi_clause

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

3 years agopan/bi: Move bi_constant_field to bifrost.h
Alyssa Rosenzweig [Fri, 5 Feb 2021 23:12:59 +0000 (18:12 -0500)]
pan/bi: Move bi_constant_field to bifrost.h

It's a hardware invariant, and useful for the scheduler (not just
packing).

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

3 years agopan/bi: Add bi_foreach_instr_and_src_in_tuple
Alyssa Rosenzweig [Fri, 5 Feb 2021 21:36:05 +0000 (16:36 -0500)]
pan/bi: Add bi_foreach_instr_and_src_in_tuple

Rather specialized but keeps down obnoxious indentation in scheduler
passes.

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

3 years agopan/bi: Extract bi_ec0_packed helper
Alyssa Rosenzweig [Fri, 8 Jan 2021 22:49:25 +0000 (17:49 -0500)]
pan/bi: Extract bi_ec0_packed helper

Useful for scheduling decisions as well as packing.

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

3 years agopan/bi: Add passthrough register rewriting helper
Alyssa Rosenzweig [Wed, 6 Jan 2021 19:57:36 +0000 (14:57 -0500)]
pan/bi: Add passthrough register rewriting helper

Passthroughs are _required_ for correct scheduling, so we have to handle
this now. The legitimacy of using passthroughs is justified by the
constraint checks and verified with asserts at pack time.

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

3 years agopan/bi: Destructively schedule a single instruction
Alyssa Rosenzweig [Wed, 6 Jan 2021 19:56:47 +0000 (14:56 -0500)]
pan/bi: Destructively schedule a single instruction

Wrapper to select the best legal instruction, pop it off the worklist,
update the clause/tuple states, and return it.

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

3 years agopan/bi: Choose instructions to schedule
Alyssa Rosenzweig [Wed, 6 Jan 2021 19:55:50 +0000 (14:55 -0500)]
pan/bi: Choose instructions to schedule

In the future we'll want a heuristic minimizing register pressure but
for in-order this will suffice.

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

3 years agopan/bi: Add bi_instr_schedulable predicate
Alyssa Rosenzweig [Wed, 6 Jan 2021 19:55:02 +0000 (14:55 -0500)]
pan/bi: Add bi_instr_schedulable predicate

Using the previously defined checks for architectural scheduling
constraints, define one top-level predicate to check if an instruction
on the worklist is ready for scheduling.

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