mesa.git
3 years agonir_lower_io: Add addr_format_is_offset helper
Jesse Natalie [Tue, 14 Jul 2020 17:38:32 +0000 (10:38 -0700)]
nir_lower_io: Add addr_format_is_offset helper

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

3 years agofreedreno/regs: update a6xx PC regs
Jonathan Marek [Sat, 11 Jul 2020 19:55:12 +0000 (15:55 -0400)]
freedreno/regs: update a6xx PC regs

Update some registers in the 0x9800-0xa000 range.

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

3 years agofreedreno/regs: update a6xx VPC regs
Jonathan Marek [Sat, 11 Jul 2020 17:03:41 +0000 (13:03 -0400)]
freedreno/regs: update a6xx VPC regs

Update some registers in the 0x9000-0x95ff range.

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

3 years agofreedreno/regs: update a6xx RB regs
Jonathan Marek [Sat, 11 Jul 2020 16:29:38 +0000 (12:29 -0400)]
freedreno/regs: update a6xx RB regs

Update some registers in the 0x8c00-0x8dff range.

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

3 years agofreedreno/regs: update a6xx GRAS registers
Jonathan Marek [Thu, 9 Jul 2020 18:59:04 +0000 (14:59 -0400)]
freedreno/regs: update a6xx GRAS registers

Update some registers in the 0x8000-0x87ff range.

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

3 years agogitlab-ci: re-enable arm64_a630_vk
Jonathan Marek [Tue, 14 Jul 2020 14:58:56 +0000 (10:58 -0400)]
gitlab-ci: re-enable arm64_a630_vk

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

3 years agoturnip: remove use of tu_cs_entry for draw states
Jonathan Marek [Thu, 18 Jun 2020 20:24:26 +0000 (16:24 -0400)]
turnip: remove use of tu_cs_entry for draw states

The tu_cs_entry struct doesn't match well what we want for SET_DRAW_STATE
and CP_INDIRECT_BUFFER (requires extra steps to get iova and size), so
start phasing it out.

Additionally, use newly added tu_cs_draw_state where it doesn't require any
effort (it requires a fixed size, but gets rid of the extra end_sub_stream)

Note this also changes the behavior of CmdBindDescriptorSets for compute to
emit directly in cmd->cs instead of doing through a CP_INDIRECT.

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

3 years agoturnip: fix inconsistencies with tu6_load_state_size
Jonathan Marek [Sat, 20 Jun 2020 00:43:50 +0000 (20:43 -0400)]
turnip: fix inconsistencies with tu6_load_state_size

The next patch assumes the correct size is returned in tu6_emit_load_state.

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

3 years agoturnip: emit compute pipeline directly in CmdBindPipeline
Jonathan Marek [Thu, 18 Jun 2020 19:41:31 +0000 (15:41 -0400)]
turnip: emit compute pipeline directly in CmdBindPipeline

There's no need to defer it, and can get rid DIRTY_COMPUTE_PIPELINE.

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

3 years agoturnip: use DIRTY SDS bit to avoid making copies of pipeline load state ib
Jonathan Marek [Thu, 18 Jun 2020 17:07:48 +0000 (13:07 -0400)]
turnip: use DIRTY SDS bit to avoid making copies of pipeline load state ib

Some testing showed that the DIRTY bit has the desired behavior, so use it
to make things a bit simpler.

Note in CmdBindPipeline, having the TU_CMD_DIRTY_DESCRIPTOR_SETS behind a
if(pipeline->layout->dynamic_offset_count) was wrong.

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

3 years agozink: try to handle multisampled null buffers
Mike Blumenkrantz [Mon, 13 Jul 2020 20:35:10 +0000 (16:35 -0400)]
zink: try to handle multisampled null buffers

I don't have any tests for this that I've run into yet, so this is mostly
just guessing

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

3 years agozink: handle empty attachments
Mike Blumenkrantz [Fri, 29 May 2020 20:23:49 +0000 (16:23 -0400)]
zink: handle empty attachments

create an empty buffer and surface to reuse for the fb attachment here

this fixes most of the arb_framebuffer_object tests in piglit

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

3 years agopan/mdg: Fix non-debug compiliation
Icecream95 [Tue, 14 Jul 2020 03:06:09 +0000 (15:06 +1200)]
pan/mdg: Fix non-debug compiliation

Fixes error when the assert is optimized out:

   ../src/panfrost/midgard/midgard_compile.c: In function ‘output_load_rt_addr’:
   ../src/panfrost/midgard/midgard_compile.c:1644:1: error: control reaches end of non-void function [-Werror=return-type]
    }

