platform/upstream/mesa.git
8 years agofreedreno/a4xx: re-emit program on dirty framebuffer
Ilia Mirkin [Sun, 22 Nov 2015 19:06:26 +0000 (14:06 -0500)]
freedreno/a4xx: re-emit program on dirty framebuffer

The program emit depends on certain fb details. Make sure those get
updated when the fb changes.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: use a factor of 32767 for snorm8 blending
Ilia Mirkin [Sun, 22 Nov 2015 19:03:29 +0000 (14:03 -0500)]
freedreno/a4xx: use a factor of 32767 for snorm8 blending

It appears that the hardware wants the integer to be scaled the same way
that the hardware representation is. snorm16 uses one of the float
factors, so this is only relevant for snorm8.

This fixes a number of subcases of
  bin/fbo-blending-formats GL_EXT_texture_snorm

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
8 years agofreedreno/a4xx: only compute texture offset once for the view
Ilia Mirkin [Sun, 22 Nov 2015 17:13:46 +0000 (12:13 -0500)]
freedreno/a4xx: only compute texture offset once for the view

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: add ARB_texture_view support
Ilia Mirkin [Sun, 22 Nov 2015 02:24:48 +0000 (21:24 -0500)]
freedreno/a4xx: add ARB_texture_view support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: add formats for ARB_texture_buffer_object_rgb32 support
Ilia Mirkin [Sun, 22 Nov 2015 01:33:23 +0000 (20:33 -0500)]
freedreno/a4xx: add formats for ARB_texture_buffer_object_rgb32 support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: add ARB_texture_rgb10_a2ui support
Ilia Mirkin [Sun, 22 Nov 2015 00:26:34 +0000 (19:26 -0500)]
freedreno/a4xx: add ARB_texture_rgb10_a2ui support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: add astc formats
Ilia Mirkin [Sat, 21 Nov 2015 16:49:03 +0000 (11:49 -0500)]
freedreno/a4xx: add astc formats

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agost/mesa: add astc support
Ilia Mirkin [Sat, 21 Nov 2015 17:19:52 +0000 (12:19 -0500)]
st/mesa: add astc support

This doesn't account for the ldr/hdr distinction... that will probably
have to be exposed via a separate cap. When relevant hardware appears,
this can be worked out.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
8 years agogallium: add ASTC formats
Ilia Mirkin [Sat, 21 Nov 2015 16:23:34 +0000 (11:23 -0500)]
gallium: add ASTC formats

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
8 years agogallium/util: remove the fake format helpers for bptc and etc2
Ilia Mirkin [Sat, 21 Nov 2015 15:44:00 +0000 (10:44 -0500)]
gallium/util: remove the fake format helpers for bptc and etc2

This was a silly hack that kept growing and growing. Instead, just write
NULLs for those functions. No need to have helpers that just assert(0)
when you call them.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
8 years agofreedreno/a4xx: support 16384 texels in buffer texture
Ilia Mirkin [Sat, 21 Nov 2015 15:28:45 +0000 (10:28 -0500)]
freedreno/a4xx: support 16384 texels in buffer texture

Looks like the width field's bitmask was off-by-one.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: add ARB_texture_buffer_range support
Ilia Mirkin [Sat, 21 Nov 2015 15:02:05 +0000 (10:02 -0500)]
freedreno/a4xx: add ARB_texture_buffer_range support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: add polygon mode support
Ilia Mirkin [Sat, 21 Nov 2015 18:56:22 +0000 (13:56 -0500)]
freedreno/a4xx: add polygon mode support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoconfigure.ac: default to disabled dri3 when --disable-dri is set
Emil Velikov [Sun, 22 Nov 2015 22:05:01 +0000 (22:05 +0000)]
configure.ac: default to disabled dri3 when --disable-dri is set

Not too long ago, the dri3 code was living in src/glx, which in itself
was guarded by HAVE_DRI_GLX. As the name suggests we didn't dive into
the folder when dri was disabled, thus we missed that dri3 does not
consider/honour --enable-dri.

Cc: mesa-stable@lists.freedesktop.org
Fixes: 6bd9ba7d074 "loader: Add dri3 helper"
Cc: Pali Rohár <pali.rohar@gmail.com>
Reported-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoloader: unconditionally add AM_CPPFLAGS to libloader_la_CPPFLAGS
Emil Velikov [Sun, 22 Nov 2015 22:05:00 +0000 (22:05 +0000)]
loader: unconditionally add AM_CPPFLAGS to libloader_la_CPPFLAGS

It seems that due to the conditional autotools is getting confused and
forgetting to add AM_CPPFLAGS when building libloader (when
HAVE_DRICOMMON is not set).

Cc: mesa-stable@lists.freedesktop.org
Fixes: 5a79e0a8e37 "automake: loader: rework the CPPFLAGS"
Reported-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
8 years agopipe-loader: link against libloader regardless of libdrm presence
Emil Velikov [Sat, 21 Nov 2015 19:43:09 +0000 (19:43 +0000)]
pipe-loader: link against libloader regardless of libdrm presence

Whether or not the loader has libdrm support is up-to it. Anyone using
the loader should just include it whenever they depend on it.

Cc: mesa-stable@lists.freedesktop.org
Fixes: 0f39f9cb7ad "pipe-loader: add a dummy 'static' pipe-loader"
Reported-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Tested-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoi965: Handle lum, intensity and missing components in the fast clear
Neil Roberts [Wed, 4 Nov 2015 14:52:06 +0000 (15:52 +0100)]
i965: Handle lum, intensity and missing components in the fast clear

It looks like the sampler hardware doesn't take into account the
surface format when sampling a cleared color after a fast clear has
been done. So for example if you clear a GL_RED surface to 1,1,1,1
then the sampling instructions will return 1,1,1,1 instead of 1,0,0,1.
This patch makes it override the color that is programmed in the
surface state in order to swizzle for luminance and intensity as well
as overriding the missing components.

Fixes the ext_framebuffer_multisample-fast-clear Piglit test.

v2: Handle luminance and intensity formats
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
8 years agonir: s/nir_type_unsigned/nir_type_uint
Jason Ekstrand [Fri, 15 May 2015 16:14:47 +0000 (09:14 -0700)]
nir: s/nir_type_unsigned/nir_type_uint

v2: do the same in tgsi_to_nir (Samuel)

v3: added missing cases after rebase (Iago)

v4: Add a blank space after '#' in one of the comments (Matt)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
8 years agonir/builder: only read meaningful channels in nir_swizzle()
Connor Abbott [Mon, 3 Aug 2015 22:04:13 +0000 (15:04 -0700)]
nir/builder: only read meaningful channels in nir_swizzle()

This way the caller doesn't have to initialize all 4 channels when they
aren't using them.

v2: Fix signed/unsigned comparison warning (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
8 years agoi965/fs: add stride restrictions for copy propagation
Connor Abbott [Fri, 14 Aug 2015 19:00:13 +0000 (12:00 -0700)]
i965/fs: add stride restrictions for copy propagation

There are various restrictions on what the hstride can be that depend on
the Gen, and now that we're using hstride == 2 for packing/unpacking
doubles, we're going to run into these restrictions a lot more often.
Pull them out into a separate function, and move the one restriction we
checked previously into it.

Reviewed-by: Matt Turner <mattst88@gmail.com>
8 years agoi965/fs: don't propagate cmod when the exec sizes differ
Connor Abbott [Tue, 11 Aug 2015 23:16:42 +0000 (16:16 -0700)]
i965/fs: don't propagate cmod when the exec sizes differ

This can happen when the source of the compare was split by the SIMD
lowering pass. Potentially, we could allow the case where the exec size
of scan_inst is larger, and scan_inst has the right quarter selected,
but doing that seems a little more risky.

v2: Merge the bail condition into the the previous if/break block (Matt)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
8 years agoi965/fs: respect force_sechalf/force_writemask_all in CSE
Connor Abbott [Tue, 11 Aug 2015 21:25:36 +0000 (14:25 -0700)]
i965/fs: respect force_sechalf/force_writemask_all in CSE

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoi965: fix 64-bit immediates in brw_inst(_set)_bits
Connor Abbott [Mon, 3 Aug 2015 21:38:12 +0000 (14:38 -0700)]
i965: fix 64-bit immediates in brw_inst(_set)_bits

If we tried to get/set something that was exactly 64 bits, we would
try to do (1 << 64) - 1 to calculate the mask which doesn't give us all
1's like we want.

v2 (Iago)
 - Replace ~0 by ~0ull
 - Removed unnecessary parenthesis

v3 (Kristian)
 - Avoid the conditional

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
8 years agoi965/fs: print non-1 strides when dumping instructions
Connor Abbott [Wed, 5 Aug 2015 16:41:18 +0000 (09:41 -0700)]
i965/fs: print non-1 strides when dumping instructions

v2:
  - Simplify code (Iago)

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
8 years agonv50/ir: fix (un)spilling of 3-wide results
Ilia Mirkin [Sat, 18 Apr 2015 19:00:45 +0000 (15:00 -0400)]
nv50/ir: fix (un)spilling of 3-wide results

There is no 96-bit load/store operations, so we have to split it up
into a 32-bit parts, with a split/merge around it.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90348
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
8 years agoglsl: fix max binding validation for uniform blocks
Timothy Arceri [Sun, 22 Nov 2015 23:07:30 +0000 (10:07 +1100)]
glsl: fix max binding validation for uniform blocks

Regression as of 64710db66461e

We can't use the type returned by get_interface_type() as
the interface type has arrays removed.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
8 years agonv50,nvc0: properly handle buffer storage invalidation on dsa buffer
Ilia Mirkin [Mon, 23 Nov 2015 02:08:16 +0000 (21:08 -0500)]
nv50,nvc0: properly handle buffer storage invalidation on dsa buffer

In case that the buffer has no bind at all, assume it can be a regular
buffer. This can happen on buffers created through the ARB_dsa
interfaces.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
8 years agonouveau: use the buffer usage to determine placement when no binding
Ilia Mirkin [Mon, 23 Nov 2015 01:58:56 +0000 (20:58 -0500)]
nouveau: use the buffer usage to determine placement when no binding

With ARB_direct_state_access, buffers can be created without any binding
hints at all. We still need to allocate these buffers to VRAM or GART,
as we don't have logic down the line to place them into GPU-mappable
space. Ideally we'd be able to shift these things around based on usage.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92438
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
8 years agovc4: Take precedence over ilo when in simulator mode.
Eric Anholt [Sat, 21 Nov 2015 20:52:48 +0000 (12:52 -0800)]
vc4: Take precedence over ilo when in simulator mode.

They're exclusive at build time, but the ilo entry is always present, so
we'd try to use it and fail out.

v2: Add comment in the code, from Emil.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agovc4: Just put USE_VC4_SIMULATOR in DEFINES.
Eric Anholt [Sat, 21 Nov 2015 21:07:42 +0000 (13:07 -0800)]
vc4: Just put USE_VC4_SIMULATOR in DEFINES.

In the pipe-loader reworks, it was missed in one of the new directories it
was used.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agomesa/teximage: Fix S3TC regression due to ASTC interaction
Nanley Chery [Wed, 28 Oct 2015 21:50:58 +0000 (14:50 -0700)]
mesa/teximage: Fix S3TC regression due to ASTC interaction

A prior, literal reading of the ASTC spec led to the prohibition
of some compressed formats being used against the targets:
TEXTURE_CUBE_MAP_ARRAY and TEXTURE_3D. Since the spec does not specify
interactions with other extensions for specific compressed textures,
remove such interactions.

Fixes the following Piglit tests on Gen9:
piglit.spec.arb_direct_state_access.getcompressedtextureimage
piglit.spec.arb_get_texture_sub_image.arb_get_texture_sub_image-getcompressed
piglit.spec.arb_texture_cube_map_array.fbo-generatemipmap-cubemap array s3tc_dxt1
piglit.spec.ext_texture_compression_s3tc.getteximage-targets cube_array s3tc

v2. Don't interact with other specific compressed formats (Ian).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91927
Suggested-by: Neil Roberts <neil@linux.intel.com>
Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agomesa/extensions: Enable overriding permanently enabled extensions
Nanley Chery [Sat, 21 Nov 2015 00:15:04 +0000 (16:15 -0800)]
mesa/extensions: Enable overriding permanently enabled extensions

Provide the ability to prevent any permanently enabled extension
from appearing in the string returned by glGetString[i]().

Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Brian Paul <brianp@vmware.com>
8 years agovirgl: pipe_virgl_create_screen is not static
Igor Gnatenko [Sun, 22 Nov 2015 09:12:09 +0000 (10:12 +0100)]
virgl: pipe_virgl_create_screen is not static

Cc: mesa-stable@lists.freedesktop.org
Fixes: 17d3a5f8579 "target-helpers: add a non-inline drm_helper.h"
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93063
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoi965: Fix num_uniforms count for scalar GS.
Kenneth Graunke [Fri, 13 Nov 2015 21:29:16 +0000 (13:29 -0800)]
i965: Fix num_uniforms count for scalar GS.

I noticed that brw_vs.c does this.

I believe the point is that nir->num_uniforms is either counted in
scalar components (in scalar mode), or vec4 slots (in vector mode).
But we want param_count to be in scalar components regardless, so
we have to scale up in vector mode.

We don't have to scale up in scalar mode, though.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
8 years agovc4: Use nir_channel() to simplify all of our nir_swizzle() cases.
Eric Anholt [Sat, 21 Nov 2015 04:42:12 +0000 (20:42 -0800)]
vc4: Use nir_channel() to simplify all of our nir_swizzle() cases.

8 years agovc4: Fix point size lookup.
Eric Anholt [Sat, 21 Nov 2015 02:52:58 +0000 (18:52 -0800)]
vc4: Fix point size lookup.

I think I may have regressed this in the NIR conversion.  TGSI-to-NIR is
putting the PSIZ in the .x channel, not .w, so we were grabbing some
garbage for point size, which ended up meaning just not drawing points.

Fixes glean pointAtten and pointsprite.

8 years agopipe-loader: Fix PATH_MAX define on MSVC.
Jose Fonseca [Sat, 21 Nov 2015 23:03:20 +0000 (23:03 +0000)]
pipe-loader: Fix PATH_MAX define on MSVC.

8 years agoscons: Conditionally use DRM module on pipe-loader.
Jose Fonseca [Sat, 21 Nov 2015 21:19:57 +0000 (21:19 +0000)]
scons: Conditionally use DRM module on pipe-loader.

Fixes non Linux builds.

Trivial.

8 years agofreedreno/a4xx: disable blending and alphatest for integer rt0
Ilia Mirkin [Sat, 21 Nov 2015 06:27:01 +0000 (01:27 -0500)]
freedreno/a4xx: disable blending and alphatest for integer rt0

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
8 years agofreedreno/a4xx: fix independent blend
Ilia Mirkin [Sat, 21 Nov 2015 05:02:36 +0000 (00:02 -0500)]
freedreno/a4xx: fix independent blend

This fixes the ext_draw_buffers2 and arb_draw_buffers_blend tests.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
8 years agofreedreno/a4xx: enable ARB_base_instance support
Ilia Mirkin [Sat, 21 Nov 2015 03:55:28 +0000 (22:55 -0500)]
freedreno/a4xx: enable ARB_base_instance support

We already pass in start_instance in fd4_draw. Expose the extension.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: set fetchsize in mem2gmem texture restore
Ilia Mirkin [Sat, 21 Nov 2015 02:01:28 +0000 (21:01 -0500)]
freedreno/a4xx: set fetchsize in mem2gmem texture restore

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: add 11_11_10_float vertex type support
Ilia Mirkin [Sat, 21 Nov 2015 02:49:28 +0000 (21:49 -0500)]
freedreno/a4xx: add 11_11_10_float vertex type support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: fix 3d texture setup
Ilia Mirkin [Sat, 21 Nov 2015 02:34:20 +0000 (21:34 -0500)]
freedreno/a4xx: fix 3d texture setup

Same fix as on a3xx - set the second (tiny) layer size bitfield to the
smallest level's size so that the hw knows not to minify beyond that.

This fixes texelFetch sampler3D piglits.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
8 years agofreedreno/a4xx: only align slices in non-layer_first textures
Ilia Mirkin [Sat, 21 Nov 2015 02:20:00 +0000 (21:20 -0500)]
freedreno/a4xx: only align slices in non-layer_first textures

When layer is the container, slices are tightly packed inside of each
layer. We don't need any additional alignment. On a3xx, each slice
contains all the layers, so having alignment makes sense.

This fixes a whole slew of array-related piglits, including texelFetch
and tex-miplevel-selection varieties.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
8 years agodocs: add 11.2.0-devel release notes template, bump version
Emil Velikov [Sat, 21 Nov 2015 14:10:08 +0000 (14:10 +0000)]
docs: add 11.2.0-devel release notes template, bump version

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
8 years agoutil: use RTLD_LOCAL with util_dl_open()
Emil Velikov [Fri, 16 Oct 2015 19:34:52 +0000 (20:34 +0100)]
util: use RTLD_LOCAL with util_dl_open()

Otherwise we risk things blowing up due to conflicting symbols.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotargets/nine: remove unused static functions
Emil Velikov [Thu, 15 Oct 2015 18:29:00 +0000 (19:29 +0100)]
targets/nine: remove unused static functions

Dead code since commit 8f50614910c40366d94964fe2c5da5772aff2f96

Cc: Axel Davy <axel.davy@ens.fr>
Cc: Tiziano Bacocco <tizbac2@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotargets/nine: add note about messy header inclusion order
Emil Velikov [Wed, 14 Oct 2015 15:52:07 +0000 (16:52 +0100)]
targets/nine: add note about messy header inclusion order

Cc: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotargets/nine: add note about fd owndership
Emil Velikov [Wed, 14 Oct 2015 15:49:59 +0000 (16:49 +0100)]
targets/nine: add note about fd owndership

v2:
 - move autotools hunk into correct patch
 - correct the note based on Axel's feedback

Cc: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agoauxiliary/vl: Don't close the drm fd on failure
Emil Velikov [Wed, 14 Oct 2015 14:37:03 +0000 (15:37 +0100)]
auxiliary/vl: Don't close the drm fd on failure

Ported from an identically named commit in st/xa

commit 35cf3831d71770211f29da6608313dc1f6213d7b
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Thu Jul 3 02:07:36 2014 -0700

    st/xa: Don't close the drm fd on failure v2

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agost/dri: NULL check the pscreen earlier
Emil Velikov [Wed, 14 Oct 2015 23:46:26 +0000 (00:46 +0100)]
st/dri: NULL check the pscreen earlier

We delay the null check only to jump through hoops to work around that.
Check early to make our lives easier.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agost/dri: Don't close the drm fd on failure
Emil Velikov [Wed, 14 Oct 2015 23:45:13 +0000 (00:45 +0100)]
st/dri: Don't close the drm fd on failure

Ported from an identically named commit in st/xa

commit 35cf3831d71770211f29da6608313dc1f6213d7b
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Thu Jul 3 02:07:36 2014 -0700

    st/xa: Don't close the drm fd on failure v2

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotarget-helpers: remove inline_drm_helper.h
Emil Velikov [Thu, 19 Nov 2015 19:47:02 +0000 (19:47 +0000)]
target-helpers: remove inline_drm_helper.h

As of earlier all the targets use the non inline version. Don't forget
to remove the function prototypes/declarations.

v2: rebase on top of virgl support.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years ago{st,targets}/nine: use static/dynamic pipe-loader
Emil Velikov [Wed, 14 Oct 2015 15:47:04 +0000 (16:47 +0100)]
{st,targets}/nine: use static/dynamic pipe-loader

Analogous to previous commits.

v2: add the missing winsys libs linkage

Cc: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years ago{st,targets}/xa: use static/dynamic pipe-loader
Emil Velikov [Wed, 14 Oct 2015 23:43:52 +0000 (00:43 +0100)]
{st,targets}/xa: use static/dynamic pipe-loader

Analogous to previous commits.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years ago{auxiliary,targets}/vl: use static/dynamic pipe-loader
Emil Velikov [Fri, 20 Nov 2015 18:02:12 +0000 (18:02 +0000)]
{auxiliary,targets}/vl: use static/dynamic pipe-loader

Analogous to previous commit.

v2: rebase on top of vl_winsys_drm.c addition

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years ago{st,targets}/dri: use static/dynamic pipe-loader
Emil Velikov [Wed, 14 Oct 2015 22:48:15 +0000 (23:48 +0100)]
{st,targets}/dri: use static/dynamic pipe-loader

Covert DRI to use only the pipe-loader interface.

With drisw_create_screen and kms_swrast_create_screen replaced by their
pipe-loader equivalent, we can now drop them.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: add preliminary Android support
Emil Velikov [Wed, 14 Oct 2015 22:44:17 +0000 (23:44 +0100)]
pipe-loader: add preliminary Android support

Add a 'static' pipe-loader build, which will be used with follow-up
commits.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: add preliminary scons support
Emil Velikov [Wed, 14 Oct 2015 22:32:58 +0000 (23:32 +0100)]
pipe-loader: add preliminary scons support

Add a 'static' pipe-loader build, which will be used with follow-up
commits.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: don't mix code and variable declarations
Emil Velikov [Wed, 14 Oct 2015 17:11:11 +0000 (18:11 +0100)]
pipe-loader: don't mix code and variable declarations

We cannot use this C99 feature here quite yet, as the code needs to be
build with MSVC prior to 2013.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotarget-helpers: add a non-inline drm_helper.h
Emil Velikov [Sun, 11 Oct 2015 12:50:56 +0000 (13:50 +0100)]
target-helpers: add a non-inline drm_helper.h

Unlike the inline ones, here we'd want to have an extern definition of
the functions. This is required as with follow-up commits, we'll
gradually start using the static pipe-loader, with the latter needing
the symbols.

These are direct copy from the inline version.

v2:
 - rebase on top of virgl support
 - add "driver missing" printfs (Nicolai)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotarget-helpers: move the DRI specifics to the target
Emil Velikov [Wed, 7 Oct 2015 16:37:37 +0000 (17:37 +0100)]
target-helpers: move the DRI specifics to the target

Rather than having all targets include the file, with only some defining
the relevant guard macro, just move things where they are used.

v2: rebase on top of virgl support.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agoautomake: remove no longer needed HAVE_LOADER_GALLIUM conditional
Emil Velikov [Sat, 17 Oct 2015 20:14:09 +0000 (21:14 +0100)]
automake: remove no longer needed HAVE_LOADER_GALLIUM conditional

As of last few commits we have a static and dynamic pipe-loader. Either
of which will be used with (almost) all targets..

We can look into allowing the user to select which way the targets are
built, be that 'static for all' or 'per target' in follow up commits.
After which we can look into building only the static or dynamic
version, although building both shouldn't cause any issues.

Hack/workaround alert:
Control the standalone pipe-drivers via HAVE_CLOVER. Will need to be
fixed as the targets are converted/configure knobs are in.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: wire up the 'static' sw pipe-loader
Emil Velikov [Fri, 20 Nov 2015 17:19:54 +0000 (17:19 +0000)]
pipe-loader: wire up the 'static' sw pipe-loader

Analogous to previous commit with a small catch.

As the sw inline helpers are mere wrappers, and the screen <> winsys
split is more prominent (with the latter not being part of the final
pipe-driver), things will just work.

v2: rebase on top of earlier 'consolitate teardown' changes

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: wire up the 'static' drm pipe-loader
Emil Velikov [Wed, 14 Oct 2015 13:56:21 +0000 (14:56 +0100)]
pipe-loader: wire up the 'static' drm pipe-loader

Add a list of driver descriptors and select one from the list, during
probe time.

As we'll need to have all the driver pipe_foo_screen_create() functions
provided externally (i.e. from another static lib) we need a separate
(non-inline) drm_helper, which contains the function declarations.

v2: rebase on top of virgl support.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: add a dummy 'static' pipe-loader
Emil Velikov [Tue, 13 Oct 2015 17:07:11 +0000 (18:07 +0100)]
pipe-loader: add a dummy 'static' pipe-loader

It is to be used in contrast of the dynamic one. The state-tracker does
not need to know if the pipe-driver is built into the final blob or
a separate object. This will allow us to move the logic to the final
step (in target) where the appropriate pipe-loader will be chosen.

Cc: Tom Stellard <thomas.stellard@amd.com>
Cc: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agogallium: rename libpipe_loader to libpipe_loader_dynamic
Emil Velikov [Sat, 17 Oct 2015 21:06:17 +0000 (22:06 +0100)]
gallium: rename libpipe_loader to libpipe_loader_dynamic

With the next commits we'll introduce a 'static' version, which will
essentially load the statically linked-in pipe-drivers, rather than the
standalone pipe-$foo.so ones.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: dlopen/dlsym the pipe-driver at probe time
Emil Velikov [Sat, 17 Oct 2015 20:51:45 +0000 (21:51 +0100)]
pipe-loader: dlopen/dlsym the pipe-driver at probe time

Rather than giving false hopes that things might work, just check at
probe time. This allows us to remove the duplication and consolidate
the code wrt the upcomming static pipe-loader.

Cc: Tom Stellard <thomas.stellard@amd.com>
Cc: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: annotate the ops as const data
Emil Velikov [Wed, 14 Oct 2015 20:35:50 +0000 (21:35 +0100)]
pipe-loader: annotate the ops as const data

Already defined as such in struct pipe_loader_device::ops.

Cc: Tom Stellard <thomas.stellard@amd.com>
Cc: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: teardown the winsys, if create_screen fails
Emil Velikov [Sat, 17 Oct 2015 19:53:16 +0000 (20:53 +0100)]
pipe-loader: teardown the winsys, if create_screen fails

i.e. plug some (hard to hit) memory leaks.

v2: fix rebase fallout - really teardown the winsys (Brian)
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: rework the sw backend
Emil Velikov [Sat, 17 Oct 2015 20:51:24 +0000 (21:51 +0100)]
pipe-loader: rework the sw backend

Move the winsys into the pipe-target, similar to the hardware
pipe-driver.

v2:
 - move int declaration outside of loop (Brian)
 - fold the teardown into a goto + separate function.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agogallium: keep the libdrm link alongside libkmsdri.la
Emil Velikov [Sat, 17 Oct 2015 22:23:49 +0000 (23:23 +0100)]
gallium: keep the libdrm link alongside libkmsdri.la

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: directly use pipe_loader_sw_probe_null() at probe time
Emil Velikov [Wed, 14 Oct 2015 20:31:24 +0000 (21:31 +0100)]
pipe-loader: directly use pipe_loader_sw_probe_null() at probe time

Due to the nature of the other sw winsys' we cannot use them during the
generic probe stage. As such there is little point in keeping the
abstraction layer.

Cc: Tom Stellard <thomas.stellard@amd.com>
Cc: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: add pipe_loader_sw_probe_init_common() helper
Emil Velikov [Wed, 14 Oct 2015 18:35:51 +0000 (19:35 +0100)]
pipe-loader: add pipe_loader_sw_probe_init_common() helper

Allows us to fold the duplication in pipe_loader_sw_probe_*().

Cc: Tom Stellard <thomas.stellard@amd.com>
Cc: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agogallium/tests: remove unneeded include paths
Emil Velikov [Wed, 14 Oct 2015 15:16:52 +0000 (16:16 +0100)]
gallium/tests: remove unneeded include paths

The tests don't (and shouldn't) need to have anything driver and/or
winsys specific.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agogallium: remove library_path argument from pipe_loader_create_screen()
Emil Velikov [Wed, 14 Oct 2015 15:37:37 +0000 (16:37 +0100)]
gallium: remove library_path argument from pipe_loader_create_screen()

Currently the location is determined at configure/build time and
consistently copied across gallium. Just remove the extra argument, and
use PIPE_SEARCH_DIR where appropriate.

This will allow us to remove the duplication in the *configuration and
*screen_create APIs by moving util_dl_get_proc_address() and friends to
probe time.

v2: rebase on top of vl_winsys_drm.c addition

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotargets/nine: remove the custom pipe-driver path management
Emil Velikov [Wed, 14 Oct 2015 13:52:37 +0000 (14:52 +0100)]
targets/nine: remove the custom pipe-driver path management

Since the up-streaming of nine, the static target was used by default.
The dynamic pipe-drivers being available only via manual tweak of
configure.ac.

As we'll be removing the library_path argument from the pipe-loader with
follow-up commits, we can remove D3D9_DRIVERS_PATH/D3D9_DRIVERS_DIR.
Everyone doing local hacking on nine, or wishing to have a env override
can bring them back within the pipe-loader.

Cc: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: remove HAVE_DRM_LOADER_GALLIUM and HAVE_PIPE_LOADER_DRM
Emil Velikov [Wed, 14 Oct 2015 15:26:53 +0000 (16:26 +0100)]
pipe-loader: remove HAVE_DRM_LOADER_GALLIUM and HAVE_PIPE_LOADER_DRM

... in favour of HAVE_LIBDRM. After all we solely want to build the code
when the latter is available.

In the not too distant future we will remove the libudev/sysfs
dependency and simplify configure.ac even further.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: add pipe_loader_sw_probe_kms() implementation
Emil Velikov [Wed, 14 Oct 2015 15:24:55 +0000 (16:24 +0100)]
pipe-loader: add pipe_loader_sw_probe_kms() implementation

Will be used as a counterpart for target-helpers'
kms_swrast_create_screen().

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agoconfigure: use HAVE_DRISW_KMS when handling kms swrast
Emil Velikov [Sun, 11 Oct 2015 10:53:45 +0000 (11:53 +0100)]
configure: use HAVE_DRISW_KMS when handling kms swrast

Using HAVE_DRI2 to manage it seems counter-intuitive.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agotargets/nine: use the existing sw_screen_wrap() over our custom version
Emil Velikov [Tue, 6 Oct 2015 22:04:22 +0000 (23:04 +0100)]
targets/nine: use the existing sw_screen_wrap() over our custom version

Cc: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agoautomake: use GALLIUM_PIPE_LOADER_DEFINES only where applicable
Emil Velikov [Wed, 14 Oct 2015 15:23:50 +0000 (16:23 +0100)]
automake: use GALLIUM_PIPE_LOADER_DEFINES only where applicable

