I think this series addresses all the issues raised for v1, except making similar changes to anv_cmd_buffer_alloc_dynamic_state and anv_cmd_buffer_alloc_blorp_binding_table which Jason suggested we should probably do as well, and that I'd like to cover separately from this. The main change from v1 is that we now track errors in anv_batch, which allows us to track and report errors that occur during batch emissions as well.
As discussed during v1, I have dropped the patch "anv: ensure that we don't ever try to adjust relocations more than once", since Jason pointed out that the issue this was trying to address was under discussion in Khronos. I have also pointed that discussion to the test developers so that the tests are updated accordingly when a final decision is made. Besides addressing review feedback, this series incorporates a bunch of additional improvements including better reporting of errors for pipelines (we can do this now because we track out of memory errors in batches) and a few other fixes, mostly crash guards that I had missed before and a few other minor things. I have also changed a bit the order of some patches in the series so related fixes are closer to each other. Iago Toral Quiroga (24): anv: remove unnecessary function prototype. anv: do not try to ref/unref NULL shaders anv/blorp: return early if we failed to create the shader binary anv/cmd_buffer: report errors in vkBeginCommandBuffer() anv/cmd_buffer: add a status field to anv_batch anv: add anv_batch_set_error() and anv_batch_has_error() helpers anv: handle allocation failure in anv_batch_emit_batch() anv: handle allocation failure in anv_batch_emit_dwords() anv: avoid crashes when failing to allocate batches anv: handle failures when growing reloc lists anv/cmd_buffer: report tracked errors in vkEndCommandBuffer() anv/cmd_buffer: skip vkCmdNextSubpass() for broken command buffers anv/cmd_buffer: skip vkCmdEndRenderPass() for broken command buffers anv/cmd_buffer: handle allocation errors during vkCmdBeginRenderPass() anv/cmd_buffer: handle out of memory during vkCmdPushConstants anv: handle memory allocation errors during queue submissions anv/cmd_buffer: skip vkCmdDraw*() on broken command buffers anv/cmd_buffer: skip vkCmdDispatch() on broken command buffers anv/cmd_buffer: skip vkCmdExecuteCommands() on broken command buffers anv/device: assert that commands submitted to a queue are not bogus anv/blorp: make anv_cmd_buffer_alloc_blorp_binding_table() return a VkResult anv: handle errors while allocating new binding table blocks anv: handle errors in emit_binding_table() and emit_samplers() anv: improve error reporting when creating pipelines src/intel/blorp/blorp_genX_exec.h | 25 +++++--- src/intel/vulkan/anv_batch_chain.c | 62 +++++++++++++------ src/intel/vulkan/anv_blorp.c | 38 +++++++----- src/intel/vulkan/anv_cmd_buffer.c | 19 +++++- src/intel/vulkan/anv_device.c | 1 + src/intel/vulkan/anv_pipeline.c | 1 + src/intel/vulkan/anv_pipeline_cache.c | 5 +- src/intel/vulkan/anv_private.h | 56 +++++++++++++---- src/intel/vulkan/genX_blorp_exec.c | 18 +++--- src/intel/vulkan/genX_cmd_buffer.c | 113 +++++++++++++++++++++++++--------- src/intel/vulkan/genX_pipeline.c | 9 ++- 11 files changed, 253 insertions(+), 94 deletions(-) -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev