spirv sample 2. Download: sample2.spv
03 02 23 07 00 00 01 00 08 00 08 00 6C 5D 00 00 00 00 00 00 11 00 02 00 01 00 00 00 11 00 02 00 2D 00 00 00 0B 00 06 00 01 00 00 00 47 4C 53 4C 2E 73 74 64 2E 34 35 30 00 00 00 00 0E 00 03 00 00 00 00 00 01 00 00 00 0F 00 0F 00 04 00 00 00 1F 16 00 00 6D 61 69 6E 00 00 00 00 66 10 00 00 8A 14 00 00 D9 0B 00 00 66 0F 00 00 4F 17 00 00 8E 14 00 00 F9 15 00 00 46 0C 00 00 D9 0C 00 00 DD 10 00 00 10 00 03 00 1F 16 00 00 07 00 00 00 48 00 05 00 F9 03 00 00 00 00 00 00 23 00 00 00 A0 00 00 00 47 00 04 00 4F 0A 00 00 06 00 00 00 B0 00 00 00 48 00 05 00 D7 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 47 00 03 00 D7 00 00 00 02 00 00 00 47 00 04 00 1C 56 00 00 22 00 00 00 00 00 00 00 47 00 04 00 1C 56 00 00 21 00 00 00 00 00 00 00 48 00 05 00 D7 03 00 00 00 00 00 00 23 00 00 00 50 00 00 00 47 00 03 00 D7 03 00 00 02 00 00 00 47 00 04 00 66 10 00 00 1E 00 00 00 00 00 00 00 47 00 04 00 8A 14 00 00 1E 00 00 00 01 00 00 00 47 00 04 00 D9 0B 00 00 1E 00 00 00 02 00 00 00 47 00 04 00 66 0F 00 00 1E 00 00 00 03 00 00 00 47 00 03 00 4F 17 00 00 10 00 00 00 47 00 04 00 4F 17 00 00 1E 00 00 00 04 00 00 00 47 00 04 00 8E 14 00 00 1E 00 00 00 05 00 00 00 47 00 04 00 F9 15 00 00 1E 00 00 00 06 00 00 00 47 00 03 00 46 0C 00 00 0E 00 00 00 47 00 04 00 46 0C 00 00 1E 00 00 00 07 00 00 00 47 00 04 00 D9 0C 00 00 0B 00 00 00 0F 00 00 00 47 00 04 00 DD 10 00 00 1E 00 00 00 00 00 00 00 13 00 02 00 08 00 00 00 21 00 03 00 02 05 00 00 08 00 00 00 16 00 03 00 0D 00 00 00 20 00 00 00 17 00 04 00 18 00 00 00 0D 00 00 00 03 00 00 00 17 00 04 00 1D 00 00 00 0D 00 00 00 04 00 00 00 15 00 04 00 0B 00 00 00 20 00 00 00 00 00 00 00 15 00 04 00 0C 00 00 00 20 00 00 00 01 00 00 00 2B 00 04 00 0C 00 00 00 0B 0A 00 00 00 00 00 00 1E 00 03 00 F9 03 00 00 1D 00 00 00 2B 00 04 00 0B 00 00 00 8A 0B 00 00 80 00 00 00 1C 00 04 00 4F 0A 00 00 F9 03 00 00 8A 0B 00 00 1E 00 03 00 D7 00 00 00 4F 0A 00 00 20 00 04 00 54 03 00 00 02 00 00 00 D7 00 00 00 3B 00 04 00 54 03 00 00 1C 56 00 00 02 00 00 00 1E 00 03 00 D7 03 00 00 0C 00 00 00 20 00 04 00 54 06 00 00 09 00 00 00 D7 03 00 00 3B 00 04 00 54 06 00 00 42 13 00 00 09 00 00 00 20 00 04 00 89 02 00 00 09 00 00 00 0C 00 00 00 20 00 04 00 9A 02 00 00 02 00 00 00 1D 00 00 00 20 00 04 00 95 02 00 00 01 00 00 00 18 00 00 00 3B 00 04 00 95 02 00 00 66 10 00 00 01 00 00 00 3B 00 04 00 95 02 00 00 8A 14 00 00 01 00 00 00 20 00 04 00 9B 02 00 00 01 00 00 00 1D 00 00 00 3B 00 04 00 9B 02 00 00 D9 0B 00 00 01 00 00 00 3B 00 04 00 9B 02 00 00 66 0F 00 00 01 00 00 00 3B 00 04 00 95 02 00 00 4F 17 00 00 01 00 00 00 3B 00 04 00 95 02 00 00 8E 14 00 00 01 00 00 00 3B 00 04 00 95 02 00 00 F9 15 00 00 01 00 00 00 20 00 04 00 88 02 00 00 01 00 00 00 0B 00 00 00 3B 00 04 00 88 02 00 00 46 0C 00 00 01 00 00 00 3B 00 04 00 9B 02 00 00 D9 0C 00 00 01 00 00 00 20 00 04 00 9C 02 00 00 03 00 00 00 1D 00 00 00 3B 00 04 00 9C 02 00 00 DD 10 00 00 03 00 00 00 2B 00 04 00 0B 00 00 00 0A 0A 00 00 00 00 00 00 36 00 05 00 08 00 00 00 1F 16 00 00 00 00 00 00 02 05 00 00 F8 00 02 00 6B 5D 00 00 41 00 05 00 89 02 00 00 D9 1B 00 00 42 13 00 00 0A 0A 00 00 3D 00 04 00 0C 00 00 00 0B 3D 00 00 D9 1B 00 00 41 00 07 00 9A 02 00 00 81 4E 00 00 1C 56 00 00 0B 0A 00 00 0B 3D 00 00 0A 0A 00 00 3D 00 04 00 1D 00 00 00 50 1D 00 00 81 4E 00 00 3E 00 03 00 DD 10 00 00 50 1D 00 00 FD 00 01 00 38 00 01 00
The command `spirv-cross.exe sample2.spv` throws
SPIRV-Cross threw an exception: Buffer block cannot be expressed as any of std430, std140, scalar, even with enhanced layouts. You can try flattening this block to support a more flexible layout.
The command `spirv-cross.exe --flatten-ubo sample2.spv` outputs
#version 450
struct _1017
{
vec4 _m0;
};
uniform vec4 _215[1408];
uniform ivec4 _983[6];
layout(location = 0) in vec3 _4198;
layout(location = 1) in vec3 _5258;
layout(location = 2) in vec4 _3033;
layout(location = 3) in vec4 _3942;
layout(location = 4) centroid in vec3 _5967;
layout(location = 5) in vec3 _5262;
layout(location = 6) in vec3 _5625;
layout(location = 7) flat in uint _3142;
layout(location = 0) out vec4 _4317;
void main()
{
_4317 = _215[_983[5].x * 11 + 10];
}
The command `spirv-cross.exe --glsl-emit-ubo-as-plain-uniforms sample2.spv` outputs
#version 450
struct _1017
{
vec4 _m0;
};
struct _215
{
_1017 _m0[128];
};
uniform _215 _22044;
struct _983
{
int _m0;
};
uniform _983 _4930;
layout(location = 0) in vec3 _4198;
layout(location = 1) in vec3 _5258;
layout(location = 2) in vec4 _3033;
layout(location = 3) in vec4 _3942;
layout(location = 4) centroid in vec3 _5967;
layout(location = 5) in vec3 _5262;
layout(location = 6) in vec3 _5625;
layout(location = 7) flat in uint _3142;
layout(location = 0) out vec4 _4317;
void main()
{
_4317 = _22044._m0[_4930._m0]._m0;
}
The command `spirv-cross.exe --msl sample2.spv` outputs
#include#include using namespace metal; struct _1017 { char _m0_pad[160]; float4 _m0; }; struct _215 { _1017 _m0[128]; }; struct _983 { char _m0_pad[80]; int _m0; }; struct main0_out { float4 m_4317 [[color(0)]]; }; fragment main0_out main0(constant _215& _22044 [[buffer(0)]], constant _983& _4930 [[buffer(1)]]) { main0_out out = {}; out.m_4317 = _22044._m0[_4930._m0]._m0; return out; }
The command `Release\spirv-cross.exe --hlsl-flatten-matrix-vertex-input-semantics --flatten-ubo vcs_vulkan_samples\sample2.spv` outputs
#version 450
struct _1017
{
vec4 _m0;
};
uniform vec4 _215[1408];
uniform ivec4 _983[6];
layout(location = 0) in vec3 _4198;
layout(location = 1) in vec3 _5258;
layout(location = 2) in vec4 _3033;
layout(location = 3) in vec4 _3942;
layout(location = 4) centroid in vec3 _5967;
layout(location = 5) in vec3 _5262;
layout(location = 6) in vec3 _5625;
layout(location = 7) flat in uint _3142;
layout(location = 0) out vec4 _4317;
void main()
{
_4317 = _215[_983[5].x * 11 + 10];
}
The command `Release\spirv-cross.exe --hlsl --flatten-ubo vcs_vulkan_samples\sample2.spv` outputs
#version 450
struct _1017
{
float4 _m0;
};
uniform float4 _215[1408];
uniform int4 _983[6];
static float3 _4198;
static float3 _5258;
static float4 _3033;
static float4 _3942;
static float3 _5967;
static float3 _5262;
static float3 _5625;
static uint _3142;
static float4 _4317;
struct SPIRV_Cross_Input
{
float3 _4198 : TEXCOORD0;
float3 _5258 : TEXCOORD1;
float4 _3033 : TEXCOORD2;
float4 _3942 : TEXCOORD3;
centroid float3 _5967 : TEXCOORD4;
float3 _5262 : TEXCOORD5;
float3 _5625 : TEXCOORD6;
nointerpolation uint _3142 : TEXCOORD7;
};
struct SPIRV_Cross_Output
{
float4 _4317 : COLOR0;
};
void frag_main()
{
_4317 = _215[_983[5].x * 11 + 10];
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
_4198 = stage_input._4198;
_5258 = stage_input._5258;
_3033 = stage_input._3033;
_3942 = stage_input._3942;
_5967 = stage_input._5967;
_5262 = stage_input._5262;
_5625 = stage_input._5625;
_3142 = stage_input._3142;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output._4317 = float4(_4317);
return stage_output;
}