As of last commit we no longer need the defines in order to have the
function prototypes.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agopipe-loader: remove HAVE_PIPE_LOADER_foo function prototype guards
Emil Velikov [Wed, 14 Oct 2015 15:20:32 +0000 (16:20 +0100)]
pipe-loader: remove HAVE_PIPE_LOADER_foo function prototype guards

They serve little to no purpose, as we don't need any additional
dependencies (headers and/or symbols). On the other hand dropping them
will allow us to use GALLIUM_PIPE_LOADER_DEFINES in only one single
place - the pipe-loader.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agogallium/trace: remove useless NULL check from trace_screen_create()
Emil Velikov [Tue, 6 Oct 2015 21:25:47 +0000 (22:25 +0100)]
gallium/trace: remove useless NULL check from trace_screen_create()

Currently every target makes sure that the screen is non-null prior to
using the debug (trace including) wrappers. If that no longer holds true
we want to know and fix this ASAP rather than silently bailing out.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agoconfigure: remove obsolete _CLIENT comment
Emil Velikov [Wed, 7 Oct 2015 17:05:04 +0000 (18:05 +0100)]
configure: remove obsolete _CLIENT comment

The referenced variable(s) have been removed with commit abc20120e4a
(automake: pipe-loader: remove the 'client' pipe-loader)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Rob Clark <robclark@freedesktop.org>
8 years agodocs: add news item and link release notes for 11.0.6
Emil Velikov [Sat, 21 Nov 2015 12:42:48 +0000 (12:42 +0000)]
docs: add news item and link release notes for 11.0.6

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
8 years agodocs: add sha256 checksums for 11.0.6
Emil Velikov [Sat, 21 Nov 2015 12:40:06 +0000 (12:40 +0000)]
docs: add sha256 checksums for 11.0.6

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
(cherry picked from commit 2555e000fc1771dd231207247b5d9dfec4600fe8)

