mesa.git
7 years agoconfigure.ac: require pthread-stubs only where available
Emil Velikov [Thu, 2 Mar 2017 19:02:44 +0000 (19:02 +0000)]
configure.ac: require pthread-stubs only where available

The project is a thing only for BSD platforms. Or in other words - for
any other platforms building/installing pthread-stubs results only in a
pthread-stub.pc file.

And even where it provides a DSO, there's a fundamental design issue
with it - see the pthread-stubs mailing list for the specifics.

v2: Update comment above the switch statement (Jon Turney).

Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Acked-by: Gary Wong <gtw@gnu.org>
Tested-by: Eric Engestrom <eric.engestrom@imgtec.com>
Acked-by: Randy Fishel <randy.fishel@oracle.com>
Cc: Niveditha Rau <niveditha.rau@oracle.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoconfigure.ac: do not require the i965 driver for ANV
Emil Velikov [Wed, 8 Mar 2017 23:46:06 +0000 (23:46 +0000)]
configure.ac: do not require the i965 driver for ANV

As of last few commits we have the two split, thus we no longer require
the i965 in order to have the ANV driver.

Even though ANV does not link against libdrm nor libdrm_intel, we still
require those as dependencies due to the headers they provide.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agointel/vulkan: Get rid of recursive make
Jason Ekstrand [Thu, 2 Mar 2017 05:11:51 +0000 (21:11 -0800)]
intel/vulkan: Get rid of recursive make

v2 [Emil Velikov]
 - Various fixes and initial stab at the Android build.
 - Keep the generation rules/EXTRA_DIST outside the conditional

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agointel/tools: Use a makefile included from intel/Makefile.am
Jason Ekstrand [Wed, 1 Mar 2017 21:26:40 +0000 (13:26 -0800)]
intel/tools: Use a makefile included from intel/Makefile.am

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agointel/compiler: whitespace cleanups
Emil Velikov [Tue, 7 Mar 2017 15:07:49 +0000 (15:07 +0000)]
intel/compiler: whitespace cleanups

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agointel/compiler: link all tests again gtest, even test_eu_compact"
Emil Velikov [Tue, 7 Mar 2017 16:13:42 +0000 (16:13 +0000)]
intel/compiler: link all tests again gtest, even test_eu_compact"

At the moment all the tests but test_eu_compact are actual C++ gtests.
To simplify things, we can move the gtest.la to the common TEST_LIBS.
As we're here, we can rename change the test extension [to .cpp] to
avoid using the confusing dummy.cpp.

Add a nice comment in the makefile for posterity.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: remove i965_symbols_test reference from .gitignore
Emil Velikov [Tue, 7 Mar 2017 15:57:27 +0000 (15:57 +0000)]
i965: remove i965_symbols_test reference from .gitignore

The test/binary was removed back in 2012. With that one gone, we can
drop the .gitignore file all together.

Cc: Eric Anholt <eric@anholt.net>
Fixes: c8850394423 ("i965: Drop the missing symbols link test.")
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: Move the back-end compiler to src/intel/compiler
Jason Ekstrand [Tue, 28 Feb 2017 17:10:43 +0000 (09:10 -0800)]
i965: Move the back-end compiler to src/intel/compiler

Mostly a dummy git mv with a couple of noticable parts:
 - With the earlier header cleanups, nothing in src/intel depends
files from src/mesa/drivers/dri/i965/
 - Both Autoconf and Android builds are addressed. Thanks to Mauro and
Tapani for the fixups in the latter
 - brw_util.[ch] is not really compiler specific, so it's moved to i965.

v2:
 - move brw_eu_defines.h instead of brw_defines.h
 - remove no-longer applicable includes
 - add missing vulkan/ prefix in the Android build (thanks Tapani)

v3:
 - don't list brw_defines.h in src/intel/Makefile.sources (Jason)
 - rebase on top of the oa patches

[Emil Velikov: commit message, various small fixes througout]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: split EU defines to brw_eu_defines.h
Emil Velikov [Thu, 9 Mar 2017 00:44:29 +0000 (00:44 +0000)]
i965: split EU defines to brw_eu_defines.h

Split out the EU defines from the 'generic' ones, as the former are more
compiler oriented.

With a later commit we'll move brw_eu_defines.h alongside the compiler
infra to src/intel/. Pulling all the defines in there seems overzealous.

Some defines are used by both i965 and the i965 compiler. Those are
moved to brw_eu_defines.h, and annotated accordingly. The i965 users
were updated to have the extre include to indicate that.

With future work we might provide a better, split but for now this seems
reasonable.

Cc: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoutil/bitscan: use correct signature for ffs/ffsll
Emil Velikov [Thu, 9 Mar 2017 17:45:19 +0000 (17:45 +0000)]
util/bitscan: use correct signature for ffs/ffsll

Otherwise we'll get errors such as

error: conflicting types for ‘ffs’
error: conflicting types for ‘ffsll’

We might want to improve the heuristics and provide a definition only
when a native one is missing. We can address that at a later stage.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: add missing brw_defines.h include in brw_program.c
Emil Velikov [Thu, 9 Mar 2017 02:05:07 +0000 (02:05 +0000)]
i965: add missing brw_defines.h include in brw_program.c

File is using MI_LOAD_REGISTER_IMM, GEN7_CACHE_MODE_1 and others as
defined in the header.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: add missing brw_defines.h include in brw_program.c
Emil Velikov [Thu, 9 Mar 2017 01:58:30 +0000 (01:58 +0000)]
i965: add missing brw_defines.h include in brw_program.c

File is using the PIPE_CONTROL_* macros as defined in the header.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: add missing #include <assert.h> in brw_inst.h
Emil Velikov [Thu, 9 Mar 2017 01:13:52 +0000 (01:13 +0000)]
i965: add missing #include <assert.h> in brw_inst.h

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: move brw_define.h ifndef guard to the top
Emil Velikov [Thu, 9 Mar 2017 00:38:21 +0000 (00:38 +0000)]
i965: move brw_define.h ifndef guard to the top

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: remove unused macros from brw_defines.h
Emil Velikov [Wed, 8 Mar 2017 23:38:07 +0000 (23:38 +0000)]
i965: remove unused macros from brw_defines.h

The follow three groups are not used by neither the DRI module nor the
compiler.
 BRW_POLYGON_*_FACING
 BRW_POLYGON_FACING_*
 BRW_STATELESS_BUFFER_*

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: remove unused brw_program.h include
Emil Velikov [Tue, 7 Mar 2017 18:38:34 +0000 (18:38 +0000)]
i965: remove unused brw_program.h include

Neither of the changed files requires the brw_program.h include. Since
we're about to move them [to src/intel/compiler] with the next commit
there's no point in having the include.

Let alone the very confusing compiler include directive
[-I${top_srcdir}/src/mesa/drivers/dri/i965/] that one would have to use.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: remove duplicate declaration of brw_mark_surface_used
Emil Velikov [Tue, 7 Mar 2017 15:35:55 +0000 (15:35 +0000)]
i965: remove duplicate declaration of brw_mark_surface_used

Function was made static and moved to another header with earlier
commit.

Fixes: 760c8a1d950 ("i965: Make mark_surface_used a static inline in brw_compiler.h")
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: remove dead brw_new_shader() declaration
Emil Velikov [Tue, 7 Mar 2017 15:30:45 +0000 (15:30 +0000)]
i965: remove dead brw_new_shader() declaration

Cc: Timothy Arceri <tarceri@itsqueeze.com>
Fixes: 194537ebe44 ("mesa/glsl/i965: remove Driver.NewShader()")
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: remove unused brw_cs.h include
Emil Velikov [Tue, 7 Mar 2017 15:29:06 +0000 (15:29 +0000)]
i965: remove unused brw_cs.h include

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoanv: Stop including brw_context.h
Jason Ekstrand [Thu, 2 Mar 2017 05:14:56 +0000 (21:14 -0800)]
anv: Stop including brw_context.h

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agointel/isl: Stop linking libi965_compiler.la into tests
Jason Ekstrand [Thu, 2 Mar 2017 04:55:17 +0000 (20:55 -0800)]
intel/isl: Stop linking libi965_compiler.la into tests

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agovulkan/wsi: Generate wayland protocol headers separately from EGL
Jason Ekstrand [Thu, 2 Mar 2017 03:03:17 +0000 (19:03 -0800)]
vulkan/wsi: Generate wayland protocol headers separately from EGL

Previously, we were depending on EGL for generating the headers and
providing the protocol symbols. However, since neither Vulkan driver
actually wants to link against EGL, this is kind of pointless. It also
creates a weird build dependency.

v2 [Jason]
 - Add missing wsi/ prefix, MKDIR_GEN

v3 [Emil Velikov]
 - include BUILT_SOURCES/generation rules outside of conditional

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoradv/wsi: Don't include wayland headers
Emil Velikov [Tue, 7 Mar 2017 14:54:36 +0000 (14:54 +0000)]
radv/wsi: Don't include wayland headers

Unused and we'll rework the way wayland-drm-client-protocol.h is
generated with later commit.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Dave Airlie <airlied@redhat.com>
7 years agoanv/wsi: Don't include wayland headers
Jason Ekstrand [Thu, 2 Mar 2017 05:15:55 +0000 (21:15 -0800)]
anv/wsi: Don't include wayland headers

Unused and we'll rework the way wayland-drm-client-protocol.h is
generated with later commit.

v2 [Emil]
 - Also remove wayland-client.h

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoconfigure.ac: provide a fall-back define for WAYLAND_SCANNER
Emil Velikov [Thu, 2 Mar 2017 19:14:24 +0000 (19:14 +0000)]
configure.ac: provide a fall-back define for WAYLAND_SCANNER

In some cases, we can end up calling WAYLAND_SCANNER even when
there's no binary. Do follow the other's approach set by
AX_PROG_FLEX/BISON and set the variable to :

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agowayland: move .gitignore where applicable
Emil Velikov [Thu, 2 Mar 2017 19:11:06 +0000 (19:11 +0000)]
wayland: move .gitignore where applicable

Strictly speaking things work as-is, but let's move the file alongside
the artefacts it references. Analogous to all other places in mesa.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agost/va: add config support for 10bit decoding v2
Christian König [Mon, 6 Mar 2017 16:36:29 +0000 (17:36 +0100)]
st/va: add config support for 10bit decoding v2

Advertise 10bpp support if the driver supports decoding to a P016 surface.

v2: Advertise 10bpp for the decoder as well.

Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
7 years agost/va: add support for allocating 10bpp surfaces
Christian König [Tue, 7 Mar 2017 14:23:39 +0000 (15:23 +0100)]
st/va: add support for allocating 10bpp surfaces

We support P010 and P016 as targets for 10bpp video decoding.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agost/va: add support for P010 and P016 formats v3
Christian König [Mon, 6 Mar 2017 16:53:04 +0000 (17:53 +0100)]
st/va: add support for P010 and P016 formats v3

No hardware I know off can actually support P010 natively. But we can easily
support P016 and as long as nobody decodes anything into the lower 6bits it
doesn't make any difference to P010.

v2: allow P0160 for post processing as well
v3: fix post processing once more

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agost/va: clear the video surface on allocation
Christian König [Tue, 7 Mar 2017 14:20:08 +0000 (15:20 +0100)]
st/va: clear the video surface on allocation

This makes debugging of decoding problems quite a bit easier.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agost/va: cleanup error handling in vlVaCreateSurfaces2
Christian König [Wed, 25 Jan 2017 13:46:53 +0000 (14:46 +0100)]
st/va: cleanup error handling in vlVaCreateSurfaces2

No need to have that twice.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agoradeon/uvd: enable 10bit HEVC decode v2
Christian König [Mon, 16 Jan 2017 14:04:47 +0000 (15:04 +0100)]
radeon/uvd: enable 10bit HEVC decode v2

Just use whatever the state tracker allocated.

v2: fix msb mode

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agoradeon/UVD: fix the decoding target pitch calculation
Christian König [Wed, 8 Mar 2017 11:51:13 +0000 (12:51 +0100)]
radeon/UVD: fix the decoding target pitch calculation

The firmware expects the value in pixel not bytes. Didn't made a difference
so far because we only used 8bpp surfaces.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agovl/video_buffer: add support for P016
Christian König [Sat, 14 Jan 2017 12:57:02 +0000 (13:57 +0100)]
vl/video_buffer: add support for P016

Just simply the description of the planes.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agogallium: add P016 format
Christian König [Fri, 13 Jan 2017 18:11:43 +0000 (19:11 +0100)]
gallium: add P016 format

Same layout as NV12, but 16bit per channel instead of 8.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Mark Thompson <sw@jkqxz.net>
7 years agoi965: Delete unused last_ring local.
Kenneth Graunke [Mon, 13 Mar 2017 05:39:51 +0000 (22:39 -0700)]
i965: Delete unused last_ring local.

Dead since 071d80bde2a78f464a7f54c3e6c6e42845ef52e4, and causing
warnings.

7 years agoradv: Store shaders in VRAM.
Bas Nieuwenhuizen [Sun, 12 Mar 2017 13:12:19 +0000 (14:12 +0100)]
radv: Store shaders in VRAM.

Less IFETCH latency on misses. Shader code is write once read many,
so GTT doesn't make much sense anyway.

If it turns out to fragment the CPU visible VRAM too much, we can upload with SDMA.

Signed-off-by: Bas Nieuwenhuizen <basni@google.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/ac: move to new image intrinsics.
Dave Airlie [Sun, 5 Mar 2017 23:58:45 +0000 (09:58 +1000)]
radv/ac: move to new image intrinsics.

This hooks up radv to the new image intrinsic builders.

Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: disabled scaled formats for transfers.
Dave Airlie [Tue, 7 Mar 2017 07:00:39 +0000 (17:00 +1000)]
radv: disabled scaled formats for transfers.

These really are only supported for vertex buffers.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoutil/u_queue: make u_queue accessible to cpp
Timothy Arceri [Fri, 10 Mar 2017 02:28:53 +0000 (13:28 +1100)]
util/u_queue: make u_queue accessible to cpp

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoglsl: don't use ralloc for blob creation
Timothy Arceri [Fri, 10 Mar 2017 00:30:01 +0000 (11:30 +1100)]
glsl: don't use ralloc for blob creation

There is no need to use ralloc here.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: replace pipe_thread_setname() with u_thread_setname()
Timothy Arceri [Wed, 8 Mar 2017 23:07:43 +0000 (10:07 +1100)]
gallium/util: replace pipe_thread_setname() with u_thread_setname()

They do the same thing we just moved the function to be
accessible to all of Mesa.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: replace pipe_thread_get_time_nano() with u_thread_get_time_nano()
Timothy Arceri [Wed, 8 Mar 2017 23:03:00 +0000 (10:03 +1100)]
gallium/util: replace pipe_thread_get_time_nano() with u_thread_get_time_nano()

They do the same thing we just moved the function to be
accessible to all of Mesa.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: replace pipe_thread_create() with u_thread_create()
Timothy Arceri [Wed, 8 Mar 2017 22:57:58 +0000 (09:57 +1100)]
gallium/util: replace pipe_thread_create() with u_thread_create()

They do the same thing we just moved the function to be
accessible to all of Mesa.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: move u_queue.{c,h} to src/util
Timothy Arceri [Wed, 8 Mar 2017 04:33:38 +0000 (15:33 +1100)]
gallium/util: move u_queue.{c,h} to src/util

This will allow us to use it outside of gallium for things like
compressing shader cache entries.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: make use of new u_thread.h in u_queue.{c,h}
Timothy Arceri [Wed, 8 Mar 2017 04:20:33 +0000 (15:20 +1100)]
gallium/util: make use of new u_thread.h in u_queue.{c,h}

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoutil: add u_thread.h
Timothy Arceri [Wed, 8 Mar 2017 04:18:34 +0000 (15:18 +1100)]
util: add u_thread.h

This is a minimal copy of os_thread.h from gallium in order to move
u_queue.{c,h} to this directory.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: use standard malloc/calloc/free in u_queue.c
Timothy Arceri [Wed, 8 Mar 2017 03:58:00 +0000 (14:58 +1100)]
gallium/util: use standard malloc/calloc/free in u_queue.c

This will help us moving the file to the shared src/util dir.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: move u_string.h to src/util/u_string.h
Timothy Arceri [Wed, 8 Mar 2017 03:36:17 +0000 (14:36 +1100)]
gallium/util: move u_string.h to src/util/u_string.h

This will help us move u_queue.c here eventually and also provide
string function wrappers for anyone wishing to port disk_cache.c
to windows.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: remove unused header from u_string.h
Timothy Arceri [Wed, 8 Mar 2017 03:36:16 +0000 (14:36 +1100)]
gallium/util: remove unused header from u_string.h

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: remove unused util_strbuf*
Timothy Arceri [Wed, 8 Mar 2017 03:36:15 +0000 (14:36 +1100)]
gallium/util: remove unused util_strbuf*

Looks like they have been unused since 2008 b8a7eef242f6bb97d90f.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agogallium/util: remove unused util_memmove()
Timothy Arceri [Wed, 8 Mar 2017 03:36:14 +0000 (14:36 +1100)]
gallium/util: remove unused util_memmove()

This is not used anywhere and Visual Studio looks to have
supported memmove() for a long time if not always.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoglsl: don't recompile a shader on fallback unless needed
Timothy Arceri [Thu, 9 Mar 2017 11:58:38 +0000 (22:58 +1100)]
glsl: don't recompile a shader on fallback unless needed

Because we optimistically skip compiling shaders if we have seen them
before we may need to compile them later at link time if they haven't
yet been use in a specific combination to create a program.

Rather than always recompiling we take advantage of the
gl_compile_status enum introduced in the previous patch to only
compile when we have previously skipped compilation.

This helps with regressions in app start-up times on cold cache
runs, compared with no cache.

Deus Ex: Mankind Divided start-up times:

cache disabled:               ~3m15s
cold cache master:            ~4m23s
cold cache with this patch:   ~3m33s

Acked-by: Marek Olšák <marek.olsak@amd.com>
7 years agomesa/glsl: introduce new gl_compile_status enum
Timothy Arceri [Thu, 9 Mar 2017 11:58:37 +0000 (22:58 +1100)]
mesa/glsl: introduce new gl_compile_status enum

This will allow us to tell if a shader really has been compiled or
if the shader cache has just seen it before.

Acked-by: Marek Olšák <marek.olsak@amd.com>
7 years agoi965: Initialize compaction tables in unit test.
Matt Turner [Sat, 11 Mar 2017 07:15:33 +0000 (23:15 -0800)]
i965: Initialize compaction tables in unit test.

Fixes: fa4b792e833a "i965: Move brw_init_compaction_tables() to brw_create_compiler()."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100154

7 years agoi965: Move brw_init_compaction_tables() to brw_create_compiler().
Matt Turner [Fri, 10 Mar 2017 00:01:30 +0000 (16:01 -0800)]
i965: Move brw_init_compaction_tables() to brw_create_compiler().

... so that we can avoid threading complications or unnecessary
compaction table initializations (which just consists of setting some
pointers based on devinfo->gen).

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agobin/get-fixes-pick-list.sh: do not mandate bash
Emil Velikov [Thu, 23 Feb 2017 17:05:50 +0000 (17:05 +0000)]
bin/get-fixes-pick-list.sh: do not mandate bash

Silly thinko on my end, as I was writing the script. There is nothing
bash specific in there.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agobin/shortlog_mesa.sh: remove the final bashism
Emil Velikov [Wed, 22 Feb 2017 19:58:54 +0000 (19:58 +0000)]
bin/shortlog_mesa.sh: remove the final bashism

Remove the typeset built-in and toggle to /bin/sh

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agobin/bugzilla_mesa.sh: rework the looping method
Emil Velikov [Thu, 23 Feb 2017 11:57:49 +0000 (11:57 +0000)]
bin/bugzilla_mesa.sh: rework the looping method

We don't use DRYRUN (and no others scripts have one) so just drop it.

This allows us to rework the loop to the more commonly used "git .... |
while read foo; do ... done"

That in itself gets rid of the only remaining bashism and we can toggle
the shebang to /bin/sh.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agowayland-egl/wayland-egl-symbols-check: do not mandate bash
Emil Velikov [Wed, 22 Feb 2017 19:57:31 +0000 (19:57 +0000)]
wayland-egl/wayland-egl-symbols-check: do not mandate bash

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogbm/gbm-symbols-check: do not mandate bash
Emil Velikov [Wed, 22 Feb 2017 19:56:42 +0000 (19:56 +0000)]
gbm/gbm-symbols-check: do not mandate bash

