platform/upstream/mesa.git
3 years agoradv: make vertex param sgpr count more explicit
Mike Blumenkrantz [Fri, 5 Feb 2021 18:20:37 +0000 (13:20 -0500)]
radv: make vertex param sgpr count more explicit

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

3 years agoradv: break out vertex shader param emission into separate function
Mike Blumenkrantz [Fri, 5 Feb 2021 18:17:27 +0000 (13:17 -0500)]
radv: break out vertex shader param emission into separate function

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

3 years agoradv: track whether baseinstance is used on the pipeline struct
Mike Blumenkrantz [Tue, 9 Feb 2021 14:14:07 +0000 (09:14 -0500)]
radv: track whether baseinstance is used on the pipeline struct

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

3 years agoradv: track whether drawid is used on the pipeline struct
Mike Blumenkrantz [Fri, 5 Feb 2021 18:15:19 +0000 (13:15 -0500)]
radv: track whether drawid is used on the pipeline struct

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

3 years agoradv: set gfx pipeline vtx_emit_num to the number of sgprs
Mike Blumenkrantz [Fri, 5 Feb 2021 18:13:58 +0000 (13:13 -0500)]
radv: set gfx pipeline vtx_emit_num to the number of sgprs

this should always match what we want to be doing

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

3 years agoradv: simplify vs draw param counting during setup
Mike Blumenkrantz [Fri, 5 Feb 2021 16:29:03 +0000 (11:29 -0500)]
radv: simplify vs draw param counting during setup

we can just reuse the existing function for this

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

3 years agoradv: track whether gl_BaseInstance is used
Mike Blumenkrantz [Wed, 27 Jan 2021 22:05:30 +0000 (17:05 -0500)]
radv: track whether gl_BaseInstance is used

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

3 years agoradv: refactor draw dispatch
Mike Blumenkrantz [Wed, 27 Jan 2021 20:19:49 +0000 (15:19 -0500)]
radv: refactor draw dispatch

this breaks up the monolithic draw path used for all draw calls into
pre/post functions to handle general setup and a couple helper functions
to more directly handle different draw modes in a way that's both more readable
and, potentially, more optimizable

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

3 years agoradv: stop zeroing radv_draw_info during draw
Mike Blumenkrantz [Wed, 27 Jan 2021 20:18:22 +0000 (15:18 -0500)]
radv: stop zeroing radv_draw_info during draw

this is a big struct, and there's only a couple extra members that need
to be initialized to hit the right codepaths

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

3 years agofreedreno/a6xx: fix primitive counters debug output
Danylo Piliaiev [Thu, 24 Dec 2020 19:12:38 +0000 (21:12 +0200)]
freedreno/a6xx: fix primitive counters debug output

Each counter spans two regs: LO and HI

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8228>

3 years agofreedreno/a6xx: copy full 64bit of primitive counter
Danylo Piliaiev [Thu, 4 Feb 2021 13:42:28 +0000 (15:42 +0200)]
freedreno/a6xx: copy full 64bit of primitive counter

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8228>

3 years agomeson: Remove kmsro from gallium-drivers
Alyssa Rosenzweig [Sat, 6 Feb 2021 01:16:00 +0000 (20:16 -0500)]
meson: Remove kmsro from gallium-drivers

Automatically include it if we're building with a driver that depends on
it, and don't include it if we're not. Avoids a footgun (building
something like panfrost without kmsro) with minimal effect on code size
in the "kmsro possible but not used" case. (This case primarily affects
Freedreno, but the Freedreno maintainers suggested this, so I think it's
ok.)

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Suggested-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8893>

3 years agobroadcom/cle: do not leak spec
Juan A. Suarez Romero [Wed, 31 Mar 2021 08:48:49 +0000 (10:48 +0200)]
broadcom/cle: do not leak spec

Fixes CID#1474553 "Resource leak (RESOURCE_LEAK)".

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9944>

3 years agodocs: vulkan -> Vulkan
Erik Faye-Lund [Wed, 28 Oct 2020 11:13:09 +0000 (12:13 +0100)]
docs: vulkan -> Vulkan

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

3 years agodocs: ie. -> i.e.
Erik Faye-Lund [Wed, 28 Oct 2020 11:18:30 +0000 (12:18 +0100)]
docs: ie. -> i.e.

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

3 years agodocs: sytem -> system
Erik Faye-Lund [Wed, 28 Oct 2020 11:08:45 +0000 (12:08 +0100)]
docs: sytem -> system

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

