Mesa (18.3): 22 new commits
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
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