From: Kevin Rogovin <kevin.rogo...@intel.com> This patch series adds a new debug option to pad each GEM BO allocated by the brw_bufmgr with pseudo-(weak) random noise values which are then checked after each batchbuffer dispatch to the kernel. This can be quite valuable to find diffucult to track down heisenberg style bugs.
A possible follow-up series would be to write to stderr (or another logging mechanism) if the OOB write is to a GEM BO that backs a GL buffer object; that features would be quite useful for application developers. v3: Change from using pread to mapping buffer padding on checking noise padding. (spawned from Chris Wilson feedback) Use gen_invalidate_range() to make sure values read are correct. (suggested/requested by Chris Wilson) Add comment to declaration of brw_bo_padding_is_good() indicating that one needs to wait for the GPU to finish the rendering of the contents of the batchbuffer that uses the GEM BO before calling brw_bo_padding_is_good(). (spawned from Chris Wilson feedback) Call brw_bo_wait_rendering() when DEBUG_OUT_OF_BOUND_CHK bit is up before using brw_bo_padding_is_good(). (spawned from Chris Wilson feedback) v2: Change from using rand() to using internal generating function (requested/suggested by Jason Ekstrand) Avoid having extra pointers in brw_bo struct via using the internal function and allocating buffer for pread at brw_bo_padding_is_good() (requested/suggested by Jason Ekstrand) Comments indicating that pread ioctl will do the required waiting for GPU commands to finish Kevin Rogovin (3): intel/common:add debug flag for adding and checking padding on BO's i965: add noise padding to buffer object and function to check if noise is correct i965: if DEBUG_OUT_OF_BOUND_CHK is up, check that noise padding for each bo used in batchbuffer is correct Kevin Rogovin (3): intel/common:add debug flag for adding and checking padding on BO's i965: add noise padding to buffer object and function to check if noise is correct i965: if DEBUG_OUT_OF_BOUND_CHK is up, check that noise padding for each bo used in batchbuffer is correct src/intel/common/gen_debug.c | 1 + src/intel/common/gen_debug.h | 1 + src/mesa/drivers/dri/i965/brw_bufmgr.c | 115 +++++++++++++++++++++++++- src/mesa/drivers/dri/i965/brw_bufmgr.h | 13 +++ src/mesa/drivers/dri/i965/intel_batchbuffer.c | 22 ++++- 5 files changed, 150 insertions(+), 2 deletions(-) -- 2.15.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev