mesa.git
3 years agopanfrost: Move attr_meta emission to the draw routine
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:14:20 +0000 (12:14 -0400)]
panfrost: Move attr_meta emission to the draw routine

It's unfortunate that we can't do more at CSO time, but actually all we
really need is the format after all, and this lets us group the state.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Make attribute-buffer map explicit
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:09:05 +0000 (12:09 -0400)]
panfrost: Make attribute-buffer map explicit

This helps decouple the attribute and attribute buffer emission.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Simplify offset fixup proof
Alyssa Rosenzweig [Fri, 14 Aug 2020 16:01:55 +0000 (12:01 -0400)]
panfrost: Simplify offset fixup proof

No need to put strides and such into it at all.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Use better packs for blits
Alyssa Rosenzweig [Thu, 13 Aug 2020 20:06:12 +0000 (16:06 -0400)]
panfrost: Use better packs for blits

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Add XML for attribute buffers
Alyssa Rosenzweig [Thu, 13 Aug 2020 18:44:11 +0000 (14:44 -0400)]
panfrost: Add XML for attribute buffers

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Merge attribute packing routines
Alyssa Rosenzweig [Thu, 13 Aug 2020 18:32:23 +0000 (14:32 -0400)]
panfrost: Merge attribute packing routines

In preparation for streamlining the packing, we need related code in one
place.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: XMLify attributes
Alyssa Rosenzweig [Thu, 13 Aug 2020 17:27:16 +0000 (13:27 -0400)]
panfrost: XMLify attributes

To keep review manageable, this only ports over pandecode and blitting.
The main uses for vertex data and varying linkage will come next, as
they touch considerably more code.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: XMLify mali_channel
Alyssa Rosenzweig [Wed, 12 Aug 2020 20:46:07 +0000 (16:46 -0400)]
panfrost: XMLify mali_channel

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Squash 22-bit format field in attr_meta
Alyssa Rosenzweig [Wed, 12 Aug 2020 02:26:03 +0000 (22:26 -0400)]
panfrost: Squash 22-bit format field in attr_meta

This is an intermediate step to support v7 style formats. Now we don't
see the mali_format alone, instead together with the swizzle (and sRGB
flag, unused for attributes of course).

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Drop NXR format
Alyssa Rosenzweig [Wed, 12 Aug 2020 02:06:07 +0000 (22:06 -0400)]
panfrost: Drop NXR format

It's not clear this was ever exposed under any GL/DX/CL/VK/... extension
whatsoever...

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopanfrost: Set STRIDE_4BYTE_ALIGNED_ONLY
Alyssa Rosenzweig [Thu, 13 Aug 2020 19:19:07 +0000 (15:19 -0400)]
panfrost: Set STRIDE_4BYTE_ALIGNED_ONLY

It isn't clear to me why, but this breaks in some cases (such as some
dEQP cases where the blob does a translate too).

This reverts commit 9f2997dad061ee38e06f654f524dffbffc5b2a4b.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Cc: mesa-stable
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>

3 years agopipebuffer: Remove unused buffer event in slab bufmgr
Louis-Francis Ratté-Boulianne [Wed, 27 May 2020 03:19:08 +0000 (23:19 -0400)]
pipebuffer: Remove unused buffer event in slab bufmgr

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

3 years agonir: handle load_input_vertex in nir_get_io_offset_src
Marek Olšák [Thu, 13 Aug 2020 15:53:17 +0000 (11:53 -0400)]
nir: handle load_input_vertex in nir_get_io_offset_src

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

3 years agonir: remove nir_strip stub declaration
Marek Olšák [Fri, 14 Aug 2020 05:22:05 +0000 (01:22 -0400)]
nir: remove nir_strip stub declaration

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

3 years agocompiler: add glsl_print_type
Marek Olšák [Thu, 13 Aug 2020 17:39:38 +0000 (13:39 -0400)]
compiler: add glsl_print_type

Move it from the glsl compiler. For debugging.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6328>

