mesa.git
9 years agoilo: clarify valid and preferred tilings
Chia-I Wu [Fri, 6 Mar 2015 19:41:55 +0000 (12:41 -0700)]
ilo: clarify valid and preferred tilings

We did it right until the switch to gen_surface_tiling, which has
GEN8_TILING_W.  Generally, GEN8_TILING_W may be valid but not preferred.

9 years agoilo: clean up Gen6 WAs
Chia-I Wu [Fri, 6 Mar 2015 17:55:15 +0000 (01:55 +0800)]
ilo: clean up Gen6 WAs

Add a help function for each WA and make PIPE_CONTROL flags match the WA
descriptions.  Call gen6_wa_pre_pipe_contro() only before PIPE_CONTROLs.
Fix missing gen6_wa_pre_3dstate_vs_toggle() in the rectlist path.

9 years agoilo: add generic ilo_render_3dprimitive()
Chia-I Wu [Fri, 6 Mar 2015 17:44:33 +0000 (01:44 +0800)]
ilo: add generic ilo_render_3dprimitive()

It replaces gen[6-8]_3dprimitive().

9 years agoilo: add generic ilo_render_pipe_control()
Chia-I Wu [Fri, 6 Mar 2015 17:16:47 +0000 (01:16 +0800)]
ilo: add generic ilo_render_pipe_control()

It replaces gen[6-8]_pipe_control() and a direct gen6_PIPE_CONTROL() call in
ilo_render_emit_flush().

9 years agoilo: fix padding of linear sampler views
Chia-I Wu [Fri, 6 Mar 2015 07:10:45 +0000 (15:10 +0800)]
ilo: fix padding of linear sampler views

Should use the temporary variable in the loop instead of layout->bo_height.

9 years agoilo: do not check for interleaved_samples
Chia-I Wu [Fri, 6 Mar 2015 07:04:47 +0000 (15:04 +0800)]
ilo: do not check for interleaved_samples

interleaved_samples is only zero-initialized when layout_want_mcs() is called.
We should not check for it.  There is also no need to.

9 years agoRevert "egl/main: use c11/threads' mutex directly"
Emil Velikov [Fri, 6 Mar 2015 17:07:40 +0000 (17:07 +0000)]
Revert "egl/main: use c11/threads' mutex directly"

This reverts commit 6cee785c69a5c8d2d32b6807f9c502117f5a74b0.

Not meant to go in yet. Lacking review.

9 years agoRevert "egl/main: convert thread management to use c11 threads"
Emil Velikov [Fri, 6 Mar 2015 17:07:34 +0000 (17:07 +0000)]
Revert "egl/main: convert thread management to use c11 threads"

This reverts commit 33eff853363d7eba5e61b00431b95f7aa0d7b0a5.

Not meant to go in yet. Lacking review.

9 years agoRevert "configure: require pthreads for POSIX builds"
Emil Velikov [Fri, 6 Mar 2015 17:07:29 +0000 (17:07 +0000)]
Revert "configure: require pthreads for POSIX builds"

This reverts commit 50714cec2b50c7836841c09f04bfe875de00ae1d.

Not meant to go in yet. Lacking review.

9 years agoRevert "glx: remove final reference to THREADS"
Emil Velikov [Fri, 6 Mar 2015 17:07:23 +0000 (17:07 +0000)]
Revert "glx: remove final reference to THREADS"

This reverts commit 8b15a883e0ba72c9156d7192a798bb272e0bc528.

Not meant to go in yet. Lacking review.

9 years agoRevert "glx: remove support for non-multithreaded platforms"
Emil Velikov [Fri, 6 Mar 2015 17:07:11 +0000 (17:07 +0000)]
Revert "glx: remove support for non-multithreaded platforms"

This reverts commit 38591295cd4b68f89f257b20f476f98de3772a47.

Not meant to go in yet. Lacking review.

9 years agoglx: remove unneeded ifdef _WIN32 guard
Emil Velikov [Thu, 5 Mar 2015 23:48:29 +0000 (23:48 +0000)]
glx: remove unneeded ifdef _WIN32 guard

The C99 header exists on other platforms as well.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoutil: rework _MSC_VER >= 1200 checks
Emil Velikov [Thu, 5 Mar 2015 23:40:10 +0000 (23:40 +0000)]
util: rework _MSC_VER >= 1200 checks

Replace the _MSC_VER >= 1200 with defined (_MSC_VER) and compact if/else
statements. We require MSVC 2008 or later with commit 46110c5d564.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agoglx: remove support for non-multithreaded platforms
Emil Velikov [Thu, 5 Mar 2015 23:06:42 +0000 (23:06 +0000)]
glx: remove support for non-multithreaded platforms