Analogous to previous commit.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoegl/egl-symbols-check: do not mandate bash
Emil Velikov [Wed, 22 Feb 2017 19:56:07 +0000 (19:56 +0000)]
egl/egl-symbols-check: do not mandate bash

There's nothing bash specific in the script.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoglsl/tests: remove any bashisms
Emil Velikov [Wed, 22 Feb 2017 19:54:58 +0000 (19:54 +0000)]
glsl/tests: remove any bashisms

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agodri: use correct shebang for gen-symbol-redefs.py
Emil Velikov [Wed, 22 Feb 2017 18:15:59 +0000 (18:15 +0000)]
dri: use correct shebang for gen-symbol-redefs.py

This is a python2 script and the generic "python" may point to python3.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoutil: remove shebang from format_srgb.py
Emil Velikov [Wed, 22 Feb 2017 19:23:16 +0000 (19:23 +0000)]
util: remove shebang from format_srgb.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoxmlpool: remove shebang from gen_xmlpool.py
Emil Velikov [Wed, 22 Feb 2017 19:02:08 +0000 (19:02 +0000)]
xmlpool: remove shebang from gen_xmlpool.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogenxml: remove shebang from gen_pack_header.py
Emil Velikov [Wed, 22 Feb 2017 19:21:58 +0000 (19:21 +0000)]
genxml: remove shebang from gen_pack_header.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agonir: remove shebang from python scripts
Emil Velikov [Wed, 22 Feb 2017 16:39:13 +0000 (16:39 +0000)]
nir: remove shebang from python scripts

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agost/xa: suffix xa-indent{,.sh} and add a shebang line
Emil Velikov [Wed, 22 Feb 2017 18:43:58 +0000 (18:43 +0000)]
st/xa: suffix xa-indent{,.sh} and add a shebang line

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogallium/tools: use correct shebang for python scripts
Emil Velikov [Wed, 22 Feb 2017 18:21:45 +0000 (18:21 +0000)]
gallium/tools: use correct shebang for python scripts

These are python2 scripts and the generic "python" may point to
python3.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogallium/tools: do not hardcode bash location
Emil Velikov [Wed, 22 Feb 2017 16:19:44 +0000 (16:19 +0000)]
gallium/tools: do not hardcode bash location

It is not guaranteed to be in /bin

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogallium/tests: remove execute bit from TGSI shader - vert-uadd.sh
Emil Velikov [Wed, 22 Feb 2017 18:36:56 +0000 (18:36 +0000)]
gallium/tests: remove execute bit from TGSI shader - vert-uadd.sh

Just like the the dozens of other shaders, the file is parsed by
separate tool and not executed.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agomapi/gen: remove shebang from python scripts
Emil Velikov [Wed, 22 Feb 2017 16:30:48 +0000 (16:30 +0000)]
mapi/gen: remove shebang from python scripts

All of those should be executed $PYTHON2/python2 [or equivalent] hence
why they are missing the execute bit.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agomapi: do not mandate bash for es*api/ABI-check
Emil Velikov [Wed, 22 Feb 2017 16:04:05 +0000 (16:04 +0000)]
mapi: do not mandate bash for es*api/ABI-check

Seemingly there is nothing bash specific in these. The Debian
checkbashisms does not spot neither run in zsh.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agobin/perf-annotate-jit: add .py suffix
Emil Velikov [Wed, 22 Feb 2017 15:14:15 +0000 (15:14 +0000)]
bin/perf-annotate-jit: add .py suffix