3 years agodocs: appling -> applying
Erik Faye-Lund [Wed, 28 Oct 2020 10:48:31 +0000 (11:48 +0100)]
docs: appling -> applying

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

3 years agozink: document why we're calling pipe_shader_type_from_mesa
Erik Faye-Lund [Mon, 29 Mar 2021 14:37:14 +0000 (16:37 +0200)]
zink: document why we're calling pipe_shader_type_from_mesa

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9898>

3 years agozink: simplify shader-removal
Erik Faye-Lund [Mon, 29 Mar 2021 14:32:08 +0000 (16:32 +0200)]
zink: simplify shader-removal

This is so trivial to do, so there's no need for the helper.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9898>

3 years agozink: assert that pstage is within range
Erik Faye-Lund [Mon, 29 Mar 2021 13:24:31 +0000 (15:24 +0200)]
zink: assert that pstage is within range

This makes it clearer that these don't include the compute-stage.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9898>

3 years agozink: check base-requirements
Erik Faye-Lund [Tue, 30 Mar 2021 15:58:31 +0000 (17:58 +0200)]
zink: check base-requirements

This one is a bit of a tough nut to deal with gracefully. Zink has a set
of base-requirements that we always require. There's no Gallium caps to
report these missing features, so we're essentially left with two options:

1. Fail to create the screen.
2. Ignore the missing fetures.

Solution 1 will lead to difficulties bringing up a new Vulkan driver on
Zink, and solution 2 will lead to mis-rendering.

Since Zink is mostly an opt-in driver to use when there's no OpenGL driver
available, we should probably do 2 for now. It seems better to have some
mis-rendering than no rendering at all.

But let's at least check, and print a warning. That way people get to
know what's up.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9925>

3 years agodocs: clarify VK_KHR_external_memory requirement
Erik Faye-Lund [Tue, 30 Mar 2021 15:57:56 +0000 (17:57 +0200)]
docs: clarify VK_KHR_external_memory requirement

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9925>

3 years agozink: do not enable unused extension
Erik Faye-Lund [Tue, 30 Mar 2021 15:51:47 +0000 (17:51 +0200)]
zink: do not enable unused extension

While we should probably use this extension at some point, we don't
currently do. So let's remove it, so the code documents the status-quo
instead of some potential future direction.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9925>

3 years agodocs: remove zink incorrect requirement
Erik Faye-Lund [Tue, 30 Mar 2021 15:41:09 +0000 (17:41 +0200)]
docs: remove zink incorrect requirement

Zink does not require VK_KHR_get_physical_device_properties2; we have
fallback-code in place for when that is lacking.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9925>

3 years agodocs: remove bogus zink-requirement
Erik Faye-Lund [Tue, 30 Mar 2021 15:16:47 +0000 (17:16 +0200)]
docs: remove bogus zink-requirement

VkPhysicalDeviceFeatures::depthClamp isn't required until GL 3.2, where
we already list it. Remove the extra entry to avoid confusion.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9925>

3 years agoci/v3dv: update flaky tests
Juan A. Suarez Romero [Tue, 30 Mar 2021 15:54:39 +0000 (17:54 +0200)]
ci/v3dv: update flaky tests

Acked-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9926>

3 years agoloader: prefer iris on Android
Tapani Pälli [Mon, 29 Mar 2021 07:13:19 +0000 (10:13 +0300)]
loader: prefer iris on Android

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9906>

3 years agobroadcom/compiler: try to fill up delay slots after unconditional branch
Iago Toral Quiroga [Tue, 30 Mar 2021 08:58:04 +0000 (10:58 +0200)]
broadcom/compiler: try to fill up delay slots after unconditional branch

If we have an unconditional branch then we can try to fill up its
delay slots with the initial instructions of its successor block by
copying them into the delay slots and adjusting the branch offset to
skip the copied instructions.

total nops in shared programs: 365640 -> 364471 (-0.32%)
nops in affected programs: 15416 -> 14247 (-7.58%)
helped: 462
HURT: 0

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

3 years agobroadcom/compiler: try to fill up delay slots after a branch instruction
Iago Toral Quiroga [Mon, 29 Mar 2021 12:28:14 +0000 (14:28 +0200)]
broadcom/compiler: try to fill up delay slots after a branch instruction

For this we do something similar to what we do with thrsw where we try to
move the branch instruction earlier so the previous instructions execute
in the delay slots of the branch.

Generally, we can do this with any instruction except:
 - If the instruction reads a uniform: since our branches do as well and
   uniforms come from an ordered FIFO stream.
 - If the instruction writes flags, since our branch instruction will
   probably read them.
 - If the instruction is in the delay slots of another thread switch,
   branch, or unifa write, which is disallowed.