Implicitly required for a while, although commit 9385c592c68 (mapi:
remove u_thread.h) was the one that put the final nail on the
coffin.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoglx: remove final reference to THREADS
Emil Velikov [Thu, 5 Mar 2015 22:06:06 +0000 (22:06 +0000)]
glx: remove final reference to THREADS

Left over from commit 18db13f5865(mapi: THREADS was always defined,
remove it)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoconfigure: require pthreads for POSIX builds
Emil Velikov [Thu, 5 Mar 2015 22:36:41 +0000 (22:36 +0000)]
configure: require pthreads for POSIX builds

This has been an implicit rule for building mesa for a long time. Let's
make it official and just bail out at configure time. This way we can
cleaning up some of our glx code.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoegl/main: convert thread management to use c11 threads
Emil Velikov [Thu, 5 Mar 2015 15:30:12 +0000 (15:30 +0000)]
egl/main: convert thread management to use c11 threads

Convert the code to use the C11 threads implementation, and nuke the
Windows non-pthreads code-path. The c11/threads_win32.h abstraction
should be better than the current code.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoegl/main: use c11/threads' mutex directly
Emil Velikov [Thu, 5 Mar 2015 15:07:51 +0000 (15:07 +0000)]
egl/main: use c11/threads' mutex directly

Remove the inline wrappers/abstraction layer.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoinclude: Add helper header to help trap includes inside extern C.
José Fonseca [Thu, 11 Dec 2014 22:14:14 +0000 (22:14 +0000)]
include: Add helper header to help trap includes inside extern C.

This is just to help repro and fixing these issues with any C++ compiler --

Commiting this will of course wait until all issues are addressed.

$ scons src/glsl/
scons: Reading SConscript files ...
Checking for GCC ...  yes
Checking for Clang ...  no
Checking for X11 (x11 xext xdamage xfixes glproto >= 1.4.13)... yes
Checking for XCB (x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8)... yes
Checking for XF86VIDMODE (xxf86vm)... yes
Checking for DRM (libdrm >= 2.4.38)... yes
Checking for UDEV (libudev >= 151)... yes
warning: LLVM disabled: not building llvmpipe
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build/linux-x86_64-debug/glsl
  Compiling src/glsl/ast_array_index.cpp ...
  Compiling src/glsl/ast_expr.cpp ...
  Compiling src/glsl/ast_function.cpp ...
  Compiling src/glsl/ast_to_hir.cpp ...
  Compiling src/glsl/ast_type.cpp ...
  Compiling src/glsl/builtin_functions.cpp ...
In file included from include/c99_compat.h:28:0,
                 from src/mapi/u_compiler.h:4,
                 from src/mapi/u_thread.h:47,
                 from src/mapi/glapi/glapi.h:47,
                 from src/mesa/main/mtypes.h:42,
                 from src/mesa/main/errors.h:47,
                 from src/mesa/main/imports.h:41,
                 from src/mesa/main/core.h:44,
                 from src/glsl/builtin_functions.cpp:58:
include/no_extern_c.h:48:1: error: template with C linkage
 template<class T> class _IncludeInsideExternCNotPortable;
 ^
In file included from include/c99_compat.h:28:0,
                 from include/c11/threads.h:38,
                 from src/mapi/u_thread.h:49,
                 from src/mapi/glapi/glapi.h:47,
                 from src/mesa/main/mtypes.h:42,
                 from src/mesa/main/errors.h:47,
                 from src/mesa/main/imports.h:41,
                 from src/mesa/main/core.h:44,
                 from src/glsl/builtin_functions.cpp:58:
include/no_extern_c.h:48:1: error: template with C linkage
 template<class T> class _IncludeInsideExternCNotPortable;
 ^
  Compiling src/glsl/builtin_types.cpp ...
  Compiling src/glsl/builtin_variables.cpp ...
scons: *** [build/linux-x86_64-debug/glsl/builtin_functions.os] Error 1
scons: building terminated because of errors.

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoi965: free scratch buffers when destroying the context
Iago Toral Quiroga [Wed, 1 Oct 2014 11:55:32 +0000 (13:55 +0200)]
i965: free scratch buffers when destroying the context

If scratch space is needed for a shader stage we try to reuse the last scratch
buffer bound to that stage. If we can't, we free the old scratch buffer and
allocate a new one. This means we always keep the last scratch buffer for a
particular shader stage around for the entire life span of the context.

These buffers are being reported by Valgrind as definitely lost after
destroying the OpenGL context. For example, for the geometry shader stage:

==18350== 248 bytes in 1 blocks are definitely lost in loss record 85 of 150
==18350==    at 0x4C2CC70: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==18350==    by 0xA1B35D6: drm_intel_gem_bo_alloc_internal (intel_bufmgr_gem.c:724)
==18350==    by 0xA1B383F: drm_intel_gem_bo_alloc (intel_bufmgr_gem.c:794)
==18350==    by 0xA1AEFA3: drm_intel_bo_alloc (intel_bufmgr.c:52)
==18350==    by 0x9D08E31: brw_get_scratch_bo (brw_program.c:226)
==18350==    by 0x9D2A0F2: do_gs_prog (brw_vec4_gs.c:280)
==18350==    by 0x9D2A635: brw_gs_precompile (brw_vec4_gs.c:401)
==18350==    by 0x9D14F68: brw_shader_precompile(gl_context*, gl_shader_program*) (brw_shader.cpp:76)
==18350==    by 0x9D157B8: brw_link_shader (brw_shader.cpp:269)
==18350==    by 0x9B0941E: _mesa_glsl_link_shader (ir_to_mesa.cpp:3038)
==18350==    by 0x99AE4ED: link_program (shaderapi.c:917)
==18350==    by 0x99AF365: _mesa_LinkProgram (shaderapi.c:1385)

So make sure that by the time we destroy the context we check if we have live
scratch buffers for the various stages and release them if that is the case.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
9 years agoi965: Fix URB size for CHV
Ville Syrjälä [Mon, 19 Jan 2015 14:08:31 +0000 (16:08 +0200)]
i965: Fix URB size for CHV

Increase the device info .urb.size for CHV to match the default URB
size (192kB).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
9 years agoconfigure: Introduce new output variable to ax_check_python_mako_module.m4
Samuel Iglesias Gonsalvez [Mon, 2 Mar 2015 09:49:31 +0000 (10:49 +0100)]
configure: Introduce new output variable to ax_check_python_mako_module.m4

This output variables gives more flexibility for future changes
in autoconf to detect if it is needed to auto-generate files and
check for the auto-generation dependencies.

It is still returning error when Python is not installed.

Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Reviewed-by: Kai Wasserbäch <kai@dev.carbon-project.org>
9 years agoi965/vec4: Don't lose the saturate modifier in copy propagation.
Andrey Sudnik [Thu, 5 Mar 2015 19:16:49 +0000 (11:16 -0800)]
i965/vec4: Don't lose the saturate modifier in copy propagation.

Cc: 10.4, 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89224
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
9 years agoi965/vec4: Handle saturate in dump_instruction().
Matt Turner [Thu, 5 Mar 2015 19:16:07 +0000 (11:16 -0800)]
i965/vec4: Handle saturate in dump_instruction().

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
9 years agoilo: enable L3 cache in MOCS
Chia-I Wu [Thu, 5 Mar 2015 20:30:07 +0000 (04:30 +0800)]
ilo: enable L3 cache in MOCS

This enables L3 cache in MOCS almost everywhere.

9 years agoilo: track if a ilo_view_surface is a scanout
Chia-I Wu [Thu, 5 Mar 2015 20:24:34 +0000 (04:24 +0800)]
ilo: track if a ilo_view_surface is a scanout

Scanouts require a different cache type.

9 years agoilo: clean up SURFACE_STATE and BINDING_TABLE_STATE
Chia-I Wu [Thu, 5 Mar 2015 20:27:16 +0000 (04:27 +0800)]
ilo: clean up SURFACE_STATE and BINDING_TABLE_STATE

Add ilo_builder_surface_pointer() to replace ilo_builder_surface_write().
Make Gen8+ take a different path in gen6_SURFACE_STATE().

9 years agomapi: actually remove unused u_thread.h
Brian Paul [Thu, 5 Mar 2015 14:22:40 +0000 (07:22 -0700)]
mapi: actually remove unused u_thread.h

I thought this was in the previous commit in the series.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agofreedreno/ir3: fix silly typo for binning pass shaders
Rob Clark [Thu, 5 Mar 2015 20:27:27 +0000 (15:27 -0500)]
freedreno/ir3: fix silly typo for binning pass shaders

Was resulting in gl_PointSize write being optimized out, causing
particle system type shaders to hang if hw binning enabled.

Fixes neverball, OGLES2ParticleSystem, etc.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agoglsl: let interface linking code validate its arrays
Timothy Arceri [Tue, 24 Feb 2015 06:28:51 +0000 (17:28 +1100)]
glsl: let interface linking code validate its arrays

Currently intrastage arrays are validated twice for interface blocks.

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoglsl: use common intrastage array validation
Timothy Arceri [Sun, 22 Feb 2015 11:52:48 +0000 (22:52 +1100)]
glsl: use common intrastage array validation

Use common intrastage array validation for interface blocks.

This change also allows us to support interface blocks
that are arrays of arrays.

V2: Reinsert unsized array asserts in interstage_match()

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoglsl: move array validation into its own function
Timothy Arceri [Sat, 21 Feb 2015 10:47:14 +0000 (21:47 +1100)]
glsl: move array validation into its own function

V2: return true when var->type is unsized but max access is within valid range

Reviewed-by: Mark Janes <mark.a.janes@intel.com>
9 years agoi965: Split Gen4-5 BlitFramebuffer code; prefer BLT over Meta.
Kenneth Graunke [Thu, 5 Mar 2015 02:14:31 +0000 (18:14 -0800)]
i965: Split Gen4-5 BlitFramebuffer code; prefer BLT over Meta.

A while back I switched intel_blit_framebuffer to prefer Meta over the
BLT.  This meant that Gen8 platforms would start using the 3D engine
for blits, just like we do on Gen6-7.5.

However, I hadn't considered Gen4-5 when making that change.  The BLT
engine appears to be substantially faster on 965GM than using Meta to
drive the 3D engine.  This isn't too surprising: original Gen4 doesn't
support tile offsets (that came on G45), and the level/layer fields
don't work for cubemap rendering, so for inconvenient miplevel
alignments, we end up blitting or copying data to/from temporaries
in order to render to it.  We may as well just use the blitter.

I chose to use the BLT on Gen4-5 because they use the same ring for
both 3D and BLT; Gen6+ splits it out.

Fixes regressions on 965GM due to botched tile offset code (we should
fix those properly as well, but they're longstanding bugs - for now,
put things back to the status quo).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89430
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: "10.5" <mesa-stable@lists.freedesktop.org>
9 years agoilo: add more convenient intel_bo_{ref,unref}()
Chia-I Wu [Thu, 5 Mar 2015 18:03:10 +0000 (02:03 +0800)]
ilo: add more convenient intel_bo_{ref,unref}()

They both check for NULL and intel_bo_ref() returns the referenced bo.  They
replace intel_bo_{reference,unreference}().

9 years agoilo: add intel_bo_set_tiling()
Chia-I Wu [Thu, 5 Mar 2015 17:36:01 +0000 (01:36 +0800)]
ilo: add intel_bo_set_tiling()

Make intel_winsys_alloc_bo() always allocate a linear bo, and add
intel_bo_set_tiling() to set the tiling.  Document the purpose of tiling.

9 years agoilo: replace intel_tiling_mode by gen_surface_tiling
Chia-I Wu [Thu, 5 Mar 2015 15:53:16 +0000 (23:53 +0800)]
ilo: replace intel_tiling_mode by gen_surface_tiling

The former is used by the kernel driver to set up fence registers and to pass
tiling info across processes.  It lacks INTEL_TILING_W, which made our code
less expressive.

9 years agoilo: update genhw headers
Chia-I Wu [Thu, 5 Mar 2015 07:25:43 +0000 (15:25 +0800)]
ilo: update genhw headers

The main change is non-inline <enum>s are now generated as C enums.

9 years agoFix invalid extern "C" around header inclusion.
Mark Janes [Thu, 5 Mar 2015 00:37:29 +0000 (16:37 -0800)]
Fix invalid extern "C" around header inclusion.

System headers may contain C++ declarations, which cannot be given C
linkage.  For this reason, include statements should never occur
inside extern "C".

This patch moves the C linkage statements to enclose only the
declarations within a single header.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agoi965: Tell intel_get_memcpy() which direction the memcpy() is going.
Matt Turner [Wed, 4 Mar 2015 23:21:53 +0000 (15:21 -0800)]
i965: Tell intel_get_memcpy() which direction the memcpy() is going.

The SSSE3 swizzling code was written for fast uploads to the GPU and
assumed the destination was always 16-byte aligned. When we began using
this code for fast downloads as well we didn't do anything to account
for the fact that the destination pointer given by glReadPixels() or
glGetTexImage() is not guaranteed to be suitably aligned.

With SSSE3 enabled (at compile-time), some applications would crash when
an SSE aligned-store instruction tried to store to an unaligned
destination (or an assertion that the destination is aligned would
trigger).

To remedy this, tell intel_get_memcpy() whether we're uploading or
downloading so that it can select whether to assume the destination or
source is aligned, respectively.

Cc: 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89416
Tested-by: Uriy Zhuravlev <stalkerg@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agomesa/x86: missing stdio inclusions
Mark Janes [Thu, 5 Mar 2015 18:14:16 +0000 (10:14 -0800)]
mesa/x86: missing stdio inclusions

Several patches added include statements where required by the m64
build.  Some files are only compiled for m32, and require similar
changes.

Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoclover: Enable cl_khr_fp64 for devices that support doubles v4
Tom Stellard [Wed, 2 Jul 2014 19:42:43 +0000 (15:42 -0400)]
clover: Enable cl_khr_fp64 for devices that support doubles v4

v2:
  - Report correct values for CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE
    and CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE.
  - Only define cl_khr_fp64 if the extension is supported.
  - Remove trailing space from extension string.
  - Rename device query function from cl_khr_fp64() to
    has_doubles().

v3:
  - Return 0 for device::doubled_fp_confg() when doubles aren't
    supported.

v4:
  - Remove device query for double fp_config.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agoxmlpool: make sure we ship options.h
Emil Velikov [Mon, 2 Mar 2015 15:58:21 +0000 (15:58 +0000)]
xmlpool: make sure we ship options.h

The header is included in ../xmlpool.h. With the latter of which used
directly in a number of places in mesa.
Note that we can also add it (alongside t_option.h) to noinst_HEADERS,
but neither solution fixes the issue that brough us here - namely:
Do not regenerate the headers, if it already exists.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomapi: fix *glapi dependency tracking
Emil Velikov [Mon, 2 Mar 2015 15:58:20 +0000 (15:58 +0000)]
mapi: fix *glapi dependency tracking

I.e. add {shared-,}glapi/glapi_mapi_tmp.h to the SOURCES list. Otherwise
there will be no knowledge that the file is required by others for the
build. Thus autotools won't pick it up for the distribution tarball.

v2: Don't forget about the static glapi. Spotted by Matt.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa: drop Makefile from get_hash.h dependency list
Emil Velikov [Mon, 2 Mar 2015 15:58:19 +0000 (15:58 +0000)]
mesa: drop Makefile from get_hash.h dependency list

Not required. Additionally this had the side effect of generating the
file, despite it's existence.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa: fix dependency tracking of generated sources
Emil Velikov [Mon, 2 Mar 2015 15:58:18 +0000 (15:58 +0000)]
mesa: fix dependency tracking of generated sources

Some of the files generated were not in the SOURCES variable, thus
although generated prior to compilation the dependency tracking was
incomplete. The latter of which resulted in the files missing from the
distribution tarball.

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa: rename format_info.c to format_info.h
Emil Velikov [Mon, 2 Mar 2015 15:58:17 +0000 (15:58 +0000)]
mesa: rename format_info.c to format_info.h

The file is auto-generated, and #included by formats.c. Let's rename it
to reflect the latter. This will also help up fix the dependency
tracking by adding it to the _SOURCES variable, without the side effect
of it being compiled (twice).

v2: Update .gitignore to reflect the rename.

Cc: "10.4, 10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agomesa/main: update .gitignore
Emil Velikov [Mon, 2 Mar 2015 15:58:16 +0000 (15:58 +0000)]
mesa/main: update .gitignore

Drop the no longer present get_es{1,2}.c from the list.

v2: Keep the format_info.c rename hunk out of this patch.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
9 years agoegl/main: remove no-longer needed definition of stdint types
Emil Velikov [Sat, 28 Feb 2015 17:14:31 +0000 (17:14 +0000)]
egl/main: remove no-longer needed definition of stdint types

All the users directly include the header, plus we have a in-tree
replacements for non C99 compilers which we already use.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/drivers: include stdint.h where needed
Emil Velikov [Sat, 28 Feb 2015 17:12:40 +0000 (17:12 +0000)]
egl/drivers: include stdint.h where needed

Currently these files are including it indirectly via eglcompiler.h
The latter of which will be removed with follow up commits.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: drop the declaration of PUBLIC keyword.
Emil Velikov [Sat, 28 Feb 2015 16:51:21 +0000 (16:51 +0000)]
egl/main: drop the declaration of PUBLIC keyword.

Should no longer be used. As many places indirectly include
eglcompiler.h keep this change separate, so that it can be easily
reverted, if needed.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: no longer export internal function
Emil Velikov [Sat, 28 Feb 2015 17:20:01 +0000 (17:20 +0000)]
egl/main: no longer export internal function

With the split of the gallium egl module we had previously it required
access to some of the internal functions. As the only build (automake)
that did this no longer builds it we can now appropriately hide those
functions.

Cc: 10.5 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: replace __FUNCTION__ with __func__
Emil Velikov [Sat, 28 Feb 2015 16:39:10 +0000 (16:39 +0000)]
egl/main: replace __FUNCTION__ with __func__

