mesa.git
2 years agogbm: add missing comma between strings
Eric Engestrom [Sun, 18 Nov 2018 15:17:13 +0000 (15:17 +0000)]
gbm: add missing comma between strings

Fixes: d971a4230d54069c996bc "loader: Factor out the common driver
                              opening logic from each loader."
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
2 years agoradv: implement fast HTILE clears for depth or stencil only on GFX9
Samuel Pitoiset [Mon, 12 Nov 2018 16:57:12 +0000 (17:57 +0100)]
radv: implement fast HTILE clears for depth or stencil only on GFX9

This allows to fast clear the depth part (or the stencil part)
of a depth+stencil surface when HTILE is enabled. I didn't test
on GFX8, so it's disabled currently.

This gives a very nice boost, for example when clearing the depth
aspect of a 4096x4096 D32_SFLOAT_S8_UINT image (18x faster).

BEFORE: 235 us
AFTER: 13 us

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv: rewrite the condition that checks allowed depth/stencil values
Samuel Pitoiset [Mon, 12 Nov 2018 16:57:11 +0000 (17:57 +0100)]
radv: rewrite the condition that checks allowed depth/stencil values

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv: check allowed fast HTILE clears a bit earlier
Samuel Pitoiset [Mon, 12 Nov 2018 16:57:10 +0000 (17:57 +0100)]
radv: check allowed fast HTILE clears a bit earlier

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv: add radv_is_fast_clear_{depth,stencil}_allowed() helpers
Samuel Pitoiset [Mon, 12 Nov 2018 16:57:09 +0000 (17:57 +0100)]
radv: add radv_is_fast_clear_{depth,stencil}_allowed() helpers

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv: add radv_get_htile_fast_clear_value() helper
Samuel Pitoiset [Mon, 12 Nov 2018 16:57:08 +0000 (17:57 +0100)]
radv: add radv_get_htile_fast_clear_value() helper

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv: remove unnecessary goto in the fast clear paths
Samuel Pitoiset [Mon, 12 Nov 2018 16:57:07 +0000 (17:57 +0100)]
radv: remove unnecessary goto in the fast clear paths

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv/winsys: remove the max IBs per submit limit for the sysmem path
Samuel Pitoiset [Thu, 15 Nov 2018 10:29:54 +0000 (11:29 +0100)]
radv/winsys: remove the max IBs per submit limit for the sysmem path

This path will be eventually improved later but as it's only
used on SI (or with RADV_DEBUG=noibs), I'm not sure if that
matters much.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv/winsys: remove the max IBs per submit limit for the fallback path
Samuel Pitoiset [Thu, 15 Nov 2018 10:29:53 +0000 (11:29 +0100)]
radv/winsys: remove the max IBs per submit limit for the fallback path

The chained submission is the fastest path and it should now
be used more often than before. This removes some EOP events.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoetnaviv: use dummy RT buffer when rendering without color buffer
Lucas Stach [Wed, 14 Nov 2018 13:51:49 +0000 (14:51 +0100)]
etnaviv: use dummy RT buffer when rendering without color buffer

At least GC2000 seems to push some dirt from the PE color cache into
the last bound render target when drawing depth only. Newer cores
seem to behave properly and don't do this, but I have found no way
to fix it on GC2000. Flushes and stalls don't seem to make any
difference.

In order to stop the core from pushing the dirt into a precious real
render target, plug in dummy buffer when rendering without a color
buffer.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
2 years agovirgl: fix vtest regression since fencing changes.
Dave Airlie [Mon, 19 Nov 2018 05:47:40 +0000 (15:47 +1000)]
virgl: fix vtest regression since fencing changes.

The in_fence_fd needs to be initialised to -1.

Fixes: d1a1c21e7 (virgl: native fence fd support)
Reviewed-by: Robert Foss <robert.foss@collabora.com>
2 years agoradv: always clear the FCE predicate after DCC/FMASK/CMASK decompressions
Samuel Pitoiset [Fri, 16 Nov 2018 12:40:10 +0000 (13:40 +0100)]
radv: always clear the FCE predicate after DCC/FMASK/CMASK decompressions

DCC and FMASK also imply a fast-clear eliminate, so it should be
safe to reset the predicate unconditionally. We still only skip
FMASK or CMASK decompressions for now.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv: tidy up radv_set_dcc_need_cmask_elim_pred()
Samuel Pitoiset [Fri, 16 Nov 2018 12:40:09 +0000 (13:40 +0100)]
radv: tidy up radv_set_dcc_need_cmask_elim_pred()

This is just a small cleanup.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradeonsi: fix an out-of-bounds read reported by ASAN
Nicolai Hähnle [Fri, 16 Nov 2018 16:20:26 +0000 (17:20 +0100)]
radeonsi: fix an out-of-bounds read reported by ASAN

We read 4 values out of sample_locs_8x, so make sure the array is
big enough.

Fixes: ac76aeef20 ("radeonsi: switch back to standard DX sample positions")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agor600: Only set context streamout strides info from the shader that has outputs
Gert Wollny [Mon, 19 Nov 2018 06:56:09 +0000 (07:56 +0100)]
r600: Only set context streamout strides info from the shader that has outputs

With 5d517a streamout info is only attached to the shader for which the
transform feedback is actually recorded, but the driver set the context info
with each state submitted, thereby always using the info data that was
attached to the vertex shader.

Pass the streamout stride info to the context only from the shader that
actually has outputs. (Thanks to Marek Olšák for pointing me in the right
direction)

Fixes regresion with: dEQP-GLES31.functional.tessellation.invariance.*
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108734
Fixes: 5d517a599b1eabd1d5696bf31e26f16568d35770
  st/mesa: Don't record garbage streamout information in the non-SSO case.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
2 years agoi965:use FRAMEBUFFER_UNSUPPORTED instead of FRAMEBUFFER_INCOMPLETE_DIMENSIONS
Gert Wollny [Mon, 19 Nov 2018 09:36:26 +0000 (10:36 +0100)]
i965:use FRAMEBUFFER_UNSUPPORTED instead of FRAMEBUFFER_INCOMPLETE_DIMENSIONS

FRAMEBUFFER_INCOMPLETE_DIMENSIONS is not supported for GLES 3.0 and later and
not defined for Desktop OpenGL. Instead use FRAMEBUFFER_UNSUPPORTED like it
was done before.

Thanks to Iago Toral and Andrey Simiklit for pointing out the problem and the
details.

Fixes: ebcde3454552adc6d3fea8af2207aafaba857796
   i965: be more specific about FBO completeness errors
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
2 years agovirgl: Use file descriptor instead of un-allocated object
Gert Wollny [Mon, 19 Nov 2018 09:56:23 +0000 (10:56 +0100)]
virgl: Use file descriptor instead of un-allocated object

The structure qdws is not allocated at this point, nor is the
file descriptor set to it's member. Use the fd directly instead.

Fixes: d1a1c21e7621b5177febf191fcd3d3b8ef69dc96
    virgl: native fence fd support

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
2 years agoi965: Add support for and expose EXT_texture_sRGB_R8
Gert Wollny [Thu, 15 Nov 2018 18:01:24 +0000 (19:01 +0100)]
i965: Add support for and expose EXT_texture_sRGB_R8

Emulate MESA_FORMAT_R_SRGB8 by using L8_UNORM_SRGB. This is possible
because component swizzling is handled based on the mesa format and,
hence, the a r001 swizzling can be used to correct the components.

Enables and makes pass (tested on Kabylake)

  dEQP-GLES31.functional.srgb_texture_decode.skip_decode.sr8.*
  dEQP-GLES31.functional.texture.filtering.cube_array.formats.sr8*

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Acked-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agoi965: Force zero swizzles for unused components in GL_RED and GL_RG
Gert Wollny [Thu, 15 Nov 2018 18:01:23 +0000 (19:01 +0100)]
i965: Force zero swizzles for unused components in GL_RED and GL_RG

This makes it possible to use a hardware luminance format as RED format.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agoi965: be more specific about FBO completeness errors
Gert Wollny [Thu, 15 Nov 2018 18:01:22 +0000 (19:01 +0100)]
i965: be more specific about FBO completeness errors

The driver was returning GL_FRAMEBUFFER_UNSUPPORTED for all cases of an
incomplete fbo, be a bit more specific about this following the description
of glCheckFramebufferStatus.

This helps to keeps dEQP happy when adding EXT_texture_sRGB_R8 support.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agoi965: Correct L8_UNORM_SRGB table entry
Gert Wollny [Thu, 15 Nov 2018 18:01:21 +0000 (19:01 +0100)]
i965: Correct L8_UNORM_SRGB table entry

As the name says, the format is an sRGB format.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agovirgl: Clean up fences commit
Robert Foss [Fri, 16 Nov 2018 13:53:31 +0000 (14:53 +0100)]
virgl: Clean up fences commit

Remove a dead variable, a int->bool conversion and some
whitespace changes.

Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agoi915: Delete swizzling detection logic.
Kenneth Graunke [Fri, 16 Nov 2018 15:40:55 +0000 (07:40 -0800)]
i915: Delete swizzling detection logic.

This is all leftover from the i965 split.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2 years agonv50/ir/ra: enforce max register requirement, and change spill order
Ilia Mirkin [Sun, 11 Nov 2018 20:52:33 +0000 (15:52 -0500)]
nv50/ir/ra: enforce max register requirement, and change spill order

On nv50, certain operations must happen on regs below 64, due to
encoding requirements. First of all, we add infrastructure to enforce
this. Secondly we change the spill order to first spill RIG nodes that
are unconstrained, followed by ones that are.

This makes the gamecube logo shadertoy compile properly. Curiously, if
we adjust the spill order so that we first spill the constrained RIG
nodes instead, the RA also succeeds. However it seems more logical to
first spill the unconstrained ones.

While we're at it, drop the nv50 max register to reserve r127 as the
zero register of last resort (r63 is preferred).

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Acked-by: Karol Herbst <kherbst@redhat.com>
2 years agonv50/ir/ra: improve condition for short regs, unify with cond for 16-bit
Ilia Mirkin [Sun, 11 Nov 2018 15:55:55 +0000 (10:55 -0500)]
nv50/ir/ra: improve condition for short regs, unify with cond for 16-bit

Instead of the size restriction existing in two places, and potentially
being applied twice, we move this together. Ops with 16-bit register
addresses can only take a short reg, and ops with immediates can only
take a short reg.

Of course we leave the immediate 0 in place since we know that it will
be replaced by r63/r127 down the line, so don't treat zeroes as an
immediate.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
2 years agonv50/ir: delete MINMAX instruction that is no longer in the BB
Ilia Mirkin [Sun, 11 Nov 2018 07:19:36 +0000 (02:19 -0500)]
nv50/ir: delete MINMAX instruction that is no longer in the BB

We removed the op from the BB, but it was still listed in its sources'
uses. This could trip up some logic down the line which analyzes all the
uses of an l-value, e.g. spilling.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
2 years agoegl: Print the actual message to the console from _eglError().
Eric Anholt [Fri, 16 Nov 2018 01:31:28 +0000 (17:31 -0800)]
egl: Print the actual message to the console from _eglError().

Previously we would print errors on the console like:

   libEGL debug: EGL user error 0x3001 (EGL_NOT_INITIALIZED) in eglInitialize

When we had everything we needed for:

   libEGL debug: EGL user error 0x3001 (EGL_NOT_INITIALIZED) in eglInitialize: DRI2: failed to find EGLDevice

(for a gbm error in my case)

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agoloader: Factor out the common driver opening logic from each loader.
Eric Anholt [Thu, 15 Nov 2018 21:54:49 +0000 (13:54 -0800)]
loader: Factor out the common driver opening logic from each loader.

I copied the code from egl_dri2.c, but the functionality was equivalent
between all the loaders other than their particular environment variables.

v2: Drop the logging function equivalent to loader_default_logger()
    (requested by Eric, Emil).  Move the SCons workaround across.  Drop
    the now-unused driGetDriverExtensions() declaration that was lost in a
    rebase.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (v1)
Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (v1)
2 years agoloader: Stop using a local definition for an in-tree header
Eric Anholt [Thu, 15 Nov 2018 21:50:48 +0000 (13:50 -0800)]
loader: Stop using a local definition for an in-tree header

I need other types from the header now, and "gl.h is big" is not a good
reason to duplicate definitions.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agoegl: Move loader_set_logger() up to egl_dri2.c.
Eric Anholt [Thu, 15 Nov 2018 22:47:30 +0000 (14:47 -0800)]
egl: Move loader_set_logger() up to egl_dri2.c.

Everyone needs to call it, and platform_x11 forgot to.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agoglx: Move DRI extensions pointer loading to driOpenDriver().
Eric Anholt [Thu, 15 Nov 2018 22:22:16 +0000 (14:22 -0800)]
glx: Move DRI extensions pointer loading to driOpenDriver().

The only thing you do with a dri driver handle is get the extensions
pointer, so just fold it in to simplify the callers.

v2: Add the declaration of driGetDriverExtensions() that got lost in a
    rebase.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (v1)
Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (v1)
2 years agoglx: Remove an old DEFAULT_DRIVER_DIR default.
Eric Anholt [Thu, 15 Nov 2018 21:41:34 +0000 (13:41 -0800)]
glx: Remove an old DEFAULT_DRIVER_DIR default.

You can tell by "Mesa/configs/default" how old this is.  Your build system
really has to provide the DEFAULT_DRIVER_DIR, or other loaders will break.

v2: Move the bad (non-prefix-dependent) define to the SConscript to avoid
    breaking it.

Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (v1)
Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (v1)
2 years agoradv: enable primitive binning by default
Samuel Pitoiset [Thu, 15 Nov 2018 08:58:52 +0000 (09:58 +0100)]
radv: enable primitive binning by default

After doing a bunch of benchmarks, primitive binning helps
some games like The Talos Principle (+5%) or Serious Sam 2017
(+3%). For other titles, either it doesn't change anything or
it hurts very few (less than 1%).

This only affects GFX9.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agoradv: add a debug option for disabling primitive binning
Samuel Pitoiset [Wed, 14 Nov 2018 16:23:12 +0000 (17:23 +0100)]
radv: add a debug option for disabling primitive binning

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agovirgl: native fence fd support
Robert Foss [Mon, 29 Aug 2016 23:13:45 +0000 (23:13 +0000)]
virgl: native fence fd support

Following the support for fences on the virtio driver add support
for native fence on virgl. This was somewhat based on the freedeno one.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agointel/aub_viewer: Print blend states properly
Lionel Landwerlin [Fri, 9 Nov 2018 16:49:13 +0000 (16:49 +0000)]
intel/aub_viewer: Print blend states properly

Identical fix to :

commit 70de31d0c106f58d6b7e6d5b79b8d90c1c112a3b
Author: Jason Ekstrand <jason.ekstrand@intel.com>
Date:   Fri Aug 24 16:05:08 2018 -0500

    intel/batch_decoder: Print blend states properly

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Toni Lönnberg <toni.lonnberg@intel.com>
2 years agointel/aub_viewer: fix dynamic state printing
Lionel Landwerlin [Fri, 9 Nov 2018 16:49:12 +0000 (16:49 +0000)]
intel/aub_viewer: fix dynamic state printing

Identical fix to :

commit cbd4bc1346f7397242e157bb66099b950a8c5643
Author: Jason Ekstrand <jason.ekstrand@intel.com>
Date:   Fri Aug 24 16:04:03 2018 -0500

    intel/batch_decoder: Fix dynamic state printing

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Toni Lönnberg <toni.lonnberg@intel.com>
2 years agointel/aubinator: fix ring buffer pointer
Lionel Landwerlin [Fri, 9 Nov 2018 16:49:11 +0000 (16:49 +0000)]
intel/aubinator: fix ring buffer pointer

We can only start parsing commands from the head pointer. This was
working fine up to now because we only dealt with a "made up" ring
buffer (generated by aub_write) which always had its head at 0.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Toni Lönnberg <toni.lonnberg@intel.com>
2 years agointel/decoders: read ring buffer length
Lionel Landwerlin [Fri, 9 Nov 2018 16:49:10 +0000 (16:49 +0000)]
intel/decoders: read ring buffer length

Use this value to limit reading the ring buffer.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Toni Lönnberg <toni.lonnberg@intel.com>
2 years agoegl/dri: fix error value with unknown drm format
Lionel Landwerlin [Tue, 13 Nov 2018 14:10:45 +0000 (14:10 +0000)]
egl/dri: fix error value with unknown drm format

According to the EGL_EXT_image_dma_buf_import spec, creating an EGL
image with a DRM format not supported should yield the BAD_MATCH
error :

"
       * If <target> is EGL_LINUX_DMA_BUF_EXT, and the EGL_LINUX_DRM_FOURCC_EXT
         attribute is set to a format not supported by the EGL, EGL_BAD_MATCH
         is generated.
"

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 20de7f9f226401 ("egl/dri2: support for creating images out of dma buffers")
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Chad Versace <chadversary@chromium.org>
2 years agogbm: Clarify acceptable formats for gbm_bo
Daniel Stone [Thu, 1 Nov 2018 11:30:36 +0000 (11:30 +0000)]
gbm: Clarify acceptable formats for gbm_bo

gbm_bo_create() was presumably meant to originally accept gbm_bo_format
enums, but it's accepted GBM_FORMAT_* tokens since the dawn of time.
This is good, since gbm_bo_format is rarely used and covers a lot less
ground than GBM_FORMAT_*.

Change the documentation to refer to both; this involves removing a 'see
also' for gbm_bo_format, since we can't also use \sa to refer to a
family of anonymous #defines.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reported-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
2 years agoRevert "radv: disable VK_SUBGROUP_FEATURE_VOTE_BIT"
Connor Abbott [Wed, 17 Oct 2018 14:57:01 +0000 (16:57 +0200)]
Revert "radv: disable VK_SUBGROUP_FEATURE_VOTE_BIT"

This reverts commit 647c2b90e96a9ab8571baf958a7c67c1e816911a. There was
one recently-introduced bug in ac for dvec3 loads, but the other test
failures were actually bugs in the tests. See
https://github.com/KhronosGroup/VK-GL-CTS/commit/9429e621c48848d224e35f30a1ae45a4a079922c

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2 years agovc4: Don't return a vc4 BO handle on a renderonly screen.
Eric Anholt [Thu, 25 Oct 2018 16:17:17 +0000 (09:17 -0700)]
vc4: Don't return a vc4 BO handle on a renderonly screen.

The handles exported need to be on the KMS device's fd, anything else is
failure.  Also, this code is assuming that the scanout resource has been
created already, so assert it.

2 years agovc4: Make sure we make ro scanout resources for create_with_modifiers.
Eric Anholt [Thu, 25 Oct 2018 16:12:50 +0000 (09:12 -0700)]
vc4: Make sure we make ro scanout resources for create_with_modifiers.

The DRI3 create_with_modifiers paths don't set tmpl.bind to SCANOUT or
SHARED, with the theory that given that you've got modifiers, that's all
you need.  However, we were looking at the tmpl.bind for setting up the
KMS handle in the renderonly case, so we'd end up trying to use vc4's
handle on the hx8357d fd.

Fixes: 84ed8b67c56b ("vc4: Set shareable BOs as T tiled if possible")
2 years agoi965: Fix calculation of layers array length for isl_view
Danylo Piliaiev [Thu, 15 Nov 2018 10:03:31 +0000 (12:03 +0200)]
i965: Fix calculation of layers array length for isl_view

Handle all cases in calculation of layers count for isl_view
taking into account texture view and image unit.
st_convert_image was taken as a reference.

When u->Layered is true the whole level is taken with respect to
image view. In other case only one layer is taken.

v3: (Józef Kucia and Ilia Mirkin)
    - Rewrote patch by taking st_convert_image as a reference
    - Removed now unused get_image_num_layers function
    - Changed commit message

v4: (Jason Ekstrand)
    - Added assert

Fixes: 5a8c8903
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107856

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2 years agointel/compiler: Lower SSBO and shared loads/stores in NIR
Jason Ekstrand [Tue, 13 Nov 2018 00:48:10 +0000 (18:48 -0600)]
intel/compiler: Lower SSBO and shared loads/stores in NIR

We have a bunch of code to do this in the back-end compiler but it's
fairly specific to typed surface messages and the way we emit them.
This breaks it out into NIR were it's easier to do things a bit more
generally.  It also means we can easily share the code between the vec4
and FS back-ends if we wish.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agonir: Add alignment parameters to SSBO, UBO, and shared access
Jason Ekstrand [Tue, 13 Nov 2018 15:45:03 +0000 (09:45 -0600)]
nir: Add alignment parameters to SSBO, UBO, and shared access

This also changes spirv_to_nir and glsl_to_nir to set them.  The one
place that doesn't set them is shared memory access lowering in
nir_lower_io.  That will have to be updated before any consumers of it
can effectively use these new alignments.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
2 years agonir/lower_io: Add shared to get_io_offset_src
Jason Ekstrand [Wed, 14 Nov 2018 21:36:38 +0000 (15:36 -0600)]
nir/lower_io: Add shared to get_io_offset_src

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agonir/glsl: Force 32-bit for UBO and SSBO Booleans
Jason Ekstrand [Tue, 13 Nov 2018 16:19:25 +0000 (10:19 -0600)]
nir/glsl: Force 32-bit for UBO and SSBO Booleans

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agonir/spirv: Force 32-bit for UBO and SSBO Booleans
Jason Ekstrand [Tue, 13 Nov 2018 16:07:31 +0000 (10:07 -0600)]
nir/spirv: Force 32-bit for UBO and SSBO Booleans

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agonir/builder: Add a nir_pack/unpack/bitcast helpers
Jason Ekstrand [Tue, 13 Nov 2018 00:38:24 +0000 (18:38 -0600)]
nir/builder: Add a nir_pack/unpack/bitcast helpers

The new helpers can generate any pack/unpack operation including those
for which we do not have specific opcodes and they express a bitcast in
terms of these pack/unpack operations.  In particular, the new helpers
properly handle 8-bit types.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agonir/builder: Add iadd_imm and imul_imm helpers
Jason Ekstrand [Mon, 12 Nov 2018 21:58:18 +0000 (15:58 -0600)]
nir/builder: Add iadd_imm and imul_imm helpers

The pattern of adding or multiplying an integer by an immediate is
fairly common especially in deref chain handling.  This adds a helper
for it and uses it a few places.  The advantage to the helper is that
it automatically handles bit sizes for you.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
2 years agonir/builder: Assert that intN_t immediates fit
Jason Ekstrand [Mon, 12 Nov 2018 22:02:23 +0000 (16:02 -0600)]
nir/builder: Assert that intN_t immediates fit

This assert won't catch all mistakes with this helper but it will at
least ensure that the top bits are all zero or all one which should help
catch bugs.

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agonir/lower_alu_to_scalar: Don't try to lower unpack_32_2x16
Jason Ekstrand [Tue, 13 Nov 2018 19:24:34 +0000 (13:24 -0600)]
nir/lower_alu_to_scalar: Don't try to lower unpack_32_2x16

It messes up when trying to lower.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agoglsl: Refactor type checking for redeclarations
Ian Romanick [Tue, 9 Oct 2018 20:37:44 +0000 (13:37 -0700)]
glsl: Refactor type checking for redeclarations

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2 years agoglsl: Omit redundant qualifier checks on redeclarations
Ian Romanick [Tue, 9 Oct 2018 19:01:22 +0000 (12:01 -0700)]
glsl: Omit redundant qualifier checks on redeclarations

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2 years agoglsl: prevent qualifiers modification of predeclared variables
Ian Romanick [Tue, 9 Oct 2018 18:34:15 +0000 (11:34 -0700)]
glsl: prevent qualifiers modification of predeclared variables

Section 3.7 (Identifiers) of the GLSL spec says:

    However, as noted in the specification, there are some cases where
    previously declared variables can be redeclared to change or add
    some property, and predeclared "gl_" names are allowed to be
    redeclared in a shader only for these specific purposes.  More
    generally, it is an error to redeclare a variable, including those
    starting "gl_".

This patch should fix piglit tests:
clip-distance-redeclare-without-inout.frag
clip-distance-redeclare-without-inout.vert

However, this causes a regression in
clip-distance-out-values.shader_test.  A fix for that test has been sent
to the piglit list for review:

    https://patchwork.freedesktop.org/patch/255201/

As far as I understood following mailing thread:
https://lists.freedesktop.org/archives/piglit/2013-October/007935.html
looks like we have accepted to remove an ability to change qualifiers
but have not done it yet. Unless I missed something)

v2 (idr): Move 'earlier->data.mode != var->data.mode' test much earlier
in the function.  Add special handling for gl_LastFragData.

Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2 years agov3d: Don't try to set PF flags on a LDTMU operation
Eric Anholt [Tue, 6 Nov 2018 17:39:40 +0000 (09:39 -0800)]
v3d: Don't try to set PF flags on a LDTMU operation

We need an ALU op in order to set PF.  Fixes a recent assertion failure in
dEQP-GLES3.functional.ubo.single_basic_type.shared.bool_vertex

2 years agov3d: Fix double-swapping of R/B on V3D 4.1
Eric Anholt [Tue, 6 Nov 2018 00:40:22 +0000 (16:40 -0800)]
v3d: Fix double-swapping of R/B on V3D 4.1

Fixes: 4018eb04e8a5 ("v3d: Use the TLB R/B swapping instead of recompiles when available.")
2 years agoegl: fix bad rebase
Eric Engestrom [Thu, 15 Nov 2018 17:48:58 +0000 (17:48 +0000)]
egl: fix bad rebase

I screwed up a rebase over a refactor and didn't notice locally because
the uncommitted refactor hid the issue.

Fixes: c9733649670243a1a6eb "egl: add missing glvnd entrypoint for EGL_ANDROID_blob_cache"
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agointel/compiler: Disassemble GEN6_SFID_DATAPORT_SAMPLER_CACHE as dp_sampler
Sagar Ghuge [Thu, 15 Nov 2018 06:39:43 +0000 (22:39 -0800)]
intel/compiler: Disassemble GEN6_SFID_DATAPORT_SAMPLER_CACHE as dp_sampler

Both BRW_SFID_SAMPLER and GEN6_SFID_DATAPORT_SAMPLER_CACHE are getting
disassembled as "sampler", which is misleading for assembler tool.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
2 years agoegl: add missing glvnd entrypoint for EGL_ANDROID_blob_cache
Eric Engestrom [Wed, 14 Nov 2018 12:51:38 +0000 (12:51 +0000)]
egl: add missing glvnd entrypoint for EGL_ANDROID_blob_cache

Fixes dEQP-EGL.functional.get_proc_address.extension.egl_android_blob_cache
on builds with glvnd enabled.

Fixes: 6f5b57093b3462a54e9c7 "egl: add support for EGL_ANDROID_blob_cache"
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2 years agogbm: add new entrypoint to symbols check
Eric Engestrom [Wed, 14 Nov 2018 13:05:34 +0000 (13:05 +0000)]
gbm: add new entrypoint to symbols check

Fixes: 6328536ff28ca26f2ad4e "gbm: Introduce a helper function for
                              printing GBM format names."
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
2 years agobin/get-pick-list.sh: handle reverts prior to the branchpoint
Emil Velikov [Wed, 14 Nov 2018 18:49:54 +0000 (18:49 +0000)]
bin/get-pick-list.sh: handle reverts prior to the branchpoint

Currently we detect when a breaking commit:
 - has landed in stable, and
 - is referenced by a untagged fix in master

Yet we did not consider the case of breaking commit:
 - prior to the branchpoint, and
 - is referenced by a untagged fix in master

Addressing the latter is extremely slow, due to the size of the lookup.

That said, we can trivially use the existing is_sha_nomination() helper
to catch reverts.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: use test instead of [ ]
Emil Velikov [Thu, 8 Nov 2018 15:05:21 +0000 (15:05 +0000)]
bin/get-pick-list.sh: use test instead of [ ]

Latter is rather picky wrt surrounding white space. The explicit `test`
doesn't have that problem, plus the statements read a bit easier.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: handle unofficial "broken by" tag
Emil Velikov [Thu, 8 Nov 2018 15:05:20 +0000 (15:05 +0000)]
bin/get-pick-list.sh: handle unofficial "broken by" tag

We have a number of cases were devs will use a tag "broken by".
While it's not something officially documented or recommended, checking
for it is trivial enough.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: handle fixes tag with missing colon
Emil Velikov [Thu, 8 Nov 2018 15:05:19 +0000 (15:05 +0000)]
bin/get-pick-list.sh: handle fixes tag with missing colon

Every so often, we forget to add the colon after "fixes". Trivially
tweak the script to catch it.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: flesh out is_sha_nomination
Emil Velikov [Thu, 8 Nov 2018 15:05:18 +0000 (15:05 +0000)]
bin/get-pick-list.sh: flesh out is_sha_nomination

Refactor is_fixes_nomination into a is_sha_nomination helper. This way
we can reuse it for more than the usual "Fixes:" tag.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: tweak the commit sha matching pattern
Emil Velikov [Thu, 8 Nov 2018 15:05:17 +0000 (15:05 +0000)]
bin/get-pick-list.sh: tweak the commit sha matching pattern

Currently we match on:
 - any arbitrary length of,
 - any a-z A-Z and 0-9 characters

At the same time, a commit sha consists of lowercase hexadecimal
numbers. Any sha shorter than 8 characters is ambiguous - in some cases
even 11+ are required.

So change the pattern to a-f0-9 and adjust the length to 8-40.

As we're here we could use a single grep, instead of the grep/sed combo.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: handle the fixes tag
Emil Velikov [Thu, 8 Nov 2018 15:05:16 +0000 (15:05 +0000)]
bin/get-pick-list.sh: handle the fixes tag

Having a separate script to handle the fixes tag, brings a number of
issues, so let's fold it in get-pick-list.sh.

v2:
 - pass the sha as argument to the function
 - Keep original sed pattern

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: handle "typod" usecase.
Emil Velikov [Thu, 8 Nov 2018 15:05:15 +0000 (15:05 +0000)]
bin/get-pick-list.sh: handle "typod" usecase.

As the comment in get-typod-pick-list.sh says, there's little point in
having a duplicate file.

Add the new pattern + tag to get-pick-list.sh and nuke this file.

v2:
 - pass the sha as argument to the function
 - grep -q instead of using a variable (Eric)

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: prefix output with "[stable] "
Emil Velikov [Thu, 8 Nov 2018 15:05:14 +0000 (15:05 +0000)]
bin/get-pick-list.sh: prefix output with "[stable] "

With later commits we'll fold all the different scripts into one.
Add the explicit prefix, so that we know the origin of the nomination

v2:
 - pass the sha as argument to the function
 - swap $tag = none for an else statment (Juan)
 - grep -q instead of using a variable (Eric)
 - print the tag and commit oneline separately (Eric)

v3:
 - drop unused "tag=none" assignment (Juan)
 - typo nomination

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> (v2)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agobin/get-pick-list.sh: simplify git oneline printing
Emil Velikov [Thu, 8 Nov 2018 15:05:13 +0000 (15:05 +0000)]
bin/get-pick-list.sh: simplify git oneline printing

Currently we force disable the pager via "|cat" where --no-pager
exists. Additionally we could use git show instead of git log -n1.

Use those for a slightly more understandable code.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2 years agodocs: document the staging branch and add reference to it
Emil Velikov [Wed, 7 Nov 2018 16:02:59 +0000 (16:02 +0000)]
docs: document the staging branch and add reference to it

A while back we agreed that having a live/staging branch is beneficial.
Sadly we forgot to document that, so here is my first attempt.

Document the caveat that the branch history is not stable.

CC: Andres Gomez <agomez@igalia.com>
CC: Dylan Baker <dylan@pnwbakers.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
2 years agodocs/submittingpatches.html: correctly handle the <p> tag
Emil Velikov [Wed, 7 Nov 2018 16:02:58 +0000 (16:02 +0000)]
docs/submittingpatches.html: correctly handle the <p> tag

As pointed out by the w3c validator.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
2 years agodocs/releasing.html: polish cherry-picking/testing text
Emil Velikov [Wed, 7 Nov 2018 16:02:57 +0000 (16:02 +0000)]
docs/releasing.html: polish cherry-picking/testing text

Reword slightly and highlight the important parts of the text.

CC: Andres Gomez <agomez@igalia.com>
CC: Dylan Baker <dylan@pnwbakers.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
2 years agoetnaviv: Make sure rs alignment checks match
Guido Günther [Mon, 17 Sep 2018 14:06:57 +0000 (16:06 +0200)]
etnaviv: Make sure rs alignment checks match

etna_resource_alloc and etna_resource_from_handle currently use different checks.
This leads to

   etna_resource_from_handle:492: target=2, format=PIPE_FORMAT_B8G8R8X8_UNORM, 1080x1920x1, array_size=1, last_level=0, nr_samples=0, usage=0, bind=8000a, flags=0
   etna_resource_from_handle:541: BO stride 4320 is too small for RS engine width padding (4352, format PIPE_FORMAT_B8G8R8X8_UNORM)

since etna_resource_from_handle wants to be aligned to a 16 byte
boundary while the etna_resource_alloc does not.

Adjust the two checks by using a common function.

Broken by baff59ebf07a114f95ad66d1f54e4b1f409eebee

Signed-off-by: Guido Günther <guido.gunther@puri.sm>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
2 years agodocs: update calendar, add news item and link release notes for 18.2.5
Juan A. Suarez Romero [Thu, 15 Nov 2018 13:08:58 +0000 (13:08 +0000)]
docs: update calendar, add news item and link release notes for 18.2.5

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
2 years agodocs: add sha256 checksums for 18.2.5
Juan A. Suarez Romero [Thu, 15 Nov 2018 13:04:37 +0000 (13:04 +0000)]
docs: add sha256 checksums for 18.2.5

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
(cherry picked from commit 79be754f9a74a43b5748dc0934241e7701cb9581)

2 years agodocs: add release notes for 18.2.5
Juan A. Suarez Romero [Thu, 15 Nov 2018 11:58:11 +0000 (11:58 +0000)]
docs: add release notes for 18.2.5

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
(cherry picked from commit f34bddc325c414cb8ee21666bd307512577efdef)

2 years agoradeonsi: fix video APIs on Raven2
Marek Olšák [Tue, 13 Nov 2018 23:37:39 +0000 (18:37 -0500)]
radeonsi: fix video APIs on Raven2

This was missed when I added the new enum.

Cc: 18.3 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agoi965: avoid 'unused variable' warnings
Andrii Simiklit [Tue, 13 Nov 2018 12:19:30 +0000 (14:19 +0200)]
i965: avoid 'unused variable' warnings

1. brw_pipe_control.c:311:34: warning:
    unused variable ‘devinfo’
2. brw_program_binary.c:209:19: warning:
    unused variable ‘gen_size’
3. brw_program_binary.c:216:19: warning:
    unused variable ‘nir_size’

v2: Changes for unreproducible issues were removed

Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agocompiler: avoid 'unused variable' warnings
Andrii Simiklit [Tue, 13 Nov 2018 12:19:29 +0000 (14:19 +0200)]
compiler: avoid 'unused variable' warnings

1. nir/nir_lower_vars_to_ssa.c:691:21: warning:
       unused variable ‘var’
       nir_variable *var = path->path[0]->var;

v2: Changes for some part of 'may be used uninitialized'
    warnings were removed, seems like it is a compiler issue.
        ( Eric Engestrom <eric.engestrom@intel.com> )
    Possible like this one:
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46684
    This issue is flagged as duplicate but an
    original one is not closed yet.

Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agointel/tools: avoid 'unused variable' warnings
Andrii Simiklit [Tue, 13 Nov 2018 12:19:28 +0000 (14:19 +0200)]
intel/tools: avoid 'unused variable' warnings

1. tools/aub_read.c:271:31: warning: unused variable ‘end’
    const uint32_t *p = data, *end = data + data_len, *next;