Closes #3270

Fixes: 7781d2c2ead ("pan/mdg: Support MRT in output load lowering")
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5895>

3 years agoRevert https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4580
Michel Dänzer [Tue, 14 Jul 2020 15:08:10 +0000 (17:08 +0200)]
Revert https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4580

It broke the CI pipeline on master:

https://gitlab.freedesktop.org/mesa/mesa/-/jobs/3604314
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/3604315

Revert for now, to allow other MRs to be merged.

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

3 years agonouveau: expose HMM
Karol Herbst [Tue, 5 Jun 2018 12:12:55 +0000 (14:12 +0200)]
nouveau: expose HMM

v2: moved caps

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4580>

3 years agonvc0: support PIPE_CAP_RESOURCE_FROM_USER_MEMORY_COMPUTE_ONLY
Karol Herbst [Wed, 27 May 2020 14:29:06 +0000 (16:29 +0200)]
nvc0: support PIPE_CAP_RESOURCE_FROM_USER_MEMORY_COMPUTE_ONLY

v2: rework by adding a new buffer status

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4580>

3 years agogallium: add PIPE_CAP_RESOURCE_FROM_USER_MEMORY_COMPUTE_ONLY
Karol Herbst [Tue, 5 May 2020 13:09:50 +0000 (15:09 +0200)]
gallium: add PIPE_CAP_RESOURCE_FROM_USER_MEMORY_COMPUTE_ONLY

With the current UAPI we only support user pointers from the compute
engines, so we need a way to express that in gallium.

v2: fix typos
v3: add allows_user_pointers helper

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Pierre Moreau <dev@pmoreau.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4580>

3 years agonouveau: enable HMM
Karol Herbst [Sun, 29 Jul 2018 20:06:18 +0000 (22:06 +0200)]
nouveau: enable HMM

v2: move declarations into libdrm
v3: fix typos
    rework handling of how much memory to reserve
v4: remove unused parameter
    unmap cutout on error and when the screen is destroyed
v5: move into screen_create
    enable HMM only if CL gets enabled

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4580>

3 years agoci: bump libdrm to 2.4.102
Karol Herbst [Tue, 30 Jun 2020 10:26:43 +0000 (12:26 +0200)]
ci: bump libdrm to 2.4.102

Since version 2.4.101 there are only xz archives hence the bz2 to xz
change.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4580>

3 years agozink: block resolve blits for depth/stencil buffers
Mike Blumenkrantz [Sun, 14 Jun 2020 05:44:38 +0000 (01:44 -0400)]
zink: block resolve blits for depth/stencil buffers

"The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT"
- vkCmdResolveImage spec

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

3 years agozink: block vkCmdBlitImage usage for multi sampled blits
Mike Blumenkrantz [Sun, 14 Jun 2020 04:30:55 +0000 (00:30 -0400)]
zink: block vkCmdBlitImage usage for multi sampled blits

this is prohibited by spec

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

3 years agozink: try copy_region hook for blits where we can't do a regular blit or resolve
Mike Blumenkrantz [Sun, 14 Jun 2020 04:03:31 +0000 (00:03 -0400)]
zink: try copy_region hook for blits where we can't do a regular blit or resolve

in cases where the formats match, we can likely just pass this through for now

fixes a ton of spec@!opengl 1.1@depthstencil-default_fb-blit piglit tests

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

3 years agomesa/main: use call_once instead of open-coding
Erik Faye-Lund [Fri, 10 Jul 2020 11:08:30 +0000 (13:08 +0200)]
mesa/main: use call_once instead of open-coding

We already have a utility for this, so let's use that instead.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5879>

3 years agomesa/main: factor out one-time-init into a helper
Erik Faye-Lund [Fri, 10 Jul 2020 11:05:32 +0000 (13:05 +0200)]
mesa/main: factor out one-time-init into a helper

This will make the next commit a bit cleaner.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5879>

3 years agogv100/ir: set ftz bit on floating point operations
Karol Herbst [Mon, 13 Jul 2020 14:24:20 +0000 (16:24 +0200)]
gv100/ir: set ftz bit on floating point operations

Fixes Unigine Heavens ambient occlusion

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5881>

3 years agomeson: fix android vulkan build
Eric Engestrom [Sat, 11 Jul 2020 08:17:30 +0000 (10:17 +0200)]
meson: fix android vulkan build

Android doesn't have `pthread_cancel()` and is unlikely to ever
implement it [1], but `wsi_common_display.c` needs it (or an
alternative).

Let's just disable the platform on Android (as it used to be
before 448eb19158f483d807ef).

[1] https://android-review.googlesource.com/c/platform/bionic/+/1215779/1/docs/status.md

Fixes: 448eb19158f483d807ef ("vulkan: automatically compile the `display` platform when available")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Nataraj Deshpande <nataraj.deshpande@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5860>

3 years agogitlab-ci: Drop dependencies:
Michel Dänzer [Fri, 10 Jul 2020 15:19:00 +0000 (17:19 +0200)]
gitlab-ci: Drop dependencies:

Artifacts from jobs listed in needs: are downloaded by default, so
there's no need to list them in dependencies: as well (in fact,
https://docs.gitlab.com/ce/ci/yaml/#artifact-downloads-with-needs says
using dependencies: together with needs: is invalid, so we might have
been getting lucky...).

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

3 years agogitlab-ci: Remove indirect dependencies from needs:
Michel Dänzer [Fri, 10 Jul 2020 15:00:14 +0000 (17:00 +0200)]
gitlab-ci: Remove indirect dependencies from needs:

Tomeu discovered that GitLab 12.8 fixed the bug where jobs would
spuriously run even though some of their dependency jobs were skipped.
So we don't need to list indirect dependencies anymore.

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

3 years agotu: Don't invalidate irrelevant state when changing pipeline
Connor Abbott [Mon, 13 Jul 2020 10:54:36 +0000 (12:54 +0200)]
tu: Don't invalidate irrelevant state when changing pipeline

At least in the future this could let us avoid re-emitting gfx/cs
constants when the other changes. This also matches what the blob does.

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

3 years agofreedreno/a6xx: Add some documentation for shared consts
Connor Abbott [Mon, 13 Jul 2020 10:51:43 +0000 (12:51 +0200)]
freedreno/a6xx: Add some documentation for shared consts

I'm not convinced we'll actually want to use this, and there may be
another enable bit in SP_UNKNOWN_AB00, but it's nice to at least write
this down in case we want to try using it in the future.

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

3 years agofreedreno/a6xx: Rename and document HLSQ_UPDATE_CNTL
Connor Abbott [Mon, 13 Jul 2020 10:22:20 +0000 (12:22 +0200)]
freedreno/a6xx: Rename and document HLSQ_UPDATE_CNTL

It turns out that this clears CP_LOAD_STATE6 packets, including
disabling any pending loads for SS6_INDIRECT/SS6_BINDLESS (these loads
don't actually happen until the draw itself, and I'm not sure if they
happen if the state is unused by the shader) and marking constants and
UBO descriptors loaded with SS6_DIRECT as invalid. It's used very
differently from HLSQ_UPDATE_CNTL on a4xx from whence the name came, and
unlike on a4xx it's not readable, so this probably doesn't line up with
HLSQ_UPDATE_CNTL on a4xx.

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

3 years agoclover: implements clEnqueueFillBuffer
Serge Martin [Sun, 3 May 2020 11:56:15 +0000 (13:56 +0200)]
clover: implements clEnqueueFillBuffer

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5897>

3 years agoclover: add more cl_mem_object_type to pipe_texture_target mapping
Serge Martin [Tue, 19 May 2020 13:56:15 +0000 (15:56 +0200)]
clover: add more cl_mem_object_type to pipe_texture_target mapping

It avoid unnecessary CL_INVALID_VALUE return from clGetSupportedImageFormats

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5897>

3 years agoradv: add the custom border color BO to the list of buffers
Samuel Pitoiset [Mon, 13 Jul 2020 18:09:15 +0000 (20:09 +0200)]
radv: add the custom border color BO to the list of buffers

The buffer was never added to the list of buffers. This might lead to
VM faults and GPU hangs.

Found this by luck.

Fixes: 57e796a12a8 ("radv: Implement VK_EXT_custom_border_color")
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/5884>

3 years agofreedreno/registers: Rename SP_2D_SRC_FORMAT
Kristian H. Kristensen [Tue, 14 Jul 2020 03:06:25 +0000 (20:06 -0700)]
freedreno/registers: Rename SP_2D_SRC_FORMAT

This register contains information about the destination format, so
let's rename to SP_2D_DST_FORMAT.

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

3 years agofreedreno/a6xx: Split clear and blit texture into different functions
Kristian H. Kristensen [Fri, 3 Jul 2020 23:25:30 +0000 (16:25 -0700)]
freedreno/a6xx: Split clear and blit texture into different functions

