[Mesa-dev] [PATCH 0/9] spirv: Improve logging and error handling
Tapani Pälli
tapani.palli at intel.com
Mon Sep 4 07:23:27 UTC 2017
On 08/29/2017 01:55 PM, Tapani Pälli wrote:
> LGTM, patches 1-5
>
> Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
>
> With these changes we can add a nir_spirv_debug_callback that has
> instance and shader object in private data so that we can call
> VK_EXT_debug_report functionality from anv_pipeline code.
>
Went through the rest of it, series is:
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
> On 08/17/2017 08:22 PM, Jason Ekstrand wrote:
>> This series has two objectives:
>>
>> 1) Improve logging to provide more detail and provide hooks so we can
>> plumb errors and warnings through to debug_report extensions.
>>
>> 2) Improve error handling so that not all errors result in killing the
>> process. This is done by adding new spv_fail and spv_assert helpers
>> which log the error and longjump back to a point where we can
>> clean up
>> and return NULL without crashing.
>>
>> There is still quite a ways to go with error handling if we want to be
>> able
>> to guarantee that we won't crash given an arbitrary stream of bytes.
>> However, this should at least be a step in the right direction. There
>> are
>> probably at least a couple of cases where I could have left an
>> assert() as
>> an actual "kill the process" assert because it's testing for internal
>> consistency. However, the vast majority of them are validation checks so
>> it seemed better to just search+replace them all and we can convert
>> the few
>> that we want back to real asserts later.
>>
>> Cc: "Ian Romanick" <idr at freedesktop.org>
>>
>> Jason Ekstrand (9):
>> ralloc: Allow reparenting to a NULL context
>> spirv: Parent the nir_shader to the builder while building
>> spirv: Re-arrange vtn_builder initialization
>> spirv: Rework logging
>> spirv: Do something useful with OpSource
>> util: Add a NORETURN macro
>> spirv: Add vtn_fail and vtn_assert helpers
>> spirv: Replace assert with vtn_assert
>> spirv: Replace unreachable with vtn_fail
>>
>> configure.ac | 1 +
>> src/amd/vulkan/radv_pipeline.c | 2 +-
>> src/compiler/spirv/nir_spirv.h | 17 +-
>> src/compiler/spirv/spirv2nir.c | 3 +-
>> src/compiler/spirv/spirv_to_nir.c | 496
>> +++++++++++++++++++++++--------------
>> src/compiler/spirv/vtn_alu.c | 46 ++--
>> src/compiler/spirv/vtn_cfg.c | 59 ++---
>> src/compiler/spirv/vtn_glsl450.c | 18 +-
>> src/compiler/spirv/vtn_private.h | 56 ++++-
>> src/compiler/spirv/vtn_variables.c | 253 +++++++++----------
>> src/intel/vulkan/anv_pipeline.c | 2 +-
>> src/util/macros.h | 6 +
>> src/util/ralloc.c | 2 +-
>> 13 files changed, 578 insertions(+), 383 deletions(-)
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list