mesa/src
Jason Ekstrand d5e217dbfd i965: Stop looking at NewDriverState when emitting 3DSTATE_URB
Looking at NewDriverState is not safe in general.  The state atom system
is set up to ensure that new bits that get added to NewDriverState get
accumulated into the set of bits used when emitting atoms but it doesn't
go the other way.  If we read NewDriverState, we may not get the full
picture because the per-pipeline state (3D or compute) does not get
added to NewDriverState before state emit is done.  It's especially
dangerous to do this from BLORP (either explicitly or implicitly when
BLORP calls gen7_upload_urb) because that does not happen during one of
the normal state upload paths.

This commit solves the problem by whacking all of the per-shader-stage
URB sizes to zero whenever we change the total URB size.  We still have
to flag BRW_NEW_URB_SIZE to ensure that the gen7_urb atom triggers but
the actual decision in gen7_upload_urb can now be based entirely on URB
sizes rather than on state atoms.  This also makes BLORP correct because
it just asks for a new URB config whenever the vsize is too small and so
any change to the total URB size will trigger blorp to re-emit as well
because 0 < vs_entry_size.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Bugzilla: https://bugs.freedesktop.org/102289
Cc: mesa-stable@lists.freedesktop.org
2017-08-18 17:30:55 -07:00
..
amd radv: disable support for VEGA for now. 2017-08-18 00:49:48 +01:00
broadcom broadcom/genxml: Add V3D 3.3 packet definitions. 2017-08-18 12:54:13 -07:00
compiler glsl: add a few missing int64 constant propagation cases 2017-08-18 02:26:16 -04:00
egl loader_dri3/glx/egl: Optionally use a blit context for blitting operations 2017-08-17 07:39:42 +02:00
gallium gallium/radeon: remove old_fence parameter from r600_gfx_write_event_eop 2017-08-18 16:06:21 +02:00
gbm loader: rework xmlconfig dependency 2017-08-04 23:54:52 +01:00
getopt Introduce .editorconfig 2016-08-31 17:06:54 -07:00
glx glxcmds: Fix a typo in the __APPLE__ codepath 2017-08-17 15:13:33 -07:00
gtest gtest: Update to 1.8.0. 2017-01-20 11:40:52 -08:00
hgl glapi/hgl: remove the final user of _glapi_check_table() 2016-10-06 15:03:46 +01:00
intel anv: Move a comment that got left behind in the u_vector refactor. 2017-08-18 11:56:58 -07:00
loader loader_dri3: Make sure we have an updated back v3 2017-08-17 07:39:42 +02:00
mapi glapi: per the extension spec, the EXT-suffixed function should be used 2017-08-07 20:32:37 -04:00
mesa i965: Stop looking at NewDriverState when emitting 3DSTATE_URB 2017-08-18 17:30:55 -07:00
util anv: Move a comment that got left behind in the u_vector refactor. 2017-08-18 11:56:58 -07:00
vulkan vulkan: Import in the latest 1.0.57 header and XML from Khronos 2017-08-01 13:27:12 -07:00
Makefile.am build: Convert git_sha1_gen script to Python (part2). 2017-08-01 16:33:55 +01:00
SConscript build: Convert git_sha1_gen script to Python. 2017-08-01 15:24:39 +01:00