Commit Graph

134782 Commits

Author SHA1 Message Date
Mike Blumenkrantz cb80609bb0 zink: GLSL 430
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8941>
2021-02-09 19:25:53 -05:00
Mike Blumenkrantz 7909c642b1 zink: enable compute
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz c5cf5ad6f0 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>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz a2771967cb 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>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz ce6d08a0e7 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>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz dac99517ff 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>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz e20a43ec35 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>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz e3633ed12b 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>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz fa555772b9 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>
2021-02-10 00:19:39 +00:00
Mike Blumenkrantz b2247a3724 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 6c50b12b9e 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 79613650b3 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 184d773d0f 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz c9aee1165b 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz dcab2ca6b1 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz f32891b159 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 8f6ffc5543 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz d2b6e10882 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz deff4c220b 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 36cdcbe092 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 2d65c7cc0a 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz d9122c0417 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz a5ff286992 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 813c361fe0 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 261058f277 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz e196c471a4 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 079fae8822 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>
2021-02-10 00:19:38 +00:00
Mike Blumenkrantz 36ee845cd4 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>
2021-02-10 00:19:38 +00:00
Lionel Landwerlin 6c489dfefc 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>
2021-02-09 21:08:52 +00:00
Lionel Landwerlin c4c642a7b4 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>
2021-02-09 21:08:52 +00:00
Lionel Landwerlin 64cb03a52d 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: ccb7d606f1 ("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>
2021-02-09 21:08:52 +00:00
Lionel Landwerlin 8297a9a429 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>
2021-02-09 21:08:52 +00:00
Lionel Landwerlin e93344288b 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>
2021-02-09 21:08:52 +00:00
Michel Zou 2ef3dca476 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>
2021-02-09 19:21:03 +00:00
Rhys Perry e2608312d3 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>
2021-02-09 17:52:17 +00:00
Rhys Perry ed020008b5 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>
2021-02-09 17:52:17 +00:00
Rhys Perry f0074a6f05 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: 661922f6ac ("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>
2021-02-09 17:52:17 +00:00
Michel Dänzer 9f9441c231 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>
2021-02-09 17:28:37 +00:00
Michel Dänzer 7357bb6bb6 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>
2021-02-09 17:28:37 +00:00
Michel Dänzer 7c3337d0bf 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>
2021-02-09 17:28:37 +00:00
Michel Dänzer 9bdbbf972d 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>
2021-02-09 17:28:37 +00:00
Michel Dänzer dfdfebc8cb 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>
2021-02-09 17:28:37 +00:00
Michel Dänzer ab7e1dff0b 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>
2021-02-09 17:28:37 +00:00
Michel Dänzer 26d2ffeb20 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>
2021-02-09 16:44:08 +00:00
Michel Dänzer 6e53e9df02 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>
2021-02-09 16:44:08 +00:00
Michel Dänzer a8061d0384 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>
2021-02-09 16:44:08 +00:00
Tomeu Vizoso 339817f2e7 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>
2021-02-09 14:48:46 +00:00
Leo Liu e4decf6f39 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>
2021-02-09 08:39:42 -05:00
Leo Liu c7a481872e 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>
2021-02-09 08:39:42 -05:00
Leo Liu 905c103209 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>
2021-02-09 08:39:42 -05:00