platform/upstream/mesa.git
8 years agoanv/apply_dynamic_offsets: Use rewrite_src instead of a regular assignment
Jason Ekstrand [Sat, 14 May 2016 21:53:11 +0000 (14:53 -0700)]
anv/apply_dynamic_offsets: Use rewrite_src instead of a regular assignment

Originally we removed the instruction, changed the source, and then
re-inserted it.  This works, but nir_instr_rewrite_src is a bit more
obviously correct.

8 years agoanv/device: Add a boolean for robust buffer access
Jason Ekstrand [Sat, 14 May 2016 21:52:36 +0000 (14:52 -0700)]
anv/device: Add a boolean for robust buffer access

8 years agoanv: Add a TODO file
Jason Ekstrand [Fri, 20 May 2016 03:08:55 +0000 (20:08 -0700)]
anv: Add a TODO file

8 years agoglsl: handle same struct redeclaration (v2)
Dave Airlie [Tue, 17 May 2016 00:58:53 +0000 (10:58 +1000)]
glsl: handle same struct redeclaration (v2)

This works around a bug in older version of UE4, where a shader
defines the same structure twice. Although we aren't sure this is correct
GLSL (it most likely isn't) there are enough UE4 based things out there
we should deal with this.

This drops the error to a warning if the struct names and contents match.

v1.1: do better C++ on record_compare declaration (Rob)
v2: restrict this to desktop GL only (Ian)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95005
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
8 years agoi965/fs: Recognize and emit ld_lz, sample_lz, sample_c_lz.
Matt Turner [Wed, 4 May 2016 22:37:02 +0000 (15:37 -0700)]
i965/fs: Recognize and emit ld_lz, sample_lz, sample_c_lz.

Ken suggested instead of a big and complicated optimization pass, to
just recognize the operations here. It's certainly less code and a lot
prettier, but it seems to actually perform worse for currently unknown
reasons.

total instructions in shared programs: 8923452 -> 8904108 (-0.22%)
instructions in affected programs: 814563 -> 795219 (-2.37%)
helped: 3336
HURT: 10

total cycles in shared programs: 66970734 -> 66651476 (-0.48%)
cycles in affected programs: 10582686 -> 10263428 (-3.02%)
helped: 2438
HURT: 691

total spills in shared programs: 1811 -> 1789 (-1.21%)
spills in affected programs: 85 -> 63 (-25.88%)
helped: 4

total fills in shared programs: 3143 -> 3109 (-1.08%)
fills in affected programs: 167 -> 133 (-20.36%)
helped: 4

LOST:   2
GAINED: 36

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoi965: Add infrastucture for sample lod-zero operations.
Matt Turner [Wed, 4 May 2016 22:46:45 +0000 (15:46 -0700)]
i965: Add infrastucture for sample lod-zero operations.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoi965/fs: Add and use get_nir_src_imm().
Matt Turner [Wed, 4 May 2016 22:10:25 +0000 (15:10 -0700)]
i965/fs: Add and use get_nir_src_imm().

The next patch wants to inspect the LOD argument and do something
different if it's 0.0f. But at that point we've emitted a MOV for it and
we just have a register to look at.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agonvc0: account for shader-allocated local memory needs
Ilia Mirkin [Thu, 19 May 2016 01:27:33 +0000 (21:27 -0400)]
nvc0: account for shader-allocated local memory needs

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
8 years agonv50/ir: treat addresses as local
Ilia Mirkin [Wed, 18 May 2016 00:44:21 +0000 (20:44 -0400)]
nv50/ir: treat addresses as local

Address registers are always loaded right before use. Don't treat them
as "global", which will cause them to be put into the function's
linkage, and will make the register allocator hold onto that
register until the end of the function.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoswr: [rasterizer] utility functions for shared libs
Tim Rowley [Fri, 13 May 2016 00:12:55 +0000 (18:12 -0600)]
swr: [rasterizer] utility functions for shared libs

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer jitter] fix assert in AVX implementation of MASKLOADD
Tim Rowley [Thu, 12 May 2016 00:05:23 +0000 (18:05 -0600)]
swr: [rasterizer jitter] fix assert in AVX implementation of MASKLOADD

llvm changed the mask type to vector of ints with 3.8.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] apply KNOB_TOSS_DRAW to more functions
Tim Rowley [Wed, 11 May 2016 22:51:11 +0000 (16:51 -0600)]
swr: [rasterizer core] apply KNOB_TOSS_DRAW to more functions

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer jitter] add instancing to non-gather fetch path
Tim Rowley [Wed, 11 May 2016 15:57:08 +0000 (09:57 -0600)]
swr: [rasterizer jitter] add instancing to non-gather fetch path

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] move MultisampleTrait static from header to cpp
Tim Rowley [Tue, 10 May 2016 18:55:18 +0000 (12:55 -0600)]
swr: [rasterizer core] move MultisampleTrait static from header to cpp

Move a MultisampleTrait static from header to cpp as clang seemed to get
confused with some specializations in the header vs some in cpp.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] clang override for _mm_undefined*
Tim Rowley [Tue, 10 May 2016 00:00:26 +0000 (18:00 -0600)]
swr: [rasterizer core] clang override for _mm_undefined*

Not supported in older xcode versions.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer common] add OSX to unix portability sections
Tim Rowley [Fri, 6 May 2016 20:38:25 +0000 (14:38 -0600)]
swr: [rasterizer common] add OSX to unix portability sections

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer] rename _aligned_malloc to AlignedMalloc
Tim Rowley [Fri, 6 May 2016 18:49:23 +0000 (12:49 -0600)]
swr: [rasterizer] rename _aligned_malloc to AlignedMalloc

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer jitter] rename MEMCPY function to MEMCOPY
Tim Rowley [Fri, 6 May 2016 17:29:07 +0000 (11:29 -0600)]
swr: [rasterizer jitter] rename MEMCPY function to MEMCOPY

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer common] guard definition of __cdecl/__stdcall
Tim Rowley [Thu, 5 May 2016 22:13:21 +0000 (16:13 -0600)]
swr: [rasterizer common] guard definition of __cdecl/__stdcall

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer common] include cstddef for offsetof
Tim Rowley [Thu, 5 May 2016 21:48:32 +0000 (15:48 -0600)]
swr: [rasterizer common] include cstddef for offsetof

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] removed tabs that snuck in
Tim Rowley [Thu, 5 May 2016 19:47:03 +0000 (13:47 -0600)]
swr: [rasterizer core] removed tabs that snuck in

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] code style cleanup
Tim Rowley [Tue, 17 May 2016 22:04:36 +0000 (17:04 -0500)]
swr: [rasterizer core] code style cleanup

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] add dummy code for cygwin build
Tim Rowley [Tue, 17 May 2016 22:03:52 +0000 (17:03 -0500)]
swr: [rasterizer core] add dummy code for cygwin build

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] move variable query outside loop
Tim Rowley [Wed, 4 May 2016 21:04:39 +0000 (15:04 -0600)]
swr: [rasterizer core] move variable query outside loop

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] utility function for getenv
Tim Rowley [Wed, 4 May 2016 16:40:10 +0000 (10:40 -0600)]
swr: [rasterizer core] utility function for getenv

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer common] portable threadviz buckets
Tim Rowley [Wed, 4 May 2016 15:24:55 +0000 (09:24 -0600)]
swr: [rasterizer common] portable threadviz buckets

Output with slashes instead of backslashes for unix/linux.

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer common] foreground win32 assert dialog
Tim Rowley [Tue, 3 May 2016 17:45:03 +0000 (11:45 -0600)]
swr: [rasterizer common] foreground win32 assert dialog

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: [rasterizer core] use parens to disambiguate operator precedence
Tim Rowley [Tue, 3 May 2016 17:07:15 +0000 (11:07 -0600)]
swr: [rasterizer core] use parens to disambiguate operator precedence

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agoswr: standardize linkage and check for unresolved symbols
Tim Rowley [Thu, 19 May 2016 16:36:32 +0000 (11:36 -0500)]
swr: standardize linkage and check for unresolved symbols

Acked-by: Emil Velikov <emil.velikov@collabora.com>
8 years agoswr: fix swr linkage so that static llvm works
Tim Rowley [Mon, 16 May 2016 18:31:16 +0000 (13:31 -0500)]
swr: fix swr linkage so that static llvm works

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoswr: PIPE_CAP_CULL_DISTANCE cap request response
Tim Rowley [Mon, 16 May 2016 16:03:26 +0000 (11:03 -0500)]
swr: PIPE_CAP_CULL_DISTANCE cap request response

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agodocs: add swr to GL3.txt
Tim Rowley [Mon, 16 May 2016 16:02:27 +0000 (11:02 -0500)]
docs: add swr to GL3.txt

v2: not on gl3.3 list until gl3.2 is complete

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
8 years agost/va: use drm render node for wayland display type
Leo Liu [Tue, 17 May 2016 19:16:09 +0000 (15:16 -0400)]
st/va: use drm render node for wayland display type

With xwayland, vainfo use VA_DISPLAY_WAYLAND as default and it fails
and fails when specify display with  `vainfo --display wayland`.
In fact wayland support for libva uses drm path to connect device,
and should use drm pipe loader to create screen.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agogallium/radeon: small cleanups in r600_texture_transfer_map
Marek Olšák [Thu, 12 May 2016 11:26:24 +0000 (13:26 +0200)]
gallium/radeon: small cleanups in r600_texture_transfer_map

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
8 years agogallium/radeon: don't set PB_USAGE in winsyses
Marek Olšák [Thu, 12 May 2016 11:13:42 +0000 (13:13 +0200)]
gallium/radeon: don't set PB_USAGE in winsyses

There is no point.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
8 years agogallium/radeon: handle VRAM_GTT placements as having slow CPU reads
Marek Olšák [Thu, 12 May 2016 11:05:19 +0000 (13:05 +0200)]
gallium/radeon: handle VRAM_GTT placements as having slow CPU reads

not sure if we should include GTT WC too

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
8 years agogallium/radeon: ignore PIPE_TRANSFER_MAP_DIRECTLY
Marek Olšák [Thu, 12 May 2016 10:55:41 +0000 (12:55 +0200)]
gallium/radeon: ignore PIPE_TRANSFER_MAP_DIRECTLY

Only st/xa is using this, which is irrelevant to us.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
8 years agoradeonsi: add a workaround for a bug in LLVM <= 3.8
Marek Olšák [Tue, 17 May 2016 21:10:24 +0000 (23:10 +0200)]
radeonsi: add a workaround for a bug in LLVM <= 3.8

This is not directly applicable to stable and needs to be backported.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
8 years agoi965/fs: Silence warnings related to use of uninitialized values
Eduardo Lima Mitev [Tue, 17 May 2016 10:21:02 +0000 (12:21 +0200)]
i965/fs: Silence warnings related to use of uninitialized values

