mesa.git
7 years agomesa: Make _mesa_primitive_restart_index a static inline in the header.
Kenneth Graunke [Sat, 6 May 2017 23:11:03 +0000 (16:11 -0700)]
mesa: Make _mesa_primitive_restart_index a static inline in the header.

It's now basically a single expression, so it probably makes sense to
have it inlined into the callers.

Suggested by Marek.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agofreedreno: fix clang error in fd_get_compute_param
Rob Herring [Tue, 9 May 2017 16:56:49 +0000 (11:56 -0500)]
freedreno: fix clang error in fd_get_compute_param

With commit 10c17f23b752 ("freedreno: core compute state support"),
Android builds fail with the following error:

external/mesa3d/src/gallium/drivers/freedreno/freedreno_screen.c:610:17: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
                        sprintf(ret, ir);
                                     ^~

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
7 years agomesa/vbo: fix invalid min/max indexes
Rob Clark [Mon, 8 May 2017 20:31:56 +0000 (16:31 -0400)]
mesa/vbo: fix invalid min/max indexes

Fixes: c3f37e9b ("st/mesa: use min_index and max_index directly from vbo")
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
7 years agointel: compiler: prevent integer overflow
Lionel Landwerlin [Mon, 8 May 2017 17:55:06 +0000 (18:55 +0100)]
intel: compiler: prevent integer overflow

CID: 13994771399478 (Integer handling issues)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
7 years agointel: compiler: remove duplicated code
Lionel Landwerlin [Mon, 8 May 2017 17:50:53 +0000 (18:50 +0100)]
intel: compiler: remove duplicated code

CID: 1399470: (Control flow issues)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
7 years agointel: gen decoder: don't check for size_t negative values
Lionel Landwerlin [Mon, 8 May 2017 17:47:06 +0000 (18:47 +0100)]
intel: gen decoder: don't check for size_t negative values

We should get either 0 or 1 here.