total instructions in shared programs: 13648140 -> 13613972 (-0.25%)
instructions in affected programs: 2209552 -> 2175384 (-1.55%)
helped: 6765
HURT: 0
Instructions are helped.

total max-temps in shared programs: 2318687 -> 2318436 (-0.01%)
max-temps in affected programs: 5046 -> 4795 (-4.97%)
helped: 152
HURT: 0
Max-temps are helped.

total inst-and-stalls in shared programs: 13680494 -> 13646326 (-0.25%)
inst-and-stalls in affected programs: 2220394 -> 2186226 (-1.54%)
helped: 6765
HURT: 0
Inst-and-stalls are helped.

total nops in shared programs: 399818 -> 365640 (-8.55%)
nops in affected programs: 127311 -> 93133 (-26.85%)
helped: 6765
HURT: 0
Nops are helped.

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

3 years agobroadcom/compiler: add a NOP count stat to shader-db
Iago Toral Quiroga [Tue, 30 Mar 2021 09:48:10 +0000 (11:48 +0200)]
broadcom/compiler: add a NOP count stat to shader-db

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

3 years agobroadcom/compiler: dump instruction index when failing to pack instructions
Iago Toral Quiroga [Tue, 30 Mar 2021 08:30:22 +0000 (10:30 +0200)]
broadcom/compiler: dump instruction index when failing to pack instructions

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

3 years agolavapipe: fail out if spirv->nir fails
Dave Airlie [Wed, 31 Mar 2021 00:25:13 +0000 (10:25 +1000)]
lavapipe: fail out if spirv->nir fails

Just fail out earlier and assume a feature is missing.

Fixes a crash in validation layer tests

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9937>

3 years agolavapipe: only reference pCounterBuffers if non-NULL
Dave Airlie [Wed, 31 Mar 2021 00:24:36 +0000 (10:24 +1000)]
lavapipe: only reference pCounterBuffers if non-NULL

Fixes crash in validation layer tests.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9937>

3 years agoglsl: Initialize parcel_out_uniform_storage members.
Vinson Lee [Thu, 3 Dec 2020 23:52:34 +0000 (15:52 -0800)]
glsl: Initialize parcel_out_uniform_storage members.

Fix defects reported by Coverity Scan.

uninit_member: Non-static class member buffer_block_index is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member ubo_byte_offset is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member shader_type is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member next_sampler is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member next_bindless_sampler is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member next_image is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member next_bindless_image is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member next_subroutine is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member field_counter is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member current_var is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member explicit_location is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member record_array_count is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member record_next_sampler is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member record_next_image is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member record_next_bindless_sampler is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member record_next_bindless_image is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member targets is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member shader_samplers_used is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member shader_shadow_samplers is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member num_bindless_samplers is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member num_bindless_images is not initialized in this constructor nor in any functions that it calls.

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

3 years agozink: use cached memory for all resources when possible
Mike Blumenkrantz [Thu, 10 Dec 2020 21:25:47 +0000 (16:25 -0500)]
zink: use cached memory for all resources when possible

this massively speeds up memory access across the driver, specifically
for pbo-related operations

it does require that mapped memory is manually invalidated/flushed, however, and
we also need to manually align host-visible memory to be able to do that

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

3 years agozink: track coherent resource objects
Mike Blumenkrantz [Thu, 25 Feb 2021 17:33:11 +0000 (12:33 -0500)]
zink: track coherent resource objects

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

3 years agomesa: Remove redundant gl_config::sampleBuffers
Adam Jackson [Wed, 24 Mar 2021 17:45:20 +0000 (13:45 -0400)]
mesa: Remove redundant gl_config::sampleBuffers

This is just !!samples.

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

3 years agomesa: Stop tracking visual rating in gl_config
Adam Jackson [Wed, 24 Mar 2021 16:48:21 +0000 (12:48 -0400)]
mesa: Stop tracking visual rating in gl_config

We never create non-conformant configs, and we can predict slow-or-not
purely from the accum-buffer-ness of the config.

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

3 years agomesa: Remove the pretense of aux buffer support
Adam Jackson [Wed, 24 Mar 2021 16:40:51 +0000 (12:40 -0400)]
mesa: Remove the pretense of aux buffer support

This might be nice to hook up at some point, but it's doing nothing at
the moment and it's not clear to me that it belongs as GL state instead
of winsys state.

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