To provide direct feedback about the file in question.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoi965: remove shebang from brw_nir_trig_workarounds.py
Emil Velikov [Wed, 22 Feb 2017 16:56:49 +0000 (16:56 +0000)]
i965: remove shebang from brw_nir_trig_workarounds.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoi965: remove execute bit from brw_nir_trig_workarounds.py
Emil Velikov [Wed, 22 Feb 2017 16:55:45 +0000 (16:55 +0000)]
i965: remove execute bit from brw_nir_trig_workarounds.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agomesa: remove shebang from python scripts
Emil Velikov [Wed, 22 Feb 2017 16:52:37 +0000 (16:52 +0000)]
mesa: remove shebang from python scripts

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agomesa: remove execute bit from main/format_parser.py
Emil Velikov [Wed, 22 Feb 2017 16:52:02 +0000 (16:52 +0000)]
mesa: remove execute bit from main/format_parser.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoamd: remove shebang from python scripts
Emil Velikov [Wed, 22 Feb 2017 16:49:46 +0000 (16:49 +0000)]
amd: remove shebang from python scripts

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoamd: remove execute bit from python scripts
Emil Velikov [Wed, 22 Feb 2017 16:49:02 +0000 (16:49 +0000)]
amd: remove execute bit from python scripts

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogallium: remove shebang from python scripts
Emil Velikov [Wed, 22 Feb 2017 16:48:33 +0000 (16:48 +0000)]
gallium: remove shebang from python scripts

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogallium: remove execute bit from the python script(s)
Emil Velikov [Wed, 22 Feb 2017 15:09:54 +0000 (15:09 +0000)]
gallium: remove execute bit from the python script(s)

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agosvga: remove shebang from svgadump/svga_dump.py
Emil Velikov [Wed, 22 Feb 2017 19:20:31 +0000 (19:20 +0000)]
svga: remove shebang from svgadump/svga_dump.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agosvga: remove execute bit from svga_dump.py
Emil Velikov [Wed, 22 Feb 2017 19:15:54 +0000 (19:15 +0000)]
svga: remove execute bit from svga_dump.py

The file is used to generate svgadump/svga_dump.c... in theory at least.
Atm. the file is checked in-tree but that is about to change later
commits.

As we get to that we'll use $PYTHON2 or equivalent as used throughout
the tree.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agofreedreno: remove shebang from ir3_nir_trig.py
Emil Velikov [Wed, 22 Feb 2017 19:19:36 +0000 (19:19 +0000)]
freedreno: remove shebang from ir3_nir_trig.py

Analogous to earlier commit(s).

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agofreedreno: remove execute bit from ir3_nir_trig.py
Emil Velikov [Wed, 22 Feb 2017 15:06:44 +0000 (15:06 +0000)]
freedreno: remove execute bit from ir3_nir_trig.py

The file is meant to be called with $(PYTHON2) and not executed
directly.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoglsl: remove shebang from python scripts
Emil Velikov [Wed, 22 Feb 2017 16:41:00 +0000 (16:41 +0000)]
glsl: remove shebang from python scripts

All of the scripts are [must be] executed via $PYTHON2 [or equivalent]
hence why they are missing the execute bit.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoglsl/tests: remove execute bit from compare_ir python script
Emil Velikov [Wed, 22 Feb 2017 15:58:10 +0000 (15:58 +0000)]
glsl/tests: remove execute bit from compare_ir python script

Nearly all the python scripts used in-tree are invoked via $PYTHON2 or
equivalent. As such having the execute bit not needed and generally
ill-advised.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoglsl/tests: suffix .sh/.py files as applicable
Emil Velikov [Wed, 22 Feb 2017 15:53:21 +0000 (15:53 +0000)]
glsl/tests: suffix .sh/.py files as applicable

This makes it easier/clearer as to:
 - if the file should have the execute bit set (.py should not)
 - do we need the shebang in the first place and if so what it should be

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agomesa: drop the execute bit from gl.xml
Emil Velikov [Wed, 22 Feb 2017 16:09:59 +0000 (16:09 +0000)]
mesa: drop the execute bit from gl.xml

This is a spec file which is parsed by scripts.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agomapi/glapi: remove unused next_available_offset.sh
Emil Velikov [Wed, 22 Feb 2017 15:59:28 +0000 (15:59 +0000)]
mapi/glapi: remove unused next_available_offset.sh

Afaict there was no [documented] users since it was introduced.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agogbm: Export a per plane getter for offset
Ben Widawsky [Wed, 26 Oct 2016 23:02:23 +0000 (16:02 -0700)]
gbm: Export a per plane getter for offset

Unlike stride, there was no previous offset getter, so it can be right
on the first try.