Now that most of the state programming is in shareable helpers, we can
split emit_blit_or_clear_texture into emit_blit_texture and
fd6_clear_surface.

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

3 years agofreedreno/a6xx: Don't take pipe_blit_info in emit_blit_dst
Kristian H. Kristensen [Fri, 3 Jul 2020 22:54:33 +0000 (15:54 -0700)]
freedreno/a6xx: Don't take pipe_blit_info in emit_blit_dst

We only need a few fields and we'll want to use this in cases where we
don't have a pipe_blit_info.

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

3 years agofreedreno/a6xx: Program RB_UNKNOWN_8C01 in setup helper
Kristian H. Kristensen [Fri, 3 Jul 2020 22:18:32 +0000 (15:18 -0700)]
freedreno/a6xx: Program RB_UNKNOWN_8C01 in setup helper

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

3 years agofreedreno/a6xx: Move CP_SET_MARKER to setup helper
Kristian H. Kristensen [Fri, 3 Jul 2020 22:18:01 +0000 (15:18 -0700)]
freedreno/a6xx: Move CP_SET_MARKER to setup helper

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

3 years agofreedreno/a6xx: Move REG_A6XX_SP_2D_SRC_FORMAT programming to helper
Kristian H. Kristensen [Fri, 3 Jul 2020 22:12:25 +0000 (15:12 -0700)]
freedreno/a6xx: Move REG_A6XX_SP_2D_SRC_FORMAT programming to helper

Rename helper to emit_blit_setup().

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

3 years agofreedreno/a6xx: Program A6XX_SP_2D_SRC_FORMAT_COLOR_FORMAT based on dst format
Kristian H. Kristensen [Fri, 3 Jul 2020 22:07:39 +0000 (15:07 -0700)]
freedreno/a6xx: Program A6XX_SP_2D_SRC_FORMAT_COLOR_FORMAT based on dst format

It's a badly named register...

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

3 years agofreedreno/a6xx: Make blit_control helper a little more helpful
Kristian H. Kristensen [Fri, 3 Jul 2020 22:00:34 +0000 (15:00 -0700)]
freedreno/a6xx: Make blit_control helper a little more helpful

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

3 years agofreedreno/a6xx: Enable FMT6_10_10_10_2_UNORM blitting
Kristian H. Kristensen [Fri, 3 Jul 2020 21:34:28 +0000 (14:34 -0700)]
freedreno/a6xx: Enable FMT6_10_10_10_2_UNORM blitting

Now that we correctly program the _DEST version for the blit
destination and use float16 internal format, these formats work with
the blitter.

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

3 years agofreedreno/a6xx: Separate stencil sysmem clear fix
Kristian H. Kristensen [Thu, 2 Jul 2020 20:42:58 +0000 (13:42 -0700)]
freedreno/a6xx: Separate stencil sysmem clear fix

We need to clear with PIPE_FORMAT_S8_UINT.

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

3 years agofreedreno/a6xx: Don't emit src state when clearing
Kristian H. Kristensen [Thu, 2 Jul 2020 11:13:27 +0000 (04:13 -0700)]
freedreno/a6xx: Don't emit src state when clearing

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

3 years agofreedreno/a6xx: Consolidate computing blit_cntl
Kristian H. Kristensen [Thu, 2 Jul 2020 11:03:16 +0000 (04:03 -0700)]
freedreno/a6xx: Consolidate computing blit_cntl

Compute the blit_cntl value in one place and group it with the
register writes.

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

3 years agofreedreno/a6xx: Program SP_2D_SRC_FORMAT outside blit loop
Kristian H. Kristensen [Thu, 2 Jul 2020 11:00:42 +0000 (04:00 -0700)]
freedreno/a6xx: Program SP_2D_SRC_FORMAT outside blit loop

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

3 years agofreedreno/a6xx: Set src and dst rects outside blit loop
Kristian H. Kristensen [Thu, 2 Jul 2020 10:54:58 +0000 (03:54 -0700)]
freedreno/a6xx: Set src and dst rects outside blit loop

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

3 years agofreedreno/a6xx: Don't set unknown bit when tiling differs
Kristian H. Kristensen [Thu, 2 Jul 2020 10:49:57 +0000 (03:49 -0700)]
freedreno/a6xx: Don't set unknown bit when tiling differs

There is a bit here that's sometimes set, but it's generally not
related to whether tiling differs between src and dst.  Let's stop
setting it until we know more.

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

3 years agofreedreno/a6xx: Split out src and dst setup helpers for blit
Kristian H. Kristensen [Thu, 2 Jul 2020 10:42:19 +0000 (03:42 -0700)]
freedreno/a6xx: Split out src and dst setup helpers for blit

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