3 years agomesa: Remove unused gl_config::level
Adam Jackson [Wed, 24 Mar 2021 16:29:02 +0000 (12:29 -0400)]
mesa: Remove unused gl_config::level

This is the (GLX) framebuffer overlay level, and it's never set to
anything interesting.

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

3 years agomesa: Remove transparency state from struct gl_config
Adam Jackson [Wed, 24 Mar 2021 16:16:51 +0000 (12:16 -0400)]
mesa: Remove transparency state from struct gl_config

We never set this to anything interesting, and this is really winsys
state not GL state anyway.

Nota bene: __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE is set to GLX_NONE
instead of the GLX_DONT_CARE we looked like we were doing before. This
is to preserve backward compatibility with older (technically, all
current) X servers, which when building their fbconfigs initialize a
field named 'transparentPixel' _twice_, and the second time from
__DRI_ATTRIB_TRANSPARENT_INDEX_VALUE, but then uses 'transparentPixel's
value for GLX_TRANSPARENT_TYPE. Which, GLX_DONT_CARE isn't a valid value
for that, so glx-fbconfig-sanity fails among much else.

This is harmless, in that I don't think any DRI driver has ever wired
this up (I can't find any evidence in r100 or mga history) and certainly
none that we can currently load have this working.

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

3 years agomesa: Remove the texture-from-pixmap state from struct gl_config
Adam Jackson [Wed, 24 Mar 2021 15:57:11 +0000 (11:57 -0400)]
mesa: Remove the texture-from-pixmap state from struct gl_config

This never varies at all, let alone per-config. GLX does read these
values out though so hardwire the values in a different place.

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

3 years agomesa: Remove misc pbuffer attributes from struct gl_config
Adam Jackson [Tue, 23 Mar 2021 17:15:50 +0000 (13:15 -0400)]
mesa: Remove misc pbuffer attributes from struct gl_config

pbuffers aren't a first-class object in mesa, they're just funnily-named
framebuffers. It's thus somewhat silly to track this state separately
when it's effectively identical to GL_MAX_RENDERBUFFER_SIZE, and there's
never been a DRI driver that's ever set these values to anything
interesting. Drop them from mesa (but leave the tokens defined for
compatibility).

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

3 years agodri: Fold attribMap into the code
Adam Jackson [Sat, 27 Mar 2021 02:34:17 +0000 (22:34 -0400)]
dri: Fold attribMap into the code

This table is mostly a mapping into struct gl_config, which is about to
get radically simplified, so we're going to need code to compute values
here instead of just looking up fields in a struct. Keeping the __ATTRIB
bit is somewhat ugly, but we'll expand it back out after the gl_config
changes settle.

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

3 years agodri: Explicitly handle all the config attributes
Adam Jackson [Fri, 26 Mar 2021 19:52:26 +0000 (15:52 -0400)]
dri: Explicitly handle all the config attributes

The code is broken elsewhere and requires that the attrib map actually
be large enough.

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

3 years agoRemove Scons leftovers
Matt Turner [Sun, 21 Mar 2021 17:27:57 +0000 (13:27 -0400)]
Remove Scons leftovers

Fixes: 6e6cd7d93cc54fc8c279 ("scons: Remove.")
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9738>

3 years agoci: Disable panfrost g52
Matt Turner [Tue, 30 Mar 2021 19:38:37 +0000 (15:38 -0400)]
ci: Disable panfrost g52

The runners appear to be down at the moment.

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4538
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9930>

3 years agoci: skip pipeline_barrier tests that currently crash on RADV
Tony Wasserka [Mon, 29 Mar 2021 11:17:50 +0000 (13:17 +0200)]
ci: skip pipeline_barrier tests that currently crash on RADV

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

3 years agofrontends/omx/h265: search entire dpb list
Boyuan Zhang [Mon, 15 Mar 2021 17:28:11 +0000 (13:28 -0400)]
frontends/omx/h265: search entire dpb list

When more than 1 idr frames have been added to dpb list, there might be 2
frames with same poc in the dpb list. In this case, driver needs to search
the entire dpb list in order to get newly added reference frame with given poc

Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9881>

3 years agoradeon/vcn: release si buffer for encoding at the end.
Ruijing Dong [Fri, 5 Mar 2021 15:39:51 +0000 (10:39 -0500)]
radeon/vcn: release si buffer for encoding at the end.

Signed-off-by: Ruijing Dong <Ruijing.Dong@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9882>

3 years agocompiler/glsl: avoid null-pointer deref
Erik Faye-Lund [Mon, 29 Mar 2021 11:21:47 +0000 (13:21 +0200)]
compiler/glsl: avoid null-pointer deref

When we encounter a bindless image here, lower_deref returns a
NULL-pointer, and calling record_images_used will try to dereference
that NULL-pointer.

So let's dig out the var from the source instruction instead of the
result of the lowering.

Fixes: 5910c938a29 ("nir/glsl: gather bitmask of images used by program")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9895>

3 years agozink: remove zink_create_fence()
Mike Blumenkrantz [Mon, 22 Mar 2021 17:58:37 +0000 (13:58 -0400)]
zink: remove zink_create_fence()

merge this down into batch state creation to keep fence file complexity down

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

3 years agozink: also check for device lost reset on flush
Mike Blumenkrantz [Mon, 22 Mar 2021 15:39:21 +0000 (11:39 -0400)]
zink: also check for device lost reset on flush

if there's a reset callback available, call that instead of cycling

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

3 years agozink: break out queue submit into separate functions
Mike Blumenkrantz [Mon, 22 Mar 2021 15:36:18 +0000 (11:36 -0400)]
zink: break out queue submit into separate functions

to be used with async submission

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

3 years agozink: move VkQueue to batch object
Mike Blumenkrantz [Mon, 22 Mar 2021 15:33:38 +0000 (11:33 -0400)]
zink: move VkQueue to batch object

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

3 years agozink: remove zink_fence_init()
Mike Blumenkrantz [Mon, 22 Mar 2021 15:28:07 +0000 (11:28 -0400)]
zink: remove zink_fence_init()

contents moved to more correct places

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

3 years agozink: make a local screen pointer in zink_flush
Mike Blumenkrantz [Mon, 22 Mar 2021 15:18:36 +0000 (11:18 -0400)]
zink: make a local screen pointer in zink_flush

no functional changes

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

3 years agozink: store context to batch state
Mike Blumenkrantz [Mon, 22 Mar 2021 15:09:18 +0000 (11:09 -0400)]
zink: store context to batch state

this will be used for post-flush device resets when device is lost

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

3 years agozink: rename init_batch_state to get_batch_state
Mike Blumenkrantz [Mon, 22 Mar 2021 15:05:19 +0000 (11:05 -0400)]
zink: rename init_batch_state to get_batch_state

more sensible, no functional changes

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

3 years agozink: assume fence has already completed if a batch state isn't found
Mike Blumenkrantz [Mon, 29 Mar 2021 03:34:28 +0000 (23:34 -0400)]
zink: assume fence has already completed if a batch state isn't found

we're not going to be waiting on fences from the future, so if we can't
find a fence then it must have completed

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

3 years agozink: explicitly reset a couple more batch state members
Mike Blumenkrantz [Mon, 22 Mar 2021 14:58:26 +0000 (10:58 -0400)]
zink: explicitly reset a couple more batch state members

no functional changes at this time

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

3 years agozink: add locking for fence resources
Mike Blumenkrantz [Mon, 22 Mar 2021 14:54:14 +0000 (10:54 -0400)]
zink: add locking for fence resources

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

3 years agozink: split fence finish func
Mike Blumenkrantz [Mon, 22 Mar 2021 14:39:42 +0000 (10:39 -0400)]
zink: split fence finish func

one part of this will be used to handle tc mechanics, the other part is for
internal use

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

3 years agozink: add function for checking whether a batch is done
Mike Blumenkrantz [Mon, 22 Mar 2021 14:33:34 +0000 (10:33 -0400)]
zink: add function for checking whether a batch is done

this is like wait_on_batch, but without the waiting

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

3 years agozink: add locking for batch states
Mike Blumenkrantz [Mon, 22 Mar 2021 14:27:50 +0000 (10:27 -0400)]
zink: add locking for batch states

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

3 years agozink: manually invoke cpu detection during screen init
Mike Blumenkrantz [Wed, 6 Jan 2021 18:05:41 +0000 (13:05 -0500)]
zink: manually invoke cpu detection during screen init

ensure this gets populated before using it

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

3 years agozink: add locking for resource maps
Mike Blumenkrantz [Fri, 25 Dec 2020 00:43:10 +0000 (19:43 -0500)]
zink: add locking for resource maps

vulkan prohibits multiple maps on a resource, so these have to be locked
down

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

3 years agozink: add locking for descriptor pools
Mike Blumenkrantz [Wed, 23 Dec 2020 20:28:52 +0000 (15:28 -0500)]
zink: add locking for descriptor pools

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

3 years agov3dv: fix unused value
Juan A. Suarez Romero [Tue, 30 Mar 2021 09:00:01 +0000 (11:00 +0200)]
v3dv: fix unused value

Do not assign to a variable that won't be used.

Fixes CID#1468098 "Unused value (UNUSED_VALUE)".

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9910>

3 years agobroadcom/compiler: fix unused value
Juan A. Suarez Romero [Tue, 30 Mar 2021 08:57:15 +0000 (10:57 +0200)]
broadcom/compiler: fix unused value

Do not assign to a variable that won't be used.

Fixes CID#1451708 and CID#1451710 "Unused value (UNUSED_VALUE)".

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9910>

3 years agodocs: do not try to copy missing file
Erik Faye-Lund [Tue, 30 Mar 2021 10:42:13 +0000 (12:42 +0200)]
docs: do not try to copy missing file

This file was removed, but the inclusion in the docs build was missed.

Fixes: 6e6cd7d93cc ("scons: Remove.")
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9913>

3 years agoradv: do not fixup DCC after compute color resolves if DCC stores enabled
Samuel Pitoiset [Tue, 30 Mar 2021 07:50:24 +0000 (09:50 +0200)]
radv: do not fixup DCC after compute color resolves if DCC stores enabled

With compressed DCC writes supported, the image should still be
compressed after resolving using the compute path.

Fixes various dEQP-VK.api.copy_and_blit.core.resolve_image.*
failures with RADV_DEBUG=forcecompress on GFX10.

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

3 years agolavapipe: report correct value for maxTexelBufferElements
Erik Faye-Lund [Mon, 29 Mar 2021 08:42:11 +0000 (10:42 +0200)]
lavapipe: report correct value for maxTexelBufferElements

We already have a pipe_cap for this, so let's use that to report the
correct value.

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

3 years agoci/v3d: run full GLES3 and GLES31 testsuite
Juan A. Suarez Romero [Mon, 29 Mar 2021 14:41:59 +0000 (16:41 +0200)]
ci/v3d: run full GLES3 and GLES31 testsuite

There is margin in the time budget to run the full GLES3 and GLES31 CTS
instead of only 50%.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9899>

3 years agoci/broadcom: update piglit expected results
Juan A. Suarez Romero [Mon, 29 Mar 2021 14:36:36 +0000 (16:36 +0200)]
ci/broadcom: update piglit expected results

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9899>

3 years agoiris: disable dynamic VAO fastpath on GFX version 9
Marcin Ślusarz [Thu, 25 Mar 2021 16:29:11 +0000 (17:29 +0100)]
iris: disable dynamic VAO fastpath on GFX version 9

Enabling this fast path, while making CPU side simpler
(and thus reducing driver's CPU overhead), forces us to
generate multiple VERTEX_BUFFER_STATE packets pointing to
the same buffer, but with slightly shifted BufferStartingAddress.
This is fine on GFX version >= 11 and < 8, but on version
8 and 9, thanks to internal details of the VF cache, vertex
data from each VERTEX_BUFFER_STATE is cached separately
and this results in a lot of cache misses.

Disabling this fast path restores previous performance levels.

On my SKL GT2 machine this improves performance in:
- GLB27 Egypt offscreen by 37%
- GLB27 TRex offscreen by 22%
- gfxbench5 Manhattan offscreen by 1.75%
- gfxbench5 Manhattan31 offscreen by 1.9%
- gfxbench5 Aztec Ruins high by 2.3%

In Intel performance CI on GFX version 9 it improves performance in:
- gfxbench5 Manhattan offscreen by 1.65%
- gfxbench5 Aztec Ruins normal offscreen by 1.33%

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3277
Fixes: 42842306d3c ("mesa,st/mesa: add a fast path for non-static VAOs")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9857>

3 years agogallium: add PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATH
Marcin Ślusarz [Mon, 8 Mar 2021 11:30:58 +0000 (12:30 +0100)]
gallium: add PIPE_CAP_ALLOW_DYNAMIC_VAO_FASTPATH

Fixes: 42842306d3c ("mesa,st/mesa: add a fast path for non-static VAOs")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9857>

3 years agozink: rework memory_barrier hook
Mike Blumenkrantz [Thu, 10 Dec 2020 16:13:23 +0000 (11:13 -0500)]
zink: rework memory_barrier hook

this is a bit more sensible all around without being too much hammer
and not enough nail

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

3 years agozink: rework some includes
Mike Blumenkrantz [Tue, 15 Dec 2020 17:48:22 +0000 (12:48 -0500)]
zink: rework some includes

descriptors.h requires stuff from context.h and vice versa, so there's
a little redefinition here to work around that

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

3 years agozink: use GENERAL layout for sampler images that are also bound as shader images
Mike Blumenkrantz [Mon, 14 Dec 2020 02:33:29 +0000 (21:33 -0500)]
zink: use GENERAL layout for sampler images that are also bound as shader images

we can't have the same image with 2 layouts, so just go with the more global one

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

3 years agozink: simplify some descriptor update function parameters
Mike Blumenkrantz [Fri, 4 Dec 2020 16:32:46 +0000 (11:32 -0500)]
zink: simplify some descriptor update function parameters

just removing unused params

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

3 years agozink: move descriptor barrier handling to main update function
Mike Blumenkrantz [Mon, 30 Nov 2020 17:09:28 +0000 (12:09 -0500)]
zink: move descriptor barrier handling to main update function

no functional changes

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

3 years agozink: move update_descriptors & related funcs to zink_descriptors.c
Mike Blumenkrantz [Mon, 30 Nov 2020 16:18:52 +0000 (11:18 -0500)]
zink: move update_descriptors & related funcs to zink_descriptors.c

keep zink_draw.c for draw stuff

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

3 years agozink: rework texture_barrier hook
Mike Blumenkrantz [Thu, 10 Dec 2020 16:13:05 +0000 (11:13 -0500)]
zink: rework texture_barrier hook

we can be more precise with this and avoid flushing unnecessarily

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

3 years agonir: Unify memory atomics
Alyssa Rosenzweig [Wed, 3 Feb 2021 17:06:34 +0000 (12:06 -0500)]
nir: Unify memory atomics

Avoids some copypaste and makes it easier to see how the different types
relate.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8847>

3 years agolavapipe: ignore unused clearvalues when beginning renderpass
Mike Blumenkrantz [Mon, 29 Mar 2021 15:04:39 +0000 (11:04 -0400)]
lavapipe: ignore unused clearvalues when beginning renderpass

according to spec, unused clearvalues aren't accessed

> Only elements corresponding to cleared attachments are used. Other elements of pClearValues are ignored.

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

3 years agolavapipe: Free sorted descriptor array.
Bas Nieuwenhuizen [Sun, 28 Mar 2021 20:50:02 +0000 (22:50 +0200)]
lavapipe: Free sorted descriptor array.

Fixes: abc724e440e ("lavapipe: sort bindings before creating descriptor set")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9880>

3 years agovulkan: Fix descriptor set creation with zero bindings.
Bas Nieuwenhuizen [Sun, 28 Mar 2021 20:46:19 +0000 (22:46 +0200)]
vulkan: Fix descriptor set creation with zero bindings.

MAX2(count * struct size, 1) results in 1 for count=0, not the size of a struct.

Since this MAX only seems to exist so we can keep using NULL for error reporting,
just refactor to return a VkResult.

Fixes: ad241b15a9e ("vk: consolidate dynamic descriptor binding sorting")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4522
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9880>

3 years agopanfrost: Implement panfrost_set_global_binding
Icecream95 [Tue, 22 Dec 2020 10:16:34 +0000 (23:16 +1300)]
panfrost: Implement panfrost_set_global_binding

This is enough OpenCL support to pass the Piglit test
cl-custom-run-simple-kernel with PAN_MESA_DEBUG=deqp.

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

3 years agopipe-loader: Stop trying to use kmsro for vgem
Icecream95 [Tue, 2 Mar 2021 20:11:17 +0000 (09:11 +1300)]
pipe-loader: Stop trying to use kmsro for vgem

Fixes two OpenCL devices being created for a single kmsro-using GPU
when vgem is enabled in the kernel.

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

3 years agopipe-loader,gallium/drm: Fix the kmsro pipe_loader target
Icecream95 [Sun, 28 Feb 2021 21:51:45 +0000 (10:51 +1300)]
pipe-loader,gallium/drm: Fix the kmsro pipe_loader target

Include drm_helper.h to define the driver descriptor again, but with a
new define GALLIUM_KMSRO_ONLY to disable defining descriptors for the
drivers that kmsro uses.

Fixes clinfo on Panfrost.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4002
Fixes: 9ec28b8d226 ("gallium/drm: Deduplicate screen creation for the dynamic (clover) pipe loader.")
Acked-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9380>

3 years agointel/fs/copy_prop: check stride constraints with actual final type
Lionel Landwerlin [Wed, 24 Mar 2021 07:56:42 +0000 (09:56 +0200)]
intel/fs/copy_prop: check stride constraints with actual final type

In some cases we will change the type of the destination register of
an instruction. This is the type we should use to verify that we're
allow to do the replacement.

Otherwise we can hit restrictions on CHV and upcoming Xe-Hp for
instance where the copy propagation transforms this :

send(16) (mlen: 2) vgrf10:UD, 0u, 0u, vgrf35:D, null:UD
mov(16) vgrf11:UW, vgrf10<2>:UW
mov(16) vgrf12:UW, vgrf10+0.2<2>:UW
mov(16) vgrf15:HF, |vgrf11|:HF
mov(16) vgrf16:HF, |vgrf12|:HF
mov(8) vgrf41<2>:UW, vgrf15+0.0:UW group0
mov(8) vgrf42<2>:UW, vgrf15+0.16:UW group8
mov(8) vgrf45<2>:UW, vgrf16+0.0:UW group0
mov(8) vgrf46<2>:UW, vgrf16+0.16:UW group8

into this :

send(16) (mlen: 2) vgrf10:UD, 0u, 0u, vgrf35:D, null:UD
mov(8) vgrf41<2>:HF, |vgrf10+0.0|<2>:HF group0
mov(8) vgrf42<2>:HF, |vgrf10+1.0|<2>:HF group8
mov(8) vgrf45<2>:HF, |vgrf10+0.2|<2>:HF group0
mov(8) vgrf46<2>:HF, |vgrf10+1.2|<2>:HF group8

Because of the floating point use, stride and offets should be the
same.

v2: Fix final destination type selection (Curro)

v3: constify (Curro)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9832>

3 years agotu: Skip tu_tiling_config_update_tile_layout() if not using gmem
Matt Turner [Mon, 15 Mar 2021 18:54:23 +0000 (18:54 +0000)]
tu: Skip tu_tiling_config_update_tile_layout() if not using gmem

Otherwise pass->tile_align_w will be 0, leading to a divide by zero and
undefined behavior. In practice, I saw this lead to an infinite loop in
tests like

dEQP-VK.draw.instanced.draw_indexed_indirect_vk_primitive_topology_line_list_attrib_divisor_0_multiview

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9606>

3 years agofreedreno/a5xx: Use VALIDREG/CONDREG like a6xx do.
Eric Anholt [Mon, 29 Mar 2021 20:54:15 +0000 (13:54 -0700)]
freedreno/a5xx: Use VALIDREG/CONDREG like a6xx do.

Fewer magic numbers and less to diff between the two.

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

3 years agofreedreno/a5xx: Add support for clip distances and use them for userclip.
Eric Anholt [Fri, 26 Mar 2021 23:28:46 +0000 (16:28 -0700)]
freedreno/a5xx: Add support for clip distances and use them for userclip.

A little low-stakes RE effort as I unwind from fighting CI all day.  Comes
from diffing dEQP-VK.clipping.user_defined.clip_distance.vert.* on the
blob and comparing to a6xx behavior.  (My blob doesn't do tess, so if
there are equivalent tess fields for some of these, I didn't find them)

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

3 years agolavapipe: enable KHR_shader_atomic_int64
Dave Airlie [Mon, 15 Mar 2021 01:44:17 +0000 (11:44 +1000)]
lavapipe: enable KHR_shader_atomic_int64

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9591>

3 years agogallivm: add 64-bit atomic global support
Dave Airlie [Wed, 17 Mar 2021 00:12:52 +0000 (10:12 +1000)]
gallivm: add 64-bit atomic global support

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

3 years agogallivm: add 64-bit atomic support for ssbo/shared.
Dave Airlie [Mon, 15 Mar 2021 01:43:43 +0000 (11:43 +1000)]
gallivm: add 64-bit atomic support for ssbo/shared.

This just fixes things up to handle bit-size

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

3 years agoac/surface: do not allocate FMASK or CMASK for stencil-only surfaces on GFX9+
Samuel Pitoiset [Mon, 15 Mar 2021 21:24:41 +0000 (22:24 +0100)]
ac/surface: do not allocate FMASK or CMASK for stencil-only surfaces on GFX9+

FMASK/CMASK make no sense with depth/stencil or stencil-only surfaces.
gfx9_compute_miptree() was called twice for stencil-only surfaces,
and the first call was allocating FMASK/CMASK.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9612>

3 years agoci: Enable iris testing in meson-release
Kenneth Graunke [Fri, 26 Mar 2021 15:08:07 +0000 (08:08 -0700)]
ci: Enable iris testing in meson-release

This should catch any build breaks in release mode.  iris was already
build tested in debug builds, but not release mode.

Suggested by Michel Dänzer.

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