The latter is a C99 standard, and our current wrapper c99_compat.h
should handle non-compliant compilers.
Drop the c99_compat.h inclusion from eglcompiler.h altogether, as it's
no longer required.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoegl/main: replace INLINE with inline
Emil Velikov [Sat, 28 Feb 2015 16:35:22 +0000 (16:35 +0000)]
egl/main: replace INLINE with inline

Drop the custom keyword in favour of the C99 one. All the places using
it now directly include c99_compat.h which should handle things on
platforms which lack it.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agomapi: remove u_thread.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: remove u_thread.h

Just use c11 threads directly.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: use c11 call_once() instead of pthread_once()
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: use c11 call_once() instead of pthread_once()

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: THREADS was always defined, remove it
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: THREADS was always defined, remove it

THREADS was defined if HAVE_PTHREADS or _WIN32 was defined.  That's
always the case.  The build would die in c11/threads.h otherwise.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomesa: remove THREADS check, printf calls in debug.c
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mesa: remove THREADS check, printf calls in debug.c

THREADS is going away in the next commit.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: rewrite u_current_init() function without u_thread_self()
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: rewrite u_current_init() function without u_thread_self()

Remove u_thread_self() since u_thread.h is going away soon.
Create a simple thread ID abstraction which wraps WIN32 or c11 threads.
This also gets rid of the questionable casting of thrd_t to an unsigned
long.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: fix preprocessor check in u_current_destroy()
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: fix preprocessor check in u_current_destroy()

So it matches the preprocessor check around the u_current_init_tsd() code.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomapi: remove u_macros.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mapi: remove u_macros.h

Only U_STRINGIFY() is used in entry.c

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agoosmesa: include stdio.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
osmesa: include stdio.h

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agoxlib: include stdio.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
xlib: include stdio.h

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agost/osmesa: include stdio.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
st/osmesa: include stdio.h

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agost/xlib: include stdio.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
st/xlib: include stdio.h

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agost/xlib: include stdio.h
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
st/xlib: include stdio.h

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agost/mesa: include stdio.h where needed
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
st/mesa: include stdio.h where needed

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agoswrast: include stdio.h where needed
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
swrast: include stdio.h where needed

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agonouveau: include stdio.h where needed
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
nouveau: include stdio.h where needed

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agodri/common: include stdio.h where needed
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
dri/common: include stdio.h where needed

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agoglsl: include stdio.h where needed
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
glsl: include stdio.h where needed

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomesa: include stdio.h where needed
Brian Paul [Thu, 5 Mar 2015 02:17:57 +0000 (19:17 -0700)]
mesa: include stdio.h where needed

Instead of relying on glapi.h or some other header to provide it.

Acked-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agomesa: include c11/threads.h in mtypes.h
Brian Paul [Thu, 5 Mar 2015 02:17:56 +0000 (19:17 -0700)]
mesa: include c11/threads.h in mtypes.h

Let's directly include c11/threads.h instead of relying on glapi.h
to provide it.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
9 years agometa: Fix the y offset for 1D_ARRAY in _mesa_meta_pbo_TexSubImage
Neil Roberts [Wed, 25 Feb 2015 15:33:08 +0000 (15:33 +0000)]
meta: Fix the y offset for 1D_ARRAY in _mesa_meta_pbo_TexSubImage

The yoffset needs to be interpreted as a slice offset for 1D array
textures. This patch implements that by moving the yoffset into
zoffset similar to how it moves the height into depth.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Cc: "10.5" <mesa-stable@lists.freedesktop.org>
9 years agometa: Allow GL_UN/PACK_IMAGE_HEIGHT in _mesa_meta_pbo_Get/TexSubImage
Neil Roberts [Thu, 26 Feb 2015 12:53:50 +0000 (12:53 +0000)]
meta: Allow GL_UN/PACK_IMAGE_HEIGHT in _mesa_meta_pbo_Get/TexSubImage

Now that a layered source PBO is interpreted as a single tall 2D image
it's quite easy to accept the image height packing option by just
creating an image that is tall enough to include the image padding.

I'm not sure whether the image height property should affect 1D_ARRAY
textures. My intuition and interpretation of the GL spec (which is a
bit vague) would be that it shouldn't. However the software fallback
path in Mesa uses the property for packing but not for unpacking. The
binary NVidia driver uses it for both. This patch doesn't use it for
either case so it is different from the software fallback. There is
some discussion about this here:

http://lists.freedesktop.org/archives/mesa-dev/2015-February/077925.html

This is tested by the texsubimage Piglit test with the array and pbo
arguments. Previously this test was skipping this code path because it
always sets the image height.