8 years agodocs: add release notes for 11.0.6
Emil Velikov [Sat, 21 Nov 2015 11:38:20 +0000 (11:38 +0000)]
docs: add release notes for 11.0.6

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
(cherry picked from commit 04fd3a6f629b5098cc2a4da1f2392678349ecf56)

8 years agofreedreno/a4xx: add missing formats to enable ARB_vertex_type_2_10_10_10_rev
Ilia Mirkin [Sat, 21 Nov 2015 01:40:45 +0000 (20:40 -0500)]
freedreno/a4xx: add missing formats to enable ARB_vertex_type_2_10_10_10_rev

Same as commit 84d087aea but for a4xx. The RE'd enums had the same issue
too.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoi965: Test that nonrepresentable floats cannot be converted to VF.
Matt Turner [Wed, 4 Nov 2015 22:38:27 +0000 (14:38 -0800)]
i965: Test that nonrepresentable floats cannot be converted to VF.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
8 years agoi965: Use ldexpf() in VF float test set up.
Matt Turner [Wed, 4 Nov 2015 22:31:59 +0000 (14:31 -0800)]
i965: Use ldexpf() in VF float test set up.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
8 years agoi965/vec4: Initialize nir_inputs with src_reg().
Matt Turner [Fri, 20 Nov 2015 05:48:47 +0000 (21:48 -0800)]
i965/vec4: Initialize nir_inputs with src_reg().