brw_fs.cpp: In function ‘const unsigned int* brw_compile_fs(const [...]
brw_fs.cpp:6093:64: warning: ‘simd16_grf_start’ may be used uninitialized [...]
       prog_data->base.dispatch_grf_start_reg = simd16_grf_start;

brw_fs.cpp:5996:29: note: ‘simd16_grf_start’ was declared here
    uint8_t simd8_grf_start, simd16_grf_start;

brw_fs.cpp:6094:52: warning: ‘simd16_grf_used’ may be used uninitialized [...]
       prog_data->reg_blocks_0 = brw_register_blocks(simd16_grf_used);

brw_fs.cpp:5997:29: note: ‘simd16_grf_used’ was declared here
    unsigned simd8_grf_used, simd16_grf_used;

(and more)

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
8 years agovc4: Size transfer temporary mappings appropriately for full maps of 3D.
Eric Anholt [Wed, 18 May 2016 19:29:02 +0000 (12:29 -0700)]
vc4: Size transfer temporary mappings appropriately for full maps of 3D.

We don't really support reading/writing of 3D textures since the hardware
doesn't do 3D, but we do need to make sure that a pipe_transfer for them
has enough space to store the image.  This was previously not a problem
because the state tracker only mapped a slice at a time until
fb9fe352ea41c7e3633ba2c483c59b73c529845b.  Fixes glean glsl1 tests, which
all have setup of a 3D texture at the start.

8 years agoanv/device: Fix viewportBoundsRange
Nanley Chery [Tue, 17 May 2016 22:28:01 +0000 (15:28 -0700)]
anv/device: Fix viewportBoundsRange

Align with the spec requirement that the range must be at least
[−2 × maxViewportDimensions, 2 × maxViewportDimensions − 1]. Our
hardware supports this.

Fixes dEQP-VK.api.info.device.properties

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94896
Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
8 years agoglsl/linker: attempt to match anonymous structures at link
Dave Airlie [Tue, 17 May 2016 00:31:29 +0000 (10:31 +1000)]
glsl/linker: attempt to match anonymous structures at link

This is my attempt at fixing at least one of the UE4 bugs with GL4.3.

If we are doing intrastage matching and hit anonymous structs, then
we should do a record comparison instead of using the names.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95005
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
8 years agoanv/batch_chain: free pointers for error cases
Mark Janes [Wed, 18 May 2016 21:28:38 +0000 (14:28 -0700)]
anv/batch_chain: free pointers for error cases

Trivial fix to improperly handled cleanup during
VK_ERROR_OUT_OF_HOST_MEMORY.

Identified by Coverity: CID 1358908 and 1358909
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
8 years agost/nine: Minor change to support musl libc
Wang He [Tue, 10 May 2016 05:40:30 +0000 (13:40 +0800)]
st/nine: Minor change to support musl libc

A few changes to support musl libc as well.

In particular fpu_control.h is glibc specific.
fenv.h doesn't enable to do exactly what we want either,
so instead use assembly directly.

Signed-off-by: Wang He <xw897002528@gmail.com>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Enable D3DPMISCCAPS_PERSTAGECONSTANT
Patrick Rudolph [Fri, 29 Apr 2016 06:50:16 +0000 (08:50 +0200)]
st/nine: Enable D3DPMISCCAPS_PERSTAGECONSTANT

Nine already supports the feature.
There are no failing WINE tests for per stage constants.
Enabling D3DPMISCCAPS_PERSTAGECONSTANT as it fixes
https://github.com/iXit/Mesa-3D/issues/205

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Turn on thread_submit by default when on different device
Axel Davy [Sat, 7 May 2016 09:33:24 +0000 (11:33 +0200)]
st/nine: Turn on thread_submit by default when on different device

The last remaining issues with thread_submit have been resolved,
thus turn it when on a different device (the case where is is
beneficial).

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix usage of rasterizer multisample bit.
Axel Davy [Sun, 3 Apr 2016 11:04:39 +0000 (13:04 +0200)]
st/nine: Fix usage of rasterizer multisample bit.

pipe_rasterizer multisample bit should be enabled only when really
wanting to do multisampling, thus we should disable when not having
msaa render target.
This fixes some depth calculation precision issues on radeon.
Also disable it when depth and stencil tests are disabled, since in that
case multisampling is same as not multisampled.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: ATOC has effect only with ALPHATESTENABLE
Axel Davy [Sun, 3 Apr 2016 08:52:22 +0000 (10:52 +0200)]
st/nine: ATOC has effect only with ALPHATESTENABLE

ATOC extension does something only when alpha test is enabled.
Use a second bit to encode the difference with ATIATOC.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Add debug string for ATOC
Axel Davy [Sat, 7 May 2016 09:20:47 +0000 (11:20 +0200)]
st/nine: Add debug string for ATOC

We were missing a debug string for this format.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Add asserts for output/input packing
Axel Davy [Sat, 19 Mar 2016 18:27:34 +0000 (19:27 +0100)]
st/nine: Add asserts for output/input packing

Nine doesn't support vs output/ps input packing.
We haven't found any application requiring that,
and implementing it properly is complex.

Add asserts for now.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Use correct PIPE_HANDLE_USAGE flag for frontbuffer copy
Axel Davy [Mon, 14 Mar 2016 20:29:53 +0000 (21:29 +0100)]
st/nine: Use correct PIPE_HANDLE_USAGE flag for frontbuffer copy

When taking screenshots we do a copy from the frontbuffer
to an allocated buffer (which we then copy to a ram buffer).

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix output shift calculation
Axel Davy [Sat, 12 Mar 2016 11:24:51 +0000 (12:24 +0100)]
st/nine: Fix output shift calculation

We were getting it wrong for negative values.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix CheckDeviceFormat advertising for surfaces
Axel Davy [Fri, 11 Mar 2016 22:30:05 +0000 (23:30 +0100)]
st/nine: Fix CheckDeviceFormat advertising for surfaces

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Improve buffer placement
Axel Davy [Fri, 11 Mar 2016 22:03:56 +0000 (23:03 +0100)]
st/nine: Improve buffer placement

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix buffer bind flags
Axel Davy [Fri, 11 Mar 2016 21:22:10 +0000 (22:22 +0100)]
st/nine: Fix buffer bind flags

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix buffer locking flags handling
Axel Davy [Fri, 11 Mar 2016 21:17:25 +0000 (22:17 +0100)]
st/nine: Fix buffer locking flags handling

Our behaviour was not entirely similar to what
the docs and our tests describe.

Drop d3dlock_buffer_to_pipe_transfer_usage.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Improve logging
Patrick Rudolph [Wed, 9 Mar 2016 14:15:46 +0000 (15:15 +0100)]
st/nine: Improve logging

Add missing DBG calls in dtors.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Use WINE thread for threadpool
Patrick Rudolph [Mon, 22 Feb 2016 18:49:19 +0000 (19:49 +0100)]
st/nine: Use WINE thread for threadpool

Use present interface 1.2 function ID3DPresent_CreateThread
to create the thread for threadpool.
Creating the thread with WINE prevents some rarely occuring crashes.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Don't present if window is occluded
Patrick Rudolph [Wed, 10 Feb 2016 18:41:12 +0000 (19:41 +0100)]
st/nine: Don't present if window is occluded

The problem is that if one d3d present call fails,
because of our occlusion check in present method,
the next presentation call will send the same pixmap to the Xserver again,
without waiting it is released, which is wrong.

Move the present call after occlusion check to return and prevent
Xpixmaps errors.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Use new function to query for resolution mismatch
Patrick Rudolph [Wed, 10 Feb 2016 18:30:20 +0000 (19:30 +0100)]
st/nine: Use new function to query for resolution mismatch

Any third party app might change the current screen resolution.
Poll for resolution mismatch to force a device reset.
Required for non ex devices only.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Implement IPresent version 1.2
Patrick Rudolph [Sat, 27 Feb 2016 08:58:19 +0000 (09:58 +0100)]
st/nine: Implement IPresent version 1.2

Implement presentation interface version 1.2:
* ID3DPresent_ResolutionMismatch
    Poll for resolution mismatch.
    A third party app might have changed resolution,
    which requires a device reset.
* ID3DPresent_CreateThread
    Create a thread in WINE to allow nine to use Windows API
    functions. Required for multi-threaded presentation.
    In single-threaded presentation mode the calling thread is
    already known to WINE.
* ID3DPresent_WaitForThread
    Wait for a wine thread to terminate.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Implement BumpEnvMap for ff
Axel Davy [Mon, 7 Mar 2016 22:36:44 +0000 (23:36 +0100)]
st/nine: Implement BumpEnvMap for ff

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Format conversion for volumes in UpdateTexture
Axel Davy [Mon, 7 Mar 2016 22:03:25 +0000 (23:03 +0100)]
st/nine: Format conversion for volumes in UpdateTexture

We were doing the conversion for surfaces, but not yet
volumes. Now that volumes can do conversion, use it.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Remove one useless function output
Axel Davy [Mon, 7 Mar 2016 22:01:02 +0000 (23:01 +0100)]
st/nine: Remove one useless function output

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Add support for X8L8V8U8
Axel Davy [Mon, 7 Mar 2016 21:30:05 +0000 (22:30 +0100)]
st/nine: Add support for X8L8V8U8

X8L8V8U8 support should be common. Some more recent cards
do support this format, but not L6V5U5.

Add fallback for this format to have it alwaus supported.

L6V5U5 conversion rule apparently differs a bit from the normal
spec, and thus the gallium equivalent format leads to slightly
wrong colors. Since some recent cards do not support it, do not
support it either.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Add format fallback with conversion to volumes
Axel Davy [Mon, 7 Mar 2016 21:18:16 +0000 (22:18 +0100)]
st/nine: Add format fallback with conversion to volumes

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Add format fallback with conversion to surfaces
Axel Davy [Mon, 7 Mar 2016 20:55:30 +0000 (21:55 +0100)]
st/nine: Add format fallback with conversion to surfaces

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agogallium/util: Implement util_format_translate_3d
Axel Davy [Mon, 7 Mar 2016 20:35:59 +0000 (21:35 +0100)]
gallium/util: Implement util_format_translate_3d

This is the equivalent of util_format_translate, but for volumes.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix Pointsize in programmable shader
Axel Davy [Sun, 6 Mar 2016 14:54:50 +0000 (15:54 +0100)]
st/nine: Fix Pointsize in programmable shader

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix ff pointscale computation
Axel Davy [Sun, 6 Mar 2016 14:14:30 +0000 (15:14 +0100)]
st/nine: Fix ff pointscale computation

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix header of GetIndices
Axel Davy [Sat, 5 Mar 2016 18:06:29 +0000 (19:06 +0100)]
st/nine: Fix header of GetIndices

There is a mistake in the online documentation,
the function only has 2 arguments.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Increase minor d3dadapter9drm ABI
Axel Davy [Sat, 5 Mar 2016 11:17:06 +0000 (12:17 +0100)]
st/nine: Increase minor d3dadapter9drm ABI

Version 0.1 allows to assume that the second
element of the IDirect3D* structures will
be a pointer to the internal nine vtable.

This is useful if the gallium nine user wants
to wrap some interfaces.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix leak after ctor failures
Axel Davy [Fri, 12 Feb 2016 18:08:42 +0000 (19:08 +0100)]
st/nine: Fix leak after ctor failures

Previously ctor failures would not unreference
the device.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Add ColorFill test for compressed textures
Axel Davy [Tue, 9 Feb 2016 22:51:39 +0000 (23:51 +0100)]
st/nine: Add ColorFill test for compressed textures

ColorFill should contain alignment checks
for compressed textures.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: PositionT and Tessfactor are forbidden as PS input
Axel Davy [Tue, 9 Feb 2016 22:33:51 +0000 (23:33 +0100)]
st/nine: PositionT and Tessfactor are forbidden as PS input

According to wine tests, they are forbidden as PS input,
which makes sense.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Fix some shader failures not triggering error
Axel Davy [Tue, 9 Feb 2016 22:15:21 +0000 (23:15 +0100)]
st/nine: Fix some shader failures not triggering error

Some failures during shader translation would not
raise errors before this patch.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Forbid POSITION0 for PS3.0
Axel Davy [Sun, 21 Feb 2016 15:38:23 +0000 (16:38 +0100)]
st/nine: Forbid POSITION0 for PS3.0

POSITION0 input is forbidden for PS3.0 apparently.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Rework UpdateTexture Checks
Axel Davy [Tue, 9 Feb 2016 21:35:27 +0000 (22:35 +0100)]
st/nine: Rework UpdateTexture Checks

Our code did match the user documentation of the function
quite well (except for format check).

However the DDI documentation and wine tests show that
documentation was not correct. Thus adapt our code to
fit the best possible to the -real- spec.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agost/nine: Use bufs instead of Flags for Clear
Axel Davy [Tue, 9 Feb 2016 07:20:34 +0000 (08:20 +0100)]
st/nine: Use bufs instead of Flags for Clear

bufs doesn't contain depthstencil if
there is z buffer mismatch. This is the behaviour
we want.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agod3dadapter9: Add ddebug, rbug and trace support
Axel Davy [Sun, 10 Apr 2016 21:55:19 +0000 (23:55 +0200)]
d3dadapter9: Add ddebug, rbug and trace support

Add support for ddebug, rbug and trace

Signed-off-by: Axel Davy <axel.davy@ens.fr>
8 years agoradeon: Change AA sample locations for EG+
Axel Davy [Sun, 3 Apr 2016 20:36:01 +0000 (22:36 +0200)]
radeon: Change AA sample locations for EG+

This sets the AA location to the d3d11
spec.
EG/NI 8X MSAA is left as is. Not sure
why it was set different to Cayman, so
lets it as is.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agoradeonsi: Mixed colorbuffer formats are unsupported
Axel Davy [Mon, 7 Mar 2016 21:26:22 +0000 (22:26 +0100)]
radeonsi: Mixed colorbuffer formats are unsupported

Besides depth/stencil, the hardware doesn't support
mixed formats.

The GL state tracker doesn't make use of them.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agoradeonsi: Change default behaviour for undefined COLOR0
Axel Davy [Sat, 19 Mar 2016 18:57:00 +0000 (19:57 +0100)]
radeonsi: Change default behaviour for undefined COLOR0

d3d 9 needs COLOR0 to be 1.0 on all channels when
undefined. 0.0 for the others is fine.
GL behaviour is undefined.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agor600g: Change default behaviour for undefined COLOR0
Axel Davy [Sun, 3 Apr 2016 19:47:11 +0000 (21:47 +0200)]
r600g: Change default behaviour for undefined COLOR0

d3d 9 needs COLOR0 to be 1.0 on all channels when
undefined. 0.0 for the others is fine.
GL behaviour is undefined.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agor600: Change default behaviour for undefined COLOR0
Axel Davy [Sat, 19 Mar 2016 18:55:24 +0000 (19:55 +0100)]
r600: Change default behaviour for undefined COLOR0

d3d 9 needs COLOR0 to be 1.0 on all channels when
undefined. 0.0 for the others is fine.
GL behaviour is undefined.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
8 years agost/nine: Clean up WINAPI definition
Christian Schmidbauer [Fri, 29 Apr 2016 19:53:30 +0000 (20:53 +0100)]
st/nine: Clean up WINAPI definition

As Emil pointed out, only gcc, clang and MSVC compatibility is required.
Hence the check for GNUC can be skipped, as __i386__ and __x86_64__ are
only defined for gcc/clang, not for MSVC.

Remove the #undef which has been there for historic reasons, when wine
dlls for nine have been built inside mesa. Instead use #ifndef in order
to avoid redefining WINAPI from MSVC's headers.

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Axel Davy <axel.davy@ens.fr>
8 years agosvga: add another debug_printf() in svga_screen_create()
Brian Paul [Wed, 18 May 2016 19:01:03 +0000 (13:01 -0600)]
svga: add another debug_printf() in svga_screen_create()

Signed-off-by: Brian Paul <brianp@vmware.com>
8 years agospirv: add switch case for nir_texop_txf_ms_mcs in vtn_handle_texture()
Brian Paul [Wed, 18 May 2016 01:28:37 +0000 (19:28 -0600)]
spirv: add switch case for nir_texop_txf_ms_mcs in vtn_handle_texture()

Mark it as unreachable.  Silences a compiler warning:

spirv/spirv_to_nir.c:1397:4: warning: enumeration value
'nir_texop_txf_ms_mcs' not handled in switch [-Wswitch]
    switch (instr->op) {
    ^

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
8 years agoRevert "i965/urb: fixes division by zero"
Matt Turner [Wed, 18 May 2016 19:48:20 +0000 (12:48 -0700)]
Revert "i965/urb: fixes division by zero"

This reverts commit 2a8aa1e3deb99a1ae16d942318da648c1327ece5.

8 years agoi965/urb: fixes division by zero
Ardinartsev Nikita [Mon, 16 May 2016 23:27:22 +0000 (02:27 +0300)]
i965/urb: fixes division by zero

Fixes regression introduced by af5ca43f2676bff7499f93277f908b681cb821d0

Reviewed-by: Matt Turner <mattst88@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95419

8 years agomesa: fclose() filename on error.
Matt Turner [Mon, 16 May 2016 22:31:00 +0000 (15:31 -0700)]
mesa: fclose() filename on error.

Pretty useless, as it's in debugging code. Found by Coverity (CID
1257016).

8 years agoi965/fs: Assert that nir_op_extract_*'s src1 is a constant.
Matt Turner [Mon, 16 May 2016 22:22:59 +0000 (15:22 -0700)]
i965/fs: Assert that nir_op_extract_*'s src1 is a constant.

8 years agoglsl: Check that layout is non-null before dereferencing.
Matt Turner [Mon, 16 May 2016 21:49:38 +0000 (14:49 -0700)]
glsl: Check that layout is non-null before dereferencing.

layout should only be null for structs, but it's checked everywhere else
and confuses Coverity (CID 1358495).

Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
8 years agoegl/dri2: Don't check return result of mtx_unlock().
Matt Turner [Mon, 16 May 2016 21:43:26 +0000 (14:43 -0700)]
egl/dri2: Don't check return result of mtx_unlock().

Coverity (CID 1358496) warns that the cleanup code doesn't unlock the
mutex (which is arguably kind of stupid, since the only case that can
happen is when mtx_unlock() failed!). But, mtx_unlock() isn't going to
fail -- the mutex was locked by this thread just a few lines above it.

8 years agospirv: Properly size the src[] array.
Matt Turner [Mon, 16 May 2016 19:48:00 +0000 (12:48 -0700)]
spirv: Properly size the src[] array.

Operations like nir_op_bitfield_insert have four arguments, and Coverity
isn't privy to the fact that 4-argument operations aren't possible here,
so it thinks this can lead to memory corruption. Just increase the size
of the array to quell any fears.

8 years agoisl: Mark default cases in switch unreachable.
Matt Turner [Mon, 16 May 2016 18:12:24 +0000 (11:12 -0700)]
isl: Mark default cases in switch unreachable.

To silence -Wmaybe-uninitialized warnings.

8 years agoglsl/linker: Ensure the first stage of an SSO pipeline has input locs assigned
Ian Romanick [Tue, 17 May 2016 20:49:11 +0000 (13:49 -0700)]
glsl/linker: Ensure the first stage of an SSO pipeline has input locs assigned

Previously an SSO pipeline containing only a tessellation control shader
and a tessellation evaluation shader would not get locations assigned
for the TCS inputs.  This would lead to assertion failures in some
piglit tests, such as arb_program_interface_query-resource-query.

That piglit test still fails on some tessellation related subtests.
Specifically, these subtests fail:

'GL_PROGRAM_INPUT(tcs) active resources' expected 2 but got 3
'GL_PROGRAM_INPUT(tcs) max length name' expected 12 but got 16
'GL_PROGRAM_INPUT(tcs,tes) active resources' expected 2 but got 3
'GL_PROGRAM_INPUT(tcs,tes) max length name' expected 12 but got 16
'GL_PROGRAM_OUTPUT(tcs) active resources' expected 15 but got 3
'GL_PROGRAM_OUTPUT(tcs) max length name' expected 23 but got 12

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: mesa-stable@lists.freedesktop.org
8 years agoglsl/linker: Don't include interface name for built-in blocks
Ian Romanick [Tue, 17 May 2016 20:30:46 +0000 (13:30 -0700)]
glsl/linker: Don't include interface name for built-in blocks

Commit 11096ec introduced a regression in some piglit tests (e.g.,
arb_program_interface_query-resource-query).  I did not notice this
regression because other (unrelated) problems caused failed assertions
in those same tests on my system... so they crashed before getting to
the new failure.

v2: Use is_gl_identifier.  Suggested by Tim.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Cc: mesa-stable@lists.freedesktop.org
8 years agoglsl: Assert that inputs have a location assigned
Ian Romanick [Tue, 17 May 2016 01:01:10 +0000 (18:01 -0700)]
glsl: Assert that inputs have a location assigned

This catches a problem previously undetected until deep in the backend.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
8 years agoglsl/linker: Fix trivial typos in comments
Ian Romanick [Tue, 17 May 2016 22:01:19 +0000 (15:01 -0700)]
glsl/linker: Fix trivial typos in comments

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>