3 years agofreedreno/a6xx: Move fd6_ifmt into fd6_blitter.c
Kristian H. Kristensen [Thu, 2 Jul 2020 10:05:12 +0000 (03:05 -0700)]
freedreno/a6xx: Move fd6_ifmt into fd6_blitter.c

It's only used in this file.

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

3 years agofreedreno/a6xx: Don't blit with R2D_RAW
Kristian H. Kristensen [Wed, 1 Jul 2020 21:50:52 +0000 (14:50 -0700)]
freedreno/a6xx: Don't blit with R2D_RAW

Map all formats to a valid ifmt.  FMT6_10_10_10_2_UNORM_DEST still
doesn't work on the blitter so keep that one on the u_blitter path.

Fixes
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.*
with FD_MESA_DEBUG=nogmem.

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

3 years agoturnip: drop GS clear path
Jonathan Marek [Tue, 7 Jul 2020 17:12:14 +0000 (13:12 -0400)]
turnip: drop GS clear path

We didn't know how to write layer id without GS, since that's the only way
to do it through VK/GL, and the blob didn't implement this clear case (and
failed cases where it was absolutely necessary). However now we know how to
set it after some educated guesses and looking at tess/geom traces, so the
GS path can be dropped.

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

3 years agoturnip: clean up primitive output state
Jonathan Marek [Tue, 7 Jul 2020 14:37:40 +0000 (10:37 -0400)]
turnip: clean up primitive output state

We only need to emit one set of primitive output registers. This may differ
from the blob, because it seems to try to allow using the same pipeline
with tess/geom enabled/disabled.

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

3 years agofreedreno/regs: update primitive output related registers
Jonathan Marek [Tue, 7 Jul 2020 04:08:33 +0000 (00:08 -0400)]
freedreno/regs: update primitive output related registers

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

3 years agofreedreno/ir3: Fix uninit var warning.
Eric Anholt [Wed, 8 Jul 2020 20:49:31 +0000 (13:49 -0700)]
freedreno/ir3: Fix uninit var warning.

It's a decent bit of analysis to see that the initialization will always
happen, and my compiler isn't doing so in at least one configuration.

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

3 years agofreedreno/ir3_cmdline: Fix an uninit var warning.
Eric Anholt [Thu, 9 Jul 2020 23:15:16 +0000 (16:15 -0700)]
freedreno/ir3_cmdline: Fix an uninit var warning.

You could only access entry through the initialized path, but we can clean
up the compiler warning by not keeping the other var.

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

3 years agoturnip: implement VK_EXT_private_data
Hyunjun Ko [Mon, 13 Jul 2020 03:12:56 +0000 (03:12 +0000)]
turnip: implement VK_EXT_private_data

Which is using base class's implementation.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5539>

3 years agoturnip: Use the common base object type and struct.
Hyunjun Ko [Mon, 13 Jul 2020 03:08:15 +0000 (03:08 +0000)]
turnip: Use the common base object type and struct.

v2. Define new helper function to avoid duplicated a pair of function calls.
v3. Move new helper functions to vk_object.h and call them.
v4. Merge 2 commits to use commomn base object type and struct into one.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5539>

3 years agotu: Fix wrong copies of sampler descriptor.
Hyunjun Ko [Tue, 14 Jul 2020 00:47:30 +0000 (00:47 +0000)]
tu: Fix wrong copies of sampler descriptor.

Found this with the following patch but it exists since adding ycbcr
sampler to the struct.

Fixes: d070a7ba0cfb11f1e01774b9dd3775ab7cd0c4ea
Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5539>

3 years agovulkan: Adds helpers for vk_object (de)alloation and (de)initialization.
Hyunjun Ko [Wed, 1 Jul 2020 05:05:25 +0000 (05:05 +0000)]
vulkan: Adds helpers for vk_object (de)alloation and (de)initialization.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5539>

3 years agogitlab-ci: reduce a630 runner load
Rob Clark [Tue, 14 Jul 2020 02:00:57 +0000 (19:00 -0700)]
gitlab-ci: reduce a630 runner load

They seem to be sometimes taking a while to boot, which is triggering CI
timeouts.  (Possibly tftp server in bad shape?)  Cut out non-essential
a630 CI jobs, and reduce the gles3/gles31 jobs to compensate.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5893>

3 years agomeson/intel: add missing dep on git_sha1.h
Eric Engestrom [Mon, 13 Jul 2020 16:14:01 +0000 (18:14 +0200)]
meson/intel: add missing dep on git_sha1.h