I've also tested it by modifying the getteximage-targets test. It
wasn't using this code path before because it was using the default
texture object so this code couldn't successfully create a frame
buffer. I also modified it to add some image padding with the image
height in the PBO.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
Cc: "10.5" <mesa-stable@lists.freedesktop.org>
9 years agoRevert "common: Fix PBOs for 1D_ARRAY."
Neil Roberts [Thu, 26 Feb 2015 12:12:15 +0000 (12:12 +0000)]
Revert "common: Fix PBOs for 1D_ARRAY."

This reverts commit 546aba143d13ba3f993ead4cc30b2404abfc0202.

I think the changes to the calls to glBlitFramebuffer from this patch
are no different to what it was doing previously because it used to
set height to 1 before doing the blits. However it was introducing
some problems with the blit for layer 0 because this was no longer
special cased. It didn't fix problems with the yoffset which needs to
be interpreted as a slice offset. I think a better solution would be
to modify the original if statement to cope with the yoffset.

Conflicts:
src/mesa/drivers/common/meta_tex_subimage.c

Cc: "10.5" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
9 years agoglsl: Fix GCC unused-variable warning in release build.
Vinson Lee [Wed, 4 Mar 2015 02:46:13 +0000 (18:46 -0800)]
glsl: Fix GCC unused-variable warning in release build.

  CXX      ast_array_index.lo
ast_array_index.cpp: In function ‘void update_max_array_access(ir_rvalue*, int, YYLTYPE*, _mesa_glsl_parse_state*)’:
ast_array_index.cpp:86:30: warning: unused variable ‘interface_type’ [-Wunused-variable]
             const glsl_type *interface_type =
                              ^

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au>
9 years agoilo: improve WA handling in rectlist path
Chia-I Wu [Wed, 4 Mar 2015 21:38:50 +0000 (14:38 -0700)]
ilo: improve WA handling in rectlist path

Add wrappers for 3DPRIMITIVE to make sure we clear current_pipe_control_dw1
and deferred_pipe_control_dw1 after it.  Add missing
gen7_wa_post_ps_and_later().

9 years agoilo: clean up Gen7.5 WAs
Chia-I Wu [Wed, 4 Mar 2015 21:09:26 +0000 (14:09 -0700)]
ilo: clean up Gen7.5 WAs

These WAs

  gen7_wa_post_3dstate_push_constant_alloc_ps()
  gen7_wa_pre_vs()
  gen7_wa_pre_3dstate_sf_depth_bias()
  first half of gen7_wa_pre_depth()
  gen7_wa_post_ps_and_later()

are Gen7-specific.  Update copy-and-pasted gen8_wa_pre_depth() also.

9 years agoclover: Fix build since llvm r231270
Tom Stellard [Wed, 4 Mar 2015 21:09:50 +0000 (13:09 -0800)]
clover: Fix build since llvm r231270

9 years agoilo: add ILO_DEBUG=hang
Chia-I Wu [Wed, 4 Mar 2015 20:07:55 +0000 (13:07 -0700)]
ilo: add ILO_DEBUG=hang

When set, detect and dump the hanging batch bufffer.

9 years agoilo: add some more winsys functions
Chia-I Wu [Wed, 4 Mar 2015 19:02:12 +0000 (12:02 -0700)]
ilo: add some more winsys functions

Add intel_winsys_get_reset_stats(), intel_winsys_import_userptr(), and
intel_bo_map_async().  The latter two are stubs, but we are not going to use
them immediately either.

9 years agoi965/fs: Don't propagate cmod to inst with different type.
Matt Turner [Fri, 27 Feb 2015 18:22:21 +0000 (10:22 -0800)]
i965/fs: Don't propagate cmod to inst with different type.

Cc: 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89317
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agor300g: Check return value of snprintf().
Matt Turner [Wed, 4 Mar 2015 00:09:58 +0000 (16:09 -0800)]
r300g: Check return value of snprintf().

Would have at least prevented the crash the previous patch fixed.

Cc: 10.4, 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=540970
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
9 years agor300g: Use PATH_MAX instead of limiting ourselves to 100 chars.
Matt Turner [Wed, 4 Mar 2015 00:02:40 +0000 (16:02 -0800)]
r300g: Use PATH_MAX instead of limiting ourselves to 100 chars.

When built with Gentoo's package manager, the Mesa source directory
exists seven directories deep. The path to the .test file is too long
and is silently truncated, leading to a crash. Just use PATH_MAX.

