#!/bin/sh # Regenerates src/debug_spirv.h from debug.vert / debug.frag (needs glslc: the Frame has it in /usr/bin). set -e cd "$(dirname "$0")" glslc -O --target-env=vulkan1.1 -fshader-stage=vert debug.vert -o /tmp/debug.vert.spv glslc -O --target-env=vulkan1.1 -fshader-stage=frag debug.frag -o /tmp/debug.frag.spv python3 - /tmp/debug.vert.spv /tmp/debug.frag.spv > ../../src/debug_spirv.h <<'PY' import struct, sys print("#pragma once") print("// GENERATED by tools/debugview/gen_debug_spirv.sh from tools/debugview/debug.{vert,frag}. Do not edit by hand.") print("// vert: in vec3 position @0; set0 b0 buffer { Draw { mat4 clipFromModel[2]; mat4 worldFromModel; vec4 color; } d[]; } by gl_InstanceIndex") print("// frag: out = color, faceted shading when spec 0 = 1") print("#include \n#include \n") for name, path in (("Vert", sys.argv[1]), ("Frag", sys.argv[2])): data = open(path, "rb").read() words = struct.unpack("<%dI" % (len(data) // 4), data) print("static const uint32_t kDebug%sSpirv[] = {" % name) for i in range(0, len(words), 8): print(" " + ",".join("0x%08x" % w for w in words[i:i + 8]) + ",") print("};") print("static const size_t kDebug%sSize = sizeof(kDebug%sSpirv);\n" % (name, name)) PY