BTW, in case it is useful, I have the series available here, including fixes to review feedback obtained so far:
https://github.com/Igalia/mesa/tree/vk-oom Iago On Fri, 2017-03-10 at 13:38 +0100, Iago Toral Quiroga wrote: > 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(-) > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev