mesa/src
Roland Scheidegger 03f66dfb4b llvmpipe: ditch additional ref counting for vertex/geometry sampler views
The cleaning up was quite a performance hog (making pipe_resource_reference
the number two in profilers on the vertex path, and 3rd overall, with its
cousin pipe_reference_described not far behind) if there were lots
of tiny draw calls (ipers). Now the reason was really that it was blindly
calling this for all potential shader views (so 32 each for vs and gs) even
though the app never touched a single one which could have been fixed,
however I can't come up with a good reason why we refcount these. We've got
references, of course, in the sampler views, which should be quite sufficient
as we do all vertex and geometry shader execution fully synchronous.
(Calling prepare_shader_sampling for all draw calls even if there were no
changes looks quite suboptimal too, but generally we don't really expect vs/gs
shader sampling to be used much with llvmpipe, and there's even an early exit
if there aren't any views to avoid the "null loop" albeit it's now no longer
always trying to loop through all 32 slots. Maybe improve another time...).
Of course, if we manage to make vertex loads run asynchronously some day,
we need references again, but adding that back would be the least of the
problems...
Also only set LP_NEW_SAMPLER_VIEW for fragment sampler views. Nothing on the
vertex side depends on it (I suppose we'd really wanted a separate flag in
any case).
(Good for a 3% improvement or so in ipers under the right conditions.)

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
2016-01-15 20:13:45 +01:00
..
egl egl: don't forget to ship platform_x11_dri3.h into the tarball 2015-11-20 18:08:04 +00:00
gallium llvmpipe: ditch additional ref counting for vertex/geometry sampler views 2016-01-15 20:13:45 +01:00
gbm gbm.h: Add a missing stddef.h include for size_t. 2015-10-30 19:12:14 +00:00
getopt
glsl glsl: restrict consumer stage condition to modify interpolation type 2016-01-15 07:06:41 +01:00
glx glx/dri3: a drawable might not be bound at wait time 2015-12-21 06:43:58 -05:00
gtest mesa: Enable subdir-objects globally. 2015-06-26 12:55:25 +01:00
hgl glapi/hgl: Drop extern "C" as it was added to glapi 2015-05-13 15:26:29 -04:00
loader loader: unconditionally add AM_CPPFLAGS to libloader_la_CPPFLAGS 2015-11-23 12:07:50 +00:00
mapi glapi: add ARB_indirect_parameters definitions 2016-01-07 18:38:46 -05:00
mesa i965: Apply add_const_offset_to_base for vec4 VS inputs too. 2016-01-14 21:32:59 -08:00
util ralloc: Fix ralloc_adopt() to the old context's last child's parent. 2015-12-18 23:30:51 -08:00
Makefile.am glsl: move shader_enums into nir 2015-10-09 15:03:28 -04:00
SConscript scons: rework the EGL build 2015-07-22 16:35:27 +01:00