Mesa (master): 32 new commits
Nicolai Hähnle
nh at kemper.freedesktop.org
Thu Nov 3 09:15:06 UTC 2016
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=908f92ad1f8562490468716d789f4d78b543399c
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 12:50:09 2016 +0100
radeonsi: generate GS prolog to (partially) fix triangle strip adjacency rotation
Fixes GL45-CTS.geometry_shader.adjacency.adjacency_indiced_triangle_strip and
others.
This leaves the case of triangle strips with adjacency and primitive restarts
open. It seems that the only thing that cares about that is a piglit test.
Fixing this efficiently would be really involved, and I don't want to use the
hammer of degrading to software handling of indices because there may well
be software that uses this draw mode (without caring about the precise
rotation of triangles).
v2:
- skip the GS prolog entirely if workaround is not needed
- only check for TES (TES is always non-null when tessellation is used)
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffe4e829b0da8484ecc98ca4d31bfdbb8d667643
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 21:13:12 2016 +0100
radeonsi: remove si_shader_context::is_gs_copy_shader
It has become redundant.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b2516721b91165936a25d1cfd88c65104ca04b1
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 21:10:37 2016 +0100
radeonsi: make the GS copy shader owned by the GS selector
The copy shader only depends on the selector. This change avoids creating
separate code paths for monolithic vs. non-monolithic geometry shaders.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c6f7d66dc758300e46943ad07da8c3f5d394a03
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 21:09:20 2016 +0100
radeonsi: si_shader_vs only depends on the GS selector
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=693435d846b1208bb962eaf830f10649e56af2bc
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 21:07:53 2016 +0100
radeonsi: si_vgt_gs_mode only depends on the selector
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e1fb7e7fc5d2851debc3138bbc9b71131630bba
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 20:53:37 2016 +0100
radeonsi: make si_generate_gs_copy_shader usable as a standalone function
It really only depends on the shader selector.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba5de0d034abdcf072fb1fbb0cd1cbce06d41e7b
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 22:26:33 2016 +0200
radeonsi: unify the si_compile_* functions for prologs and epilogs
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=aa9583b0dae64767501299dd4c5b686dc09b54a7
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 16:30:17 2016 +0100
radeonsi: get rid of no_{prolog,epilog}
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=75503b190496d9b7276e43802cec1c4adf18189d
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 22:10:00 2016 +0200
radeonsi: get rid of si_llvm_emit_fs_epilogue
It is no longer used.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=611510038a203dc528515dcbbdd72f01c6f326a2
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 22:09:26 2016 +0200
radeonsi: get rid of get_interp_param
Replace by a simple LLVMGetParam, since ctx->no_prolog is always false.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f4439b6bab14016b40dd08cf2dc2585645cd076
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 22:08:10 2016 +0200
radeonsi: get rid of select_interp_param
The condition !ctx->no_prolog is now always true.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=858ac2228f9ef4712ba9bf26dcd4ddf87f104b0c
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 21:49:32 2016 +0200
radeonsi: use TCS epilog for monolithic shaders
For fixed function TCS, we keep the copying of VS outputs to TES inputs inside
the main function; the call to si_copy_tcs_inputs is moved accordingly.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f1be54e53535cda8e8f918bd171dedb20ad677c
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 21:47:02 2016 +0200
radeonsi: extract si_build_tcs_epilog_function
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=be6e31c6a012c9cac9d3ee192a2b48a72deb172a
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 21:42:47 2016 +0200
radeonsi: use VS epilog for monolithic TES
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=06dcb2d2a946bf83a27c8f9efb5f0a210606fe2d
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 21:31:27 2016 +0200
radeonsi: use VS prolog and epilog for monolithic shaders
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9daa2f470b323d3803e729ca42c08c49f608504
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 21:24:35 2016 +0200
radeonsi: extract si_build_vs_{prolog,epilog}_function
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f37e992a3ab1ae0fa77f3b9d67c1fd99da47de7
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 15:38:47 2016 +0200
radeonsi: use PS prolog for monolithic shaders
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=15dd332e6ab59cfcf4f53e77f5a882f983630a38
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 15:36:43 2016 +0200
radeonsi: set num_input_vgprs for fragment shaders in create_function
So that the prolog generated for monolithic fragment shaders will have the
right signature.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fec7ced211fcf5c626eb6657ac2b8532b256a07c
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 14:57:27 2016 +0200
radeonsi: extract si_build_ps_prolog_function
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7115e56c21ace07cf04f5073ba73a533e2182099
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 14:45:59 2016 +0200
radeonsi: use PS epilog for monolithic shaders
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf86c565946cdfd0b0f4a83f20fd8196eefedeb0
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Thu Oct 27 18:48:16 2016 +0200
radeonsi: extract si_build_ps_epilog_function
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b9bba7f6c0fe5b456e7464005063dff8e217847
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Thu Oct 27 18:57:34 2016 +0200
radeonsi: pass the function name to si_llvm_create_func
We will use multiple functions in one module, so they should have
different names.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=96d60dd9ee6a394671debe60b96db703d9ecd674
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Thu Oct 27 17:33:22 2016 +0200
radeonsi: split is_monolithic into no_prolog and no_epilog
This helps to achieve a gradual transition towards building monolithic shaders
via inlining.
no_prolog and no_epilog will be removed by the end of the series,
separate_prolog remains in use to control the PS input mapping.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8db9d915cd771985609370f1d3bdda63eba687b2
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Thu Oct 27 17:22:10 2016 +0200
radeonsi: free data structures when shader compiles fail
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4c1504af6a21793873c330bb6b1c24edf833336c
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Thu Oct 27 17:21:25 2016 +0200
radeonsi: move main TGSI translation into its own function
The idea is that adding prolog and epilog code will be pulled out into the
caller.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=23dfb688ba3b7be0feb2a178e65e419fe2678379
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 14:42:46 2016 +0200
radeonsi: add always-inline pass to si_llvm_finalize_module
Change the pass manager as well, since this is a module-level pass. No
noticeable run-time difference on shader-db.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ada1dabc4792918ce59224d27bef29c106ca0ca
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 11:36:35 2016 +0100
radeonsi: fix signature of export intrinsic in VS epilog
The incompatible signature becomes an issue when the VS epilog gets merged
with the main vertex shader at the IR level.
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=899b2f24a4a6e1a8845e9b9000e51b8857706413
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 14:41:10 2016 +0200
radeonsi: link against amd_common
Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=908100cfae88a9e83560919018fc8a8a3a7bf745
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Fri Oct 28 14:40:24 2016 +0200
amd/common: add ac_is_sgpr_param helper
Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ff5df8f5097d25899996ea344d09be5c76de323
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 11:56:09 2016 +0100
amd/common: build also for gallium drivers
At least when LLVM is used, which is basically always (unless you're only
building r600 without OpenCL).
Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8eabee9ec0c164bd18babfe15311db14040ad337
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Thu Oct 27 16:48:42 2016 +0200
amd/common: move llvm helper prototype to ac_llvm_util.h
Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=37d646c1b3626ad54ed93a784824af7b5abe8a99
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date: Mon Oct 31 14:03:10 2016 +0100
glsl: fix lowering of UBO references of named blocks
When a UBO reference has the form block_name.foo where block_name refers
to a block where the first member has a non-zero offset, the base offset
was incorrectly added to the reference.
Fixes an assertion triggered in debug builds by
GL45-CTS.enhanced_layouts.uniform_block_layout_qualifier_conflict. That test
doesn't properly check for correct execution in this case, so I am also
going to send out a piglit test.
Cc: 13.0 <mesa-stable at lists.freedesktop.org>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
More information about the mesa-commit
mailing list