3 years agoac/llvm: handle static/shared llvm init separately
Pierre-Eric Pelloux-Prayer [Mon, 10 Aug 2020 08:16:39 +0000 (10:16 +0200)]
ac/llvm: handle static/shared llvm init separately

Having a single init function works as expected for shared llvm, but
when using a static llvm only one llvm will get initialized.

This commit introduces 2 separate init function:
- shared llvm = single public init function
- static llvm = one init function for each module using llvm

Fixes: 50d20dc055d ("ac/llvm: export ac_init_llvm_once in targets")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3376
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6253>

3 years agost/mesa: Enable clip planes lowering for geometry shaders
Louis-Francis Ratté-Boulianne [Mon, 29 Jun 2020 07:21:54 +0000 (03:21 -0400)]
st/mesa: Enable clip planes lowering for geometry shaders

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

3 years agost/mesa: factor ucp-lowering logic into helper
Louis-Francis Ratté-Boulianne [Mon, 29 Jun 2020 07:21:54 +0000 (03:21 -0400)]
st/mesa: factor ucp-lowering logic into helper

This makes the next step easier to follow.

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

3 years agocompiler/glsl: Initialize local variable to zero to fix MSVC RTC error
BillKristiansen [Thu, 11 Jun 2020 17:38:19 +0000 (10:38 -0700)]
compiler/glsl: Initialize local variable to zero to fix MSVC RTC error

Without this, we get a run-time error about using an uninitialized
variable.

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

3 years agovallium: initial import of the vulkan frontend
Dave Airlie [Fri, 19 Jun 2020 06:40:27 +0000 (16:40 +1000)]
vallium: initial import of the vulkan frontend

This is the initial import of the vallium frontend for gallium.
This is only good enough to run the triangle and the gears demo
(wrongly) from Sascha demos.

Improvements are mostly on the llvmpipe side after this.

It contains an implementation of the Vulkan API which is mapped
onto the gallium API, and is suitable only for SOFTWARE drivers.

Command buffers are recordred into malloced memory, then later
they are played back against the gallium API. The command buffers
are mostly just Vulkan API marshalling but in some places the information is
processed before being put into the command buffer (renderpass stuff).

Execution happens on a separate "graphics" thread, againt the gallium API.

There is only a single queue which wraps a single gallium context.

Resources are allocated via the new resource/memory APIs.
Shaders are created via the context and bound/unbound in the
second thread.

(No HW for reasons - memory management, sw paths for lots of paths,
pointless CPU side queue)

v2: drop mesa_icd, drop cpp_args, drop extra flags, change meson config (Eric)
v2.1: use meson-gallium job

meson pieces:
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
overall:

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

3 years agovulkan/wsi: add sw support. (v2)
Dave Airlie [Fri, 19 Jun 2020 06:37:51 +0000 (16:37 +1000)]
vulkan/wsi: add sw support. (v2)

This adds an option to the WSI support for a software path to be
used with the vulkan sw drivers. There is probably some changes
that could be made to improve this and use present, for now
just use put image.

v2: roll out flag across all drivers (Eric)

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

3 years agoutil/format: add some ZS helpers for vallium
Dave Airlie [Fri, 19 Jun 2020 06:44:09 +0000 (16:44 +1000)]
util/format: add some ZS helpers for vallium

The vallium layer has a requirement to insert and extra the 24-bit
unorm value as a unorm value (not as a float etc). Add helpers
to facilitate that.

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

3 years agogallivm/nir: add load push constant support
Dave Airlie [Fri, 19 Jun 2020 06:51:50 +0000 (16:51 +1000)]
gallivm/nir: add load push constant support

This convets the push constant load to a ubo load against the 0 constant buffer,
which is where the vallium layer will bind things.

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

3 years agollvmpipe: add support for memory allocation APIs
Dave Airlie [Fri, 19 Jun 2020 06:27:32 +0000 (16:27 +1000)]
llvmpipe: add support for memory allocation APIs

This adds llvmpipe driver support for the vulkan split memory/resource API
and the the don't overallocate flag.

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

3 years agogallium: add a resource flag to say no over allocation.
Dave Airlie [Fri, 19 Jun 2020 06:25:49 +0000 (16:25 +1000)]
gallium: add a resource flag to say no over allocation.

llvmpipe overallocates buffers for buffers used as render targets,
however this breaks some vulkan apps (UE4), so add a workaround
flag to force llvmpipe to not overallocate certain buffers.

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

3 years agogallium: add an interface for memory allocations.
Dave Airlie [Fri, 19 Jun 2020 06:24:48 +0000 (16:24 +1000)]
gallium: add an interface for memory allocations.

In order to support vulkan over gallium for the sw renderers,
there needs to be a vulkan-like memory allocation API.

It doesn't need to be overly complicated for the needs of the sw
renderers.

The vallium layer will allocate resources and memory separately
and bind them via this API.

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

3 years agoradv: Use getter instead of setter to extract value.
Bas Nieuwenhuizen [Sun, 16 Aug 2020 20:38:22 +0000 (22:38 +0200)]
radv: Use getter instead of setter to extract value.

Oops ...

Fixes: 64768111c30 "radv: Handle slightly different image dimensions."
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3417
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6337>

3 years agogallium: Use unpack_rgba() instead of fetch_rgba in translate_generic
Eric Anholt [Thu, 13 Aug 2020 17:14:11 +0000 (10:14 -0700)]
gallium: Use unpack_rgba() instead of fetch_rgba in translate_generic

This is the only user of fetch_rgba outside of llvmpipe, and it's in the
fallback path of this fallback path.  Looking at an example of these two
functions, b8g8r8a8's unpack_rgba is 2.7x as long as fetch_rgba.  It feels
reasonable to sacrifice some perf in this already slow (VBO readback, and
a function pointer call per attribute per vertex) path to reduce our
binary size.  And, if I ever finish getting unpack codegen to switch to
rows instead of rects, that factor will go back down.

Saves 40kb of binary on non-llvmpipe gallium drivers.

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

3 years agoutil: Move fetch_rgba to a separate function table.
Eric Anholt [Thu, 13 Aug 2020 16:37:32 +0000 (09:37 -0700)]
util: Move fetch_rgba to a separate function table.

Only llvmpipe and translate_generic use it, and only in fallbacks, so if
you're not building that then let's not bloat our binaries with it.

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

3 years agoutil: Mark the format description getter functions as const.
Eric Anholt [Thu, 13 Aug 2020 02:45:55 +0000 (19:45 -0700)]
util: Mark the format description getter functions as const.

This lets the compiler CSE calls to them on the same format.  This is
particularly relevant for the description table lookup calls, which other
inlines might do internally.

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

3 years agoutil: Make all 3 fetch_rgba functions occupy the same function slot.
Eric Anholt [Thu, 13 Aug 2020 16:15:16 +0000 (09:15 -0700)]
util: Make all 3 fetch_rgba functions occupy the same function slot.

A single format either had the float, the sint, or the uint version.
Making the dst be void * lets us store them in the same slot and not have
logic in the callers to call the right one.

-6kb on gallium drivers

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

3 years agouitl: Add R1_UNORM to the list of noaccess (no pack/unpack) formats.
Eric Anholt [Thu, 13 Aug 2020 16:05:32 +0000 (09:05 -0700)]
uitl: Add R1_UNORM to the list of noaccess (no pack/unpack) formats.

The functions were just stubs, if you called them you would be terribly
disappointed.

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

3 years agoegl: drop unused egldriver.h header
Eric Engestrom [Tue, 4 Aug 2020 00:07:52 +0000 (02:07 +0200)]
egl: drop unused egldriver.h header

Signed-off-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/6241>

3 years agoegl: drop now empty egldriver.c
Eric Engestrom [Mon, 3 Aug 2020 23:53:56 +0000 (01:53 +0200)]
egl: drop now empty egldriver.c

Signed-off-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/6241>

3 years agoegl: inline _eglInitializeDisplay() into eglInitialize()
Eric Engestrom [Mon, 3 Aug 2020 21:43:33 +0000 (23:43 +0200)]
egl: inline _eglInitializeDisplay() into eglInitialize()

Signed-off-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/6241>

3 years agoegl: inline _eglGetDriverProc() into eglGetProcAddress()
Eric Engestrom [Mon, 3 Aug 2020 23:38:02 +0000 (01:38 +0200)]
egl: inline _eglGetDriverProc() into eglGetProcAddress()

Signed-off-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/6241>

3 years agoegl: drop unused ${drv}_driver()
Eric Engestrom [Mon, 3 Aug 2020 14:52:03 +0000 (16:52 +0200)]
egl: drop unused ${drv}_driver()

Signed-off-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/6241>

3 years agoegl: replace `&_eglDriver`/`NULL` tested against `NULL` with simple `true`/`false`
Eric Engestrom [Mon, 3 Aug 2020 20:50:42 +0000 (22:50 +0200)]
egl: replace `&_eglDriver`/`NULL` tested against `NULL` with simple `true`/`false`

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from MesaGLInteropEGL{QueryDeviceInfo,ExportObject}()
Eric Engestrom [Mon, 3 Aug 2020 20:48:10 +0000 (22:48 +0200)]
egl: drop unused _EGLDriver from MesaGLInteropEGL{QueryDeviceInfo,ExportObject}()

Signed-off-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/6241>

3 years agoegl: replace replace _EGLDriver with _EGLDisplay->Driver in eglapi.c
Eric Engestrom [Mon, 3 Aug 2020 20:19:42 +0000 (22:19 +0200)]
egl: replace replace _EGLDriver with _EGLDisplay->Driver in eglapi.c

Signed-off-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/6241>

3 years agoegl: replace _EGLDriver with _EGLDisplay->Driver in _eglGetSyncAttrib()
Eric Engestrom [Mon, 3 Aug 2020 15:19:30 +0000 (17:19 +0200)]
egl: replace _EGLDriver with _EGLDisplay->Driver in _eglGetSyncAttrib()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from _eglSurfaceAttrib()
Eric Engestrom [Mon, 3 Aug 2020 15:08:27 +0000 (17:08 +0200)]
egl: drop unused _EGLDriver from _eglSurfaceAttrib()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver & _EGLDisplay from _eglQueryContext()
Eric Engestrom [Mon, 3 Aug 2020 15:03:44 +0000 (17:03 +0200)]
egl: drop unused _EGLDriver & _EGLDisplay from _eglQueryContext()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDisplay from _eglSetDamageRegionKHRClampRects()
Eric Engestrom [Mon, 21 May 2018 09:42:10 +0000 (10:42 +0100)]
egl: drop unused _EGLDisplay from _eglSetDamageRegionKHRClampRects()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from _eglGetConfigs()/_eglChooseConfig()/_eglGetConfigAtt...
Eric Engestrom [Mon, 21 May 2018 18:48:13 +0000 (19:48 +0100)]
egl: drop unused _EGLDriver from _eglGetConfigs()/_eglChooseConfig()/_eglGetConfigAttrib()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from SetBlobCacheFuncsANDROID()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from SetBlobCacheFuncsANDROID()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from QueryDmaBuf{Formats,Modifiers}EXT()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from QueryDmaBuf{Formats,Modifiers}EXT()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from ExportDMABUFImage{,Query}MESA()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from ExportDMABUFImage{,Query}MESA()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from QueryBufferAge()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from QueryBufferAge()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from PostSubBufferNV()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from PostSubBufferNV()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from CreateWaylandBufferFromImageWL()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from CreateWaylandBufferFromImageWL()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from {Bind,Unbind,Query}WaylandDisplayWL()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from {Bind,Unbind,Query}WaylandDisplayWL()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from {Create,Export}DRMImageMESA()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from {Create,Export}DRMImageMESA()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from DupNativeFenceFDANDROID()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from DupNativeFenceFDANDROID()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from {Create,Destroy,ClientWait,Wait,Signal}SyncKHR()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from {Create,Destroy,ClientWait,Wait,Signal}SyncKHR()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from {Create,Destroy}ImageKHR()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from {Create,Destroy}ImageKHR()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from GetProcAddress()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from GetProcAddress()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver & _EGLDisplay from WaitNative()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver & _EGLDisplay from WaitNative()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from WaitClient()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from WaitClient()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from SetDamageRegion()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from SetDamageRegion()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from CopyBuffers()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from CopyBuffers()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from SwapBuffers{,WithDamageEXT,RegionNOK}()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from SwapBuffers{,WithDamageEXT,RegionNOK}()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from SwapInterval()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from SwapInterval()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from {Bind,Release}TexImage()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from {Bind,Release}TexImage()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from QuerySurface()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from QuerySurface()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from MakeCurrent()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from MakeCurrent()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from Create{Window,Pixmap,Pbuffer}Surface() & DestroySurf...
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from Create{Window,Pixmap,Pbuffer}Surface() & DestroySurface()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from {Create,Destroy}Context()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from {Create,Destroy}Context()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from Terminate()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from Terminate()

Signed-off-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/6241>

3 years agoegl: drop unused _EGLDriver from Initialize()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: drop unused _EGLDriver from Initialize()

Signed-off-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/6241>

3 years agoegl: replace _EGLDriver with _EGLDisplay->Driver in _eglQuerySurface()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: replace _EGLDriver with _EGLDisplay->Driver in _eglQuerySurface()

Signed-off-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/6241>

3 years agoegl: replace _EGLDriver param with _EGLDisplay->Driver in dri{2_x11,3}_create_window_...
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: replace _EGLDriver param with _EGLDisplay->Driver in dri{2_x11,3}_create_window_surface()

Signed-off-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/6241>

3 years agoegl: replace _EGLDriver param with _EGLDisplay->Driver in _eglReleaseDisplayResources()
Eric Engestrom [Sun, 22 Apr 2018 14:48:15 +0000 (16:48 +0200)]
egl: replace _EGLDriver param with _EGLDisplay->Driver in _eglReleaseDisplayResources()

Signed-off-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/6241>

3 years agospirv/vtn_cfg.c: Include util/debug.h for env_var_as_boolean.
orbea [Sat, 15 Aug 2020 05:38:56 +0000 (22:38 -0700)]
spirv/vtn_cfg.c: Include util/debug.h for env_var_as_boolean.

Fixes https://gitlab.freedesktop.org/mesa/mesa/-/issues/3414

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

3 years agollvmpipe: only read 0 for channels being read
Dave Airlie [Wed, 12 Aug 2020 05:48:42 +0000 (15:48 +1000)]
llvmpipe: only read 0 for channels being read

KHR-GL45.robust_buffer_access_behavior.vertex_buffer_objects
on the CTS 4.6.0 branch and this fixes it.

Roland identified that if the vertex format doesn't contain channels
then we shouldn't be overriding them to 0, so RGB fetch out of bounds
should return 0 for RGB, but the A channel should still be getting back
1.

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

3 years agoCI: temp disable t720/t760 jobs.
Dave Airlie [Sun, 16 Aug 2020 05:49:17 +0000 (15:49 +1000)]
CI: temp disable t720/t760 jobs.

These are hanging somewhere.

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

3 years agoanv: don't fail userspace relocation with perf queries
Lionel Landwerlin [Wed, 12 Aug 2020 13:00:34 +0000 (15:00 +0200)]
anv: don't fail userspace relocation with perf queries

This is a left over from the earlier version of
VK_KHR_performance_query where we used kernel relocs to implement
multi passe queries.

We're using self modifying batches now so we shouldn't need any
relocation.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 2001a80d4a81f2 ("anv: Implement VK_KHR_performance_query")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6291>

3 years agonv50/ir/nir: fix smem size
Karol Herbst [Fri, 14 Aug 2020 21:00:17 +0000 (23:00 +0200)]
nv50/ir/nir: fix smem size

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

3 years agoclover/nir: fix mem_shared by using address_format_32bit_offset
Karol Herbst [Fri, 14 Aug 2020 19:56:00 +0000 (21:56 +0200)]
clover/nir: fix mem_shared by using address_format_32bit_offset

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6325>

3 years agoandroid: util/format: fix generated sources rules
Mauro Rossi [Fri, 14 Aug 2020 12:04:54 +0000 (14:04 +0200)]
android: util/format: fix generated sources rules

Changes are necessary after commit 84ed2d098
("util/format: expose generated format packing functions through a header")
because script for format/u_format_pack.h has different commandline
compared to existing pattern

Generated sources rules are ported from meson

Fixes: 84ed2d098 ("util/format: expose generated format packing functions through a header")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6319>

3 years agospirv: Add a MESA_SPIRV_FORCE_UNSTRUCTURED environment variable
Jason Ekstrand [Thu, 13 Aug 2020 16:48:02 +0000 (11:48 -0500)]
spirv: Add a MESA_SPIRV_FORCE_UNSTRUCTURED environment variable

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

3 years agospirv: parse unstructured CFG
Karol Herbst [Fri, 15 May 2020 10:47:53 +0000 (12:47 +0200)]
spirv: parse unstructured CFG

v2 (Boris Brezillon): handle functions with return values
v3: call structurizer
v4: entire rewrite
v5: fix handling of already visited default branches
v2 (Jason Ekstrand): Stop walking hash tables

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Tested-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

3 years agospirv: extract switch parsing into its own function
Karol Herbst [Tue, 11 Aug 2020 12:00:26 +0000 (14:00 +0200)]
spirv: extract switch parsing into its own function

v2 (Jason Ekstrand):
 - Construct a list of vtn_case objects

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

3 years agospirv: Move the emit a 'return value' store logic into own function
Boris Brezillon [Thu, 26 Mar 2020 12:37:29 +0000 (13:37 +0100)]
spirv: Move the emit a 'return value' store logic into own function

Right now, only the structured CF path emits 'return value' stores when
an SpvOpReturnValue opcode is found. Move the emit 'return value' logic
in a separate function so we can use it from the unstructured path as well.

v2 (Karol): rephrased and removed unstructured changes

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

3 years agonir/lower_goto_if: Add some debug prints
Jason Ekstrand [Thu, 13 Aug 2020 04:01:03 +0000 (23:01 -0500)]
nir/lower_goto_if: Add some debug prints

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

3 years agonir/lower_goto_if: Add a route::outside set
Jason Ekstrand [Thu, 13 Aug 2020 15:06:56 +0000 (10:06 -0500)]
nir/lower_goto_if: Add a route::outside set

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

3 years agonir/lower_goto_if: Replace a tripple loop with a double loop
Jason Ekstrand [Wed, 12 Aug 2020 22:59:53 +0000 (17:59 -0500)]
nir/lower_goto_if: Replace a tripple loop with a double loop

If there's some reason why this needs to be a tripple loop, I'm not
seeing it.  As far as I can tell, all the inner-most loop does is look
for the next remaining block not already in cur_level->blocks.  There's
no reason to re-walk the whole set every time just to do that.

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

3 years agonir/lower_goto_if: Add a block_for_singular_set helper
Jason Ekstrand [Wed, 12 Aug 2020 22:10:49 +0000 (17:10 -0500)]
nir/lower_goto_if: Add a block_for_singular_set helper

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

3 years agonir/lower_goto_if: Sort blocks in select_fork
Jason Ekstrand [Wed, 12 Aug 2020 21:17:54 +0000 (16:17 -0500)]
nir/lower_goto_if: Sort blocks in select_fork

Hash set ordering is non-deterministic so any time we make a decision
that may affect the final structure or order of instructions, we want to
use a sorted list of blocks.

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

3 years agonir/lower_goto_if: Rework some set union logic
Jason Ekstrand [Wed, 12 Aug 2020 20:47:18 +0000 (15:47 -0500)]
nir/lower_goto_if: Rework some set union logic

I find the ternary a bit hard to read.  The optimization is fairly
obvious but the way it's coded makes things more dense than they
probably need to be.

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

3 years agonir/lower_goto_if: Rework handling of skip targets
Jason Ekstrand [Wed, 12 Aug 2020 20:26:49 +0000 (15:26 -0500)]
nir/lower_goto_if: Rework handling of skip targets

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

3 years agonir/lower_goto_if: Use util/list instead of exec_list
Jason Ekstrand [Wed, 12 Aug 2020 20:23:23 +0000 (15:23 -0500)]
nir/lower_goto_if: Use util/list instead of exec_list

I'm trying to reduce exec_list usage in NIR.  Also, util_list has some
better helpers for a bunch of the operations this pass needs.

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

3 years agonir/lower_goto_if: Clean up ralloc usage
Jason Ekstrand [Wed, 12 Aug 2020 20:22:06 +0000 (15:22 -0500)]
nir/lower_goto_if: Clean up ralloc usage

It's really hard to track in this pass which sets are getting ralloc'd
off which other sets.  To avoid leaks, just pass a mem_ctx around
everywhere and ralloc almost everything off the one context.  We do keep
using recursion a few places where it's crystal clear what the parent
relationship is.

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

3 years agonir/lower_goto_if: Document some data structures
Jason Ekstrand [Thu, 13 Aug 2020 15:06:50 +0000 (10:06 -0500)]
nir/lower_goto_if: Document some data structures

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

3 years agonir: Add a structurizer
Julian Winkler [Mon, 6 Apr 2020 10:52:06 +0000 (12:52 +0200)]
nir: Add a structurizer

v2 (Karol):
  renamed pathes to paths
  use more bool
  use _mesa_set_intersects
  deduplicated some code
  fixed some typos
v3 (Karol):
  don't enable structurizer as we do this in vtn now
v4 (Jason):
  A few clean-ups due to unstructured NIR changes
v5 (Jason):
  Misc whitespace and style cleanups

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Tested-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

3 years agonir: Add goto_if jump instruction
Karol Herbst [Thu, 2 Jul 2020 12:32:04 +0000 (14:32 +0200)]
nir: Add goto_if jump instruction

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

3 years agonir: Add and use nir_foreach_block_unstructured helpers
Jason Ekstrand [Tue, 11 Aug 2020 19:13:36 +0000 (14:13 -0500)]
nir: Add and use nir_foreach_block_unstructured helpers

These are safe to call on either structured or unstructured NIR but
don't provide the nice ordering guarantees of nir_foreach_block and
friends.  While we're here, we use them for a very small selection of
passes which are known to be safe for unstructured control-flow.  The
most important such pass is nir_dominance which is required for
structurizing.

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

3 years agonir: Add a structured flag to nir_shader
Karol Herbst [Wed, 23 Oct 2019 18:42:40 +0000 (20:42 +0200)]
nir: Add a structured flag to nir_shader

v2 (Jason Ekstrand):
 - Make "structured" a property of nir_function_impl not nir_shader
 - More validation and asserts

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

3 years agospirv: rename vtn_emit_cf_list to vtn_emit_cf_list_structured
Karol Herbst [Tue, 9 Apr 2019 15:47:12 +0000 (17:47 +0200)]
spirv: rename vtn_emit_cf_list to vtn_emit_cf_list_structured

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>

3 years agoutil/set: add _mesa_set_intersects
Karol Herbst [Fri, 15 May 2020 09:11:13 +0000 (11:11 +0200)]
util/set: add _mesa_set_intersects

v2 (Jason Ekstrand): add asserts and iterate over smaller set

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2401>