[Mesa-dev] [PATCH v2 00/24] anv: Handle out of memory situations better
Pohjolainen, Topi
topi.pohjolainen at gmail.com
Wed Mar 15 08:47:49 UTC 2017
On Tue, Mar 14, 2017 at 02:15:51PM +0100, Iago Toral wrote:
> 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
I recorded comments in patches 2, 3, 4, 5, 7, 9, 10, 21 and 22. In case of 4
the question was if we should squash it with 14 - I don't have strong
preference, either way is fine. And I think we agree on the difficult bits.
Patch 10 I'd like to see how it looks revised, the rest should be trivial
enough to fix locally.
Otherwise the series is:
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
>
> 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(-)
> >
More information about the mesa-dev
mailing list