platform/upstream/mesa.git
3 years agozink: add VK_STRUCTURE_TYPE_WSI_MEMORY_ALLOCATE_INFO_MESA for WSI allocations
Iago Toral Quiroga [Fri, 30 Oct 2020 09:44:17 +0000 (10:44 +0100)]
zink: add VK_STRUCTURE_TYPE_WSI_MEMORY_ALLOCATE_INFO_MESA for WSI allocations

Since Zink doesn't use swapchains to create presentable images, drivers
lose the capacity to identify memory allocations for them, which is a problem
when the underlying platform has special requirements for these, such as
needing to allocate them on a particular device. Including this struct in the
pNext chain, which is the same thing that the Mesa Vulkan WSI code does when
allocating memory for swapchain images, gives drivers a chance to identify
and handle these memory allocations properly.

v2: follow Zink's conventions for pNext chains (Mike)
v3: add scanout parameter for VkImage creation (Daniel)
v4: don't add a dependency on vulkan util (Erik)
v5: include vulkan directory for Zink builds

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> (v2)
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7378>

3 years agoetnaviv: move etna_destroy_shader(..) to generic location
Christian Gmeiner [Fri, 30 Oct 2020 18:31:54 +0000 (19:31 +0100)]
etnaviv: move etna_destroy_shader(..) to generic location

Before this change we had two identical etna_destroy_shader
functions - one for tgsi and one for nir.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7397>

3 years agoetnaviv: move etna_dump_shader(..) to generic location
Christian Gmeiner [Fri, 30 Oct 2020 18:26:00 +0000 (19:26 +0100)]
etnaviv: move etna_dump_shader(..) to generic location

Before this change we had two identical etna_dump_shader
functions - one for tgsi and one for nir.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7397>

3 years agoetnaviv: convert from tgsi semantic/index to varying-slot
Christian Gmeiner [Fri, 30 Oct 2020 18:19:31 +0000 (19:19 +0100)]
etnaviv: convert from tgsi semantic/index to varying-slot

Prep work to unify some tgsi and nir compiler functions.
No deqp and piglit regressions.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7397>

3 years agonir: make tgsi_varying_semantic_to_slot(..) public
Christian Gmeiner [Mon, 2 Nov 2020 12:12:11 +0000 (13:12 +0100)]
nir: make tgsi_varying_semantic_to_slot(..) public

I want to use this function for etnaviv's TGSI compiler.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7397>

3 years agoamd/llvm,aco: Replace VLA with alloca
James Park [Tue, 11 Aug 2020 04:00:51 +0000 (21:00 -0700)]
amd/llvm,aco: Replace VLA with alloca

MSVC will never support VLA, so use alloca instead.

Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7157>

3 years agozink: require Vulkan timestamp queries for time query caps
Iago Toral Quiroga [Thu, 29 Oct 2020 10:54:28 +0000 (11:54 +0100)]
zink: require Vulkan timestamp queries for time query caps

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7374>

3 years agotgsi: Initialize tgsi_declaration_dimension padding.
Vinson Lee [Sat, 24 Oct 2020 00:51:47 +0000 (17:51 -0700)]
tgsi: Initialize tgsi_declaration_dimension padding.

Silence this Coverity defect.

Uninitialized scalar variable (UNINIT)
uninit_use: Using uninitialized value dim. Field dim.Padding is uninitialized.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7300>

3 years agogallium: Remove duplicate resource variable.
Vinson Lee [Tue, 27 Oct 2020 02:55:07 +0000 (19:55 -0700)]
gallium: Remove duplicate resource variable.

Fix defect reported by Coverity Scan.

Evaluation order violation (EVALUATION_ORDER)
write_write_typo: In resource = resource =
ntt_ureg_src_indirect(c, ureg_src_register(TGSI_FILE_IMAGE, 0U),
instr->src[0]), resource is written twice with the same value.

Fixes: 34cc6a804ec9 ("gallium: Add a nir-to-TGSI pass.")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7326>

3 years agonir/validate: Explain why we don't use nir_foreach_block
Jason Ekstrand [Mon, 2 Nov 2020 20:28:01 +0000 (14:28 -0600)]
nir/validate: Explain why we don't use nir_foreach_block

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7409>

3 years agozink: always reset query pools on next query begin
Mike Blumenkrantz [Thu, 10 Sep 2020 20:07:45 +0000 (16:07 -0400)]
zink: always reset query pools on next query begin

this ensures we pull in any flushes that are about to happen if we're
ending the query during a batch flush, which helps us roll over our pending
results

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

3 years agozink: always use query->type for starting/stopping xfb queries
Mike Blumenkrantz [Thu, 20 Aug 2020 14:26:57 +0000 (10:26 -0400)]
zink: always use query->type for starting/stopping xfb queries

we're going to be seeing some overlap here

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

3 years agozink: rework query overflow handling
Mike Blumenkrantz [Tue, 18 Aug 2020 13:07:37 +0000 (09:07 -0400)]
zink: rework query overflow handling

this adds a query field to denote the last point at which a query was api started,
which is then used every time we call in to get_query_result as the starting point

this is important when we want to be able to return the same result set multiple
times

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

3 years agozink: fixup gs/xfb tracking for primitives generated queries
Mike Blumenkrantz [Mon, 17 Aug 2020 17:53:31 +0000 (13:53 -0400)]
zink: fixup gs/xfb tracking for primitives generated queries

need to index by query id here to ensure correct usage

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

3 years agozink: store batch id onto query object at time of start
Mike Blumenkrantz [Mon, 17 Aug 2020 14:58:08 +0000 (10:58 -0400)]
zink: store batch id onto query object at time of start

this is useful for knowing immediately whether a query has results available

for time queries, this ends up being end_query() since that's when the timestamp
is written

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

3 years agozink: also create an xfb query for every primitives generated query
Mike Blumenkrantz [Thu, 30 Jul 2020 18:12:04 +0000 (14:12 -0400)]
zink: also create an xfb query for every primitives generated query

this query behaves differently when xfb is activated, specifically with
regard to vertex streams. it's super clunky, but we need to actually run
both queries and use results based on whether xfb was active during the
query

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

3 years agozink: more correctly handle PIPE_QUERY_PRIMITIVES_GENERATED queries
Mike Blumenkrantz [Tue, 14 Jul 2020 20:11:18 +0000 (16:11 -0400)]
zink: more correctly handle PIPE_QUERY_PRIMITIVES_GENERATED queries

in normal operation we want to be using INPUT_ASSEMBLY_PRIMITIVES_BIT,
but then when we break out the geometry shaders we actually want to
be using GEOMETRY_SHADER_PRIMITIVES_BIT, which means we need to track
whether a query has a gs active for draws

to do this, we keep a list of all these queries with this type and
iterate over it every draw to flag the gs state of the query that's
being drawn to. this works because our ring buffer of batches will
always wait on a fence after a full cycle, meaning there can only ever
be 4 queries with outstanding results

Fixes: e40a77ea5d0 ("zink: use right vulkan type for GL_PRIMITIVES_GENERATED queries")

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

3 years agozink: deduplicate some query result code
Mike Blumenkrantz [Tue, 14 Jul 2020 17:34:09 +0000 (13:34 -0400)]
zink: deduplicate some query result code

no functional changes, just a small simplification

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

3 years agolavapipe: use resource get param.
Dave Airlie [Mon, 7 Sep 2020 23:02:15 +0000 (09:02 +1000)]
lavapipe: use resource get param.

This uses the resource get param to get proper values for image
subresource layouts.

Fixes:
dEQP-VK.image.subresource_layout*

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

3 years agollvmpipe: add resource get param support.
Dave Airlie [Mon, 7 Sep 2020 23:01:45 +0000 (09:01 +1000)]
llvmpipe: add resource get param support.

This implements this resource get param callback and uses it
to return image information for lavapipe.

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

3 years agogallium: add a layer stride pipe resource parameter.
Dave Airlie [Mon, 7 Sep 2020 23:01:19 +0000 (09:01 +1000)]
gallium: add a layer stride pipe resource parameter.

This will be used by llvmpipe and lavapipe

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

3 years agogallium: add a level parameter to resource parameter get
Dave Airlie [Mon, 7 Sep 2020 23:00:07 +0000 (09:00 +1000)]
gallium: add a level parameter to resource parameter get

For lavapipe interface to llvmpipe there is a need to retrieve per-level
info, so this seems like the best interface to use for it.

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

3 years agozink: call the reset callback not only during a status check
Hoe Hao Cheng [Mon, 2 Nov 2020 17:05:28 +0000 (01:05 +0800)]
zink: call the reset callback not only during a status check

Fixes: 95b9fc41 ("zink: implement pipe_device_reset_callback")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7404>

3 years agoi965: remove prototypes of not-existing functions
Marcin Ślusarz [Wed, 28 Oct 2020 19:19:01 +0000 (20:19 +0100)]
i965: remove prototypes of not-existing functions

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7353>

3 years agointel: remove dead code
Marcin Ślusarz [Wed, 28 Oct 2020 19:17:41 +0000 (20:17 +0100)]
intel: remove dead code

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7353>

3 years agoanv: always annotate memory returned from anv_gem_mmap
Marcin Ślusarz [Wed, 21 Oct 2020 15:51:22 +0000 (17:51 +0200)]
anv: always annotate memory returned from anv_gem_mmap

anv_bo_pool_alloc expects that the memory returned by and_gem_mmap
was annotated using VALGRIND_MALLOCLIKE_BLOCK, but anv_gem_mmap_offset
didn't do that. Move annotation from anv_gem_mmap_legacy to common
code.

Fixes: 4abf0837cdb ("anv: Add support for new MMAP_OFFSET ioctl.")

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7381>

3 years agoturnip: rework android gralloc path so it doesn't call tu_image_create
Jonathan Marek [Wed, 30 Sep 2020 01:27:50 +0000 (21:27 -0400)]
turnip: rework android gralloc path so it doesn't call tu_image_create

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

3 years agoos: Fix open result check.
Vinson Lee [Tue, 27 Oct 2020 23:21:11 +0000 (16:21 -0700)]
os: Fix open result check.

Fix defect reported by Coverity Scan.

Argument cannot be negative (NEGATIVE_RETURNS)
negative_returns: f is passed to a parameter that cannot be negative.

CID: 1364709
Fixes: 13fa0513569d ("auxiliary/os: add new os_get_command_line() function")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7344>

3 years agoiris/bufmgr: Handle NULL bufmgr in iris_bufmgr_get_for_fd
Michel Dänzer [Wed, 28 Oct 2020 10:56:27 +0000 (11:56 +0100)]
iris/bufmgr: Handle NULL bufmgr in iris_bufmgr_get_for_fd

iris_bufmgr_create can return NULL, in which case we'd crash in
list_addtail.

Reported by Coverity/clang (for i965, but iris code looks the same).

Fixes: 7557f1605968 ("iris: share buffer managers accross screens")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7335>

3 years agoi965/bufmgr: Handle NULL bufmgr in brw_bufmgr_get_for_fd
Michel Dänzer [Tue, 27 Oct 2020 10:40:05 +0000 (11:40 +0100)]
i965/bufmgr: Handle NULL bufmgr in brw_bufmgr_get_for_fd

brw_bufmgr_create can return NULL, in which case we'd crash in
list_addtail.

Reported by Coverity/clang.

Fixes: 4094558e8643 ("i965: share buffer managers across screens")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7335>

3 years agofreedreno: Use freedreno_dev_info
Connor Abbott [Thu, 29 Oct 2020 10:08:30 +0000 (11:08 +0100)]
freedreno: Use freedreno_dev_info

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

3 years agotu: Use freedreno_dev_info
Connor Abbott [Thu, 29 Oct 2020 10:08:08 +0000 (11:08 +0100)]
tu: Use freedreno_dev_info

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

3 years agofreedreno: Introduce common device info struct
Connor Abbott [Thu, 29 Oct 2020 10:04:22 +0000 (11:04 +0100)]
freedreno: Introduce common device info struct

This will collect all the various alignments, sizes, and magic values
and set them appropriately, replacing the various pieces scattered
throughout the drivers.

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

3 years agonir/large_constants: only search for constant duplicates
Yevhenii Kolesnikov [Wed, 28 Oct 2020 14:56:19 +0000 (16:56 +0200)]
nir/large_constants: only search for constant duplicates

Fixes: b6d47535684 ("nir/large_constants: De-duplicate constants")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3706
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7350>

3 years agonir: Stabilize compact_components sort
James Park [Sun, 1 Nov 2020 23:34:28 +0000 (15:34 -0800)]
nir: Stabilize compact_components sort

Incorporate location_frac into qsort comparison. qsort is not required
to be stable, and MSVC implementation is not.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7399>

3 years agodocs/features: add Vulkan 1.2
Rhys Perry [Mon, 10 Aug 2020 12:31:29 +0000 (13:31 +0100)]
docs/features: add Vulkan 1.2

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6258>

3 years agodocs/features: update unpromoted Vulkan extensions
Rhys Perry [Mon, 10 Aug 2020 12:20:40 +0000 (13:20 +0100)]
docs/features: update unpromoted Vulkan extensions

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6258>

3 years agonir/lower_returns: Append missing phis' sources after "break" insertion
Danylo Piliaiev [Tue, 4 Aug 2020 15:12:47 +0000 (18:12 +0300)]
nir/lower_returns: Append missing phis' sources after "break" insertion

After we lowered `return` into `break` - the control flow is changed and
the block with this change has a new successor, which means that in this
new successor phis should have additional source.

Since the instructions that use phis in the successor are predicated -
it's ok for a new phi source to be undef.

If `return` is lowered in a nested loop, `break` is inserted in the outer
loops, so all new blocks with break require the same changes to phis
described above.

Examples of NIR before lowering:

  block block_0:
  loop {
     block block_1:
     if ssa_2 {
       block block_2:
       return
       // succs: block_6
     } else {
       block block_2:
       break;
       // succs: block_5
     }
     block block_4:
  }
  block block_5:
  // preds: block_3
  vec1 32 ssa_4 = phi block_3: ssa_1
  // succs: block_6
  block block_6:

Here converting return to break should add block_2 to the phis
of block_5.

 block block_0:
 loop {
    block block_1:
    loop {
       block block_2:
       if ssa_2 {
         block block_3:
         return
         // succs: block_8
       } else {
         block block_4:
         break;
         // succs: block_6
       }
       block block_5:
    }
    block block_6:
    break;
    // succs: block_7
 }
 block block_7:
 // preds: block_6
 vec1 32 ssa_4 = phi block_6: ssa_1
 // succs: block_8
 block block_8:

Here converting return to break will insert conditional break in
the outer loop, changing block_6 predcessors.

Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3322
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3498
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6186>

3 years agozink: implement pipe_device_reset_callback
Hoe Hao Cheng [Tue, 22 Sep 2020 11:50:33 +0000 (19:50 +0800)]
zink: implement pipe_device_reset_callback

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6763>

3 years agov3dv: fix occlusion query inheritance in secondary command buffers
Iago Toral Quiroga [Fri, 30 Oct 2020 08:12:38 +0000 (09:12 +0100)]
v3dv: fix occlusion query inheritance in secondary command buffers

If a secondary command buffer has occlusion query inheritance then
draw calls recorded in it should update an active occlusion query
counter started in the primary command buffer.

If executing the secondary in a primary required to emit jobs and
not just a branch instruction, then we might need to create a new
job for the primary as well, and in that case we would lose the
occlusion query state, so we need to re-emit it at that point so
any additional draw calls recorded into the secondary that is being
executed continue to update the counter.

Fixes:
dEQP-VK.query_pool.concurrent_queries.secondary_command_buffer

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7373>

3 years agov3dv: add support for timestamp queries
Iago Toral Quiroga [Thu, 29 Oct 2020 10:55:23 +0000 (11:55 +0100)]
v3dv: add support for timestamp queries

V3D doesn't provide any means to acquire timestamps from the GPU
so we have to implement these in the CPU.

v2: enable timestampComputeAndGraphics and set timestampPeriod (Piñeiro)

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7373>

3 years agoradeonsi: fix RADEON_FLUSH flags conflicts
Pierre-Eric Pelloux-Prayer [Mon, 26 Oct 2020 16:23:59 +0000 (17:23 +0100)]
radeonsi: fix RADEON_FLUSH flags conflicts

RADEON_FLUSH_TOGGLE_SECURE_SUBMISSION and RADEON_FLUSH_NOOP used the same value.

Fixes: ed3c5fe4694 ("radeonsi: implement GL_INTEL_blackhole_render")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5096>

3 years agodriconf: add disable_protected_content_check option
Pierre-Eric Pelloux-Prayer [Tue, 6 Oct 2020 14:00:55 +0000 (16:00 +0200)]
driconf: add disable_protected_content_check option

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

3 years agoegl/dri2: implement createImageFromDmaBufs3
Pierre-Eric Pelloux-Prayer [Fri, 25 Sep 2020 13:51:06 +0000 (15:51 +0200)]
egl/dri2: implement createImageFromDmaBufs3

And refuse to import image with protected_content enabled.

We don't want a compositor to import an encrypted buffer in a image
without the ProtectedContent attribute enabled, because that will
lead to incorrect display.

Similarly, if the compositor thinks the image is encrypted, we fail
the import if the buffer is not.

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

3 years agodri: introduce createImageFromDmaBufs3
Pierre-Eric Pelloux-Prayer [Fri, 25 Sep 2020 13:49:42 +0000 (15:49 +0200)]
dri: introduce createImageFromDmaBufs3

Extends createImageFromDmaBufs2 with a protected_content flag.

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

3 years agoegl: handle EGL_PROTECTED_CONTENT_EXT for eglImage
Pierre-Eric Pelloux-Prayer [Fri, 12 Jun 2020 13:28:32 +0000 (15:28 +0200)]
egl: handle EGL_PROTECTED_CONTENT_EXT for eglImage

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

3 years agoradeonsi: enable PIPE_CAP_DEVICE_PROTECTED_CONTENT
Pierre-Eric Pelloux-Prayer [Mon, 18 May 2020 15:21:05 +0000 (17:21 +0200)]
radeonsi: enable PIPE_CAP_DEVICE_PROTECTED_CONTENT

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

3 years agoegl: implement EGL_EXT_protected_surface support
Pierre-Eric Pelloux-Prayer [Mon, 11 May 2020 16:26:30 +0000 (18:26 +0200)]
egl: implement EGL_EXT_protected_surface support

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5096>

3 years agoradeonsi: honor PIPE_BIND_PROTECTED
Pierre-Eric Pelloux-Prayer [Tue, 6 Oct 2020 14:21:53 +0000 (16:21 +0200)]
radeonsi: honor PIPE_BIND_PROTECTED

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

3 years agogallium: introduce PIPE_BIND_PROTECTED
Pierre-Eric Pelloux-Prayer [Tue, 6 Oct 2020 14:19:18 +0000 (16:19 +0200)]
gallium: introduce PIPE_BIND_PROTECTED

Resources using this flag will be encrypted (eg using TMZ on radeonsi).

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

3 years agogallium: add new cap PIPE_CAP_DEVICE_PROTECTED_CONTENT
Pierre-Eric Pelloux-Prayer [Mon, 18 May 2020 15:15:55 +0000 (17:15 +0200)]
gallium: add new cap PIPE_CAP_DEVICE_PROTECTED_CONTENT

Will be used to implement EGL_EXT_protected_surface.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5096>

3 years agov3dv: expose VK_KHR_maintenance1
Iago Toral Quiroga [Wed, 28 Oct 2020 10:01:40 +0000 (11:01 +0100)]
v3dv: expose VK_KHR_maintenance1

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7364>

3 years agov3dv: implement vkTrimCommandPool
Iago Toral Quiroga [Wed, 28 Oct 2020 09:44:03 +0000 (10:44 +0100)]
v3dv: implement vkTrimCommandPool

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7364>

3 years agov3dv: update assertion to match VK_KHR_maintenance1 semantics
Iago Toral Quiroga [Wed, 28 Oct 2020 08:58:35 +0000 (09:58 +0100)]
v3dv: update assertion to match VK_KHR_maintenance1 semantics

Fixes crashes in:
dEQP-VK.api.copy_and_blit.core.image_to_image.3d_images.*

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7364>

3 years agov3dv: fix base slice selection for copies involving 3D images
Iago Toral Quiroga [Wed, 28 Oct 2020 08:06:02 +0000 (09:06 +0100)]
v3dv: fix base slice selection for copies involving 3D images

For 3D images we should take the slice to copy from or to, from
the Z coordinate of the corresponding offset, not the base array
layer.

Fixes VK_KHR_maintenance1 tests:
dEQP-VK.api.copy_and_blit.core.image_to_image.3d_images.3d_to_2d_by_slices
dEQP-VK.api.copy_and_blit.core.image_to_image.3d_images.2d_to_3d_by_layers

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7364>

3 years agov3dv: add image view debug checks for VK_KHR_maintenance1
Iago Toral Quiroga [Wed, 28 Oct 2020 08:04:42 +0000 (09:04 +0100)]
v3dv: add image view debug checks for VK_KHR_maintenance1

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7364>

3 years agoradv,aco: optimize computing the sample mask for per-sample shading
Samuel Pitoiset [Thu, 29 Oct 2020 15:47:54 +0000 (16:47 +0100)]
radv,aco: optimize computing the sample mask for per-sample shading

I don't know why these values were introduced for but it seems like
we can optimize this by just doing:

gl_SampleMaskIn[0] = (SampleCoverage & (1 << gl_SampleID))

AMDGPU-PRO and AMDVLK apply the same formula to compute the
sample mask when per-sample shading is enabled.

No fossils-db changes.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7377>

3 years agoradv,aco: adjust the sample mask only if per-sample shading is enabled
Samuel Pitoiset [Thu, 29 Oct 2020 15:39:28 +0000 (16:39 +0100)]
radv,aco: adjust the sample mask only if per-sample shading is enabled

When per-sample shading isn't enabled, we can just load the
samplemask from the hardware which is always the coverage of
the entire pixel/fragment.

fossilds-db (VEGA10):
Totals from 131 (0.10% of 136546) affected shaders:
SGPRs: 5056 -> 5048 (-0.16%)
VGPRs: 2600 -> 2372 (-8.77%)
CodeSize: 115788 -> 112560 (-2.79%)
MaxWaves: 1266 -> 1274 (+0.63%)
Instrs: 20620 -> 20071 (-2.66%)
Cycles: 82416 -> 80220 (-2.66%)
VMEM: 51567 -> 35532 (-31.10%); split: +0.24%, -31.34%
SMEM: 8952 -> 8258 (-7.75%); split: +0.11%, -7.86%
SClause: 1223 -> 1199 (-1.96%); split: -2.62%, +0.65%
Copies: 1247 -> 1124 (-9.86%); split: -10.18%, +0.32%
PreVGPRs: 2112 -> 1981 (-6.20%)

Helps Britannia, Shadow of the Tomb Raider, Warhammer II and Control.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7377>

3 years agoglsl: drop NMS OpenGL workarounds
Timothy Arceri [Thu, 29 Oct 2020 06:06:44 +0000 (17:06 +1100)]
glsl: drop NMS OpenGL workarounds

No Mans Sky dropped its OpenGL backend on April 16, 2019 in favour
of its Vulkan backend. So here we drop the old OpenGL workarounds.

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

3 years agopanfrost: Add missing alpha-first special formats
Alyssa Rosenzweig [Fri, 30 Oct 2020 18:44:26 +0000 (14:44 -0400)]
panfrost: Add missing alpha-first special formats

Not sure if these come up with OpenGL in practice.

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

3 years agopanfrost: Fix BGR233 component order
Alyssa Rosenzweig [Fri, 30 Oct 2020 18:44:19 +0000 (14:44 -0400)]
panfrost: Fix BGR233 component order

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

3 years agopanfrost: Fix RGB5A1 formats
Alyssa Rosenzweig [Fri, 30 Oct 2020 18:43:37 +0000 (14:43 -0400)]
panfrost: Fix RGB5A1 formats

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reported-by: Icecream95 <ixn@disroot.org>
Suggested-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7352>

3 years agopanfrost: Use macro for panfrost_get_default_swizzle
Alyssa Rosenzweig [Thu, 29 Oct 2020 13:19:36 +0000 (09:19 -0400)]
panfrost: Use macro for panfrost_get_default_swizzle

Eventually this function should go away, but for now let's clean up a
bit.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Suggested-by: Icecream95 <ixn@disroot.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7352>

3 years agopanfrost: Add missing 1/2/4/64-bit formats to XML
Alyssa Rosenzweig [Thu, 29 Oct 2020 13:03:16 +0000 (09:03 -0400)]
panfrost: Add missing 1/2/4/64-bit formats to XML

Less than 8-bit formats may pack multiple pixels in a byte along a row,
possibly padding along the edge. We already had one such format
(RGBA4_UNORM), here are the rest.

As far as I can tell, 64-bit formats are purely a theoretical
curiousity. I don't think any implementation actually supports them, do
not use. Might as well complete the list, though.

I'm not actually piping any new formats into Gallium with this commit,
that can come later if someone has a use case.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Suggested-by: Icecream95 <ixn@disroot.org>
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7352>

3 years agopanfrost: Rename VARYING_POS to SNAP4
Alyssa Rosenzweig [Thu, 29 Oct 2020 12:52:34 +0000 (08:52 -0400)]
panfrost: Rename VARYING_POS to SNAP4

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7352>

3 years agopanfrost: Rename VARYING_DISCARD to CONSTANT
Alyssa Rosenzweig [Thu, 29 Oct 2020 12:50:06 +0000 (08:50 -0400)]
panfrost: Rename VARYING_DISCARD to CONSTANT

Used for data that does not exist. If used for a load, it is a
zero-components read (so you can use a 0000 or 0001 swizzle) that does
not touch memory. If used as a store, writes are simply discarded.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7352>

3 years agopanfrost: Split out v6/v7 format tables
Alyssa Rosenzweig [Wed, 12 Aug 2020 21:45:05 +0000 (17:45 -0400)]
panfrost: Split out v6/v7 format tables

Midgard (v4, v5) and Bifrost v6 have swizzles on every pixel format
descriptor, allowing for arbitrary component reordering. With v7,
reordering is limited to a fixed set of common swizzles, which
simplifies the hardware but to some extent limits the formats available.

To handle, we split out the format tables, with the correct table for
the current hardware loaded as dev->formats.

v2: Switch sRGB flag from T/F to S/L per icecream's suggestion

v3: Add back Z16_UNORM formats to fix trace changes.

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

3 years agopanfrost: Add v7-specific depth formats
Alyssa Rosenzweig [Wed, 28 Oct 2020 12:24:51 +0000 (08:24 -0400)]
panfrost: Add v7-specific depth formats

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

3 years agopanfrost: Add miscellaneous missing Midgard formats
Alyssa Rosenzweig [Wed, 28 Oct 2020 12:22:12 +0000 (08:22 -0400)]
panfrost: Add miscellaneous missing Midgard formats

Just trying to flesh things out so we can see what's available in one
place.

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

3 years agopanfrost: Add missing depth/stencil formats
Alyssa Rosenzweig [Wed, 28 Oct 2020 12:18:55 +0000 (08:18 -0400)]
panfrost: Add missing depth/stencil formats

Available even on Midgard.

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

3 years agopanfrost: Add v7 special colour formats
Alyssa Rosenzweig [Wed, 28 Oct 2020 12:16:35 +0000 (08:16 -0400)]
panfrost: Add v7 special colour formats

Required for some obscure lowerings.

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

3 years agopanfrost: Remove panfrost_is_z24s8_variant
Alyssa Rosenzweig [Wed, 28 Oct 2020 18:14:48 +0000 (14:14 -0400)]
panfrost: Remove panfrost_is_z24s8_variant

Z16 supports AFBC too nowadays, so this helper is misleading.

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

3 years agopanfrost: Remove duplicated format arg for ASTC
Alyssa Rosenzweig [Wed, 28 Oct 2020 01:18:06 +0000 (21:18 -0400)]
panfrost: Remove duplicated format arg for ASTC