2. tools/aub_mem.c:292:13: warning: unused variable ‘res’
       void *res = mmap((uint8_t *)bo.map + map_offset, 4096, PROT_READ,
   tools/aub_mem.c:357:13: warning: unused variable ‘res’
       void *res = mmap((uint8_t *)bo.map + (page - bo.addr), 4096, PROT_READ,

v2: The i965_disasm.c changes was moved into a separate patch
    The 'end' variable declared separately with MAYBE_UNUSED
    to avoid effect of it to other variables.
       ( Eric Engestrom <eric.engestrom@intel.com> )

Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2 years agost/xa: Bump minor
Thomas Hellstrom [Fri, 9 Nov 2018 14:27:48 +0000 (15:27 +0100)]
st/xa: Bump minor

Bump minor to signal support for new formats and higher precision
solid pictures.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
2 years agost/xa: Support Component Alpha with trivial blending
Thomas Hellstrom [Tue, 13 Nov 2018 13:10:56 +0000 (14:10 +0100)]
st/xa: Support Component Alpha with trivial blending

Support Component Alpha for those composite operations that do not require
per-channel alpha blending.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
2 years agost/xa: Minor renderer cleanups
Thomas Hellstrom [Tue, 13 Nov 2018 17:24:45 +0000 (18:24 +0100)]
st/xa: Minor renderer cleanups

constify function arguments to clean up the code a bit.

Reported-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
2 years agost/xa: Fix transformations when we have both source and mask samplers
Thomas Hellstrom [Tue, 13 Nov 2018 13:13:38 +0000 (14:13 +0100)]
st/xa: Fix transformations when we have both source and mask samplers

In the case when we had both source and mask samplers, transformations were
typically not applied correctly.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
2 years agost/xa: Support a couple of new formats
Thomas Hellstrom [Fri, 9 Nov 2018 12:19:12 +0000 (13:19 +0100)]
st/xa: Support a couple of new formats

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
2 years agost/xa: Support higher color precision for solid pictures
Thomas Hellstrom [Wed, 7 Nov 2018 13:55:20 +0000 (14:55 +0100)]
st/xa: Support higher color precision for solid pictures

The only solid fill picture type we supported only had 8 bit color
channels. Add a new solid picture type that supports float channels.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
2 years agost/xa: Render update. Better support for solid pictures
Thomas Hellstrom [Wed, 7 Nov 2018 10:14:04 +0000 (11:14 +0100)]
st/xa: Render update. Better support for solid pictures

Remove unused and obsolete code for gradients and component-alpha
Support solid source- and mask pictures using a variable number
of samplers in the composite pipeline rather than the fixed number
we used before.

Tested using rendercheck for XA.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
2 years agonir: Allow to skip integer ops in nir_lower_to_source_mods
Gert Wollny [Mon, 12 Nov 2018 08:17:34 +0000 (09:17 +0100)]
nir: Allow to skip integer ops in nir_lower_to_source_mods

Some hardware supports source mods only for float operations. Make it
possible to skip lowering to source mods in these cases.

v2: use option flags instead of a boolean (Jason Ekstrand)

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2 years agonir/spirv: cast shift operand to u32
Karol Herbst [Thu, 26 Apr 2018 14:54:26 +0000 (16:54 +0200)]
nir/spirv: cast shift operand to u32

v2: fix for specialization constants as well

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Karol Herbst <kherbst@redhat.com>
2 years agonir: replace nir_load_system_value calls with appropiate builder functions
Karol Herbst [Thu, 19 Jul 2018 09:44:31 +0000 (11:44 +0200)]
nir: replace nir_load_system_value calls with appropiate builder functions

this helps reduce the overall code changes when a bit_size parameter is
added to nir_load_system_value

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
2 years agonir: add const_index parameters to system value builder function
Karol Herbst [Thu, 19 Jul 2018 09:42:08 +0000 (11:42 +0200)]
nir: add const_index parameters to system value builder function

this allows to replace some nir_load_system_value calls with the specific
system value constructor

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
2 years agoradv: make use of nir_move_out_const_to_consumer()
Timothy Arceri [Wed, 7 Nov 2018 04:20:41 +0000 (15:20 +1100)]
radv: make use of nir_move_out_const_to_consumer()

vkpipeline-db results:

Totals from affected shaders:
SGPRS: 28400 -> 28576 (0.62 %)
VGPRS: 27916 -> 27692 (-0.80 %)
Spilled SGPRs: 140 -> 138 (-1.43 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 1534456 -> 1520560 (-0.91 %) bytes
LDS: 0 -> 0 (0.00 %) blocks
Max Waves: 3541 -> 3582 (1.16 %)
Wait states: 0 -> 0 (0.00 %)

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2 years agoanv: move helper function internally
Lionel Landwerlin [Fri, 2 Nov 2018 10:21:20 +0000 (10:21 +0000)]
anv: move helper function internally

It's only used in anv_image.c

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2 years agoanv: use image aspects rather than computed ones
Lionel Landwerlin [Tue, 30 Oct 2018 23:44:05 +0000 (23:44 +0000)]
anv: use image aspects rather than computed ones

This shouldn't make any difference but I feel uneasy to use the
expanded aspects that do not represent the image in its entirety. If
we ever change the implementation of the anv_image_aspect_to_plane()
helper, this is safer.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2 years agoanv: associate vulkan formats with aspects
Lionel Landwerlin [Fri, 26 Oct 2018 13:35:59 +0000 (14:35 +0100)]
anv: associate vulkan formats with aspects

This will make it easier to associate an aspect with a plane number.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2 years agoanv/lower_ycbcr: make sure to set 0s on all components
Lionel Landwerlin [Fri, 26 Oct 2018 14:02:06 +0000 (15:02 +0100)]
anv/lower_ycbcr: make sure to set 0s on all components

To play around with debugging, we might want to disable one or the
other component. Having 0s as default values makes this work.
Otherwise we might have NULL components, leading to crashes.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>