Mesa (18.3): 22 new commits

2018-12-05 Thread GitLab Mirror
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=af223b57a4d168186fd08042d14c638926d9a8b3
Author: Emil Velikov 
Date:   Wed Dec 5 21:36:54 2018 +

Update version to 18.3.0-rc6

Signed-off-by: Emil Velikov 

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c694d84f10cd5ef8392f95fe31d8804742c5c8bd
Author: Gurchetan Singh 
Date:   Mon Nov 26 09:54:05 2018 -0800

virgl: don't mark buffers as unclean after a write

We can mark the buffer unclean if it's ever bound as a TBO,
SSBO, ABO, or image.

This improves


dEQP-GLES3.performance.buffer.data_upload.function_call.map_buffer_range.new_specified_buffer.flag_write_full.stream_draw

from 9.58 MB/s to 451.17 MB/s.

v2: Track buffer cleanliness as a function of bindings (Ilia).
v3: virgl_modify_clean --> virgl_dirty_res (Erik)

Tested-By: Gert Wollny 
Reviewed-by: Erik Faye-Lund 
(cherry picked from commit 89b4798c0619a2ba99046d5ad36f0e6851625f7a)

With this and previous two patches, the performance of virgl on top of
a r600 (AMD 6870 HD) host improves as follows:

 | FPS avg |  Score

 before  |   8.2   |   343
 after   |  21.9   |   916

 | FPS avg |  Score

 before  |  13.2   |   333
 after   |  32.3   |   790

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a69ef11424dad4d5346c892f74e269352736bbd8
Author: Gurchetan Singh 
Date:   Mon Nov 26 09:54:04 2018 -0800

virgl: avoid large inline transfers

We flush everytime the command buffer (16 kB) is full, which is
quite costly.

This improves


dEQP-GLES3.performance.buffer.data_upload.function_call.buffer_data.new_buffer.usage_stream_draw

from 111.16 MB/s to 1930.36 MB/s.

In addition, I made the benchmark produce buffers from 0 --> 
VIRGL_MAX_CMDBUF_DWORDS * 4,
and tried ((VIRGL_MAX_CMDBUF_DWORDS * 4) / 2), ((VIRGL_MAX_CMDBUF_DWORDS * 
4) / 4), etc.

I didn't notice any clear differences, so let's just go with the most 
obvious
heuristic.

Tested-By: Gert Wollny 
Reviewed-by: Erik Faye-Lund 
(cherry picked from commit d18492c64f0abb4eb638d2b213b4b1ff3d775965)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b715e3e597122e53807944682dd97595dcf461c
Author: Gurchetan Singh 
Date:   Mon Nov 26 09:54:03 2018 -0800

virgl: quadruple command buffer size

Tested running WebGL aquarium on Nvidia host (10,000 fishes)

This moves us from 7 fps to 9 fps.  After quadrupling, performance
gains diminish.

v2: Remove change ID (Erik)

Tested-By: Gert Wollny 
Reviewed-by: Erik Faye-Lund 
(cherry picked from commit c0773315af76cd735152c322cb7f710b4b053148)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd7edf473e4a4a02e72a77a282975a440d8b094f
Author: Michal Srb 
Date:   Fri Nov 23 17:03:53 2018 +0100

drisw: Use separate drisw_loader_funcs for shm

The original code was modifying the global drisw_lf variable, which is bad
when there are multiple contexts in single process, each initialized with
different loader. One may support put_image_shm and the other not.

Since there are currently only two possible combinations, lets create two
global tables, one for each. Lets make them const, since we won't change 
them
and they can be shared.

This fixes crash in VLC. It used two GL contexts (each in different 
thread), one
was initialized by its Qt GUI, the other by its video output plugin. The 
first
one set the put_image_shm=drisw_put_image_shm, the second did not, but
since the same structure was used, the drisw_put_image_shm was used too. 
Then
it crashed because the second loader did not have putImageShm set.

Downstream bug:
https://bugzilla.opensuse.org/show_bug.cgi?id=1113533

v2: Added Fixes and described the VLC bug.

Fixes: 63c427fa71a ("drisw: use putImageShm if available")
Signed-off-by: Michal Srb 
Reviewed-by: Emil Velikov 
(cherry picked from commit 63c0916ada7eed7eddc0453dfbfed3cc7f42ca85)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a34228e1b079b087cd4644cc2018345f8fd183dc
Author: Michal Srb 
Date:   Fri Nov 23 16:02:27 2018 +0100

gallium: Constify drisw_loader_funcs struct

The content is not expected to change.

Cc: mesa-sta...@lists.freedesktop.org
Signed-off-by: Michal Srb 
Reviewed-by: Emil Velikov 
(cherry picked from commit c0ac038c97b89a8266375339c297b17b3700dfb0)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d92bbe54eaf8406d2b3ceb8b6b7eba6c69681b76
Author: Samuel Pitoiset 
Date:   Wed Dec 5 11:45:19 2018 +0100

radv: wait on the high 32 bits of timestamp queries

In case we are unlucky if the low part is 0x.

Fixes: 5d6a560a29 ("radv: 

Mesa (18.3): 22 new commits

2018-11-09 Thread GitLab Mirror
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f55265776fed8db8d738e5a25b1a1126b48f45ee
Author: Emil Velikov 
Date:   Fri Nov 9 11:00:00 2018 +

Update version to 18.3.0-rc2

Signed-off-by: Emil Velikov 

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c995fcae76ed241fe963206dbe473d0f801f3ad
Author: Gert Wollny 
Date:   Thu Nov 1 10:49:58 2018 +0100

virgl/vtest-winsys: Use virgl version of bind flags

The bind flags defined by mesa/gallium might not always be in sync
with the ones copied to virglrenderer/gallium. Therefore, use the
flags defined in virgl like it is done for all the other calls to
create resources.

Signed-off-by: Gert Wollny 
Reviewed-by: Dave Airlie 
(cherry picked from commit b710680093a29d4f7dcde2e5a3ee61bba80404ca)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=09c5e548c4eb1b9a4f5a8b3c2bac3da857338464
Author: Erik Faye-Lund 
Date:   Thu Oct 25 21:33:52 2018 +0200

glsl: do not allow implicit casts of unsized array initializers

The GLSL 4.6 specification (section 4.1.14. "Implicit Conversions")
says:

  "There are no implicit array or structure conversions. For
   example, an array of int cannot be implicitly converted to an
   array of float."

So let's add a check in place when assigning array initializers to
implicitly sized arrays, to avoid incorrectly allowing code on the
form:

int[] foo = float[](1.0, 2.0, 3.0)

This fixes the following dEQP test-cases:
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es31.invalid.arrays.int_to_float_vertex
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es31.invalid.arrays.int_to_float_fragment
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es31.invalid.arrays.int_to_uint_vertex
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es31.invalid.arrays.int_to_uint_fragment
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es31.invalid.arrays.uint_to_float_vertex
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es31.invalid.arrays.uint_to_float_fragment
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es32.invalid.arrays.int_to_float_vertex
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es32.invalid.arrays.int_to_float_fragment
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es32.invalid.arrays.int_to_uint_vertex
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es32.invalid.arrays.int_to_uint_fragment
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es32.invalid.arrays.uint_to_float_vertex
- 
dEQP-GLES31.functional.shaders.implicit_conversions.es32.invalid.arrays.uint_to_float_fragment

Signed-off-by: Erik Faye-Lund 
Reviewed-by: Tapani Pälli 
(cherry picked from commit 742dace8251b764775ee049cf529715f90afecc1)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=15442cac5c747e54952fcc972f5c43faa208dbbf
Author: Sergii Romantsov 
Date:   Thu Nov 1 13:02:43 2018 +0200

autotools: library-dependency when no sse and 32-bit

Building of 32bit Mesa may fail if __SSE__ is not specified.
Added missed dependency from libm.

v2: avoided dependecy on any flag, just link

v3: meson doesn't fail, but have added dependency on libm

CC: Dylan Baker 
CC: Lionel G Landwerlin 
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108560
Signed-off-by: Sergii Romantsov 
Reviewed-by: Dylan Baker 
(cherry picked from commit ce837a537282f10bc48c4ac426fa9a31241beea2)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=61c64f64d73096acb9ee352ac9535ca7e1a930e8
Author: Samuel Pitoiset 
Date:   Mon Nov 5 09:54:28 2018 +0100

radv: disable conditional rendering for vkCmdCopyQueryPoolResults()

VK_EXT_conditional_rendering says that copy commands should not be
affected by conditional rendering.

Cc: 18.2 18.3 
Signed-off-by: Samuel Pitoiset 
Reviewed-by: Dave Airlie 
(cherry picked from commit 0a0aa2ba6c37085948cc7efe11695ebe4fdf12fe)

Conflicts:
src/amd/vulkan/radv_query.c

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b35600422ddbe1e17f11e9235cbcff043e303bf
Author: Timothy Arceri 
Date:   Fri Nov 2 13:33:52 2018 +1100

ac/nir_to_llvm: fix b2f for f64

Fixes: d7e0d47b9de3 ("nir: Add a bunch of b2[if] optimizations")

Reviewed-by: Dave Airlie 
(cherry picked from commit 9aa3c1915ea039a0301849f2ac78fbe579972864)

URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ede46c67ea35c076721aac0d1b751eb589e50629
Author: Emil Velikov 
Date:   Wed Nov 7 15:59:07 2018 +

docs: document the staging branch and add reference to it

A while back we agreed that having a live/staging branch is beneficial.
Sadly we forgot to document that, so here is my first attempt.

Document the caveat that the branch history is not