Fixes: 805b32cab90547a576af ("intel: add identifier for debug purposes")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Dylan Baker <dylanx.c.baker@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5882>

3 years agozink: use type of src[0] for ntv store and load ops
Mike Blumenkrantz [Wed, 17 Jun 2020 19:06:27 +0000 (15:06 -0400)]
zink: use type of src[0] for ntv store and load ops

in some cases (e.g., gl_ClipDistance) the nir_variable type doesn't match
the needed destination type, so we can simplify this code to just use
the destination type

fixes spec@glsl-1.10@execution@interpolation@interpolation-none-gl_backcolor-smooth-vertex

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

3 years agozink: add lengthy comment and remove assert from discard_if ntv pass
Mike Blumenkrantz [Sun, 14 Jun 2020 21:24:29 +0000 (17:24 -0400)]
zink: add lengthy comment and remove assert from discard_if ntv pass

as in the comment, while we may want to try verifying that discard will be
the last instruction in a block, it's a bit problematic given that other nir
passes we're doing may insert instructions after a discard as part of e.g.,
nir_opt_dead_cf in the process of removing another block

fixes shaders@glsl-fs-discard-04

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

3 years agozink: handle ntv case of nested loop instructions more permissively
Mike Blumenkrantz [Wed, 10 Jun 2020 15:09:47 +0000 (11:09 -0400)]
zink: handle ntv case of nested loop instructions more permissively

if the last instruction in a loop's body terminates a block, e.g., from
a nested loop with a jump as its final instruction, then no block will
have been started when returning to the original loop, and there's no need
to emit a branch

fixes shaders@glsl-vs-continue-in-switch-in-do-while

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

3 years agozink: use right vulkan type for GL_PRIMITIVES_GENERATED queries
Mike Blumenkrantz [Thu, 9 Jul 2020 19:59:29 +0000 (15:59 -0400)]
zink: use right vulkan type for GL_PRIMITIVES_GENERATED queries

VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT includes
primitives which won't get drawn due to e.g., not enough vertices emitted
by geometry shader

fixes spec@glsl-1.50@gs-emits-too-few-verts

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

3 years agozink: only reset query pool on query end if current batch isn't in renderpass
Mike Blumenkrantz [Mon, 8 Jun 2020 13:59:44 +0000 (09:59 -0400)]
zink: only reset query pool on query end if current batch isn't in renderpass

reset can't be performed during a renderpass, so we need to defer that until a
time when we're definitely not in a renderpass, such as when we're starting a
new query or resuming a query

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

3 years agozink: properly handle query pool overflows
Mike Blumenkrantz [Mon, 25 May 2020 14:59:57 +0000 (10:59 -0400)]
zink: properly handle query pool overflows

inline a query result value to each query object so we can stash the partial
result just before we do a pool reset, which will always happen during the
suspend/resume query mechanism that swaps active queries from a flushed batch
to the next batch

once (or if) the "real" call to fetch query results is called, we can dump the
inlined value into the fetch value and return the full results

fixes mesa/mesa#3000

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

3 years agozink: only stall during query destroy for xfb queries
Mike Blumenkrantz [Mon, 25 May 2020 14:55:17 +0000 (10:55 -0400)]
zink: only stall during query destroy for xfb queries

xfb queries allocate vk buffer objects in the underlying driver which
can be deallocated while an xfb query is in-flight if we attempt to
defer it due to the way that gl xfb is translated to vk, so we need to
continue forcing this behavior in that case

for other query types, we can safely defer here until the current batch has
finished rather than block

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

3 years agozink: use #define for number of queries per-pool
Mike Blumenkrantz [Mon, 25 May 2020 14:54:23 +0000 (10:54 -0400)]
zink: use #define for number of queries per-pool

just to ensure we're consistent internally

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

3 years agozink: rework query handling
Mike Blumenkrantz [Mon, 25 May 2020 14:38:40 +0000 (10:38 -0400)]
zink: rework query handling

this hooks up query objects to the batches that they're actively running on
(and the related fence) in order to manage the lifetimes of queries more
efficiently by calling vkCmdResetQueryPool only on init and when the query
pool has been completely used up. additionally, this resolves some vk spec
issues related to destroying pools with active queries

note that any time a query pool is completely used up, results are lost,
which is a very slight improvement on the previous abort() that was triggered
in that scenario

ref mesa/mesa#3000

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