nir_locals, nir_ssa_values, and nir_system_values are all dst_reg (not
that that makes a whole lot of sense to me), and only nir_inputs is a
src_reg.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
8 years agoi965/fs: Add support for gl_HelperInvocation system value.
Matt Turner [Sat, 14 Nov 2015 01:51:12 +0000 (17:51 -0800)]
i965/fs: Add support for gl_HelperInvocation system value.

In most cases (when the negate is copy propagated and the MOV removed),
this is two instructions on Gen >= 8 and only two instructions on
earlier platforms -- and it doesn't use the flag register.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
8 years agoi965: Add brw_imm_uv().
Matt Turner [Mon, 16 Nov 2015 17:29:01 +0000 (09:29 -0800)]
i965: Add brw_imm_uv().

8 years agoi965: Don't bother setting regioning on immediates.
Matt Turner [Mon, 16 Nov 2015 17:28:02 +0000 (09:28 -0800)]
i965: Don't bother setting regioning on immediates.

The region fields are unioned with the immediate storage.

8 years agonir: Add support for gl_HelperInvocation system value.
Matt Turner [Sat, 14 Nov 2015 01:50:27 +0000 (17:50 -0800)]
nir: Add support for gl_HelperInvocation system value.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
8 years agofreedreno/a4xx: use hardware RGTC texture samplers
Ilia Mirkin [Fri, 20 Nov 2015 23:34:03 +0000 (18:34 -0500)]
freedreno/a4xx: use hardware RGTC texture samplers

a4xx hardware has real support for RGTC so there's no need to fake it
like we do on a3xx. Undo the hacks, and keep track of an "internal
format" of a resource, which on a3xx will be different, triggering the
transfer-time conversions to take place.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: hook up RGB565 format
Ilia Mirkin [Fri, 20 Nov 2015 22:43:11 +0000 (17:43 -0500)]
freedreno/a4xx: hook up RGB565 format

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agofreedreno/a4xx: logic op handling
Ilia Mirkin [Fri, 20 Nov 2015 18:27:49 +0000 (13:27 -0500)]
freedreno/a4xx: logic op handling

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>