We don't want to hang onto the raw mali_format, but we already have the
pipe format right here, so just use that instead, avoiding a (false)
dependency.

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

3 years agopanfrost: Complete format_to_bifrost_blend
Alyssa Rosenzweig [Wed, 28 Oct 2020 01:10:27 +0000 (21:10 -0400)]
panfrost: Complete format_to_bifrost_blend

Instead of matching on the PIPE format directly, match on the internal
format of the tile buffer and pick the pixel format that corresponds to
the internal tile buffer format (which differs from the format written
back to memory in the general case).

We add a number of missing formats to accomodate this, including the
AU/PU variants of each tilebuffer pixel format, where the AU formats use
the extra bits to store extra precision for dithering but the PU formats
simply pad the extra bits with zeroes. For the moment we use AU
everywhere. I'm not sure if there's a cost associated.

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

3 years agopanfrost: Use panfrost_blendable_formats for blending
Alyssa Rosenzweig [Wed, 28 Oct 2020 00:24:46 +0000 (20:24 -0400)]
panfrost: Use panfrost_blendable_formats for blending

Finally the yak shaving pays off.

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

3 years agopanfrost: Use panfrost_blendable_formats for SFBD
Alyssa Rosenzweig [Wed, 28 Oct 2020 00:22:34 +0000 (20:22 -0400)]
panfrost: Use panfrost_blendable_formats for SFBD

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

3 years agopanfrost: Use panfrost_blendable_formats for MFBD
Alyssa Rosenzweig [Tue, 27 Oct 2020 23:05:03 +0000 (19:05 -0400)]
panfrost: Use panfrost_blendable_formats for MFBD

v2: Fix tilebuffer size calculation

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

3 years agopanfrost: Add a blendable format table
Alyssa Rosenzweig [Tue, 27 Oct 2020 22:44:54 +0000 (18:44 -0400)]
panfrost: Add a blendable format table

Map PIPE formats that are fixed-function blendable to their (internal,
writeback) tuple. Formats which are renderable but require a blend
shadeer will be handled elsewhere to keep this easy to verify.

Notice the subset of SFBD and MFBD color writeback formats used to
identify fixed-function blendable formats are bit compatible, so it
suffices to store only the MFBD variants.

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

3 years agopanfrost: Use consistent swizzle names in XML
Alyssa Rosenzweig [Tue, 27 Oct 2020 18:22:06 +0000 (14:22 -0400)]
panfrost: Use consistent swizzle names in XML

These are not the canonical names but they are less ambiguous and will
integrate better with the format tables.

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

3 years agopanfrost: Add MALI_EXTRACT_INDEX helper
Alyssa Rosenzweig [Tue, 27 Oct 2020 18:23:12 +0000 (14:23 -0400)]
panfrost: Add MALI_EXTRACT_INDEX helper

Extracts the 8-bit index from a 22-bit pixel format.

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

3 years agopanfrost: Don't double-compose swizzles
Alyssa Rosenzweig [Tue, 27 Oct 2020 18:21:44 +0000 (14:21 -0400)]
panfrost: Don't double-compose swizzles

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fixes: b9a136cdd1e ("panfrost: Implement BGRA textures")
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7352>

3 years agodraw: Remove draw_install_aaline_stage dead code.
Vinson Lee [Wed, 21 Oct 2020 23:09:27 +0000 (16:09 -0700)]
draw: Remove draw_install_aaline_stage dead code.

