anv: avoid crashes when failing to allocate batches
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 9 Mar 2017 13:22:25 +0000 (14:22 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Thu, 16 Mar 2017 10:40:05 +0000 (11:40 +0100)
commitd4bdd871dc295610de776d235e58ce8c5eadfded
treed0dd31cb74fbe179510278d28722e3a6acabed19
parent31f5049ff1c851d1b8652c7cb42740a6a7db58de
anv: avoid crashes when failing to allocate batches

Most of the time we use macros that handle this situation transparently,
but there are some cases were we need to handle this explicitly.

This patch makes sure we don't crash, notice that error handling takes
place in the function that actually failed the allocation,
anv_batch_emit_dwords(), which will set the status field of the batch
so it can be used at a later moment to report the error to the user.

v2:
  - Not crashing is not good enough, we need to keep track of the error
    (Topi, Jason). Iago: now that we track errors in the batch, this
    is being handled.
  - Added guards in a few more places that needed it (Iago)

v3:
  - Check result of anv_batch_emitn() for NULL before calling memset()
    in emit_vertex_input() (Topi)

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/blorp/blorp_genX_exec.h
src/intel/vulkan/anv_private.h
src/intel/vulkan/genX_pipeline.c