mesa.git
3 years agonir/vtn: ImageSizeLod op can be applied to images
Jesse Natalie [Mon, 11 May 2020 16:08:15 +0000 (09:08 -0700)]
nir/vtn: ImageSizeLod op can be applied to images

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

3 years agonir/vtn: Handle integer sampling coordinates
Jesse Natalie [Thu, 7 May 2020 00:20:26 +0000 (17:20 -0700)]
nir/vtn: Handle integer sampling coordinates

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

3 years agonir/vtn: Use return type rather than image type for tex ops
Jesse Natalie [Tue, 14 Apr 2020 00:35:04 +0000 (17:35 -0700)]
nir/vtn: Use return type rather than image type for tex ops

Since OpenCL images don't have types, we can't use the image type here.
Rather than special-casing and only using SPIR-V return type for CL images,
we can just always use the return type to fill out the tex info.

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

3 years agonir/vtn: Add support for kernel images to SPIRV-to-NIR.
Jesse Natalie [Mon, 13 Apr 2020 15:05:13 +0000 (08:05 -0700)]
nir/vtn: Add support for kernel images to SPIRV-to-NIR.

There's a few quirks: kernel images are untyped, whether they're
sampled is unknown, and they're passed as inputs to the kernel even though
SPIR-V declares their address space as UniformConstant.

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

3 years agonir/vtn: Add type constant to image intrinsics
Jesse Natalie [Mon, 13 Apr 2020 14:50:37 +0000 (07:50 -0700)]
nir/vtn: Add type constant to image intrinsics

Since OpenCL supports untyped images, backends might need type info
to be able to support the load/store ops.

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

3 years agoclover/nir/spirv: Use uniform rather than shader_in for kernel inputs
Jesse Natalie [Fri, 28 Aug 2020 19:52:20 +0000 (12:52 -0700)]
clover/nir/spirv: Use uniform rather than shader_in for kernel inputs

The semantics of inputs for CL are a closer match to the semantics of uniforms for graphics.
Rather than cross-stage data, it's data that every thread sees uniformly.

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

3 years agopan/mdg: Fix perspective combination
Alyssa Rosenzweig [Mon, 31 Aug 2020 18:20:59 +0000 (14:20 -0400)]
pan/mdg: Fix perspective combination

It's not enough to multiply by a .w reciprocal, we have to be taking the
reciprocal of the thing we're actually multiplying against.

Fixes incorrect rendering in Manhattan.

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

3 years agopan/mdg: Fix discard encoding
Alyssa Rosenzweig [Mon, 31 Aug 2020 18:04:55 +0000 (14:04 -0400)]
pan/mdg: Fix discard encoding

Let's match the blob.

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

3 years agoanv: fix robust buffer access
Lionel Landwerlin [Sat, 29 Aug 2020 16:23:19 +0000 (19:23 +0300)]
anv: fix robust buffer access

In 957bbc6ad907ec we merged all the per stages allocations of push
constants into a single one. Unfortunately one field remained per
stage.

This fixes the issue by including all the per stage values of the
masked registers for robust buffer access into the push constant data.

v2: Drop unneeded loop (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 957bbc6ad907ec ("anv: simplify push constant emissions")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6505>

3 years agonir: Switch the indexing of block->live_in/out arrays.
Eric Anholt [Thu, 23 Jul 2020 19:29:02 +0000 (12:29 -0700)]
nir: Switch the indexing of block->live_in/out arrays.

In nir-to-tgsi, I want to free temps storing SSA values when they go dead,
and NIR liveness has most of the information I need.  Hoever, when I reach
the end of a block, I need to free whatever temps were in liveout which
are dead at that point.  If liveout is indexed by live_index, then I don't
know the maximum live_index for iterating the live_out bitset, and I also
don't have a way to map that index back to the def->index that my temps
are stored under.

We can use the more typical def->index for these bitsets, which resolves
both of those problems.  The only cost is that ssa_undefs don't get merged
into a single bit in the bitfield, but there are generally 1-4 of them in
a shader and we don't track liveness for those anyway so splitting them
apart is fine.

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

3 years agonir: Invalidate live SSA def information when making new SSA defs.
Eric Anholt [Wed, 26 Aug 2020 20:09:09 +0000 (13:09 -0700)]
nir: Invalidate live SSA def information when making new SSA defs.

Noted by @jekstrand in review of the SSA live index changes.

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

3 years agoci: Switch to using gold as the linker.
Eric Anholt [Thu, 13 Aug 2020 21:21:50 +0000 (14:21 -0700)]
ci: Switch to using gold as the linker.

Debian defaults to bfd, which is comically slow.  We can't use lld because
the old version we have in the debian stable we use has various bugs.

This required bumping libwayland, which had multiply-defined symbols
issues in the previous release.

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

3 years agopipe-loader: Use real galliumvl if radeonsi is being linked.
Eric Anholt [Thu, 13 Aug 2020 23:13:08 +0000 (16:13 -0700)]
pipe-loader: Use real galliumvl if radeonsi is being linked.

When switching to lld, I saw errors from multiply defined vl symbols due to
radeonsi always linking libgalliumvl.

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

3 years agoturnip: Make sure we include the build id.
Eric Anholt [Thu, 13 Aug 2020 22:15:26 +0000 (15:15 -0700)]
turnip: Make sure we include the build id.

The ir3 disk cache is initialized when we use the ir3 compiler, even if we
don't use it ourselves, and it requires a build id.  With lld, it seems we
don't end up getting one included by default.

Fixes: f97acb4bb4b1 ("freedreno/ir3: disk-cache support")
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6324>

3 years agoci: Make a missing device name correctly bail out of deqp-runner.sh.
Eric Anholt [Thu, 13 Aug 2020 22:10:18 +0000 (15:10 -0700)]
ci: Make a missing device name correctly bail out of deqp-runner.sh.

If your driver is totally broken and can't even report its name, let's
stop here instead of doing a CTS run full of failure to start tests and
reporting them all missing at the end.

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

3 years agonir: add shared/global atomics to nir_get_io_offset_src()
Italo Nicola [Thu, 20 Aug 2020 12:28:13 +0000 (12:28 +0000)]
nir: add shared/global atomics to nir_get_io_offset_src()

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6521>

3 years agonir: Look up the shader when printing a single instruction.
Eric Anholt [Fri, 28 Aug 2020 19:27:04 +0000 (12:27 -0700)]
nir: Look up the shader when printing a single instruction.

If you've inserted the instruction into a block, then we can get to the
shader.  This improves our instruction output, giving you i/o semantics
and variable names in intrinsics.

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

3 years agonir: Fix printing of individual instructions with io semantics.
Eric Anholt [Thu, 27 Aug 2020 18:33:31 +0000 (11:33 -0700)]
nir: Fix printing of individual instructions with io semantics.

The state->shader is missing when used outside of nir_print_shader, just
drop these details in that case.  We can fix nir_print_instr() to look up
the shader, but let's also make sure that an instr detached from a shader
(such as one you're constructing but haven't yet inserted) still works.

Fixes: 2b1ef5df4eac ("nir: print IO semantics (v2)")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6496>

3 years agopanfrost: enable DrawTransformFeedback*
Ilia Mirkin [Sun, 9 Aug 2020 04:13:14 +0000 (00:13 -0400)]
panfrost: enable DrawTransformFeedback*

This is needed for ARB_transform_feedback2, which I plan on requiring
for ES3. Also update docs/features.txt

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6247>

3 years agointel/nir: Lower things with > 4 components in lower_mem_access_bit_sizes
Jason Ekstrand [Thu, 27 Aug 2020 22:55:04 +0000 (17:55 -0500)]
intel/nir: Lower things with > 4 components in lower_mem_access_bit_sizes

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6502>

3 years agointel/fs: Add support for vec8 and vec16 ops
Jason Ekstrand [Thu, 27 Aug 2020 22:42:43 +0000 (17:42 -0500)]
intel/fs: Add support for vec8 and vec16 ops

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6502>

3 years agoanv: VK_INTEL_performance_query interaction with VK_EXT_private_data
Lionel Landwerlin [Mon, 10 Aug 2020 07:27:57 +0000 (10:27 +0300)]
anv: VK_INTEL_performance_query interaction with VK_EXT_private_data

All objects are expected to have the base internal object for private
data storage.

This also fixes a memory leak of a gen_perf_registers structure.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 51c6bc13ce3a70 ("anv,vulkan: Implement VK_EXT_private_data")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6255>

3 years agovulkan: Don't pointlessly depend on libxcb-dri2
Adam Jackson [Tue, 25 Aug 2020 19:57:58 +0000 (15:57 -0400)]
vulkan: Don't pointlessly depend on libxcb-dri2

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

3 years agozink: add note about buffer<->image copy functions not handling multisample
Mike Blumenkrantz [Sun, 14 Jun 2020 05:46:20 +0000 (01:46 -0400)]
zink: add note about buffer<->image copy functions not handling multisample

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

3 years agozink: use u_transfer_helper to split/merge interleaved depth/stencil formats
Mike Blumenkrantz [Mon, 1 Jun 2020 14:53:19 +0000 (10:53 -0400)]
zink: use u_transfer_helper to split/merge interleaved depth/stencil formats

EXT_packed_depth_stencil adds GL_UNSIGNED_INT_24_8_EXT which is an interleaved format,
but vulkan spec states that reading/writing the corresponding format provides only the
D24 component, which requires that we perform separate operations for each component
using separate buffers

fixes mesa/mesa#3031

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

3 years agobroadcom/qpu_instr: wait is not a read or write vpm instruction
Alejandro Piñeiro [Wed, 26 Aug 2020 23:07:20 +0000 (01:07 +0200)]
broadcom/qpu_instr: wait is not a read or write vpm instruction

For several schedule restrictions, we are checking if the instruction
is using the vpm. So far it was implemented as being a read or a write
of the vpm. But VPM wait (vpmwt) is not a read or a write (it is a
wait until all pending writes finishes). This is relevant to implement
peripheral accesses restrictions, as for some cases where vpm
read|writes are allowed, vpmwt is not.

Fixes:
  dEQP-VK.binding_model.descriptorset_random.sets8.constant.ubolimitlow.sbolimitlow.sampledimglow.outimgtexlow.noiub.nouab.vert.noia.0

On the sim, as it was raising an assert for wrong peripheral access.

v2: simplify v3d_qpu_waits_vpm (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6498>

3 years agodocs/features: Add missing Panfrost extensions
Alyssa Rosenzweig [Mon, 31 Aug 2020 11:44:56 +0000 (07:44 -0400)]
docs/features: Add missing Panfrost extensions

+  GL_ARB_internalformat_query
+  GL_ARB_texture_stencil8
+  GL_ARB_stencil_texturing
+  GL_ARB_compute_shader
+  GL_ARB_shader_storage_buffer_object

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

3 years agopanfrost: Set PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS
Alyssa Rosenzweig [Fri, 28 Aug 2020 13:53:30 +0000 (09:53 -0400)]
panfrost: Set PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS

Exposes ARB_texture_gather when PAN_MESA_DEBUG=deqp is set. Also update
docs/features.txt.

Fixes:

   dEQP-GLES31.functional.texture.gather.offset.implementation_offset.*

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

3 years agopan/mdg: Implement texture gathers
Alyssa Rosenzweig [Fri, 28 Aug 2020 13:48:38 +0000 (09:48 -0400)]
pan/mdg: Implement texture gathers

As previously shown, it is a mode on top of textureLod. The main gotcha
is the results are swizzled; we reuse the Broadcom lowering for that.

Also, there's a pretty significant erratum affecting gathers of cubemaps
which can be dealt with... eventually.

Fixes:

   dEQP-GLES31.functional.texture.gather.basic.2d.*
   dEQP-GLES31.functional.texture.gather.basic.2d_array.*

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

3 years agopan/mdg: Add disassembly for shadow gathers
Alyssa Rosenzweig [Fri, 28 Aug 2020 12:53:44 +0000 (08:53 -0400)]
pan/mdg: Add disassembly for shadow gathers

By applying `textureGather` to a `sampler2DShadow`, the blob produces
(under the old disassembly):

   tex_22.vtx.2d.shadow.cont.last r29, texture0, fsampler0.zwyx, r29,

The op 0x22 is 10|0010 in binary, the old shadow parameter is 1, and old
gather parameter is 0, so we get 0110|0010 in binary, or an op of
textureLod with a mod of 0110 = 6.

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

3 years agopan/mdg: Refactor texture op/mode handling
Alyssa Rosenzweig [Fri, 28 Aug 2020 12:35:19 +0000 (08:35 -0400)]
pan/mdg: Refactor texture op/mode handling

We reduce the op to 4-bits, such that the derivative mode becomes its
own adjacent parameter. This cleans up handling of texture gathers, but
does not affect functionality.

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

3 years agopan/mdg: Implement nir_intrinsic_load_sample_mask_in
Alyssa Rosenzweig [Thu, 27 Aug 2020 23:55:53 +0000 (19:55 -0400)]
pan/mdg: Implement nir_intrinsic_load_sample_mask_in

Also goes down the magical ld_color_buffer_32u_old path, but with a
different magic number.

Maybe should just be the ld_magic instruction.

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

3 years agopan/mdg: Bounds check swizzle writing globals
Alyssa Rosenzweig [Thu, 27 Aug 2020 19:13:19 +0000 (15:13 -0400)]
pan/mdg: Bounds check swizzle writing globals

Fixes scheduler hang in:

dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.const_literal_compute

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

3 years agopan/mdg: Scalarize 64-bit
Alyssa Rosenzweig [Thu, 27 Aug 2020 18:55:11 +0000 (14:55 -0400)]
pan/mdg: Scalarize 64-bit

We don't properly support 64-bit vec2 yet for various reasons, and as-is
vectorize will try to create vec4 which we choke on. Since any workloads
relying on 64-bit vector performance are already DOA at this point,
let's just do the conformant thing.

Fixes:

   dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec2_highp_compute

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

3 years agopan/mdg: Implement i/umul_high
Alyssa Rosenzweig [Thu, 27 Aug 2020 18:35:23 +0000 (14:35 -0400)]
pan/mdg: Implement i/umul_high

As imul with a .hi modifier, which implies a 64-bit computation.

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

3 years agopanfrost: Emit texture/sampler points for compute
Alyssa Rosenzweig [Thu, 27 Aug 2020 22:59:14 +0000 (18:59 -0400)]
panfrost: Emit texture/sampler points for compute

Fixes page faults on dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.compute.sampler2d

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

3 years agoutil/u_thread: include pthread_np.h if found
Jonathan Gray [Wed, 24 Jun 2020 13:27:52 +0000 (23:27 +1000)]
util/u_thread: include pthread_np.h if found

Required for pthread_set_name_np() on OpenBSD as there is no
pthread_setaffinity_np() to define PTHREAD_SETAFFINITY_IN_NP_HEADER.

Fixes: dcf9d91a80e ("util: Handle differences in pthread_setname_np")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agoutil: futex fixes for OpenBSD
Jonathan Gray [Thu, 20 Feb 2020 02:18:01 +0000 (13:18 +1100)]
util: futex fixes for OpenBSD

Fix absolute to relative timeout computation.

Add sanity checks to futex_wait()
- handle the NULL timeout pointer case
- avoid negative cases.

From Matthieu Herrb and Scott Cheloha.

Fixes: c91997b6c43 ("util/futex: use futex syscall on OpenBSD")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agomeson: conditionally include -ldl in gbm pkg-config file
Jonathan Gray [Fri, 6 Dec 2019 06:25:58 +0000 (17:25 +1100)]
meson: conditionally include -ldl in gbm pkg-config file

Follow libGL and only include -ldl in gbm pkg-config file if libdl was
actually found.  Many systems have these functions in libc and don't
have libdl.

Fixes: 816bf7d1644 ("meson: build gbm")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agomeson: don't build with USE_ELF_TLS on OpenBSD
Jonathan Gray [Fri, 6 Dec 2019 04:23:36 +0000 (15:23 +1100)]
meson: don't build with USE_ELF_TLS on OpenBSD

OpenBSD does not have TLS

Fixes: a47c525f328 ("meson: build glx")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agomeson: don't advertise TLS support if glx wasn't build with it
Eric Engestrom [Thu, 21 Nov 2019 22:14:50 +0000 (22:14 +0000)]
meson: don't advertise TLS support if glx wasn't build with it

Fixes: a47c525f328 ("meson: build glx")
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agomeson: build with _ISOC11_SOURCE on OpenBSD
Jonathan Gray [Fri, 6 Dec 2019 03:30:14 +0000 (14:30 +1100)]
meson: build with _ISOC11_SOURCE on OpenBSD

Mesa builds with -std=c99 but uses timespec_get() a c11 function.
Build with _ISOC11_SOURCE for c11 visibility when -std is specified.
On linux c11 visibility comes from defining _GNU_SOURCE.

Fixes: e3a8013de8c ("util/u_queue: add util_queue_fence_wait_timeout")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agoutil/anon_file: add OpenBSD shm_mkstemp() path
Jonathan Gray [Thu, 1 Nov 2018 02:16:13 +0000 (13:16 +1100)]
util/anon_file: add OpenBSD shm_mkstemp() path

memfd_create() is a linux syscall replace the use of it with
shm_mkstemp() on OpenBSD.

unconditionally include stdlib.h for mkstemp()/mkostemp()

Fixes: c0376a12341 ("util: add anon_file.h for all memfd/temp file usage")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agoutil: unbreak endian detection on OpenBSD
Jonathan Gray [Wed, 28 Mar 2018 03:06:14 +0000 (14:06 +1100)]
util: unbreak endian detection on OpenBSD

Since cbee1bfb34274668a05995b9d4c78ddec9e5ea4c endian.h is unconditionally
used if available.

glibc has byte order defines with two leading underscores.  OpenBSD
has private defines with a single leading underscore in machine/endian.h
and public defines in endian.h with no underscore.

The code under the endian.h block did not check if symbols were
defined before equating them so '#if __BYTE_ORDER == __LITTLE_ENDIAN'
would turn into '#if 0 == 0' which is always true.

Fixes: cbee1bfb342 ("meson/configure: detect endian.h instead of trying to guess when it's available")
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5630>

3 years agoradv: dump shader stats with VK_KHR_pipeline_executable_properties
Samuel Pitoiset [Thu, 20 Aug 2020 14:03:36 +0000 (16:03 +0200)]
radv: dump shader stats with VK_KHR_pipeline_executable_properties

Instead of duplicating shader statistics in two different parts
in the driver. This also now reports the LDS size in bytes instead
of blocks with VK_AMD_shader_info.

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

3 years agovallium: disable VK_KHR_shader_float16_int8.
Dave Airlie [Wed, 26 Aug 2020 03:15:09 +0000 (13:15 +1000)]
vallium: disable VK_KHR_shader_float16_int8.

This is actually a TODO.

Fixes:
dEQP-VK.info.device_mandatory_features

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

3 years agogallivm/nir: add some f16 support
Dave Airlie [Mon, 24 Aug 2020 03:52:46 +0000 (13:52 +1000)]
gallivm/nir: add some f16 support

GLSL lowers packhalf2x16 itself, but for SPIRV we don't have that
option.

For packing when NIR lowers it uses f2f16
and for unpack it needs the casting and f2f32

Fixes:
dEQP-VK.glsl.builtin.function.pack_unpack.packhalf2x16*
dEQP-VK.glsl.builtin.function.pack_unpack.unpackhalf2x16*

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

3 years agogallivm/nir: allow 64-bit arit ops
Dave Airlie [Fri, 19 Jun 2020 07:12:19 +0000 (17:12 +1000)]
gallivm/nir: allow 64-bit arit ops

Fixes:
dEQP-VK.glsl.builtin.precision_double.round.*
dEQP-VK.glsl.builtin.precision_double.roundeven.*
dEQP-VK.glsl.builtin.precision_double.trunc.*

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

3 years agollvmpipe/fs: multisample depth/stencil bad ir generated
Dave Airlie [Fri, 19 Jun 2020 06:57:16 +0000 (16:57 +1000)]
llvmpipe/fs: multisample depth/stencil bad ir generated

Need to update the z value after updating the pos at pixel
center, and later reupdate it again, so we can avoid some
LLVM IR values not being dominant issues.

Fixes:
dEQP-VK.renderpass.suballocation.multisample.s8_uint.samples_4

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

3 years agollvmpipe: add array/3d clearing support
Dave Airlie [Fri, 19 Jun 2020 06:56:36 +0000 (16:56 +1000)]
llvmpipe: add array/3d clearing support

Fixes:
dEQP-VK.pipeline.multisample.sampled_image.64x64_4.*.samples_4

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

3 years agollvmpipe: blend has effects even if no colorbuffers.
Dave Airlie [Fri, 19 Jun 2020 06:57:41 +0000 (16:57 +1000)]
llvmpipe: blend has effects even if no colorbuffers.

ARB_framebuffer_no_attachments + multisampling means blend
can have an effect even outside of colorbufs

Fixes:
dEQP-VK.pipeline.multisample.alpha_to_coverage_no_color_attachment.samples_4.alpha_opaque

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

3 years agogallivm: use common code to select texel type
Dave Airlie [Mon, 31 Aug 2020 00:22:35 +0000 (10:22 +1000)]
gallivm: use common code to select texel type

This was suggested by Roland, and fixes stencil images.

Fixes:
dEQP-VK.renderpass.dedicated_allocation.formats.d24_unorm_s8_uint.*
dEQP-VK.renderpass.dedicated_allocation.formats.d32_sfloat_s8_uint.*

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

3 years agogallivm/nir: add subpass sampler type support
Dave Airlie [Fri, 19 Jun 2020 06:50:55 +0000 (16:50 +1000)]
gallivm/nir: add subpass sampler type support

Fixes:
dEQP-VK.renderpass.dedicated_allocation.attachment_allocation.input_output.*
dEQP-VK.renderpass.dedicated_allocation.formats*input*

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

3 years agogallivm/nir: lower frexp/ldexp
Dave Airlie [Thu, 20 Aug 2020 06:06:56 +0000 (16:06 +1000)]
gallivm/nir: lower frexp/ldexp

Fixes:
dEQP-VK.glsl.builtin.precision.frexp*
dEQP-VK.glsl.builtin.precision.ldexp*

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

3 years agogallivm/nir: fix const compact
Dave Airlie [Fri, 19 Jun 2020 07:11:12 +0000 (17:11 +1000)]
gallivm/nir: fix const compact

Since adding support for compacts this crashes with indirects
don't get the const address unless it's a const.

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

3 years agogallivm/nir: add quantize to f16 support
Dave Airlie [Fri, 19 Jun 2020 06:59:11 +0000 (16:59 +1000)]
gallivm/nir: add quantize to f16 support

Fixes:
dEQP-VK.spirv_assembly.instruction.graphics.opquantize.*

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

3 years agogallivm/nir: add indirect swizzle output loading support
Dave Airlie [Fri, 19 Jun 2020 07:05:39 +0000 (17:05 +1000)]
gallivm/nir: add indirect swizzle output loading support

Fixes:
dEQP-VK.clipping.user_defined.clip_distance.*

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

3 years agogallivm/nir: lower tg4 offsets.
Dave Airlie [Fri, 19 Jun 2020 07:01:26 +0000 (17:01 +1000)]
gallivm/nir: lower tg4 offsets.

Fixes:
dEQP-VK.glsl.texture_gather.offsets.*

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

3 years agogallium/nir/tgsi: fix nir->tgsi info conversion for samplers/image
Dave Airlie [Thu, 20 Aug 2020 00:54:16 +0000 (10:54 +1000)]
gallium/nir/tgsi: fix nir->tgsi info conversion for samplers/image

for sampler image arrays this code wasn't getting the correct values.

Fixes:
EQP-VK.binding_model.shader_access.primary_cmd_buf.sampler_immutable.*.descriptor_array*

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

3 years agovallium: limit buffer allocations to gallium max.
Dave Airlie [Fri, 17 Jul 2020 01:30:25 +0000 (11:30 +1000)]
vallium: limit buffer allocations to gallium max.

Don't allocate buffers greater than gallium can handle.

Fixes:
dEQP-VK.api.buffer.basic.size_max_uint64

Fixes: b38879f8c5f57b7f1802 ("vallium: initial import of the vulkan frontend")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6381>

3 years agovallium: handle 3D image views properly.
Dave Airlie [Thu, 20 Aug 2020 00:53:08 +0000 (10:53 +1000)]
vallium: handle 3D image views properly.

Do pretty much what the gallium state tracker does here, and
fill out first/last layer for 3D image views correctly.

Fixes:
dEQP-VK.binding_model.shader_access.primary_cmd_buf.storage_image*3d*

Fixes: b38879f8c5f57b7f1802 ("vallium: initial import of the vulkan frontend")
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6381>

3 years agollvmpipe: add reference counting to fragment shaders.
Dave Airlie [Mon, 6 Jul 2020 05:32:19 +0000 (15:32 +1000)]
llvmpipe: add reference counting to fragment shaders.

Currently llvmpipe calls finish on the context when a shader
variant has to be destroyed just in case the variant is currently
in use by the setup engine.

Fix this by reference counting the shaders, and reference counting
the shader variants.

Whenever a shader is used in the rasteriser backend, it is added
to a reference list and removed when the rasterizer is finished with it.

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

3 years agonir: Take a variable remap parameter in nir_inline_function_impl
Jason Ekstrand [Thu, 20 Aug 2020 20:00:15 +0000 (15:00 -0500)]
nir: Take a variable remap parameter in nir_inline_function_impl

Acked-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6411>

3 years agonir: Use a switch in nir_inline_function_impl
Jason Ekstrand [Thu, 20 Aug 2020 19:42:30 +0000 (14:42 -0500)]
nir: Use a switch in nir_inline_function_impl

Acked-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6411>

3 years agointel/nir: Clean up lower_alpha_to_coverage a bit
Jason Ekstrand [Fri, 7 Aug 2020 16:25:24 +0000 (11:25 -0500)]
intel/nir: Clean up lower_alpha_to_coverage a bit

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6233>

3 years agointel/nir: Rewrite the guts of lower_alpha_to_coverage
Jason Ekstrand [Fri, 7 Aug 2020 16:25:54 +0000 (11:25 -0500)]
intel/nir: Rewrite the guts of lower_alpha_to_coverage

I have no idea how this pass ever worked.  I guess it worked ok on the
one or two piglit tests but the whole thing seemed very fragile.  It
makes a number of undocumented and unasserted assumptions and they
aren't always valid.  This rewrite makes a number of changes:

 1. It now properly handles the case where the gl_SampleMask write comes
    before the gl_FragColor or gl_FragData[0] write.

 2. It should early-exit faster because it now looks at bits in
    shader_info::outputs_written instead of looking for variables.

 3. Instead of the fragile variable lookup where we try to look the
    variable up by both location and driver_location and match, we just
    use the driver_location calculations used by brw_fs_nir.

 4. It asserts that the index parameter to store_output is a constant
    instead of silently failing if it isn't.

 5. We now actually assert the implicit assumption that the two writes
    are in the same block.  We go even further and assert that they are
    in the last block in the shader.

 6. In the case where 3 or fewer components of the output are written,
    we explicitly choose to leave the sample mask alone.

Fixes: 7ecfbd4f6d4 "nir: Add alpha_to_coverage lowering pass"
Closes: #3166
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6233>

3 years agointel/nir: Pass the nir_builder by reference in lower_alpha_to_coverage
Jason Ekstrand [Fri, 7 Aug 2020 16:19:45 +0000 (11:19 -0500)]
intel/nir: Pass the nir_builder by reference in lower_alpha_to_coverage

I'm honestly not sure how passing a builder by-value ever worked.  I
guess the struct is mostly copyable.  In any case, that's the wrong way
to use it and it's causing issues.

Fixes: 7ecfbd4f6d4 "nir: Add alpha_to_coverage lowering pass"
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6233>

3 years agoci: Add a release build with -Werror enabled.
Eric Anholt [Mon, 24 Aug 2020 17:15:35 +0000 (10:15 -0700)]
ci: Add a release build with -Werror enabled.

This will keep us from needing new MRs to fix up release build warnings
after the fact.  I've mostly derived from meson-gallium, dropping
components that aren't clean yet.

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

3 years agovirgl: Fix unused var warnings in release build from assertions.
Eric Anholt [Tue, 25 Aug 2020 18:36:22 +0000 (11:36 -0700)]
virgl: Fix unused var warnings in release build from assertions.

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

3 years agolima: Fix uninitialized var warning from using assert() as unreachable().
Eric Anholt [Tue, 25 Aug 2020 18:33:58 +0000 (11:33 -0700)]
lima: Fix uninitialized var warning from using assert() as unreachable().

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

3 years agolima: Fix unused var/function warnings in release build from assertions.
Eric Anholt [Tue, 25 Aug 2020 18:32:35 +0000 (11:32 -0700)]
lima: Fix unused var/function warnings in release build from assertions.

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

3 years agoetnaviv: Fix unused var warning in release build from assertions.
Eric Anholt [Tue, 25 Aug 2020 18:31:42 +0000 (11:31 -0700)]
etnaviv: Fix unused var warning in release build from assertions.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6462>

3 years agozink: Fix unused var warnings in release build from assertions.
Eric Anholt [Tue, 25 Aug 2020 18:30:07 +0000 (11:30 -0700)]
zink: Fix unused var warnings in release build from assertions.

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

3 years agonv50: Fix uninitialized var warnings from using assert() as unreachable().
Eric Anholt [Tue, 25 Aug 2020 18:28:47 +0000 (11:28 -0700)]
nv50: Fix uninitialized var warnings from using assert() as unreachable().

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

3 years agovc4: Fix unused var warnings in release builds from assertions.
Eric Anholt [Tue, 25 Aug 2020 18:27:50 +0000 (11:27 -0700)]
vc4: Fix unused var warnings in release builds from assertions.

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

3 years agonvc0: Fix compiler warning about unused var that gets asserted.
Eric Anholt [Tue, 25 Aug 2020 18:24:43 +0000 (11:24 -0700)]
nvc0: Fix compiler warning about unused var that gets asserted.

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

3 years agogallium/tests: Fix compiler warning about unused vars in trivial tests.
Eric Anholt [Tue, 25 Aug 2020 18:20:46 +0000 (11:20 -0700)]
gallium/tests: Fix compiler warning about unused vars in trivial tests.

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

3 years agopanfrost: Fix remaining release-build warnings.
Eric Anholt [Tue, 25 Aug 2020 17:15:27 +0000 (10:15 -0700)]
panfrost: Fix remaining release-build warnings.

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

3 years agopanfrost: Fix OOB array access compiler warning.
Eric Anholt [Tue, 25 Aug 2020 17:20:44 +0000 (10:20 -0700)]
panfrost: Fix OOB array access compiler warning.

-1 is used to select "choose the dest type", but we were dereffing src[-1]
anyway and the compiler is not a fan.

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

3 years agodrm-shim: Fix unused variable warnings from asserts in release build.
Eric Anholt [Mon, 24 Aug 2020 23:34:46 +0000 (16:34 -0700)]
drm-shim: Fix unused variable warnings from asserts in release build.

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

3 years agofreedreno/a6xx: move ubwc clear to blitter
Rob Clark [Wed, 26 Aug 2020 18:47:02 +0000 (11:47 -0700)]
freedreno/a6xx: move ubwc clear to blitter

Avoid having to mmap() unnecessarily by moving UBWC clear/init to
blitter.

Because we don't have a context when the bo is allocated, we need to
lazily initialize UBWC data, so hook into the resource_written()
tracking to do this.  Don't bother with resource_read() because that
would be undefined anyways.

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

3 years agofreedreno/a5xx+a6xx: use sysmem path for nondraw batches
Rob Clark [Wed, 26 Aug 2020 21:57:52 +0000 (14:57 -0700)]
freedreno/a5xx+a6xx: use sysmem path for nondraw batches

For prologue's in the nondraw path, we need a "gmem" rb that we can emit
the IB to the prologue before the main part of the batch.  This has the
side benefit of cleaning up a bunch of duplicate setup code in a5xx.

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

3 years agofreedreno/batch: replace lrz_clear with prologue
Rob Clark [Wed, 26 Aug 2020 17:44:44 +0000 (10:44 -0700)]
freedreno/batch: replace lrz_clear with prologue

Replace lrz_clear with the more general purpose prologue rb.  While the
epilogue is per-tile (in gmem mode), the prologue is per-batch, so also
add some comments to make that point more clear.

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

3 years agofreedreno/batch: split out helper for rb alloc
Rob Clark [Wed, 26 Aug 2020 17:25:16 +0000 (10:25 -0700)]
freedreno/batch: split out helper for rb alloc

Going to want to re-use this in next patch.

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

3 years agopanfrost: Store transient BOs in a dynamic array
Boris Brezillon [Mon, 24 Aug 2020 10:33:41 +0000 (12:33 +0200)]
panfrost: Store transient BOs in a dynamic array

We clearly don't need a hash here since we're never searching for BOs
that are in a pool.

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

3 years agopanfrost: Avoid accessing pan_pool fields directly
Boris Brezillon [Mon, 24 Aug 2020 09:48:10 +0000 (11:48 +0200)]
panfrost: Avoid accessing pan_pool fields directly

Having panfrost_batch access the pan_pool fields directly makes it hard
to change pan_pool internals, like for instance, changing the hash table
for a dynamic array. Let's hide pan_pool internals behind helpers that do
what we need.

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

3 years agopanfrost: Rename panfrost_create_pool() into panfrost_pool_init()
Boris Brezillon [Mon, 24 Aug 2020 09:24:57 +0000 (11:24 +0200)]
panfrost: Rename panfrost_create_pool() into panfrost_pool_init()

_create functions usually allocate an object and return a pointer to the
allocated object, _init ones usually take an existing object and
initialize it. Let's follow this semantic here by renaming the
panfrost_create_pool() function and updating its prototype.

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

3 years agoCI: Disable Windows again
Daniel Stone [Fri, 28 Aug 2020 18:08:39 +0000 (19:08 +0100)]
CI: Disable Windows again

We thought HTTP was stable after nginx changes, but sadly it isn't.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6495>

3 years agopan/decode: Drop prefix braces
Alyssa Rosenzweig [Wed, 26 Aug 2020 21:14:57 +0000 (17:14 -0400)]
pan/decode: Drop prefix braces

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

3 years agopanfrost: Remove mali_vertex_tiler_postfix
Alyssa Rosenzweig [Wed, 26 Aug 2020 21:10:37 +0000 (17:10 -0400)]
panfrost: Remove mali_vertex_tiler_postfix

Now XMLified everywhere.

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

3 years agopan/decode: Use unpack for vertex_tiler_postfix_pre
Alyssa Rosenzweig [Wed, 26 Aug 2020 21:05:41 +0000 (17:05 -0400)]
pan/decode: Use unpack for vertex_tiler_postfix_pre

Garbage collect some old incorrect/misleading comments and the braces
while we're at it.

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

3 years agopan/decode: Use generation for vertex_tiler_postfix
Alyssa Rosenzweig [Wed, 26 Aug 2020 20:56:51 +0000 (16:56 -0400)]
pan/decode: Use generation for vertex_tiler_postfix

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

3 years agopan/decode: Fix awkward syntax
Alyssa Rosenzweig [Wed, 26 Aug 2020 20:52:53 +0000 (16:52 -0400)]
pan/decode: Fix awkward syntax

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

3 years agopan/decode: Print shader-db even for compute
Alyssa Rosenzweig [Wed, 26 Aug 2020 20:52:23 +0000 (16:52 -0400)]
pan/decode: Print shader-db even for compute

Stated rationale is silly.

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

3 years agopan/decode: Drop mali_vertex_tiler_postfix arg
Alyssa Rosenzweig [Wed, 26 Aug 2020 20:50:16 +0000 (16:50 -0400)]
pan/decode: Drop mali_vertex_tiler_postfix arg

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

3 years agopan/decode: Drop scratchpad size dump
Alyssa Rosenzweig [Wed, 26 Aug 2020 20:44:51 +0000 (16:44 -0400)]
pan/decode: Drop scratchpad size dump

It fails if the scratchpad isn't actually mapped from pandecode's
perspective, and isn't useful information to us at this point.

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

3 years agopanfrost: Use nir_builder_init_simple_shader for blits
Alyssa Rosenzweig [Wed, 26 Aug 2020 20:48:13 +0000 (16:48 -0400)]
panfrost: Use nir_builder_init_simple_shader for blits

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

3 years agopanfrost: Inline bifrost_tiler_only
Alyssa Rosenzweig [Wed, 26 Aug 2020 17:21:06 +0000 (13:21 -0400)]
panfrost: Inline bifrost_tiler_only

Pointless abstraction now that fused jobs are dropped.

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

3 years agopanfrost: Drop bifrost_payload_fused
Alyssa Rosenzweig [Wed, 26 Aug 2020 17:10:53 +0000 (13:10 -0400)]
panfrost: Drop bifrost_payload_fused

Fused jobs are broken for various reasons almost everywhere. Drop the
reference - if for some reason somebody wants this later, it's preserved
in git.

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

3 years agopanfrost: XMLify invocations
Alyssa Rosenzweig [Wed, 26 Aug 2020 17:04:17 +0000 (13:04 -0400)]
panfrost: XMLify invocations

Not so bad :)

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