Remove dead code left over from commit dbb2cf388b79 ("draw: simplify
(and correct) aaline fallback (v2)").

Fix defect reported by Coverity Scan.

Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement:
(*aaline->stage.destroy)(&a....

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7265>

3 years agogallium/u_threaded: merge consecutive draw calls within batches
Marek Olšák [Wed, 7 Oct 2020 22:52:35 +0000 (18:52 -0400)]
gallium/u_threaded: merge consecutive draw calls within batches

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

3 years agogallium/u_threaded: move a structure up to be used later
Marek Olšák [Wed, 7 Oct 2020 22:48:40 +0000 (18:48 -0400)]
gallium/u_threaded: move a structure up to be used later

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

3 years agoradeonsi: implement multi_draw for compute-based primitive culling
Marek Olšák [Fri, 9 Oct 2020 22:58:14 +0000 (18:58 -0400)]
radeonsi: implement multi_draw for compute-based primitive culling

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

3 years agoradeonsi: set NOT_EOP for back-to-back draws on gfx10+
Marek Olšák [Fri, 9 Oct 2020 20:46:26 +0000 (16:46 -0400)]
radeonsi: set NOT_EOP for back-to-back draws on gfx10+

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

3 years agoradeonsi: add support for multi draws
Marek Olšák [Fri, 9 Oct 2020 22:23:17 +0000 (18:23 -0400)]
radeonsi: add support for multi draws

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

3 years agoradeonsi: implement multi_draw but supporting only 1 draw
Marek Olšák [Fri, 9 Oct 2020 22:14:24 +0000 (18:14 -0400)]
radeonsi: implement multi_draw but supporting only 1 draw

just adapting to the new interface

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

3 years agoradeonsi: don't check info->count == 0
Marek Olšák [Fri, 9 Oct 2020 21:40:17 +0000 (17:40 -0400)]
radeonsi: don't check info->count == 0

it won't work with multi draws

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

3 years agoradeonsi don't get count from pipe_draw_info in si_num_prims_for_vertices
Marek Olšák [Fri, 9 Oct 2020 21:34:50 +0000 (17:34 -0400)]
radeonsi don't get count from pipe_draw_info in si_num_prims_for_vertices

This is needed for multi draws.

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

3 years agoradeonsi: add num_draws parameter into si_need_gfx_cs_space
Marek Olšák [Wed, 7 Oct 2020 22:58:06 +0000 (18:58 -0400)]
radeonsi: add num_draws parameter into si_need_gfx_cs_space

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

3 years agowinsys/amdgpu: remove incorrect assertion check against max_check_space_size
Marek Olšák [Sat, 10 Oct 2020 00:01:16 +0000 (20:01 -0400)]
winsys/amdgpu: remove incorrect assertion check against max_check_space_size

Fixes: 114a899cc89fae "winsys/amdgpu: cs_check_space sets the minimum IB size for future IBs"

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

3 years agogallium: add pipe_context::multi_draw
Marek Olšák [Wed, 7 Oct 2020 22:49:33 +0000 (18:49 -0400)]
gallium: add pipe_context::multi_draw

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

3 years agogallium: move pipe_draw_info::start/count to the beginning and pad empty space
Marek Olšák [Tue, 6 Oct 2020 02:15:36 +0000 (22:15 -0400)]
gallium: move pipe_draw_info::start/count to the beginning and pad empty space

for memcmp and merging draw calls

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

3 years agoradv: Fix variable name collision.
Bas Nieuwenhuizen [Fri, 30 Oct 2020 22:41:27 +0000 (23:41 +0100)]
radv: Fix variable name collision.

idx was aliased, and eb104e949ee4b7e0813d14f11a4a952bae48fe80 started
using the outer var in the inner scope ...

Fixes: eb104e949ee4b7e0813d14f11a4a952bae48fe80
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3701
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7388>

3 years agoci/x86: speed up piglit testing
Christian Gmeiner [Fri, 30 Oct 2020 11:12:14 +0000 (12:12 +0100)]
ci/x86: speed up piglit testing

Add python3 packages to speed up piglit run.

 - lxml. An accelerated python xml library using libxml2 (http://lxml.de/)
 - simplejson. A fast C based implementation of the python json library.
   (https://simplejson.readthedocs.org/en/latest/)

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7379>

3 years agoandroid: aco: add aco_form_hard_clauses.cpp to Makefile.sources
Mauro Rossi [Thu, 29 Oct 2020 22:21:16 +0000 (23:21 +0100)]
android: aco: add aco_form_hard_clauses.cpp to Makefile.sources

Fixes the following building error:

external/mesa/src/amd/compiler/aco_interface.cpp:160:
error: undefined reference to 'aco::form_hard_clauses(aco::Program*)'

Fixes: 3dfbed2a8 ("aco: create s_clause on GFX10+")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7380>

3 years agoetnaviv: don't import allocated scanout resources via from_handle
Lucas Stach [Tue, 7 Jul 2020 18:38:33 +0000 (20:38 +0200)]
etnaviv: don't import allocated scanout resources via from_handle

etna_resource_from_handle() recomputes (or second guesses) a lot of
properties we already have available in the allocation call. To make
things a bit more easier to follow, just import the BO without going
through the full handle import.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7367>

3 years agoetnaviv: pass correct layout to etna_resource_alloc for scanout resources
Lucas Stach [Thu, 29 Oct 2020 17:09:49 +0000 (18:09 +0100)]
etnaviv: pass correct layout to etna_resource_alloc for scanout resources

Since b96277653033 (etnaviv: rework compatible render base) the base resource
may be linear and a render compatible resource is allocated as needed. As
scanout surfaces without a modifier are always assumed to be linear, make
sure to pass the correct layout to etna_resource_alloc().

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7367>

3 years agoetnaviv: simplify etna_screen_bo_from_handle
Lucas Stach [Thu, 29 Oct 2020 15:50:54 +0000 (16:50 +0100)]
etnaviv: simplify etna_screen_bo_from_handle

There is no need to have a out_stride parameter, as the only callsite
already has the winsys handle, which includes the stride, so there is
no need to pass the stride back and forth.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7367>