Cc: 10.4, 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=540970
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
9 years agoglx/tests: add -I src/ to fix make check
Brian Paul [Wed, 4 Mar 2015 17:03:09 +0000 (10:03 -0700)]
glx/tests: add -I src/ to fix make check

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
9 years agoi965: Fix uint64_t overflow in intel_client_wait_sync()
Kristian Høgsberg [Tue, 3 Mar 2015 00:19:52 +0000 (16:19 -0800)]
i965: Fix uint64_t overflow in intel_client_wait_sync()

DRM_IOCTL_I915_GEM_WAIT takes an int64_t for the timeout value but
GL_ARB_sync takes an uint64_t.  Further, the ioctl used to wait
indefinitely when passed a negative timeout, but it's been broken and
now returns immediately in that case.  Thus, if an application passes
UINT64_MAX to wait forever, we overflow to -1LL and return immediately.
Work around this mess by clamping the wait timeout to INT64_MAX.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agoegl: Take alpha bits into account when selecting GBM formats
Daniel Stone [Mon, 2 Mar 2015 13:52:59 +0000 (13:52 +0000)]
egl: Take alpha bits into account when selecting GBM formats

This fixes piglit when using PIGLIT_PLATFORM=gbm

Tom Stellard:
  - Fix ARGB2101010 format

Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Chad Versace <chad.versace@intel.com>
9 years agofreedreno/ir3: fix old compiler after f6b2e8af742
Rob Clark [Wed, 4 Mar 2015 16:36:32 +0000 (11:36 -0500)]
freedreno/ir3: fix old compiler after f6b2e8af742

If first_driver_param is left as zero (calloc'd struct), the result is
c0 getting clobbered.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agogallivm: init MM = NULL to silence warning
Brian Paul [Tue, 3 Mar 2015 20:20:56 +0000 (13:20 -0700)]
gallivm: init MM = NULL to silence warning

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agomapi: remove u_compiler.h
Brian Paul [Wed, 4 Mar 2015 00:15:05 +0000 (17:15 -0700)]
mapi: remove u_compiler.h

Just include c99_compat.h or util/macros.h where needed.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agomapi: use util/macros.h instead of locally defined macros
Brian Paul [Tue, 3 Mar 2015 16:11:35 +0000 (09:11 -0700)]
mapi: use util/macros.h instead of locally defined macros

The next step is to get rid of u_compiler.h completely.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agomapi: replace INLINE with inline
Brian Paul [Tue, 3 Mar 2015 16:08:22 +0000 (09:08 -0700)]
mapi: replace INLINE with inline

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agomesa: consolidate PUBLIC macro definition
Brian Paul [Tue, 3 Mar 2015 16:01:03 +0000 (09:01 -0700)]
mesa: consolidate PUBLIC macro definition

Define the macro in src/util/macros.h rather than in two different
places.  Note that USED isn't actually used anywhere at this time.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agost/xlib: include p_compiler.h to get PUBLIC definition
Brian Paul [Tue, 3 Mar 2015 16:18:36 +0000 (09:18 -0700)]
st/xlib: include p_compiler.h to get PUBLIC definition

To prevent build break with following changes.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agomapi: remove unneeded ARRAY_SIZE #define
Brian Paul [Tue, 3 Mar 2015 16:40:40 +0000 (09:40 -0700)]
mapi: remove unneeded ARRAY_SIZE #define

include util/macros.h instead.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agoglx: use ARRAY_SIZE from macros.h
Brian Paul [Tue, 3 Mar 2015 16:51:19 +0000 (09:51 -0700)]
glx: use ARRAY_SIZE from macros.h

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
9 years agoscons: Update for the fact that we require GCC 4.2
Jose Fonseca [Wed, 4 Mar 2015 13:56:35 +0000 (13:56 +0000)]
scons: Update for the fact that we require GCC 4.2

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agosvga: Set MSVC2013 compat flags.
Jose Fonseca [Wed, 4 Mar 2015 14:25:54 +0000 (14:25 +0000)]
svga: Set MSVC2013 compat flags.

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agosoftpipe,trace: Set MSVC 2008 compat flags.
Jose Fonseca [Wed, 4 Mar 2015 14:25:39 +0000 (14:25 +0000)]
softpipe,trace: Set MSVC 2008 compat flags.

Although we don't deploy these, we need to use them for debugging.

Reviewed-by: Brian Paul <brianp@vmware.com>
9 years agoscons: Use -Werror MSVC compatibility flags per-directory.
Jose Fonseca [Wed, 4 Mar 2015 14:23:52 +0000 (14:23 +0000)]
scons: Use -Werror MSVC compatibility flags per-directory.

Matching what we already do with autotools builds.

Reviewed-by: Brian Paul <brianp@vmware.com>