v2: Return EINVAL when plane is greater than total planes to make it
match the similar APIs.
Avoid leak after fromPlanar (Daniel)
Make sure when getting offsets we consider dumb images (Daniel)

v3: Use Jason's recommendation for handling the non-planar case.

v4: Return int64_t so we can get real errors

v5: Add an assertion for dumb BOs (Jason)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Daniel Stone <daniels@collabora.com>
7 years agogbm: Export a per plane getter for stride
Ben Widawsky [Wed, 26 Oct 2016 20:36:42 +0000 (13:36 -0700)]
gbm: Export a per plane getter for stride

v2: Preserve legacy behavior when plane is 0 (Jason Ekstrand)
EINVAL when input plane is greater than total planes (Jason Ekstrand)
Don't leak the image after fromPlanar (Daniel)
Move bo->image check below plane count preventing bad index succeeding (Daniel)

v3: Fix DRIimage leak (using Jason's recommended change)
Make plane 0 return planar stride. This might break legacy behavior (Jason)

v4: Move bogus hunk for get_handle_for_plane to the right patch (Jason)
Fix error handling path to be cleaner (Jason)

v5: Add assert for dumb BOs to make sure plane == 0 (Jason)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> (v1)
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Daniel Stone <daniels@collabora.com>
7 years agogbm: Create a gbm_device getter for stride
Ben Widawsky [Wed, 26 Oct 2016 19:26:51 +0000 (12:26 -0700)]
gbm: Create a gbm_device getter for stride

This will be used so we can query information per plane.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Cc: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Daniel Stone <daniels@collabora.com>
7 years agogbm: Export a getter for per plane handles
Ben Widawsky [Fri, 2 Dec 2016 19:00:00 +0000 (11:00 -0800)]
gbm: Export a getter for per plane handles

v2: Make the error return be -1 instead of 0 because I think 0 is
actually valid.

v3: Set errno to EINVAL when the specified plane is above the total
planes. (Jason Ekstrand)
Return the bo's handle if there is no image ie. for dumb images like cursor (Daniel)

v4:
- Add assertions about plane == 0 (Jason)
- Add a comment about new restriction on planar dumb bo which is not an
earlier patch in the series.
- Correctly refactor from v2 in this patch; it ended up rebased into the
wrong patch.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Daniel Stone <daniels@collabora.com>
7 years agogbm: Export a plane getter function
Ben Widawsky [Wed, 30 Nov 2016 05:53:52 +0000 (21:53 -0800)]
gbm: Export a plane getter function

This will be used by clients that need to know the number of planes
allocated for them on behalf of the GL or other API. The best current
example of this is when an extra "plane" is allocated to store
compression data for the primary plane.

v2: Return 1 for cases where there is no image, ie. dumb bo (Daniel)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Daniel Stone <daniels@collabora.com>
7 years agogbm: Explicitly disallow a planar dumb BO
Ben Widawsky [Tue, 7 Mar 2017 23:06:23 +0000 (15:06 -0800)]
gbm: Explicitly disallow a planar dumb BO

As more GBM functionality support planes is being evaluated, it becomes
clear that a dumb bo can never actually be planar. It's questionable
whether it was ever feasible to do this, and later functionality will
implicitly assume a dumb BO is non-planar.

v2: Include stdbool.h

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Acked-by: Daniel Stone <daniels@collabora.com>
7 years agoi965: Rename brw_format_for_mesa_format() to brw_isl_format_for_mesa_format()
Anuj Phogat [Fri, 3 Mar 2017 22:39:52 +0000 (14:39 -0800)]
i965: Rename brw_format_for_mesa_format() to brw_isl_format_for_mesa_format()

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
7 years agoi965: Add more Haswell OA metrics sets
Robert Bragg [Fri, 5 Jun 2015 12:44:56 +0000 (13:44 +0100)]
i965: Add more Haswell OA metrics sets

This extends the brw_oa_hsw.xml to expose these additional queries:

- Compute Metrics Basic Gen7.5
- Compute Metrics Extended Gen7.5
- Memory Reads Distribution Gen7.5
- Memory Writes Distribution Gen7.5
- Metric set Sampler Balance

Signed-off-by: Robert Bragg <robert@sixbynine.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>