CID: 1373562 (Control flow issues)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
7 years agobin/*py: honor editorconfig formatting
Andres Gomez [Fri, 5 May 2017 13:09:42 +0000 (16:09 +0300)]
bin/*py: honor editorconfig formatting

Replace the two stray tabs with respective space.

Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agobin: use tabs for coding style on *.sh files
Andres Gomez [Fri, 5 May 2017 14:49:52 +0000 (17:49 +0300)]
bin: use tabs for coding style on *.sh files

v2: Instead of changing *.sh, adapt the editorconfig file (Emil).

Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoandroid: i965: add per-gen libmesa_i965_gen{4,45,5} static
Mauro Rossi [Sat, 6 May 2017 14:03:23 +0000 (16:03 +0200)]
android: i965: add per-gen libmesa_i965_gen{4,45,5} static

Needed to fix android building errors:

external/mesa/src/mesa/drivers/dri/i965/brw_state_upload.c:148: error: undefined reference to 'gen5_init_atoms'
external/mesa/src/mesa/drivers/dri/i965/brw_state_upload.c:150: error: undefined reference to 'gen45_init_atoms'
external/mesa/src/mesa/drivers/dri/i965/brw_state_upload.c:152: error: undefined reference to 'gen4_init_atoms'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Fixes: 5a19d0b ("i965: Get real per-gen atom lists")
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
7 years agoswr: fix polygonmode for front==back
George Kyriazis [Wed, 19 Apr 2017 18:55:26 +0000 (13:55 -0500)]
swr: fix polygonmode for front==back

Rasterizer core only supports polygonmode front==back.  Add logic for
populating fillMode for the rasterizer only for that case correctly.
Provide enum conversion between mesa enums and core enums.

The core renders lines/points as tris. Previously, code would enable
stipple for polygonmode != FILL.  Modify stipple enable logic so that
this works correctly.

No regressions in vtk tests.
Fixes the following piglit tests:
pointsprite
gl-1.0-edgeflag-const

v2: remove cc stable, and remove "not implemented" assert
v3: modified commit message

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoswr/rast: support polygonmode point
George Kyriazis [Mon, 1 May 2017 19:02:51 +0000 (14:02 -0500)]
swr/rast: support polygonmode point

Add support for polygonmode point in the binner.  This is done by
splitting BinPostSetupPoints from BinPoints, so the earlier call can be
called from BinTriangles.  Setup has already been done at the time
BinPostSetupPoints needs to be called.

This checkin just adds support in the rasterizer.  A separate checkin
will add the appropriate driver support.

v2: remove cc stable
v3: modified commit message and subject line

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
7 years agoutil: move ALWAYS_INLINE macro to util/macro.h
Timothy Arceri [Sun, 7 May 2017 22:01:05 +0000 (08:01 +1000)]
util: move ALWAYS_INLINE macro to util/macro.h

Also added clang check.

macro.h is include by p_compiler.h so no other change is needed.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoswr: move msaa resolve to generalized StoreTile
Bruce Cherniak [Fri, 5 May 2017 00:33:36 +0000 (19:33 -0500)]
swr: move msaa resolve to generalized StoreTile

v3: list piglit tests fixed by this patch. Fixed typo Tim pointed out.
v2: Reword commit message to more closely adhere to community
guidelines.

This patch moves msaa resolve down into core/StoreTiles where the
surface format conversion routines are available.  The previous
"experimental" resolve was limited to 8-bit unsigned render targets.

This fixes a number of piglit msaa tests by adding resolve support for
all the render target formats we support.

Specifically:
layered-rendering/gl-layer-render: fail->pass
layered-rendering/gl-layer-render-storage: fail->pass
multisample-formats *[2,4,8,16] gl_arb_texture_rg: crash->pass
multisample-formats *[2,4,8,16] gl_ext_texture_snorm: crash->pass
multisample-formats *[2,4,8,16] gl_arb_texture_float: fail->pass
multisample-formats *[2,4,8,16] gl_arb_texture_rg-float: fail->pass

MSAA is still disabled by default, but can be enabled with
"export SWR_MSAA_MAX_COUNT=4" (1,2,4,8,16 are options)
The default is 0, which is disabled.

This patch improves the number of multisample-formats supported by swr,
and fixes several crashes currently in the 17.1 branch.  Therefore, it
should be considered for inclusion in the 17.1 stable release.  Being
disabled by default, it poses no risk to most users of swr.

Reviewed-by: Tim Rowley <timothy.o.rowley@intel.com>
cc: mesa-stable@lists.freedesktop.org

7 years agoglsl: Don't allow redefining builtin functions on GLSL 1.00.
Eric Anholt [Mon, 1 May 2017 23:49:27 +0000 (16:49 -0700)]
glsl: Don't allow redefining builtin functions on GLSL 1.00.

The spec text cited above says you can't, but only the GLSL 3.00 (redefine
or overload) case was implemented.

Fixes dEQP scoping.invalid.redefine_builtin_fragment/vertex.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Matt Turner <mattst88@gmail.com>
7 years agoglsl: Restrict func redeclarations (not just redefinitions) on GLSL 1.00.
Eric Anholt [Mon, 1 May 2017 23:42:03 +0000 (16:42 -0700)]
glsl: Restrict func redeclarations (not just redefinitions) on GLSL 1.00.

Fixes DEQP's scoping.invalid.redeclare_function_fragment/vertex.

v2: Fix accidental rejection of prototype+decl.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> (v1)
Tested-by: Matt Turner <mattst88@gmail.com>
7 years agoglsl: Ban #undefining __LINE__ and friends on GLES2.
Eric Anholt [Mon, 1 May 2017 23:35:34 +0000 (16:35 -0700)]
glsl: Ban #undefining __LINE__ and friends on GLES2.

Fixes deqp_gles2 undefine_invalid_object_* failures.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Matt Turner <mattst88@gmail.com>
7 years agoglsl: Restrict functions to not return arrays or SOAs in GLSL 1.00.
Eric Anholt [Mon, 1 May 2017 23:00:47 +0000 (16:00 -0700)]
glsl: Restrict functions to not return arrays or SOAs in GLSL 1.00.

From the spec,

    Arrays are allowed as arguments, but not as the return type. [...] The
    return type can also be a structure if the structure does not contain
    an array.

Fixes DEQP shaders.functions.invalid.return_array_in_struct_fragment.

v2: Spec cite wording change

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Tested-by: Matt Turner <mattst88@gmail.com>
7 years agonir: fix (hopefully) windows build
Rob Clark [Mon, 8 May 2017 17:34:53 +0000 (13:34 -0400)]
nir: fix (hopefully) windows build

Fixes: 53aa109b ("nir: add pass to lower atomic counters to SSBO")
Signed-off-by: Rob Clark <robdclark@gmail.com>
7 years agoradeonsi: rename si_eliminate_const_vs_outputs -> si_optimize_vs_outputs
Marek Olšák [Mon, 8 May 2017 14:41:09 +0000 (16:41 +0200)]
radeonsi: rename si_eliminate_const_vs_outputs -> si_optimize_vs_outputs

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoac: fix broken elimination of duplicated VS exports
Marek Olšák [Mon, 8 May 2017 14:37:26 +0000 (16:37 +0200)]
ac: fix broken elimination of duplicated VS exports

The renumbering code didn't take into account that multiple VS exports
can have the same PARAM index. This also significantly simplifies
the renumbering. Thankfully, we have piglits for this:

    spec@arb_gpu_shader5@arb_gpu_shader5-interpolateatcentroid-packing
    spec@glsl-1.50@execution@interface-blocks-complex-vs-fs

Reported by Michel Dänzer.

Fixes: b08715499e61 ("ac: eliminate duplicated VS exports")
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoegl: Fix -Wint-to-pointer-cast
Chad Versace [Fri, 5 May 2017 19:27:03 +0000 (12:27 -0700)]
egl: Fix -Wint-to-pointer-cast

main/egldisplay.c: In function '_eglParseX11DisplayAttribList':
main/egldisplay.c:491:38: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
          display->Options.Platform = (void *)value;

The fix: cast to uinptr_t before void*.
                                      ^
Fixes: ddb99127 egl/x11: Honor the EGL_PLATFORM_X11_SCREEN_EXT attribute
Cc: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agost/mesa: remove unused st parameter in init_velement_lowered
Marek Olšák [Sun, 30 Apr 2017 12:49:45 +0000 (14:49 +0200)]
st/mesa: remove unused st parameter in init_velement_lowered

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/mesa: use PIPE_MAX_ATTRIBS as the max number of vertex buffers
Marek Olšák [Sun, 30 Apr 2017 12:28:34 +0000 (14:28 +0200)]
st/mesa: use PIPE_MAX_ATTRIBS as the max number of vertex buffers

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/mesa: simplify code due to unification to st_common_program
Marek Olšák [Sun, 30 Apr 2017 14:31:07 +0000 (16:31 +0200)]
st/mesa: simplify code due to unification to st_common_program

v2: use the st_common_program() helper

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/mesa: simplify update_constants functions
Marek Olšák [Sun, 30 Apr 2017 14:20:10 +0000 (16:20 +0200)]
st/mesa: simplify update_constants functions

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
7 years agost/mesa: unify TCS, TES, GS st_*_program structures
Marek Olšák [Sun, 30 Apr 2017 14:05:42 +0000 (16:05 +0200)]
st/mesa: unify TCS, TES, GS st_*_program structures

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/mesa: decrease the size of remaining st_translate_program array params
Marek Olšák [Sun, 30 Apr 2017 13:53:10 +0000 (15:53 +0200)]
st/mesa: decrease the size of remaining st_translate_program array params

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/mesa: remove unused outputSlotToAttr
Marek Olšák [Sun, 30 Apr 2017 13:49:21 +0000 (15:49 +0200)]
st/mesa: remove unused outputSlotToAttr

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/mesa: remove st_context::vertex_result_to_slot
Marek Olšák [Sun, 30 Apr 2017 13:45:18 +0000 (15:45 +0200)]
st/mesa: remove st_context::vertex_result_to_slot

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/mesa: decrease the size of st_vertex_program
Marek Olšák [Sun, 30 Apr 2017 12:33:03 +0000 (14:33 +0200)]
st/mesa: decrease the size of st_vertex_program

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
7 years agost/mesa: remove struct st_tracked_state
Marek Olšák [Sat, 29 Apr 2017 22:42:16 +0000 (00:42 +0200)]
st/mesa: remove struct st_tracked_state

It contains only one member: the update function. Let's use the update
function directly.

Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoradeonsi: split per-patch from per-vertex indices
Nicolai Hähnle [Tue, 2 May 2017 14:21:30 +0000 (16:21 +0200)]
radeonsi: split per-patch from per-vertex indices

Make it a bit clearer that the index spaces are logically seperate by
having them defined in different functions.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: clarify documentation of existing SI workaround
Nicolai Hähnle [Wed, 3 May 2017 09:34:33 +0000 (11:34 +0200)]
radeonsi: clarify documentation of existing SI workaround

Limiting LS-HS to a single wave is required on all SI chips due to an
issue with a power management feature.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: fix gl_PrimitiveID in tessellation with instanced draws on SI
Nicolai Hähnle [Wed, 3 May 2017 09:26:27 +0000 (11:26 +0200)]
radeonsi: fix gl_PrimitiveID in tessellation with instanced draws on SI

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: load patch_id for TES-as-ES when exporting for PS
Nicolai Hähnle [Wed, 3 May 2017 08:02:59 +0000 (10:02 +0200)]
radeonsi: load patch_id for TES-as-ES when exporting for PS

For some reason, this change is only necessary on SI.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: fix primitive ID in fragment shader when using tessellation
Nicolai Hähnle [Wed, 3 May 2017 09:40:07 +0000 (11:40 +0200)]
radeonsi: fix primitive ID in fragment shader when using tessellation

In a VS->TCS->TES->PS pipeline, the primitive ID is read from TES exports,
so it is as if TES were using the primitive ID.

Specifically, this fixes a bug where the primitive ID is not reset at
the start of a new instance.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoradeonsi: mark fast-cleared textures as compressed when dirtying
Nicolai Hähnle [Thu, 4 May 2017 13:20:48 +0000 (15:20 +0200)]
radeonsi: mark fast-cleared textures as compressed when dirtying

There are a bunch of piglit fast clear tests that regressed on SI, for
example ./bin/ext_framebuffer_multisample-fast-clear single-sample.

The problem is that a texture is bound as a framebuffer, cleared, and
then rendered from in a loop that loops through different clear colors.
The texture is never rebound during all this, so the change to
tex->dirty_level_mask during fast clear was not taken into account
when checking for compressed textures.

I have considered simply reverting the problematic commit. However,
I think this solution is better. It does require looping through all
bound textures after a fast clear, but the alternative would require
visiting more textures needless on every draw. Draws are much more
common than clears.

Note that the rendering feedback loop rules do not apply here, because
the framebuffer binding is changed between the glClear and the draw
that samples from the texture that was cleared.

Fixes: bdd644976952 ("radeonsi: don't mark non-dirty textures with CMASK as compressed")
Cc: 17.1 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
7 years agoegl: use designated initializers
Emil Velikov [Fri, 31 Mar 2017 11:08:38 +0000 (12:08 +0100)]
egl: use designated initializers

All the compilers used to build Mesa support them.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Chad Versace <chadversary@chromium.org>
7 years agoegl: drop unneeded sentinel from level_strings[]
Emil Velikov [Thu, 4 May 2017 18:34:43 +0000 (19:34 +0100)]
egl: drop unneeded sentinel from level_strings[]

The array is local so we already know its size.

v2: Correct loop condition (Bartosz)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Chad Versace <chadversary@chromium.org>
7 years agoegl: remove suprous header eglcompiler.h
Emil Velikov [Thu, 4 May 2017 17:55:36 +0000 (18:55 +0100)]
egl: remove suprous header eglcompiler.h

The header is used only to provide STATIC_ASSERT. The latter is already
available in utils/macros.h so use that instead and kill of the header.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Chad Versace <chadversary@chromium.org>
7 years agoegl: remove unneeded else statement in _eglInitLogger
Emil Velikov [Thu, 4 May 2017 18:31:12 +0000 (19:31 +0100)]
egl: remove unneeded else statement in _eglInitLogger

The variable level is already initialized to -1 which is already
interpreted as FALLBACK_LOG_LEVEL.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Chad Versace <chadversary@chromium.org>
7 years agoegl: remove no longer needed logger infra
Emil Velikov [Thu, 4 May 2017 18:20:17 +0000 (19:20 +0100)]
egl: remove no longer needed logger infra

As of last commit nobody requires anything else but the
_eglDefaultLogger(). As such use it directly and simplify the
implementation.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Chad Versace <chadversary@chromium.org>
7 years agoegl: fold Android logger into main/
Emil Velikov [Thu, 4 May 2017 18:10:21 +0000 (19:10 +0100)]
egl: fold Android logger into main/

Will allow us to greatly simplify a lot of the code in egllog.c

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Chad Versace <chadversary@chromium.org>
7 years agoegl: remove unused _eglSetLogLevel()
Emil Velikov [Fri, 31 Mar 2017 11:17:19 +0000 (12:17 +0100)]
egl: remove unused _eglSetLogLevel()

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Chad Versace <chadversary@chromium.org>
7 years agoglsl: apply the image format for members of structures
Samuel Pitoiset [Sat, 6 May 2017 14:55:47 +0000 (16:55 +0200)]
glsl: apply the image format for members of structures

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoglsl: store the image format in glsl_struct_field
Samuel Pitoiset [Sat, 6 May 2017 14:55:46 +0000 (16:55 +0200)]
glsl: store the image format in glsl_struct_field

ARB_bindless_texture allows to declare image types inside
structures, which means we need to keep track of the format.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agost/glsl_to_tgsi: don't use rzalloc_array() when it's unnecessary
Samuel Pitoiset [Fri, 5 May 2017 09:01:37 +0000 (11:01 +0200)]
st/glsl_to_tgsi: don't use rzalloc_array() when it's unnecessary

When the arrays are initialized later on with -1, that's useless
to use rzalloc_array().

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
7 years agoanv: check return value of anv_execbuf_add_bo
Lionel Landwerlin [Mon, 8 May 2017 08:01:56 +0000 (09:01 +0100)]
anv: check return value of anv_execbuf_add_bo

CID: 1405919 (Error handling issues)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
7 years agoanv: avoid null pointer dereference
Lionel Landwerlin [Wed, 3 May 2017 05:06:01 +0000 (22:06 -0700)]
anv: avoid null pointer dereference

The application might not give an output structure.

CID: 1405765 (Null pointer dereferences)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
7 years agoegl: avoid dereferencing a null display
Eric Engestrom [Sun, 7 May 2017 22:44:12 +0000 (23:44 +0100)]
egl: avoid dereferencing a null display

Fixes: ddb99127a6f6c ("egl/x11: Honor the EGL_PLATFORM_X11_SCREEN_EXT attribute")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
7 years agodocs/releasing: added relevant people for build/check with MacOSX
Andres Gomez [Mon, 27 Mar 2017 18:48:16 +0000 (21:48 +0300)]
docs/releasing: added relevant people for build/check with MacOSX

Signed-off-by: Andres Gomez <agomez@igalia.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Cc: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Jeremy Sequoia <jeremyhu@apple.com>
7 years agodocs/releasing: added relevant people for build/check with Android
Andres Gomez [Fri, 5 May 2017 09:44:16 +0000 (12:44 +0300)]
docs/releasing: added relevant people for build/check with Android

v2: Tapani as main contact and Mauro just for help with
    debugging/building (Mauro).

v3: Mauro my provide feedback for android-x86 only (Mauro).

Signed-off-by: Andres Gomez <agomez@igalia.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Cc: Tapani Pälli <tapani.palli@intel.com>
Cc: Mauro Rossi <issor.oruam@gmail.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
7 years agodocs/releasing: added relevant people for build/check with Windows
Andres Gomez [Wed, 3 May 2017 18:14:38 +0000 (21:14 +0300)]
docs/releasing: added relevant people for build/check with Windows

v2: Brian Paul as main contact point and Jose Fonseca as
    fallback (Vinson, Jose)

Signed-off-by: Andres Gomez <agomez@igalia.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Cc: Vinson Lee <vlee@freedesktop.org>
Cc: Brian Paul <brianp@vmware.com>
Cc: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
7 years agodocs/releasing: if possible, do some every day use on the RC
Andres Gomez [Mon, 27 Mar 2017 18:48:13 +0000 (21:48 +0300)]
docs/releasing: if possible, do some every day use on the RC

Signed-off-by: Andres Gomez <agomez@igalia.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agodocs/releasing: further explain the build/check testing process
Andres Gomez [Mon, 27 Mar 2017 18:48:12 +0000 (21:48 +0300)]
docs/releasing: further explain the build/check testing process

The build/check test should be done with an appropriate combination of
flags, depending on the changes introduced by the patch set.

Also, mention to cross compile with mingw-w64 for Windows.

Signed-off-by: Andres Gomez <agomez@igalia.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agodocs/releasing: check in master for forgotten nomination candidates
Andres Gomez [Mon, 27 Mar 2017 18:48:11 +0000 (21:48 +0300)]
docs/releasing: check in master for forgotten nomination candidates

The maintanier should not just rely on the mesa-stable@ mailing list
but actually check the master branch in search for suitable nomination
candidates.

Signed-off-by: Andres Gomez <agomez@igalia.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agodocs/releasing: format/style homogenization
Andres Gomez [Mon, 27 Mar 2017 18:48:10 +0000 (21:48 +0300)]
docs/releasing: format/style homogenization

Signed-off-by: Andres Gomez <agomez@igalia.com>
Cc: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agobin/get-fixes-pick-list.sh: don't warn if more than one, go over them
Andres Gomez [Sat, 6 May 2017 14:09:35 +0000 (17:09 +0300)]
bin/get-fixes-pick-list.sh: don't warn if more than one, go over them

If an identified commit was having more than one fix, we would warn
about that and only treat the first.

Now, we don't warn but treat all of them.

Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
7 years agoi965: Update gen6_depth_stencil_state to use genX macro.
Rafael Antognolli [Fri, 5 May 2017 18:22:18 +0000 (11:22 -0700)]
i965: Update gen6_depth_stencil_state to use genX macro.

While moving depth stencil state to use genxml, this one was left
behind.

Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
7 years agoi965: Move MOCS macros to brw_state.h.
Rafael Antognolli [Thu, 4 May 2017 18:49:08 +0000 (11:49 -0700)]
i965: Move MOCS macros to brw_state.h.

brw_state.h is a better place to keep them, instead of brw_context.h.

Signed-off-by: Rafael Antognolli <rafael.antognolli@intel.com>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
7 years agoi965: Don't try to unmap NULL program cache BO.
Kenneth Graunke [Thu, 4 May 2017 02:24:32 +0000 (19:24 -0700)]
i965: Don't try to unmap NULL program cache BO.

When running shader-db with intel_stub and recent Mesa, context creation
fails when making a logical hardware context.  In this case, we call
intelDestroyContext(), which gets here and tries to unmap the cache BO.

But there isn't one - we haven't made it yet.  So we try to unmap a
NULL pointer, which used to be safe (it did nothing), but crashes
after commit 7c3b8ed87859bfdfb985d21685115a729f9cd138.

The result is that we crash rather than failing context creation with
a nice message.  Either way nothing works, but this is more polite.

Cc: "17.1" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
7 years agoRevert "mesa: Require mipmap completeness for glCopyImageSubData(), sometimes."
Kenneth Graunke [Fri, 5 May 2017 16:20:56 +0000 (09:20 -0700)]
Revert "mesa: Require mipmap completeness for glCopyImageSubData(), sometimes."

This reverts commit c5bf7cb52942cb7df9f5d73746ffbf3c102d12cc.

This broke rendering in "Total War: WARHAMMER", which uses a single
level RGBA_UINT32 texture and the default filter modes of GL_LINEAR
and GL_NEAREST_MIPMAP_LINEAR.  However, the texture max level is 0,
so it is actually mipmap complete - it's the integer + linear rule
that causes the error.

I'm working with Khronos to find a real solution.  However it turns
out, this patch is not correct and breaks real programs, so let's
revert it for now.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100690
Bugzilla: https://cvs.khronos.org/bugzilla/show_bug.cgi?id=16224
Cc: "17.1" <mesa-stable@lists.freedesktop.org>
7 years agoglsl: destroy function and subroutine hash tables
Grazvydas Ignotas [Tue, 2 May 2017 18:06:50 +0000 (21:06 +0300)]
glsl: destroy function and subroutine hash tables

Just like other type hash tables are destroyed in
_mesa_glsl_release_types(), also destroy the ones for function and
subroutine types.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
7 years agoradv: fix regression in blit2d push constant change.
Dave Airlie [Sun, 7 May 2017 23:54:49 +0000 (00:54 +0100)]
radv: fix regression in blit2d push constant change.

These were being fed to the shader as floats via the vertex
path, so also push them as floats here.

This fixes missing overlay in Sascha Willems demos.

Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: cleanup some unused code path
Dave Airlie [Wed, 19 Apr 2017 04:25:19 +0000 (14:25 +1000)]
radv/meta: cleanup some unused code path

After moving everything to using push constants,
these paths are no longer needed.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: port blit to using push constants
Dave Airlie [Wed, 19 Apr 2017 03:27:27 +0000 (13:27 +1000)]
radv/meta: port blit to using push constants

Remove use of vertex buffer.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: move blit2d to using push constants
Dave Airlie [Wed, 19 Apr 2017 03:17:48 +0000 (13:17 +1000)]
radv/meta: move blit2d to using push constants

This allows us to drop the vertex buffer.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: move clear color to using push constants
Dave Airlie [Wed, 19 Apr 2017 00:34:37 +0000 (10:34 +1000)]
radv/meta: move clear color to using push constants

The color clear value is uniform and needs only to be emitted from
the frag shader, so just push it down via a push constant,
and remove the vertex buffer completely.

The depth clear value needs to be emitted from the vertex
shader, but is only a single value.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: use novertex save path for resolve pass.
Dave Airlie [Wed, 19 Apr 2017 03:29:21 +0000 (13:29 +1000)]
radv/meta: use novertex save path for resolve pass.

This was missing in the original change.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: set base/ranges for push constant loads.
Dave Airlie [Fri, 5 May 2017 00:42:40 +0000 (10:42 +1000)]
radv: set base/ranges for push constant loads.

This isn't necessary yet but I'd like to use the range in
some future patches.

[airlied: add new resolve pass]
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: drop resolve hack workarounds
Dave Airlie [Fri, 28 Apr 2017 07:06:09 +0000 (08:06 +0100)]
radv: drop resolve hack workarounds

This drops the resolve workarounds that change an image
tiling mode behinds it's back, this is horrible and breaks
the image_view->image relationship. Remove all this.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: select resolve paths
Dave Airlie [Fri, 28 Apr 2017 02:56:25 +0000 (03:56 +0100)]
radv/meta: select resolve paths

There are 3 resolve paths, the fastest being the hw resolver
but it has restriction on tile modes and can't do subresolves,
the compute resolver is next speed wise, but can't handle DCC
destinations, the fragment resolver handles that case.

This will end up with a slow down as currently we hack the
hw resolver paths when they shouldn't work, but we shouldn't
keep doing that.

The next patch removes the hacks.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: add resolve pass using fragment/vertex shaders
Dave Airlie [Thu, 27 Apr 2017 00:47:22 +0000 (01:47 +0100)]
radv/meta: add resolve pass using fragment/vertex shaders

In order to resolve into DCC enabled dests we need to use
the fragment shader. This reuses the code from the compute
path and implements a resolve path in vertex/fragment shader.

This code isn't used until later.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: add subpass resolve compute path
Dave Airlie [Thu, 4 May 2017 03:02:08 +0000 (04:02 +0100)]
radv: add subpass resolve compute path

This adds a path to allow compute resolves to be used
for subpass resolves.

This isn't used yet, but will be later.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/resolve: split resolve emission out for compute
Dave Airlie [Thu, 4 May 2017 03:01:35 +0000 (04:01 +0100)]
radv/resolve: split resolve emission out for compute

This will allow to add a subpass compute resolve path.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: split out core part of resolve shader
Dave Airlie [Wed, 3 May 2017 03:23:04 +0000 (04:23 +0100)]
radv/meta: split out core part of resolve shader

I want to reuse the same code for the fragment shader
version of the resolve shaders.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv/meta: add srgb conversion to end of resolve shader.
Dave Airlie [Thu, 20 Apr 2017 03:42:26 +0000 (04:42 +0100)]
radv/meta: add srgb conversion to end of resolve shader.

If we are resolving into an srgb dest, we need to convert
to linear so the store does the conversion back.

This should fix some wierdness seen when we subresolves
hit the compute path.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agonir: Fix missing snprintf symbol on Windows.
Jose Fonseca [Sun, 7 May 2017 16:58:56 +0000 (17:58 +0100)]
nir: Fix missing snprintf symbol on Windows.

Copy nir_print.c's snprintf definition for now, to unbreak Windows
builds.

We can and should cleanup all snprintf definitions in a follow up
change, but I rather not leave Windows build broken any further.

Trivial.

7 years agonv50/ir: Replace NV50_PROGRAM_IR_* by PIPE_SHADER_IR_*
Pierre Moreau [Sat, 6 May 2017 21:47:23 +0000 (23:47 +0200)]
nv50/ir: Replace NV50_PROGRAM_IR_* by PIPE_SHADER_IR_*

Signed-off-by: Pierre Moreau <pierre.morrow@free.fr>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
7 years agonv50/ir: Remove unused translation methods
Pierre Moreau [Sat, 6 May 2017 21:47:22 +0000 (23:47 +0200)]
nv50/ir: Remove unused translation methods

This code was merged commented out, and has stayed that way ever since.

Signed-off-by: Pierre Moreau <pierre.morrow@free.fr>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
7 years agonv50/ir: Free target if we failed to create a program
Pierre Moreau [Sat, 6 May 2017 21:47:21 +0000 (23:47 +0200)]
nv50/ir: Free target if we failed to create a program

Signed-off-by: Pierre Moreau <pierre.morrow@free.fr>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
7 years agonv50/ir: Fail if encountering unknown shader type
Pierre Moreau [Sat, 6 May 2017 21:47:20 +0000 (23:47 +0200)]
nv50/ir: Fail if encountering unknown shader type

Signed-off-by: Pierre Moreau <pierre.morrow@free.fr>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
7 years agoradv: set PERF_MOD in sample state like radeonsi.
Dave Airlie [Fri, 28 Apr 2017 06:17:10 +0000 (07:17 +0100)]
radv: set PERF_MOD in sample state like radeonsi.

This just aligns the code with radeonsi.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoradv: apply the tess+GS hang workaround to Polaris12 as well
Dave Airlie [Sat, 6 May 2017 20:14:11 +0000 (21:14 +0100)]
radv: apply the tess+GS hang workaround to Polaris12 as well

As I pointed out for radeonsi, and AMD confirmed, so fix this
in radv as well.

Cc: "17.1" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agomesa: small texture targetIndex tidy up
Timothy Arceri [Thu, 4 May 2017 06:53:56 +0000 (16:53 +1000)]
mesa: small texture targetIndex tidy up

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: fix broken indentation
Timothy Arceri [Thu, 4 May 2017 06:36:40 +0000 (16:36 +1000)]
mesa: fix broken indentation

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: some C99 tidy ups
Timothy Arceri [Thu, 4 May 2017 06:14:33 +0000 (16:14 +1000)]
mesa: some C99 tidy ups

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: add KHR_no_error support to copy buffer subdata functions
Timothy Arceri [Thu, 4 May 2017 04:48:02 +0000 (14:48 +1000)]
mesa: add KHR_no_error support to copy buffer subdata functions

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: remove _mesa from static function
Timothy Arceri [Thu, 4 May 2017 04:32:28 +0000 (14:32 +1000)]
mesa: remove _mesa from static function

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agost/mesa: stop calling _mesa_init_buffer_object_functions()
Timothy Arceri [Thu, 4 May 2017 04:23:16 +0000 (14:23 +1000)]
st/mesa: stop calling _mesa_init_buffer_object_functions()

After calling this we were then overriding all the functions with
st versions.

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: make _mesa_buffer_storage() static
Timothy Arceri [Thu, 4 May 2017 04:06:57 +0000 (14:06 +1000)]
mesa: make _mesa_buffer_storage() static

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: make _mesa_copy_buffer_sub_data() static
Timothy Arceri [Thu, 4 May 2017 04:02:10 +0000 (14:02 +1000)]
mesa: make _mesa_copy_buffer_sub_data() static

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: make _mesa_clear_buffer_sub_data() static
Timothy Arceri [Thu, 4 May 2017 03:59:29 +0000 (13:59 +1000)]
mesa: make _mesa_clear_buffer_sub_data() static

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: add KHR_no_error support for flush mapped buffer functions
Timothy Arceri [Thu, 4 May 2017 03:49:02 +0000 (13:49 +1000)]
mesa: add KHR_no_error support for flush mapped buffer functions

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: make _mesa_flush_mapped_buffer_range() static
Timothy Arceri [Thu, 4 May 2017 03:39:59 +0000 (13:39 +1000)]
mesa: make _mesa_flush_mapped_buffer_range() static

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: add KHR_no_error support for unmap buffer functions
Timothy Arceri [Thu, 4 May 2017 03:31:27 +0000 (13:31 +1000)]
mesa: add KHR_no_error support for unmap buffer functions

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: split unmap_buffer() in two
Timothy Arceri [Thu, 4 May 2017 03:26:45 +0000 (13:26 +1000)]
mesa: split unmap_buffer() in two

This will allow us to implement KHR_no_error support for unmap
functions.

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: make _mesa_unmap_buffer() static
Timothy Arceri [Thu, 4 May 2017 03:14:27 +0000 (13:14 +1000)]
mesa: make _mesa_unmap_buffer() static

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: add KHR_no_error support for some map buffer functions
Timothy Arceri [Thu, 4 May 2017 03:08:57 +0000 (13:08 +1000)]
mesa: add KHR_no_error support for some map buffer functions

Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agomesa: split out validation from map_buffer_range()
Timothy Arceri [Thu, 4 May 2017 02:28:09 +0000 (12:28 +1000)]
mesa: split out validation from map_buffer_range()

This will allow us to add KHR_no_error support for *BufferRange
functions.

Reviewed-by: Eric Anholt <eric@anholt.net>