3 years agopanfrost: Fix outmods on int to float conversions
Italo Nicola [Mon, 13 Jul 2020 16:19:08 +0000 (16:19 +0000)]
panfrost: Fix outmods on int to float conversions

No shader-db changes (Alyssa).

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

3 years agodocs/submittingpatches: add more than one `Cc: mesa-stable` example to the examples...
Eric Engestrom [Mon, 13 Jul 2020 13:05:41 +0000 (15:05 +0200)]
docs/submittingpatches: add more than one `Cc: mesa-stable` example to the examples list

Starting with that very example :)

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

3 years agodocs/features: Update ASTC entries for Panfrost
Alyssa Rosenzweig [Fri, 10 Jul 2020 21:49:47 +0000 (17:49 -0400)]
docs/features: Update ASTC entries for Panfrost

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

3 years agopanfrost: Map PIPE_{DXT, RGTC, BPTC} to MALI_BCn
Alyssa Rosenzweig [Fri, 10 Jul 2020 21:30:14 +0000 (17:30 -0400)]
panfrost: Map PIPE_{DXT, RGTC, BPTC} to MALI_BCn

Mali (and Vulkan) uses D3D naming conventions for these formats where
Gallium/Mesa uses OpenGL names, but the formats are equivalent. sRGB is
communicated out-of-band on Mali; otherwise, it appears to be a 1:1
mapping.

On supported devices, this exposes GL_EXT_texture_compression_rgtc and
GL_ARB_texture_compression_bptc, so update features.txt

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

3 years agopanfrost: Filter compressed texture formats
Alyssa Rosenzweig [Fri, 10 Jul 2020 21:18:00 +0000 (17:18 -0400)]
panfrost: Filter compressed texture formats

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

3 years agopanfrost: Pipe in compressed texture feature mask
Alyssa Rosenzweig [Fri, 10 Jul 2020 14:42:24 +0000 (10:42 -0400)]
panfrost: Pipe in compressed texture feature mask

So we can query at run-time as part of Gallium's checks.

v2: More explicit naming.

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

3 years agopanfrost: Add format codes for new compressed textures
Alyssa Rosenzweig [Fri, 10 Jul 2020 14:17:44 +0000 (10:17 -0400)]
panfrost: Add format codes for new compressed textures

Compressed formats line up with CONFIG_TEX_COMPRESSED_FORMAT_ENABLE
documented on
https://releases.linaro.org/archive/14.07/android/images/armv8-android-juno-lsk/

None of the new formats have been seen in the wild.

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

3 years agopanfrost: Compact unused BO flag bits
Alyssa Rosenzweig [Mon, 13 Jul 2020 14:07:56 +0000 (10:07 -0400)]
panfrost: Compact unused BO flag bits

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

3 years agopanfrost: Remove panfrost_bo_access type
Alyssa Rosenzweig [Tue, 26 May 2020 18:47:21 +0000 (14:47 -0400)]
panfrost: Remove panfrost_bo_access type

It's just whether it writes or not, which is already implied by the
presence/absence of a writer. So no need to track explicitly.

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

3 years agopanfrost: Remove PAN_BO_DONT_REUSE
Alyssa Rosenzweig [Tue, 26 May 2020 17:10:41 +0000 (13:10 -0400)]
panfrost: Remove PAN_BO_DONT_REUSE

Equivalent to SHARED.

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

3 years agopanfrost: Remove PAN_BO_COHERENT_LOCAL
Alyssa Rosenzweig [Tue, 26 May 2020 17:08:40 +0000 (13:08 -0400)]
panfrost: Remove PAN_BO_COHERENT_LOCAL

Ancient relic from kbase. Panfrost kernel doesn't need this.

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

3 years agopanfrost: Merge PAN_BO_IMPORTED/PAN_BO_EXPORTED
Alyssa Rosenzweig [Tue, 26 May 2020 17:07:23 +0000 (13:07 -0400)]
panfrost: Merge PAN_BO_IMPORTED/PAN_BO_EXPORTED

Always checked together and really signal the same property from
different perspectives.

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

3 years agopanfrost: Index BOs from the BO map sparse array
Alyssa Rosenzweig [Tue, 26 May 2020 16:04:42 +0000 (12:04 -0400)]
panfrost: Index BOs from the BO map sparse array

Now we have a central store of them, so we may remove active_bo.

v2: Squash two patches together to prevent a race condition mid-series.

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

3 years agopanfrost: Add a sparse array to map GEM handles to BOs
Alyssa Rosenzweig [Mon, 25 May 2020 23:48:30 +0000 (19:48 -0400)]
panfrost: Add a sparse array to map GEM handles to BOs

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

3 years agopanfrost: Fix write to free'd memory
Alyssa Rosenzweig [Thu, 9 Jul 2020 23:13:59 +0000 (19:13 -0400)]
panfrost: Fix write to free'd memory

No clue how this worked before.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Fixes: 82f18b713ac ("panfrost: Keep track of active BOs")
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5859>

3 years agopanfrost: Fix fence leak
Alyssa Rosenzweig [Tue, 26 May 2020 20:57:44 +0000 (16:57 -0400)]
panfrost: Fix fence leak

When overwriting the writer, we need to release the old reference.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Fixes: 2dad9fde505 ("panfrost: Start tracking inter-batch dependencies")
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5859>

3 years agoaco: add 32-bit integer addition to can_swap_operands
Rhys Perry [Tue, 30 Jun 2020 15:16:18 +0000 (16:16 +0100)]
aco: add 32-bit integer addition to can_swap_operands

fossil-db (Navi):
Totals from 167 (0.12% of 135946) affected shaders:
CodeSize: 484892 -> 482628 (-0.47%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>

3 years agoradv: use lower_shuffle_to_swizzle_amd
Rhys Perry [Tue, 23 Jun 2020 16:38:37 +0000 (17:38 +0100)]
radv: use lower_shuffle_to_swizzle_amd

Affects a few shaders in Detroit: Become Human and Doom Eternal.

fossil-db (Navi):
Totals from 9 (0.01% of 135946) affected shaders:
CodeSize: 31188 -> 25096 (-19.53%)
Instrs: 6136 -> 4999 (-18.53%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>

3 years agonir/lower_subgroups: add lower_shuffle_to_swizzle_amd
Rhys Perry [Tue, 23 Jun 2020 16:37:37 +0000 (17:37 +0100)]
nir/lower_subgroups: add lower_shuffle_to_swizzle_amd

masked_swizzle_amd can be much faster than shuffle.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>

3 years agonir/lower_subgroups: pass options struct to lower_shuffle
Rhys Perry [Mon, 6 Jul 2020 16:59:08 +0000 (17:59 +0100)]
nir/lower_subgroups: pass options struct to lower_shuffle

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>

3 years agoaco: implement <32-bit masked_swizzle_amd
Rhys Perry [Thu, 2 Jul 2020 11:15:28 +0000 (12:15 +0100)]
aco: implement <32-bit masked_swizzle_amd

This is needed since we will be lowering some 8/16-bit shuffles to
masked_swizzle_amd.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>

3 years agoaco: optimize some masked swizzles to DPP
Rhys Perry [Thu, 2 Jul 2020 11:12:12 +0000 (12:12 +0100)]
aco: optimize some masked swizzles to DPP

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>

3 years agoaco: read 0 from inactive lanes when using dpp
Rhys Perry [Mon, 29 Jun 2020 18:48:54 +0000 (19:48 +0100)]
aco: read 0 from inactive lanes when using dpp

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>

3 years agopanfrost: Enable framebuffer fetch
Icecream95 [Mon, 6 Jul 2020 00:03:46 +0000 (12:03 +1200)]
panfrost: Enable framebuffer fetch

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

3 years agopanfrost: Extend fetched framebuffer results
Alyssa Rosenzweig [Fri, 10 Jul 2020 17:54:06 +0000 (13:54 -0400)]
panfrost: Extend fetched framebuffer results

So NIR doesn't complain about invalid swizzles when reading a format
with less than 4 channels.

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

3 years agopanfrost: Always use SOFTWARE for pure formats
Alyssa Rosenzweig [Fri, 10 Jul 2020 16:12:36 +0000 (12:12 -0400)]
panfrost: Always use SOFTWARE for pure formats

Otherwise we end up implicitly converting ints to floating point.
Likewise for floats which again have strange interactions.

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

3 years agopanfrost: Generate shader variants on framebuffer bind
Alyssa Rosenzweig [Fri, 10 Jul 2020 16:12:14 +0000 (12:12 -0400)]
panfrost: Generate shader variants on framebuffer bind

If we keyed the shader for the framebuffer.

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

3 years agopanfrost: Use f2fmp for framebuffer lowering conversions
Icecream95 [Thu, 9 Jul 2020 01:26:26 +0000 (13:26 +1200)]
panfrost: Use f2fmp for framebuffer lowering conversions

This allows the conversion to be removed when the output is needed as
f32 anyway, for example for highp framebuffer fetch.

v2: Also change operations such as i2i16 to i2imp (Alyssa).

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