iris: Push heavy memchecker code to DEBUG
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 21 Nov 2018 11:12:11 +0000 (11:12 +0000)
committerKenneth Graunke <kenneth@whitecape.org>
Fri, 22 Mar 2019 17:38:03 +0000 (10:38 -0700)
commitdb99d02fce1951fc6364aea206fff84ae4c08e2d
tree786672a520fae4fe5ec51d3fcd4124a40e7e3521
parent87f865aab3c08e862938e8f3a8f774e2ee49da7d
iris: Push heavy memchecker code to DEBUG

Invoking VALGRIND_CHECK_MEM_IS_DEFINED pulls in enough code to convince
gcc to not inline __gen_uint and results in a lot of packing code ending
up out-of-line with lots of stack copying. To ameliorate this, only
insert the check inside the packer if DEBUG is defined and instead
perform the validation checking before submitting the batch to the
kernel. This should give accurate results if --trace-origins=yes is
used, and failing that we can recompile in full debug mode to check on
insertion.

Improve drawoverhead baseline by 25% with a default build with
valgrind-dev installed (with effectively no loss of vg coverage).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/gallium/drivers/iris/iris_batch.c
src/gallium/drivers/iris/iris_state.c