https://patchwork.freedesktop.org/series/35979/
On Mon, Jan 8, 2018 at 8:40 AM, Lionel Landwerlin < lionel.g.landwer...@intel.com> wrote: > Hmm... The email subject says it's the v3. > Am I missing something? (it's at the top of the list in my client, so it's > probably the last you sent). > > > On 08/01/18 16:38, Jason Ekstrand wrote: > > There's a v3 of this > > On Mon, Jan 8, 2018 at 8:36 AM, Lionel Landwerlin < > lionel.g.landwer...@intel.com> wrote: > >> This series is : >> >> Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> >> >> >> On 04/01/18 01:34, Jason Ekstrand wrote: >> >>> --- >>> src/compiler/spirv/spirv_to_nir.c | 28 ++++++++++++++++++++++++++++ >>> src/compiler/spirv/vtn_private.h | 1 + >>> 2 files changed, 29 insertions(+) >>> >>> diff --git a/src/compiler/spirv/spirv_to_nir.c >>> b/src/compiler/spirv/spirv_to_nir.c >>> index dcff56f..66ea267 100644 >>> --- a/src/compiler/spirv/spirv_to_nir.c >>> +++ b/src/compiler/spirv/spirv_to_nir.c >>> @@ -31,6 +31,8 @@ >>> #include "nir/nir_constant_expressions.h" >>> #include "spirv_info.h" >>> +#include <stdio.h> >>> + >>> void >>> vtn_log(struct vtn_builder *b, enum nir_spirv_debug_level level, >>> size_t spirv_offset, const char *message) >>> @@ -94,6 +96,27 @@ vtn_log_err(struct vtn_builder *b, >>> ralloc_free(msg); >>> } >>> +static void >>> +vtn_dump_shader(struct vtn_builder *b, const char *path, const char >>> *prefix) >>> +{ >>> + static int idx = 0; >>> + >>> + char filename[1024]; >>> + int len = snprintf(filename, sizeof(filename), "%s/%s-%d.spirv", >>> + path, prefix, idx++); >>> + if (len < 0 || len >= sizeof(filename)) >>> + return; >>> + >>> + FILE *f = fopen(filename, "w"); >>> + if (f == NULL) >>> + return; >>> + >>> + fwrite(b->spirv, sizeof(*b->spirv), b->spirv_word_count, f); >>> + fclose(f); >>> + >>> + vtn_info("SPIR-V shader dumped to %s", filename); >>> +} >>> + >>> void >>> _vtn_warn(struct vtn_builder *b, const char *file, unsigned line, >>> const char *fmt, ...) >>> @@ -117,6 +140,10 @@ _vtn_fail(struct vtn_builder *b, const char *file, >>> unsigned line, >>> file, line, fmt, args); >>> va_end(args); >>> + const char *dump_path = getenv("MESA_SPIRV_FAIL_DUMP_PATH"); >>> + if (dump_path) >>> + vtn_dump_shader(b, dump_path, "fail"); >>> + >>> longjmp(b->fail_jump, 1); >>> } >>> @@ -3690,6 +3717,7 @@ spirv_to_nir(const uint32_t *words, size_t >>> word_count, >>> /* Initialize the stn_builder object */ >>> struct vtn_builder *b = rzalloc(NULL, struct vtn_builder); >>> b->spirv = words; >>> + b->spirv_word_count = word_count; >>> b->file = NULL; >>> b->line = -1; >>> b->col = -1; >>> diff --git a/src/compiler/spirv/vtn_private.h >>> b/src/compiler/spirv/vtn_private.h >>> index f7d8f49..374643a 100644 >>> --- a/src/compiler/spirv/vtn_private.h >>> +++ b/src/compiler/spirv/vtn_private.h >>> @@ -531,6 +531,7 @@ struct vtn_builder { >>> jmp_buf fail_jump; >>> const uint32_t *spirv; >>> + size_t spirv_word_count; >>> nir_shader *shader; >>> const struct spirv_to_nir_options *options; >>> >> >> >> > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev