[vulkan] Point list rendering improvements

Implement register and vertex-shader-written point size. Fix point size
computation in geometry shader (convert pixel size to NDC scale using
viewport size). Fix point sprite coordinate generation.
This commit is contained in:
Dan Weatherford 2016-11-02 23:48:21 -05:00
parent c1db89b4dd
commit 6f6e638f2f
14 changed files with 1501 additions and 1296 deletions

View File

@ -155,9 +155,10 @@ void SpirvShaderTranslator::StartTranslation() {
}
// Push constants, represented by SpirvPushConstants.
Id push_constants_type = b.makeStructType(
{vec4_float_type_, vec4_float_type_, vec4_float_type_, uint_type_},
"push_consts_type");
Id push_constants_type =
b.makeStructType({vec4_float_type_, vec4_float_type_, vec4_float_type_,
vec4_float_type_, uint_type_},
"push_consts_type");
b.addDecoration(push_constants_type, spv::Decoration::DecorationBlock);
// float4 window_scale;
@ -170,16 +171,21 @@ void SpirvShaderTranslator::StartTranslation() {
push_constants_type, 1, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, vtx_fmt)));
b.addMemberName(push_constants_type, 1, "vtx_fmt");
// float4 alpha_test;
// float4 vtx_fmt;
b.addMemberDecoration(
push_constants_type, 2, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, alpha_test)));
b.addMemberName(push_constants_type, 2, "alpha_test");
// uint ps_param_gen;
static_cast<int>(offsetof(SpirvPushConstants, point_size)));
b.addMemberName(push_constants_type, 2, "point_size");
// float4 alpha_test;
b.addMemberDecoration(
push_constants_type, 3, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, alpha_test)));
b.addMemberName(push_constants_type, 3, "alpha_test");
// uint ps_param_gen;
b.addMemberDecoration(
push_constants_type, 4, spv::Decoration::DecorationOffset,
static_cast<int>(offsetof(SpirvPushConstants, ps_param_gen)));
b.addMemberName(push_constants_type, 3, "ps_param_gen");
b.addMemberName(push_constants_type, 4, "ps_param_gen");
push_consts_ = b.createVariable(spv::StorageClass::StorageClassPushConstant,
push_constants_type, "push_consts");
@ -292,6 +298,24 @@ void SpirvShaderTranslator::StartTranslation() {
b.createStore(vec4_float_zero_, ptr);
}
point_size_ = b.createVariable(spv::StorageClass::StorageClassOutput,
float_type_, "point_size");
b.addDecoration(point_size_, spv::Decoration::DecorationLocation, 17);
// Set default point-size value (-1.0f, indicating to the geometry shader
// that the register value should be used instead of the per-vertex value)
b.createStore(point_size_, b.makeFloatConstant(-1.0f));
point_coord_ = b.createVariable(spv::StorageClass::StorageClassOutput,
vec2_float_type_, "point_coord");
b.addDecoration(point_coord_, spv::Decoration::DecorationLocation, 16);
// point_coord is only ever populated in a geometry shader. Just write
// zero to it in the vertex shader.
b.createStore(
point_coord_,
b.makeCompositeConstant(vec2_float_type_,
std::vector<Id>({b.makeFloatConstant(0.0f),
b.makeFloatConstant(0.0f)})));
pos_ = b.createVariable(spv::StorageClass::StorageClassOutput,
vec4_float_type_, "gl_Position");
b.addDecoration(pos_, spv::Decoration::DecorationBuiltIn,
@ -303,6 +327,8 @@ void SpirvShaderTranslator::StartTranslation() {
spv::BuiltIn::BuiltInVertexIndex);
interface_ids_.push_back(interpolators_);
interface_ids_.push_back(point_coord_);
interface_ids_.push_back(point_size_);
interface_ids_.push_back(pos_);
interface_ids_.push_back(vertex_idx_);
@ -322,6 +348,10 @@ void SpirvShaderTranslator::StartTranslation() {
interpolators_type, "interpolators");
b.addDecoration(interpolators_, spv::Decoration::DecorationLocation, 0);
point_coord_ = b.createVariable(spv::StorageClass::StorageClassInput,
vec2_float_type_, "point_coord");
b.addDecoration(point_coord_, spv::Decoration::DecorationLocation, 16);
// Pixel fragment outputs (one per render target).
Id frag_outputs_type =
b.makeArrayType(vec4_float_type_, b.makeUintConstant(4), 0);
@ -335,6 +365,7 @@ void SpirvShaderTranslator::StartTranslation() {
spv::BuiltIn::BuiltInFragDepth);
interface_ids_.push_back(interpolators_);
interface_ids_.push_back(point_coord_);
interface_ids_.push_back(frag_outputs_);
interface_ids_.push_back(frag_depth_);
// TODO(benvanik): frag depth, etc.
@ -358,7 +389,7 @@ void SpirvShaderTranslator::StartTranslation() {
// Setup ps_param_gen
auto ps_param_gen_idx_ptr = b.createAccessChain(
spv::StorageClass::StorageClassPushConstant, push_consts_,
std::vector<Id>({b.makeUintConstant(3)}));
std::vector<Id>({b.makeUintConstant(4)}));
auto ps_param_gen_idx = b.createLoad(ps_param_gen_idx_ptr);
auto frag_coord = b.createVariable(spv::StorageClass::StorageClassInput,
@ -366,16 +397,11 @@ void SpirvShaderTranslator::StartTranslation() {
b.addDecoration(frag_coord, spv::Decoration::DecorationBuiltIn,
spv::BuiltIn::BuiltInFragCoord);
auto point_coord = b.createVariable(spv::StorageClass::StorageClassInput,
vec2_float_type_, "gl_PointCoord");
b.addDecoration(point_coord, spv::Decoration::DecorationBuiltIn,
spv::BuiltIn::BuiltInPointCoord);
interface_ids_.push_back(frag_coord);
interface_ids_.push_back(point_coord);
auto param = b.createOp(
spv::Op::OpVectorShuffle, vec4_float_type_,
{b.createLoad(frag_coord), b.createLoad(point_coord), 0, 1, 4, 5});
{b.createLoad(frag_coord), b.createLoad(point_coord_), 0, 1, 4, 5});
/*
// TODO: gl_FrontFacing
auto param_x = b.createCompositeExtract(param, float_type_, 0);
@ -516,7 +542,7 @@ std::vector<uint8_t> SpirvShaderTranslator::CompleteTranslation() {
// Alpha test
auto alpha_test_ptr = b.createAccessChain(
spv::StorageClass::StorageClassPushConstant, push_consts_,
std::vector<Id>({b.makeUintConstant(2)}));
std::vector<Id>({b.makeUintConstant(3)}));
auto alpha_test = b.createLoad(alpha_test_ptr);
auto alpha_test_enabled =
@ -2697,7 +2723,11 @@ void SpirvShaderTranslator::StoreToResult(Id source_value_id,
break;
case InstructionStorageTarget::kPointSize:
assert_true(is_vertex_shader());
// TODO(benvanik): result.storage_index
storage_pointer = point_size_;
storage_class = spv::StorageClass::StorageClassOutput;
storage_type = float_type_;
storage_offsets.push_back(0);
storage_array = false;
break;
case InstructionStorageTarget::kColorTarget:
assert_true(is_pixel_shader());

View File

@ -29,9 +29,12 @@ namespace gpu {
// supported size).
struct SpirvPushConstants {
// Accessible to vertex shader only:
float window_scale[4]; // sx,sy, ?, ?
float window_scale[4]; // scale x/y, viewport width/height (pixels)
float vtx_fmt[4];
// Accessible to geometry shader only:
float point_size[4]; // psx, psy, unused, unused
// Accessible to fragment shader only:
float alpha_test[4]; // alpha test enable, func, ref, ?
uint32_t ps_param_gen;
@ -40,8 +43,11 @@ static_assert(sizeof(SpirvPushConstants) <= 128,
"Push constants must fit <= 128b");
constexpr uint32_t kSpirvPushConstantVertexRangeOffset = 0;
constexpr uint32_t kSpirvPushConstantVertexRangeSize = (sizeof(float) * 4) * 2;
constexpr uint32_t kSpirvPushConstantGeometryRangeOffset =
kSpirvPushConstantVertexRangeOffset + kSpirvPushConstantVertexRangeSize;
constexpr uint32_t kSpirvPushConstantGeometryRangeSize = (sizeof(float) * 4);
constexpr uint32_t kSpirvPushConstantFragmentRangeOffset =
kSpirvPushConstantVertexRangeSize;
kSpirvPushConstantGeometryRangeOffset + kSpirvPushConstantGeometryRangeSize;
constexpr uint32_t kSpirvPushConstantFragmentRangeSize =
(sizeof(float) * 4) + sizeof(uint32_t);
constexpr uint32_t kSpirvPushConstantsSize = sizeof(SpirvPushConstants);
@ -145,6 +151,8 @@ class SpirvShaderTranslator : public ShaderTranslator {
spv::Id pos_ = 0;
spv::Id push_consts_ = 0;
spv::Id interpolators_ = 0;
spv::Id point_size_ = 0;
spv::Id point_coord_ = 0;
spv::Id vertex_idx_ = 0;
spv::Id frag_outputs_ = 0, frag_depth_ = 0;
spv::Id samplers_ = 0;

View File

@ -65,8 +65,9 @@ PipelineCache::PipelineCache(
// We need to keep these under 128b across all stages.
// TODO(benvanik): split between the stages?
VkPushConstantRange push_constant_ranges[1];
push_constant_ranges[0].stageFlags =
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT;
push_constant_ranges[0].stageFlags = VK_SHADER_STAGE_VERTEX_BIT |
VK_SHADER_STAGE_GEOMETRY_BIT |
VK_SHADER_STAGE_FRAGMENT_BIT;
push_constant_ranges[0].offset = 0;
push_constant_ranges[0].size = kSpirvPushConstantsSize;
@ -509,68 +510,66 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
XE_GPU_REG_PA_CL_VPORT_YSCALE);
viewport_state_dirty |= SetShadowRegister(&regs.pa_cl_vport_zscale,
XE_GPU_REG_PA_CL_VPORT_ZSCALE);
// RB_SURFACE_INFO
auto surface_msaa =
static_cast<MsaaSamples>((regs.rb_surface_info >> 16) & 0x3);
// Apply a multiplier to emulate MSAA.
float window_width_scalar = 1;
float window_height_scalar = 1;
switch (surface_msaa) {
case MsaaSamples::k1X:
break;
case MsaaSamples::k2X:
window_height_scalar = 2;
break;
case MsaaSamples::k4X:
window_width_scalar = window_height_scalar = 2;
break;
}
// Whether each of the viewport settings are enabled.
// http://www.x.org/docs/AMD/old/evergreen_3D_registers_v2.pdf
bool vport_xscale_enable = (regs.pa_cl_vte_cntl & (1 << 0)) > 0;
bool vport_xoffset_enable = (regs.pa_cl_vte_cntl & (1 << 1)) > 0;
bool vport_yscale_enable = (regs.pa_cl_vte_cntl & (1 << 2)) > 0;
bool vport_yoffset_enable = (regs.pa_cl_vte_cntl & (1 << 3)) > 0;
bool vport_zscale_enable = (regs.pa_cl_vte_cntl & (1 << 4)) > 0;
bool vport_zoffset_enable = (regs.pa_cl_vte_cntl & (1 << 5)) > 0;
assert_true(vport_xscale_enable == vport_yscale_enable ==
vport_zscale_enable == vport_xoffset_enable ==
vport_yoffset_enable == vport_zoffset_enable);
float vpw, vph, vpx, vpy;
float texel_offset_x = 0.0f;
float texel_offset_y = 0.0f;
if (vport_xscale_enable) {
float vox = vport_xoffset_enable ? regs.pa_cl_vport_xoffset : 0;
float voy = vport_yoffset_enable ? regs.pa_cl_vport_yoffset : 0;
float vsx = vport_xscale_enable ? regs.pa_cl_vport_xscale : 1;
float vsy = vport_yscale_enable ? regs.pa_cl_vport_yscale : 1;
window_width_scalar = window_height_scalar = 1;
vpw = 2 * window_width_scalar * vsx;
vph = -2 * window_height_scalar * vsy;
vpx = window_width_scalar * vox - vpw / 2 + window_offset_x;
vpy = window_height_scalar * voy - vph / 2 + window_offset_y;
} else {
vpw = 2 * 2560.0f * window_width_scalar;
vph = 2 * 2560.0f * window_height_scalar;
vpx = -2560.0f * window_width_scalar + window_offset_x;
vpy = -2560.0f * window_height_scalar + window_offset_y;
}
if (viewport_state_dirty) {
// RB_SURFACE_INFO
auto surface_msaa =
static_cast<MsaaSamples>((regs.rb_surface_info >> 16) & 0x3);
// Apply a multiplier to emulate MSAA.
float window_width_scalar = 1;
float window_height_scalar = 1;
switch (surface_msaa) {
case MsaaSamples::k1X:
break;
case MsaaSamples::k2X:
window_height_scalar = 2;
break;
case MsaaSamples::k4X:
window_width_scalar = window_height_scalar = 2;
break;
}
// Whether each of the viewport settings are enabled.
// http://www.x.org/docs/AMD/old/evergreen_3D_registers_v2.pdf
bool vport_xscale_enable = (regs.pa_cl_vte_cntl & (1 << 0)) > 0;
bool vport_xoffset_enable = (regs.pa_cl_vte_cntl & (1 << 1)) > 0;
bool vport_yscale_enable = (regs.pa_cl_vte_cntl & (1 << 2)) > 0;
bool vport_yoffset_enable = (regs.pa_cl_vte_cntl & (1 << 3)) > 0;
bool vport_zscale_enable = (regs.pa_cl_vte_cntl & (1 << 4)) > 0;
bool vport_zoffset_enable = (regs.pa_cl_vte_cntl & (1 << 5)) > 0;
assert_true(vport_xscale_enable == vport_yscale_enable ==
vport_zscale_enable == vport_xoffset_enable ==
vport_yoffset_enable == vport_zoffset_enable);
VkViewport viewport_rect;
std::memset(&viewport_rect, 0, sizeof(VkViewport));
if (vport_xscale_enable) {
float texel_offset_x = 0.0f;
float texel_offset_y = 0.0f;
float vox = vport_xoffset_enable ? regs.pa_cl_vport_xoffset : 0;
float voy = vport_yoffset_enable ? regs.pa_cl_vport_yoffset : 0;
float vsx = vport_xscale_enable ? regs.pa_cl_vport_xscale : 1;
float vsy = vport_yscale_enable ? regs.pa_cl_vport_yscale : 1;
viewport_rect.x = vpx + texel_offset_x;
viewport_rect.y = vpy + texel_offset_y;
viewport_rect.width = vpw;
viewport_rect.height = vph;
window_width_scalar = window_height_scalar = 1;
float vpw = 2 * window_width_scalar * vsx;
float vph = -2 * window_height_scalar * vsy;
float vpx = window_width_scalar * vox - vpw / 2 + window_offset_x;
float vpy = window_height_scalar * voy - vph / 2 + window_offset_y;
viewport_rect.x = vpx + texel_offset_x;
viewport_rect.y = vpy + texel_offset_y;
viewport_rect.width = vpw;
viewport_rect.height = vph;
} else {
float texel_offset_x = 0.0f;
float texel_offset_y = 0.0f;
float vpw = 2 * 2560.0f * window_width_scalar;
float vph = 2 * 2560.0f * window_height_scalar;
float vpx = -2560.0f * window_width_scalar + window_offset_x;
float vpy = -2560.0f * window_height_scalar + window_offset_y;
viewport_rect.x = vpx + texel_offset_x;
viewport_rect.y = vpy + texel_offset_y;
viewport_rect.width = vpw;
viewport_rect.height = vph;
}
float voz = vport_zoffset_enable ? regs.pa_cl_vport_zoffset : 0;
float vsz = vport_zscale_enable ? regs.pa_cl_vport_zscale : 1;
viewport_rect.minDepth = voz;
@ -625,6 +624,8 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
SetShadowRegister(&regs.rb_colorcontrol, XE_GPU_REG_RB_COLORCONTROL);
push_constants_dirty |=
SetShadowRegister(&regs.rb_alpha_ref, XE_GPU_REG_RB_ALPHA_REF);
push_constants_dirty |=
SetShadowRegister(&regs.pa_su_point_size, XE_GPU_REG_PA_SU_POINT_SIZE);
if (push_constants_dirty) {
xenos::xe_gpu_program_cntl_t program_cntl;
program_cntl.dword_0 = regs.sq_program_cntl;
@ -648,6 +649,8 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
push_constants.window_scale[0] = 1.0f / 2560.0f;
push_constants.window_scale[1] = 1.0f / 2560.0f;
}
push_constants.window_scale[2] = vpw;
push_constants.window_scale[3] = vph;
// http://www.x.org/docs/AMD/old/evergreen_3D_registers_v2.pdf
// VTX_XY_FMT = true: the incoming XY have already been multiplied by 1/W0.
@ -664,6 +667,12 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
push_constants.vtx_fmt[2] = vtx_z_fmt;
push_constants.vtx_fmt[3] = vtx_w0_fmt;
// Point size
push_constants.point_size[0] =
static_cast<float>((regs.pa_su_point_size & 0xffff0000) >> 16) / 8.0f;
push_constants.point_size[1] =
static_cast<float>((regs.pa_su_point_size & 0x0000ffff)) / 8.0f;
// Alpha testing -- ALPHAREF, ALPHAFUNC, ALPHATESTENABLE
// Emulated in shader.
// if(ALPHATESTENABLE && frag_out.a [<=/ALPHAFUNC] ALPHAREF) discard;
@ -680,10 +689,11 @@ bool PipelineCache::SetDynamicState(VkCommandBuffer command_buffer,
int ps_param_gen = (regs.sq_context_misc >> 8) & 0xFF;
push_constants.ps_param_gen = program_cntl.param_gen ? ps_param_gen : -1;
vkCmdPushConstants(
command_buffer, pipeline_layout_,
VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT, 0,
kSpirvPushConstantsSize, &push_constants);
vkCmdPushConstants(command_buffer, pipeline_layout_,
VK_SHADER_STAGE_VERTEX_BIT |
VK_SHADER_STAGE_GEOMETRY_BIT |
VK_SHADER_STAGE_FRAGMENT_BIT,
0, kSpirvPushConstantsSize, &push_constants);
}
if (full_update) {
@ -1160,6 +1170,9 @@ PipelineCache::UpdateStatus PipelineCache::UpdateRasterizationState(
if (primitive_type == PrimitiveType::kRectangleList) {
// Rectangle lists aren't culled. There may be other things they skip too.
state_info.cullMode = VK_CULL_MODE_NONE;
} else if (primitive_type == PrimitiveType::kPointList) {
// Face culling doesn't apply to point primitives.
state_info.cullMode = VK_CULL_MODE_NONE;
}
state_info.depthBiasEnable = VK_FALSE;

View File

@ -281,6 +281,7 @@ class PipelineCache {
uint32_t sq_context_misc;
uint32_t rb_colorcontrol;
float rb_alpha_ref;
uint32_t pa_su_point_size;
SetDynamicStateRegisters() { Reset(); }
void Reset() { std::memset(this, 0, sizeof(*this)); }

View File

@ -29,9 +29,11 @@ const uint8_t dummy_frag[] = {
0x63, 0x61, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x76, 0x74, 0x78, 0x5F,
0x66, 0x6D, 0x74, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65,
0x02, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69,
0x7A, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65,
0x73, 0x74, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D,
0x04, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D,
0x5F, 0x67, 0x65, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
0x15, 0x00, 0x00, 0x00, 0x70, 0x75, 0x73, 0x68, 0x5F, 0x63, 0x6F, 0x6E,
0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
@ -64,39 +66,41 @@ const uint8_t dummy_frag[] = {
0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x16, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x17, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
0x1C, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00,
0x0D, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x05, 0x00,
0x10, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x33, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x07, 0x00,
0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00,

View File

@ -7,99 +7,101 @@
OpCapability Sampled1D
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %4 "main" %47 %51
OpExecutionMode %4 OriginUpperLeft
OpEntryPoint Fragment %main "main" %in_interpolators %oC
OpExecutionMode %main OriginUpperLeft
OpSource GLSL 450
OpName %4 "main"
OpName %16 "consts_type"
OpMemberName %16 0 "float_consts"
OpMemberName %16 1 "loop_consts"
OpMemberName %16 2 "bool_consts"
OpName %18 "consts"
OpName %19 "push_consts_type"
OpMemberName %19 0 "window_scale"
OpMemberName %19 1 "vtx_fmt"
OpMemberName %19 2 "alpha_test"
OpMemberName %19 3 "ps_param_gen"
OpName %21 "push_constants"
OpName %26 "textures1D"
OpName %31 "textures2D"
OpName %36 "textures3D"
OpName %41 "textures4D"
OpName %47 "in_interpolators"
OpName %51 "oC"
OpDecorate %11 ArrayStride 16
OpDecorate %13 ArrayStride 16
OpDecorate %15 ArrayStride 16
OpMemberDecorate %16 0 Offset 0
OpMemberDecorate %16 1 Offset 8192
OpMemberDecorate %16 2 Offset 8704
OpDecorate %16 Block
OpDecorate %18 DescriptorSet 0
OpDecorate %18 Binding 1
OpMemberDecorate %19 0 Offset 0
OpMemberDecorate %19 1 Offset 16
OpMemberDecorate %19 2 Offset 32
OpMemberDecorate %19 3 Offset 48
OpDecorate %19 Block
OpDecorate %26 DescriptorSet 1
OpDecorate %26 Binding 0
OpDecorate %31 DescriptorSet 1
OpDecorate %31 Binding 1
OpDecorate %36 DescriptorSet 1
OpDecorate %36 Binding 2
OpDecorate %41 DescriptorSet 1
OpDecorate %41 Binding 3
OpDecorate %47 Location 0
OpDecorate %51 Location 0
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%7 = OpTypeFloat 32
%8 = OpTypeVector %7 4
%9 = OpTypeInt 32 0
%10 = OpConstant %9 512
%11 = OpTypeArray %8 %10
%12 = OpConstant %9 32
%13 = OpTypeArray %9 %12
%14 = OpConstant %9 8
%15 = OpTypeArray %9 %14
%16 = OpTypeStruct %11 %13 %15
%17 = OpTypePointer Uniform %16
%18 = OpVariable %17 Uniform
%19 = OpTypeStruct %8 %8 %8 %9
%20 = OpTypePointer PushConstant %19
%21 = OpVariable %20 PushConstant
%22 = OpTypeImage %7 1D 0 0 0 1 Unknown
OpName %main "main"
OpName %consts_type "consts_type"
OpMemberName %consts_type 0 "float_consts"
OpMemberName %consts_type 1 "loop_consts"
OpMemberName %consts_type 2 "bool_consts"
OpName %consts "consts"
OpName %push_consts_type "push_consts_type"
OpMemberName %push_consts_type 0 "window_scale"
OpMemberName %push_consts_type 1 "vtx_fmt"
OpMemberName %push_consts_type 2 "point_size"
OpMemberName %push_consts_type 3 "alpha_test"
OpMemberName %push_consts_type 4 "ps_param_gen"
OpName %push_constants "push_constants"
OpName %textures1D "textures1D"
OpName %textures2D "textures2D"
OpName %textures3D "textures3D"
OpName %textures4D "textures4D"
OpName %in_interpolators "in_interpolators"
OpName %oC "oC"
OpDecorate %_arr_v4float_10 ArrayStride 16
OpDecorate %_arr_uint_12 ArrayStride 16
OpDecorate %_arr_uint_14 ArrayStride 16
OpMemberDecorate %consts_type 0 Offset 0
OpMemberDecorate %consts_type 1 Offset 8192
OpMemberDecorate %consts_type 2 Offset 8704
OpDecorate %consts_type Block
OpDecorate %consts DescriptorSet 0
OpDecorate %consts Binding 1
OpMemberDecorate %push_consts_type 0 Offset 0
OpMemberDecorate %push_consts_type 1 Offset 16
OpMemberDecorate %push_consts_type 2 Offset 32
OpMemberDecorate %push_consts_type 3 Offset 48
OpMemberDecorate %push_consts_type 4 Offset 64
OpDecorate %push_consts_type Block
OpDecorate %textures1D DescriptorSet 1
OpDecorate %textures1D Binding 0
OpDecorate %textures2D DescriptorSet 1
OpDecorate %textures2D Binding 1
OpDecorate %textures3D DescriptorSet 1
OpDecorate %textures3D Binding 2
OpDecorate %textures4D DescriptorSet 1
OpDecorate %textures4D Binding 3
OpDecorate %in_interpolators Location 0
OpDecorate %oC Location 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%uint = OpTypeInt 32 0
%10 = OpConstant %uint 512
%_arr_v4float_10 = OpTypeArray %v4float %10
%12 = OpConstant %uint 32
%_arr_uint_12 = OpTypeArray %uint %12
%14 = OpConstant %uint 8
%_arr_uint_14 = OpTypeArray %uint %14
%consts_type = OpTypeStruct %_arr_v4float_10 %_arr_uint_12 %_arr_uint_14
%_ptr_Uniform_consts_type = OpTypePointer Uniform %consts_type
%consts = OpVariable %_ptr_Uniform_consts_type Uniform
%push_consts_type = OpTypeStruct %v4float %v4float %v4float %v4float %uint
%_ptr_PushConstant_push_consts_type = OpTypePointer PushConstant %push_consts_type
%push_constants = OpVariable %_ptr_PushConstant_push_consts_type PushConstant
%22 = OpTypeImage %float 1D 0 0 0 1 Unknown
%23 = OpTypeSampledImage %22
%24 = OpTypeArray %23 %12
%25 = OpTypePointer UniformConstant %24
%26 = OpVariable %25 UniformConstant
%27 = OpTypeImage %7 2D 0 0 0 1 Unknown
%_arr_23_12 = OpTypeArray %23 %12
%_ptr_UniformConstant__arr_23_12 = OpTypePointer UniformConstant %_arr_23_12
%textures1D = OpVariable %_ptr_UniformConstant__arr_23_12 UniformConstant
%27 = OpTypeImage %float 2D 0 0 0 1 Unknown
%28 = OpTypeSampledImage %27
%29 = OpTypeArray %28 %12
%30 = OpTypePointer UniformConstant %29
%31 = OpVariable %30 UniformConstant
%32 = OpTypeImage %7 3D 0 0 0 1 Unknown
%_arr_28_12 = OpTypeArray %28 %12
%_ptr_UniformConstant__arr_28_12 = OpTypePointer UniformConstant %_arr_28_12
%textures2D = OpVariable %_ptr_UniformConstant__arr_28_12 UniformConstant
%32 = OpTypeImage %float 3D 0 0 0 1 Unknown
%33 = OpTypeSampledImage %32
%34 = OpTypeArray %33 %12
%35 = OpTypePointer UniformConstant %34
%36 = OpVariable %35 UniformConstant
%37 = OpTypeImage %7 Cube 0 0 0 1 Unknown
%_arr_33_12 = OpTypeArray %33 %12
%_ptr_UniformConstant__arr_33_12 = OpTypePointer UniformConstant %_arr_33_12
%textures3D = OpVariable %_ptr_UniformConstant__arr_33_12 UniformConstant
%37 = OpTypeImage %float Cube 0 0 0 1 Unknown
%38 = OpTypeSampledImage %37
%39 = OpTypeArray %38 %12
%40 = OpTypePointer UniformConstant %39
%41 = OpVariable %40 UniformConstant
%42 = OpConstant %9 16
%43 = OpTypeArray %8 %42
%44 = OpConstant %9 1
%45 = OpTypeArray %43 %44
%46 = OpTypePointer Input %45
%47 = OpVariable %46 Input
%48 = OpConstant %9 4
%49 = OpTypeArray %8 %48
%50 = OpTypePointer Output %49
%51 = OpVariable %50 Output
%4 = OpFunction %2 None %3
%_arr_38_12 = OpTypeArray %38 %12
%_ptr_UniformConstant__arr_38_12 = OpTypePointer UniformConstant %_arr_38_12
%textures4D = OpVariable %_ptr_UniformConstant__arr_38_12 UniformConstant
%42 = OpConstant %uint 16
%_arr_v4float_42 = OpTypeArray %v4float %42
%44 = OpConstant %uint 1
%_arr__arr_v4float_42_44 = OpTypeArray %_arr_v4float_42 %44
%_ptr_Input__arr__arr_v4float_42_44 = OpTypePointer Input %_arr__arr_v4float_42_44
%in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_42_44 Input
%48 = OpConstant %uint 4
%_arr_v4float_48 = OpTypeArray %v4float %48
%_ptr_Output__arr_v4float_48 = OpTypePointer Output %_arr_v4float_48
%oC = OpVariable %_ptr_Output__arr_v4float_48 Output
%main = OpFunction %void None %3
%5 = OpLabel
OpReturn
OpFunctionEnd

View File

@ -7,122 +7,122 @@
OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %10 %18 %33 %36
OpExecutionMode %4 InputLinesAdjacency
OpExecutionMode %4 Invocations 1
OpExecutionMode %4 OutputLineStrip
OpExecutionMode %4 OutputVertices 5
OpEntryPoint Geometry %main "main" %_ %gl_in %out_interpolators %in_interpolators
OpExecutionMode %main InputLinesAdjacency
OpExecutionMode %main Invocations 1
OpExecutionMode %main OutputLineStrip
OpExecutionMode %main OutputVertices 5
OpSource GLSL 450
OpName %4 "main"
OpName %8 "gl_PerVertex"
OpMemberName %8 0 "gl_Position"
OpMemberName %8 1 "gl_PointSize"
OpName %10 ""
OpName %13 "gl_PerVertex"
OpMemberName %13 0 "gl_Position"
OpMemberName %13 1 "gl_PointSize"
OpName %18 "gl_in"
OpName %33 "out_interpolators"
OpName %36 "in_interpolators"
OpMemberDecorate %8 0 BuiltIn Position
OpMemberDecorate %8 1 BuiltIn PointSize
OpDecorate %8 Block
OpMemberDecorate %13 0 BuiltIn Position
OpMemberDecorate %13 1 BuiltIn PointSize
OpDecorate %13 Block
OpDecorate %33 Location 0
OpDecorate %36 Location 0
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypeStruct %7 %6
%9 = OpTypePointer Output %8
%10 = OpVariable %9 Output
%11 = OpTypeInt 32 1
%12 = OpConstant %11 0
%13 = OpTypeStruct %7 %6
%14 = OpTypeInt 32 0
%15 = OpConstant %14 4
%16 = OpTypeArray %13 %15
%17 = OpTypePointer Input %16
%18 = OpVariable %17 Input
%19 = OpTypePointer Input %7
%22 = OpTypePointer Output %7
%24 = OpConstant %11 1
%25 = OpTypePointer Input %6
%28 = OpTypePointer Output %6
%30 = OpConstant %14 16
%31 = OpTypeArray %7 %30
%32 = OpTypePointer Output %31
%33 = OpVariable %32 Output
%34 = OpTypeArray %31 %15
%35 = OpTypePointer Input %34
%36 = OpVariable %35 Input
%37 = OpTypePointer Input %31
%48 = OpConstant %11 2
%57 = OpConstant %11 3
%4 = OpFunction %2 None %3
OpName %main "main"
OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %gl_PerVertex 0 "gl_Position"
OpMemberName %gl_PerVertex 1 "gl_PointSize"
OpName %_ ""
OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpMemberName %gl_PerVertex_0 1 "gl_PointSize"
OpName %gl_in "gl_in"
OpName %out_interpolators "out_interpolators"
OpName %in_interpolators "in_interpolators"
OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
OpDecorate %gl_PerVertex Block
OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize
OpDecorate %gl_PerVertex_0 Block
OpDecorate %out_interpolators Location 0
OpDecorate %in_interpolators Location 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%gl_PerVertex = OpTypeStruct %v4float %float
%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
%_ = OpVariable %_ptr_Output_gl_PerVertex Output
%int = OpTypeInt 32 1
%12 = OpConstant %int 0
%gl_PerVertex_0 = OpTypeStruct %v4float %float
%uint = OpTypeInt 32 0
%15 = OpConstant %uint 4
%_arr_gl_PerVertex_0_15 = OpTypeArray %gl_PerVertex_0 %15
%_ptr_Input__arr_gl_PerVertex_0_15 = OpTypePointer Input %_arr_gl_PerVertex_0_15
%gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_0_15 Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%_ptr_Output_v4float = OpTypePointer Output %v4float
%24 = OpConstant %int 1
%_ptr_Input_float = OpTypePointer Input %float
%_ptr_Output_float = OpTypePointer Output %float
%30 = OpConstant %uint 16
%_arr_v4float_30 = OpTypeArray %v4float %30
%_ptr_Output__arr_v4float_30 = OpTypePointer Output %_arr_v4float_30
%out_interpolators = OpVariable %_ptr_Output__arr_v4float_30 Output
%_arr__arr_v4float_30_15 = OpTypeArray %_arr_v4float_30 %15
%_ptr_Input__arr__arr_v4float_30_15 = OpTypePointer Input %_arr__arr_v4float_30_15
%in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_30_15 Input
%_ptr_Input__arr_v4float_30 = OpTypePointer Input %_arr_v4float_30
%48 = OpConstant %int 2
%57 = OpConstant %int 3
%main = OpFunction %void None %3
%5 = OpLabel
%20 = OpAccessChain %19 %18 %12 %12
%21 = OpLoad %7 %20
%23 = OpAccessChain %22 %10 %12
%20 = OpAccessChain %_ptr_Input_v4float %gl_in %12 %12
%21 = OpLoad %v4float %20
%23 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %23 %21
%26 = OpAccessChain %25 %18 %12 %24
%27 = OpLoad %6 %26
%29 = OpAccessChain %28 %10 %24
%26 = OpAccessChain %_ptr_Input_float %gl_in %12 %24
%27 = OpLoad %float %26
%29 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %29 %27
%38 = OpAccessChain %37 %36 %12
%39 = OpLoad %31 %38
OpStore %33 %39
%38 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %12
%39 = OpLoad %_arr_v4float_30 %38
OpStore %out_interpolators %39
OpEmitVertex
%40 = OpAccessChain %19 %18 %24 %12
%41 = OpLoad %7 %40
%42 = OpAccessChain %22 %10 %12
%40 = OpAccessChain %_ptr_Input_v4float %gl_in %24 %12
%41 = OpLoad %v4float %40
%42 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %42 %41
%43 = OpAccessChain %25 %18 %24 %24
%44 = OpLoad %6 %43
%45 = OpAccessChain %28 %10 %24
%43 = OpAccessChain %_ptr_Input_float %gl_in %24 %24
%44 = OpLoad %float %43
%45 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %45 %44
%46 = OpAccessChain %37 %36 %24
%47 = OpLoad %31 %46
OpStore %33 %47
%46 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %24
%47 = OpLoad %_arr_v4float_30 %46
OpStore %out_interpolators %47
OpEmitVertex
%49 = OpAccessChain %19 %18 %48 %12
%50 = OpLoad %7 %49
%51 = OpAccessChain %22 %10 %12
%49 = OpAccessChain %_ptr_Input_v4float %gl_in %48 %12
%50 = OpLoad %v4float %49
%51 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %51 %50
%52 = OpAccessChain %25 %18 %48 %24
%53 = OpLoad %6 %52
%54 = OpAccessChain %28 %10 %24
%52 = OpAccessChain %_ptr_Input_float %gl_in %48 %24
%53 = OpLoad %float %52
%54 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %54 %53
%55 = OpAccessChain %37 %36 %48
%56 = OpLoad %31 %55
OpStore %33 %56
%55 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %48
%56 = OpLoad %_arr_v4float_30 %55
OpStore %out_interpolators %56
OpEmitVertex
%58 = OpAccessChain %19 %18 %57 %12
%59 = OpLoad %7 %58
%60 = OpAccessChain %22 %10 %12
%58 = OpAccessChain %_ptr_Input_v4float %gl_in %57 %12
%59 = OpLoad %v4float %58
%60 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %60 %59
%61 = OpAccessChain %25 %18 %57 %24
%62 = OpLoad %6 %61
%63 = OpAccessChain %28 %10 %24
%61 = OpAccessChain %_ptr_Input_float %gl_in %57 %24
%62 = OpLoad %float %61
%63 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %63 %62
%64 = OpAccessChain %37 %36 %57
%65 = OpLoad %31 %64
OpStore %33 %65
%64 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %57
%65 = OpLoad %_arr_v4float_30 %64
OpStore %out_interpolators %65
OpEmitVertex
%66 = OpAccessChain %19 %18 %12 %12
%67 = OpLoad %7 %66
%68 = OpAccessChain %22 %10 %12
%66 = OpAccessChain %_ptr_Input_v4float %gl_in %12 %12
%67 = OpLoad %v4float %66
%68 = OpAccessChain %_ptr_Output_v4float %_ %12
OpStore %68 %67
%69 = OpAccessChain %25 %18 %12 %24
%70 = OpLoad %6 %69
%71 = OpAccessChain %28 %10 %24
%69 = OpAccessChain %_ptr_Input_float %gl_in %12 %24
%70 = OpLoad %float %69
%71 = OpAccessChain %_ptr_Output_float %_ %24
OpStore %71 %70
%72 = OpAccessChain %37 %36 %12
%73 = OpLoad %31 %72
OpStore %33 %73
%72 = OpAccessChain %_ptr_Input__arr_v4float_30 %in_interpolators %12
%73 = OpLoad %_arr_v4float_30 %72
OpStore %out_interpolators %73
OpEmitVertex
OpEndPrimitive
OpReturn

View File

@ -2,182 +2,266 @@
// source: point_list.geom
const uint8_t point_list_geom[] = {
0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x00,
0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4C, 0x53, 0x4C,
0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x28, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00,
0x02, 0x00, 0x00, 0x00, 0xC2, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x4C, 0x53, 0x4C, 0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30,
0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x73, 0x00,
0x05, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00,
0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00,
0x06, 0x00, 0x07, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00,
0x16, 0x00, 0x00, 0x00, 0x70, 0x73, 0x69, 0x7A, 0x65, 0x00, 0x00, 0x00,
0x05, 0x00, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
0x05, 0x00, 0x06, 0x00, 0x26, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00,
0x06, 0x00, 0x06, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00,
0x06, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x37, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x5F, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
0x73, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC2, 0x01, 0x00, 0x00,
0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x69, 0x6E,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00,
0x70, 0x6F, 0x73, 0x00, 0x05, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74,
0x69, 0x6F, 0x6E, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00,
0x17, 0x00, 0x00, 0x00, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x5F, 0x73,
0x63, 0x61, 0x6C, 0x65, 0x64, 0x5F, 0x70, 0x73, 0x69, 0x7A, 0x65, 0x00,
0x05, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0x75, 0x73, 0x68,
0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x73, 0x5F, 0x74, 0x79, 0x70, 0x65,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x77, 0x69, 0x6E, 0x64, 0x6F, 0x77, 0x5F, 0x73,
0x63, 0x61, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00,
0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x76, 0x74, 0x78, 0x5F,
0x66, 0x6D, 0x74, 0x00, 0x06, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69,
0x7A, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x61, 0x6C, 0x70, 0x68, 0x61, 0x5F, 0x74, 0x65,
0x73, 0x74, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x18, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x70, 0x73, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D,
0x5F, 0x67, 0x65, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x70, 0x75, 0x73, 0x68, 0x5F, 0x63, 0x6F, 0x6E,
0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
0x22, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x73, 0x69,
0x7A, 0x65, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00,
0x69, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78,
0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x73, 0x69, 0x74,
0x69, 0x6F, 0x6E, 0x00, 0x05, 0x00, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6C, 0x65, 0x00, 0x00, 0x00,
0x05, 0x00, 0x07, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F,
0x05, 0x00, 0x07, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F,
0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x6F, 0x72,
0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x62, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61,
0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00,
0x67, 0x00, 0x00, 0x00, 0x70, 0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x63, 0x6F,
0x6F, 0x72, 0x64, 0x00, 0x05, 0x00, 0x05, 0x00, 0x69, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x64, 0x65, 0x78, 0x61, 0x62, 0x6C, 0x65, 0x00, 0x00, 0x00,
0x05, 0x00, 0x08, 0x00, 0x73, 0x00, 0x00, 0x00, 0x69, 0x6E, 0x5F, 0x70,
0x6F, 0x69, 0x6E, 0x74, 0x5F, 0x63, 0x6F, 0x6F, 0x72, 0x64, 0x5F, 0x75,
0x6E, 0x75, 0x73, 0x65, 0x64, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x26, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x4D, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x22, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00,
0x3D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x5F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x47, 0x00, 0x04, 0x00, 0x62, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x73, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00,
0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x0E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1B, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x14, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x04, 0x00,
0x26, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00,
0x29, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xBF,
0x2B, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x3F, 0x2C, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00,
0x29, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x33, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x07, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
0x33, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x38, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x47, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00,
0x48, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x48, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00,
0x4A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00,
0x4D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x4E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x05, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x19, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00,
0x1F, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x21, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x22, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00,
0x29, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x37, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x05, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x03, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x04, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0E, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x0E, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x15, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x17, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x07, 0x00,
0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x14, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x33, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x03, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3E, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x3E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xBF,
0x2B, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0x3F, 0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00,
0x45, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00,
0x15, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
0x44, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x07, 0x00, 0x43, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00,
0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x5A, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x5D, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x5E, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00,
0x5D, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x61, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x63, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x66, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x6C, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x71, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x72, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x4C, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x12, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
0x14, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x09, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x1B, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00,
0x15, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
0x22, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
0xBA, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x03, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00,
0x28, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x29, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x23, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00,
0x15, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00,
0x2D, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00,
0x15, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x35, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x39, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
0x37, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00,
0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00,
0x4D, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x15, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00,
0x51, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
0x41, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x4F, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
0x53, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
0x41, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00,
0x44, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00,
0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x45, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00,
0x44, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x4E, 0x00, 0x00, 0x00,
0x4F, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x4F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x50, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x20, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
0x1C, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00,
0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x1F, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x01, 0x00, 0xFD, 0x00, 0x01, 0x00,
0x38, 0x00, 0x01, 0x00,
0x58, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x50, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00,
0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x5A, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
0x62, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x5D, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00,
0x4A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00,
0x6A, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00,
0x6A, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00,
0x6D, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x6B, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x67, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x38, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x6E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00,
0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00,
0x6F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00,
0x70, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x01, 0x00,
0xFD, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00,
};

View File

@ -1,136 +1,191 @@
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 83
; Bound: 116
; Schema: 0
OpCapability Geometry
OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %15 %40 %74 %77
OpExecutionMode %4 InputPoints
OpExecutionMode %4 Invocations 1
OpExecutionMode %4 OutputTriangleStrip
OpExecutionMode %4 OutputVertices 4
OpEntryPoint Geometry %main "main" %gl_in %point_size %_ %out_interpolators %in_interpolators %point_coord %in_point_coord_unused
OpExecutionMode %main InputPoints
OpExecutionMode %main Invocations 1
OpExecutionMode %main OutputTriangleStrip
OpExecutionMode %main OutputVertices 4
OpSource GLSL 450
OpName %4 "main"
OpName %9 "pos"
OpName %10 "gl_PerVertex"
OpMemberName %10 0 "gl_Position"
OpMemberName %10 1 "gl_PointSize"
OpName %15 "gl_in"
OpName %22 "psize"
OpName %28 "i"
OpName %38 "gl_PerVertex"
OpMemberName %38 0 "gl_Position"
OpMemberName %38 1 "gl_PointSize"
OpName %40 ""
OpName %55 "indexable"
OpName %74 "out_interpolators"
OpName %77 "in_interpolators"
OpMemberDecorate %10 0 BuiltIn Position
OpMemberDecorate %10 1 BuiltIn PointSize
OpDecorate %10 Block
OpMemberDecorate %38 0 BuiltIn Position
OpMemberDecorate %38 1 BuiltIn PointSize
OpDecorate %38 Block
OpDecorate %74 Location 0
OpDecorate %77 Location 0
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeFloat 32
%7 = OpTypeVector %6 4
%8 = OpTypePointer Function %7
%10 = OpTypeStruct %7 %6
%11 = OpTypeInt 32 0
%12 = OpConstant %11 1
%13 = OpTypeArray %10 %12
%14 = OpTypePointer Input %13
%15 = OpVariable %14 Input
%16 = OpTypeInt 32 1
%17 = OpConstant %16 0
%18 = OpTypePointer Input %7
%21 = OpTypePointer Function %6
%23 = OpConstant %16 1
%24 = OpTypePointer Input %6
%27 = OpTypePointer Function %16
%35 = OpConstant %16 4
%36 = OpTypeBool
%38 = OpTypeStruct %7 %6
%39 = OpTypePointer Output %38
%40 = OpVariable %39 Output
%41 = OpTypeVector %6 2
%44 = OpConstant %11 4
%45 = OpTypeArray %41 %44
%46 = OpConstant %6 -1
%47 = OpConstant %6 1
%48 = OpConstantComposite %41 %46 %47
%49 = OpConstantComposite %41 %47 %47
%50 = OpConstantComposite %41 %46 %46
%51 = OpConstantComposite %41 %47 %46
%52 = OpConstantComposite %45 %48 %49 %50 %51
%54 = OpTypePointer Function %45
%56 = OpTypePointer Function %41
%69 = OpTypePointer Output %7
%71 = OpConstant %11 16
%72 = OpTypeArray %7 %71
%73 = OpTypePointer Output %72
%74 = OpVariable %73 Output
%75 = OpTypeArray %72 %12
%76 = OpTypePointer Input %75
%77 = OpVariable %76 Input
%78 = OpTypePointer Input %72
%4 = OpFunction %2 None %3
OpName %main "main"
OpName %pos "pos"
OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %gl_PerVertex 0 "gl_Position"
OpName %gl_in "gl_in"
OpName %window_scaled_psize "window_scaled_psize"
OpName %push_consts_type "push_consts_type"
OpMemberName %push_consts_type 0 "window_scale"
OpMemberName %push_consts_type 1 "vtx_fmt"
OpMemberName %push_consts_type 2 "point_size"
OpMemberName %push_consts_type 3 "alpha_test"
OpMemberName %push_consts_type 4 "ps_param_gen"
OpName %push_constants "push_constants"
OpName %point_size "point_size"
OpName %i "i"
OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpName %_ ""
OpName %indexable "indexable"
OpName %out_interpolators "out_interpolators"
OpName %in_interpolators "in_interpolators"
OpName %point_coord "point_coord"
OpName %indexable_0 "indexable"
OpName %in_point_coord_unused "in_point_coord_unused"
OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpDecorate %gl_PerVertex Block
OpMemberDecorate %push_consts_type 0 Offset 0
OpMemberDecorate %push_consts_type 1 Offset 16
OpMemberDecorate %push_consts_type 2 Offset 32
OpMemberDecorate %push_consts_type 3 Offset 48
OpMemberDecorate %push_consts_type 4 Offset 64
OpDecorate %push_consts_type Block
OpDecorate %point_size Location 17
OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
OpDecorate %gl_PerVertex_0 Block
OpDecorate %out_interpolators Location 0
OpDecorate %in_interpolators Location 0
OpDecorate %point_coord Location 16
OpDecorate %in_point_coord_unused Location 16
%void = OpTypeVoid
%3 = OpTypeFunction %void
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Function_v4float = OpTypePointer Function %v4float
%gl_PerVertex = OpTypeStruct %v4float
%uint = OpTypeInt 32 0
%12 = OpConstant %uint 1
%_arr_gl_PerVertex_12 = OpTypeArray %gl_PerVertex %12
%_ptr_Input__arr_gl_PerVertex_12 = OpTypePointer Input %_arr_gl_PerVertex_12
%gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_12 Input
%int = OpTypeInt 32 1
%17 = OpConstant %int 0
%_ptr_Input_v4float = OpTypePointer Input %v4float
%v2float = OpTypeVector %float 2
%_ptr_Function_v2float = OpTypePointer Function %v2float
%push_consts_type = OpTypeStruct %v4float %v4float %v4float %v4float %uint
%_ptr_PushConstant_push_consts_type = OpTypePointer PushConstant %push_consts_type
%push_constants = OpVariable %_ptr_PushConstant_push_consts_type PushConstant
%27 = OpConstant %int 2
%_ptr_PushConstant_v4float = OpTypePointer PushConstant %v4float
%_arr_float_12 = OpTypeArray %float %12
%_ptr_Input__arr_float_12 = OpTypePointer Input %_arr_float_12
%point_size = OpVariable %_ptr_Input__arr_float_12 Input
%_ptr_Input_float = OpTypePointer Input %float
%38 = OpConstant %float 0
%bool = OpTypeBool
%_ptr_Function_int = OpTypePointer Function %int
%59 = OpConstant %int 4
%gl_PerVertex_0 = OpTypeStruct %v4float
%_ptr_Output_gl_PerVertex_0 = OpTypePointer Output %gl_PerVertex_0
%_ = OpVariable %_ptr_Output_gl_PerVertex_0 Output
%66 = OpConstant %uint 4
%_arr_v2float_66 = OpTypeArray %v2float %66
%68 = OpConstant %float -1
%69 = OpConstant %float 1
%70 = OpConstantComposite %v2float %68 %69
%71 = OpConstantComposite %v2float %69 %69
%72 = OpConstantComposite %v2float %68 %68
%73 = OpConstantComposite %v2float %69 %68
%74 = OpConstantComposite %_arr_v2float_66 %70 %71 %72 %73
%_ptr_Function__arr_v2float_66 = OpTypePointer Function %_arr_v2float_66
%_ptr_Output_v4float = OpTypePointer Output %v4float
%92 = OpConstant %uint 16
%_arr_v4float_92 = OpTypeArray %v4float %92
%_ptr_Output__arr_v4float_92 = OpTypePointer Output %_arr_v4float_92
%out_interpolators = OpVariable %_ptr_Output__arr_v4float_92 Output
%_arr__arr_v4float_92_12 = OpTypeArray %_arr_v4float_92 %12
%_ptr_Input__arr__arr_v4float_92_12 = OpTypePointer Input %_arr__arr_v4float_92_12
%in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_92_12 Input
%_ptr_Input__arr_v4float_92 = OpTypePointer Input %_arr_v4float_92
%_ptr_Output_v2float = OpTypePointer Output %v2float
%point_coord = OpVariable %_ptr_Output_v2float Output
%108 = OpConstantComposite %v2float %38 %38
%111 = OpConstant %int 1
%_arr_v2float_12 = OpTypeArray %v2float %12
%_ptr_Input__arr_v2float_12 = OpTypePointer Input %_arr_v2float_12
%in_point_coord_unused = OpVariable %_ptr_Input__arr_v2float_12 Input
%main = OpFunction %void None %3
%5 = OpLabel
%9 = OpVariable %8 Function
%22 = OpVariable %21 Function
%28 = OpVariable %27 Function
%55 = OpVariable %54 Function
%19 = OpAccessChain %18 %15 %17 %17
%20 = OpLoad %7 %19
OpStore %9 %20
%25 = OpAccessChain %24 %15 %17 %23
%26 = OpLoad %6 %25
OpStore %22 %26
OpStore %28 %17
OpBranch %29
%29 = OpLabel
OpLoopMerge %31 %32 None
OpBranch %33
%33 = OpLabel
%34 = OpLoad %16 %28
%37 = OpSLessThan %36 %34 %35
OpBranchConditional %37 %30 %31
%30 = OpLabel
%42 = OpLoad %7 %9
%43 = OpVectorShuffle %41 %42 %42 0 1
%53 = OpLoad %16 %28
OpStore %55 %52
%57 = OpAccessChain %56 %55 %53
%58 = OpLoad %41 %57
%59 = OpLoad %6 %22
%60 = OpVectorTimesScalar %41 %58 %59
%61 = OpFAdd %41 %43 %60
%62 = OpLoad %7 %9
%63 = OpVectorShuffle %41 %62 %62 2 3
%64 = OpCompositeExtract %6 %61 0
%65 = OpCompositeExtract %6 %61 1
%66 = OpCompositeExtract %6 %63 0
%67 = OpCompositeExtract %6 %63 1
%68 = OpCompositeConstruct %7 %64 %65 %66 %67
%70 = OpAccessChain %69 %40 %17
OpStore %70 %68
%79 = OpAccessChain %78 %77 %17
%80 = OpLoad %72 %79
OpStore %74 %80
%pos = OpVariable %_ptr_Function_v4float Function
%window_scaled_psize = OpVariable %_ptr_Function_v2float Function
%i = OpVariable %_ptr_Function_int Function
%indexable = OpVariable %_ptr_Function__arr_v2float_66 Function
%indexable_0 = OpVariable %_ptr_Function__arr_v2float_66 Function
%19 = OpAccessChain %_ptr_Input_v4float %gl_in %17 %17
%20 = OpLoad %v4float %19
OpStore %pos %20
%29 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %27
%30 = OpLoad %v4float %29
%31 = OpVectorShuffle %v2float %30 %30 0 1
OpStore %window_scaled_psize %31
%36 = OpAccessChain %_ptr_Input_float %point_size %17
%37 = OpLoad %float %36
%40 = OpFOrdGreaterThan %bool %37 %38
OpSelectionMerge %42 None
OpBranchConditional %40 %41 %42
%41 = OpLabel
%43 = OpAccessChain %_ptr_Input_float %point_size %17
%44 = OpLoad %float %43
%45 = OpCompositeConstruct %v2float %44 %44
OpStore %window_scaled_psize %45
OpBranch %42
%42 = OpLabel
%46 = OpAccessChain %_ptr_PushConstant_v4float %push_constants %17
%47 = OpLoad %v4float %46
%48 = OpVectorShuffle %v2float %47 %47 2 3
%49 = OpLoad %v2float %window_scaled_psize
%50 = OpFDiv %v2float %49 %48
OpStore %window_scaled_psize %50
OpStore %i %17
OpBranch %53
%53 = OpLabel
OpLoopMerge %55 %56 None
OpBranch %57
%57 = OpLabel
%58 = OpLoad %int %i
%60 = OpSLessThan %bool %58 %59
OpBranchConditional %60 %54 %55
%54 = OpLabel
%64 = OpLoad %v4float %pos
%65 = OpVectorShuffle %v2float %64 %64 0 1
%75 = OpLoad %int %i
OpStore %indexable %74
%78 = OpAccessChain %_ptr_Function_v2float %indexable %75
%79 = OpLoad %v2float %78
%80 = OpLoad %v2float %window_scaled_psize
%81 = OpFMul %v2float %79 %80
%82 = OpFAdd %v2float %65 %81
%83 = OpLoad %v4float %pos
%84 = OpVectorShuffle %v2float %83 %83 2 3
%85 = OpCompositeExtract %float %82 0
%86 = OpCompositeExtract %float %82 1
%87 = OpCompositeExtract %float %84 0
%88 = OpCompositeExtract %float %84 1
%89 = OpCompositeConstruct %v4float %85 %86 %87 %88
%91 = OpAccessChain %_ptr_Output_v4float %_ %17
OpStore %91 %89
%100 = OpAccessChain %_ptr_Input__arr_v4float_92 %in_interpolators %17
%101 = OpLoad %_arr_v4float_92 %100
OpStore %out_interpolators %101
%104 = OpLoad %int %i
OpStore %indexable_0 %74
%106 = OpAccessChain %_ptr_Function_v2float %indexable_0 %104
%107 = OpLoad %v2float %106
%109 = OpExtInst %v2float %1 FMax %107 %108
OpStore %point_coord %109
OpEmitVertex
OpBranch %32
%32 = OpLabel
%81 = OpLoad %16 %28
%82 = OpIAdd %16 %81 %23
OpStore %28 %82
OpBranch %29
%31 = OpLabel
OpBranch %56
%56 = OpLabel
%110 = OpLoad %int %i
%112 = OpIAdd %int %110 %111
OpStore %i %112
OpBranch %53
%55 = OpLabel
OpEndPrimitive
OpReturn
OpFunctionEnd

View File

@ -7,110 +7,110 @@
OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %36 %40 %56 %59
OpExecutionMode %4 InputLinesAdjacency
OpExecutionMode %4 Invocations 1
OpExecutionMode %4 OutputTriangleStrip
OpExecutionMode %4 OutputVertices 4
OpEntryPoint Geometry %main "main" %_ %gl_in %out_interpolators %in_interpolators
OpExecutionMode %main InputLinesAdjacency
OpExecutionMode %main Invocations 1
OpExecutionMode %main OutputTriangleStrip
OpExecutionMode %main OutputVertices 4
OpSource GLSL 450
OpName %4 "main"
OpName %8 "i"
OpName %19 "input_index"
OpName %29 "indexable"
OpName %34 "gl_PerVertex"
OpMemberName %34 0 "gl_Position"
OpMemberName %34 1 "gl_PointSize"
OpName %36 ""
OpName %37 "gl_PerVertex"
OpMemberName %37 0 "gl_Position"
OpMemberName %37 1 "gl_PointSize"
OpName %40 "gl_in"
OpName %56 "out_interpolators"
OpName %59 "in_interpolators"
OpMemberDecorate %34 0 BuiltIn Position
OpMemberDecorate %34 1 BuiltIn PointSize
OpDecorate %34 Block
OpMemberDecorate %37 0 BuiltIn Position
OpMemberDecorate %37 1 BuiltIn PointSize
OpDecorate %37 Block
OpDecorate %56 Location 0
OpDecorate %59 Location 0
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeInt 32 1
%7 = OpTypePointer Function %6
%9 = OpConstant %6 0
%16 = OpConstant %6 4
%17 = OpTypeBool
%20 = OpTypeInt 32 0
%21 = OpConstant %20 4
%22 = OpTypeArray %6 %21
%23 = OpConstant %6 1
%24 = OpConstant %6 3
%25 = OpConstant %6 2
%26 = OpConstantComposite %22 %9 %23 %24 %25
%28 = OpTypePointer Function %22
%32 = OpTypeFloat 32
%33 = OpTypeVector %32 4
%34 = OpTypeStruct %33 %32
%35 = OpTypePointer Output %34
%36 = OpVariable %35 Output
%37 = OpTypeStruct %33 %32
%38 = OpTypeArray %37 %21
%39 = OpTypePointer Input %38
%40 = OpVariable %39 Input
%42 = OpTypePointer Input %33
%45 = OpTypePointer Output %33
%48 = OpTypePointer Input %32
%51 = OpTypePointer Output %32
%53 = OpConstant %20 16
%54 = OpTypeArray %33 %53
%55 = OpTypePointer Output %54
%56 = OpVariable %55 Output
%57 = OpTypeArray %54 %21
%58 = OpTypePointer Input %57
%59 = OpVariable %58 Input
%61 = OpTypePointer Input %54
%4 = OpFunction %2 None %3
OpName %main "main"
OpName %i "i"
OpName %input_index "input_index"
OpName %indexable "indexable"
OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %gl_PerVertex 0 "gl_Position"
OpMemberName %gl_PerVertex 1 "gl_PointSize"
OpName %_ ""
OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpMemberName %gl_PerVertex_0 1 "gl_PointSize"
OpName %gl_in "gl_in"
OpName %out_interpolators "out_interpolators"
OpName %in_interpolators "in_interpolators"
OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
OpDecorate %gl_PerVertex Block
OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize
OpDecorate %gl_PerVertex_0 Block
OpDecorate %out_interpolators Location 0
OpDecorate %in_interpolators Location 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%int = OpTypeInt 32 1
%_ptr_Function_int = OpTypePointer Function %int
%9 = OpConstant %int 0
%16 = OpConstant %int 4
%bool = OpTypeBool
%uint = OpTypeInt 32 0
%21 = OpConstant %uint 4
%_arr_int_21 = OpTypeArray %int %21
%23 = OpConstant %int 1
%24 = OpConstant %int 3
%25 = OpConstant %int 2
%26 = OpConstantComposite %_arr_int_21 %9 %23 %24 %25
%_ptr_Function__arr_int_21 = OpTypePointer Function %_arr_int_21
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%gl_PerVertex = OpTypeStruct %v4float %float
%_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex
%_ = OpVariable %_ptr_Output_gl_PerVertex Output
%gl_PerVertex_0 = OpTypeStruct %v4float %float
%_arr_gl_PerVertex_0_21 = OpTypeArray %gl_PerVertex_0 %21
%_ptr_Input__arr_gl_PerVertex_0_21 = OpTypePointer Input %_arr_gl_PerVertex_0_21
%gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_0_21 Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%_ptr_Output_v4float = OpTypePointer Output %v4float
%_ptr_Input_float = OpTypePointer Input %float
%_ptr_Output_float = OpTypePointer Output %float
%53 = OpConstant %uint 16
%_arr_v4float_53 = OpTypeArray %v4float %53
%_ptr_Output__arr_v4float_53 = OpTypePointer Output %_arr_v4float_53
%out_interpolators = OpVariable %_ptr_Output__arr_v4float_53 Output
%_arr__arr_v4float_53_21 = OpTypeArray %_arr_v4float_53 %21
%_ptr_Input__arr__arr_v4float_53_21 = OpTypePointer Input %_arr__arr_v4float_53_21
%in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_53_21 Input
%_ptr_Input__arr_v4float_53 = OpTypePointer Input %_arr_v4float_53
%main = OpFunction %void None %3
%5 = OpLabel
%8 = OpVariable %7 Function
%19 = OpVariable %7 Function
%29 = OpVariable %28 Function
OpStore %8 %9
%i = OpVariable %_ptr_Function_int Function
%input_index = OpVariable %_ptr_Function_int Function
%indexable = OpVariable %_ptr_Function__arr_int_21 Function
OpStore %i %9
OpBranch %10
%10 = OpLabel
OpLoopMerge %12 %13 None
OpBranch %14
%14 = OpLabel
%15 = OpLoad %6 %8
%18 = OpSLessThan %17 %15 %16
%15 = OpLoad %int %i
%18 = OpSLessThan %bool %15 %16
OpBranchConditional %18 %11 %12
%11 = OpLabel
%27 = OpLoad %6 %8
OpStore %29 %26
%30 = OpAccessChain %7 %29 %27
%31 = OpLoad %6 %30
OpStore %19 %31
%41 = OpLoad %6 %19
%43 = OpAccessChain %42 %40 %41 %9
%44 = OpLoad %33 %43
%46 = OpAccessChain %45 %36 %9
%27 = OpLoad %int %i
OpStore %indexable %26
%30 = OpAccessChain %_ptr_Function_int %indexable %27
%31 = OpLoad %int %30
OpStore %input_index %31
%41 = OpLoad %int %input_index
%43 = OpAccessChain %_ptr_Input_v4float %gl_in %41 %9
%44 = OpLoad %v4float %43
%46 = OpAccessChain %_ptr_Output_v4float %_ %9
OpStore %46 %44
%47 = OpLoad %6 %19
%49 = OpAccessChain %48 %40 %47 %23
%50 = OpLoad %32 %49
%52 = OpAccessChain %51 %36 %23
%47 = OpLoad %int %input_index
%49 = OpAccessChain %_ptr_Input_float %gl_in %47 %23
%50 = OpLoad %float %49
%52 = OpAccessChain %_ptr_Output_float %_ %23
OpStore %52 %50
%60 = OpLoad %6 %19
%62 = OpAccessChain %61 %59 %60
%63 = OpLoad %54 %62
OpStore %56 %63
%60 = OpLoad %int %input_index
%62 = OpAccessChain %_ptr_Input__arr_v4float_53 %in_interpolators %60
%63 = OpLoad %_arr_v4float_53 %62
OpStore %out_interpolators %63
OpEmitVertex
OpBranch %13
%13 = OpLabel
%64 = OpLoad %6 %8
%65 = OpIAdd %6 %64 %23
OpStore %8 %65
%64 = OpLoad %int %i
%65 = OpIAdd %int %64 %23
OpStore %i %65
OpBranch %10
%12 = OpLabel
OpEndPrimitive

View File

@ -2,14 +2,14 @@
// source: rect_list.geom
const uint8_t rect_list_geom[] = {
0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x08, 0x00,
0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00,
0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x18, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4C, 0x53, 0x4C,
0x2E, 0x73, 0x74, 0x64, 0x2E, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00,
0x0E, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0F, 0x00, 0x09, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x6D, 0x61, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00,
@ -27,31 +27,31 @@ const uint8_t rect_list_geom[] = {
0x67, 0x6C, 0x5F, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65,
0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00,
0x67, 0x6C, 0x5F, 0x69, 0x6E, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65,
0x1E, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50, 0x65, 0x72, 0x56, 0x65,
0x72, 0x74, 0x65, 0x78, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x6F, 0x73, 0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x06, 0x00, 0x07, 0x00,
0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x6C, 0x5F, 0x50,
0x6F, 0x69, 0x6E, 0x74, 0x53, 0x69, 0x7A, 0x65, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x03, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x07, 0x00, 0x31, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F,
0x05, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x05, 0x00, 0x07, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x6F, 0x75, 0x74, 0x5F,
0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61, 0x74, 0x6F, 0x72,
0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x34, 0x00, 0x00, 0x00,
0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x31, 0x00, 0x00, 0x00,
0x69, 0x6E, 0x5F, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6F, 0x6C, 0x61,
0x74, 0x6F, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
0x65, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
0xB3, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x62, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00,
0xB0, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x47, 0x00, 0x03, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x48, 0x00, 0x05, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00,
0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x21, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1E, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00,
0x34, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00,
0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00,
0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00,
@ -72,345 +72,340 @@ const uint8_t rect_list_geom[] = {
0x0C, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x6F, 0x12, 0x83, 0x3A,
0x1E, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x27, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00,
0x32, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x32, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x35, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x11, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x6C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00,
0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x64, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x41, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x04, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x20, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x29, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x2D, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
0x61, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00,
0x2B, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00,
0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x07, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00,
0xB0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0xB4, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x08, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0xF7, 0x00, 0x03, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x7B, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x1C, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x13, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x07, 0x00,
0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00,
0xB8, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00,
0x1B, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x08, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x06, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0xF7, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x7E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x1F, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x25, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0x28, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x2D, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x22, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x25, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x35, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x37, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x27, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x3A, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x3A, 0x00, 0x00, 0x00,
0x39, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x35, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xDB, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x32, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xDB, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x45, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00,
0x46, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x48, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x27, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x49, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x4C, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x4C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00,
0x4F, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x35, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0x5A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x00, 0x00,
0x49, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00,
0x4B, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x4C, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x4F, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x32, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x57, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
0x58, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x5A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0x5D, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x5E, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00,
0x5E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0x60, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x5B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x5D, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x5E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x61, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x63, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x65, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x66, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x66, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00,
0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x6A, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x6A, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x62, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x63, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x63, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00, 0x65, 0x00, 0x00, 0x00,
0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x67, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
0x62, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
0x6A, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x64, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00,
0x6D, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0xFA, 0x00, 0x04, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
0x68, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x67, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x6F, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00,
0x71, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x73, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
0x72, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
0x78, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x7A, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x7B, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x69, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00,
0x65, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
0x7D, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x65, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x66, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x68, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xDB, 0x00, 0x01, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x7E, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0x62, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x6C, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00,
0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00,
0x6E, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0x70, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
0x6F, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
0x75, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x77, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00,
0x66, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00, 0x66, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00,
0x62, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00,
0x7A, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x62, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x63, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x65, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0xDB, 0x00, 0x01, 0x00,
0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x7B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0x7C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x7D, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x7E, 0x00, 0x00, 0x00,
0x7D, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x27, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x81, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0x82, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x84, 0x00, 0x00, 0x00,
0x83, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00,
0x85, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00,
0x85, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00,
0x86, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x8C, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x35, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x8E, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x81, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00,
0x82, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00,
0x82, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00,
0x83, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x32, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x8B, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x8F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0x91, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00,
0x8C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x8E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x8E, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x8F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0x91, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
0x92, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x94, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x94, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2C, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0xDB, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x21, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x9C, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x35, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2F, 0x00, 0x00, 0x00,
0x9E, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x31, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x14, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x09, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x32, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x2C, 0x00, 0x00, 0x00,
0x9B, 0x00, 0x00, 0x00, 0x9A, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00,
0x2E, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
0x9F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0xA1, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00,
0x9C, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0x9E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
0x9F, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00,
0xA1, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0xA1, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00,
0xA2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x2C, 0x00, 0x00, 0x00,
0xA4, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0xA4, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2F, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0xA7, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x41, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x2C, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00, 0xA2, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x00, 0x00, 0xA3, 0x00, 0x00, 0x00,
0xDA, 0x00, 0x01, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0xA4, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xA8, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x17, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00,
0xA5, 0x00, 0x00, 0x00, 0xA7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0xA9, 0x00, 0x00, 0x00,
0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00,
0xA8, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00,
0x83, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAE, 0x00, 0x00, 0x00,
0xAB, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x27, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xAF, 0x00, 0x00, 0x00,
0xAE, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0xB0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0xB1, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x2C, 0x00, 0x00, 0x00, 0xB2, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB2, 0x00, 0x00, 0x00,
0xB1, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB3, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00,
0xB6, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0xB8, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB8, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xB9, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00,
0x06, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00,
0x6C, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, 0xBA, 0x00, 0x00, 0x00,
0xB5, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0x83, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x00, 0x00, 0x00,
0xA8, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x24, 0x00, 0x00, 0x00, 0xAC, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xAC, 0x00, 0x00, 0x00,
0xAB, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00,
0xAD, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00,
0xAE, 0x00, 0x00, 0x00, 0xAD, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00,
0x29, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xAF, 0x00, 0x00, 0x00,
0xAE, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB0, 0x00, 0x00, 0x00,
0x12, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB1, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0xB1, 0x00, 0x00, 0x00, 0xF6, 0x00, 0x04, 0x00,
0xB3, 0x00, 0x00, 0x00, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0xB5, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB5, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xBB, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00,
0x34, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00,
0xBD, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xBF, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x24, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00,
0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00,
0xC1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xC3, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00,
0xB3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00,
0xC5, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0xC4, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xC6, 0x00, 0x00, 0x00, 0xC5, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xC3, 0x00, 0x00, 0x00,
0xC6, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x27, 0x00, 0x00, 0x00,
0xC8, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0xB7, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB7, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xC9, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00,
0x11, 0x00, 0x00, 0x00, 0xCA, 0x00, 0x00, 0x00, 0xC9, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB3, 0x00, 0x00, 0x00,
0xCA, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0xB6, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xDB, 0x00, 0x01, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x01, 0x00,
0xB6, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0xB1, 0x00, 0x05, 0x00,
0x06, 0x00, 0x00, 0x00, 0xB7, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00,
0x69, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x04, 0x00, 0xB7, 0x00, 0x00, 0x00,
0xB2, 0x00, 0x00, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB2, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xB8, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x11, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00,
0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00,
0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0xB9, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00,
0xBA, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xBC, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00,
0x21, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xBE, 0x00, 0x00, 0x00, 0xBD, 0x00, 0x00, 0x00,
0x7F, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00,
0xBE, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xC0, 0x00, 0x00, 0x00, 0xBB, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00,
0xB0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x21, 0x00, 0x00, 0x00,
0xC2, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
0xC1, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x00, 0x00,
0xC3, 0x00, 0x00, 0x00, 0xC2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00,
0xC3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00,
0xC5, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x03, 0x00, 0xC5, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00,
0xF9, 0x00, 0x02, 0x00, 0xB4, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x02, 0x00,
0xB4, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00,
0xC6, 0x00, 0x00, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00,
0x11, 0x00, 0x00, 0x00, 0xC7, 0x00, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x00, 0xB0, 0x00, 0x00, 0x00,
0xC7, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x02, 0x00, 0xB1, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0xB3, 0x00, 0x00, 0x00, 0xDA, 0x00, 0x01, 0x00,
0xDB, 0x00, 0x01, 0x00, 0xF9, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00,
0xF8, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 0x00, 0xFD, 0x00, 0x01, 0x00,
0x38, 0x00, 0x01, 0x00,
};

View File

@ -1,313 +1,310 @@
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 1
; Bound: 203
; Bound: 200
; Schema: 0
OpCapability Geometry
OpCapability GeometryPointSize
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Geometry %4 "main" %16 %35 %49 %52
OpExecutionMode %4 Triangles
OpExecutionMode %4 Invocations 1
OpExecutionMode %4 OutputTriangleStrip
OpExecutionMode %4 OutputVertices 6
OpEntryPoint Geometry %main "main" %gl_in %_ %out_interpolators %in_interpolators
OpExecutionMode %main Triangles
OpExecutionMode %main Invocations 1
OpExecutionMode %main OutputTriangleStrip
OpExecutionMode %main OutputVertices 6
OpSource GLSL 450
OpName %4 "main"
OpName %8 "left_aligned"
OpName %11 "gl_PerVertex"
OpMemberName %11 0 "gl_Position"
OpMemberName %11 1 "gl_PointSize"
OpName %16 "gl_in"
OpName %33 "gl_PerVertex"
OpMemberName %33 0 "gl_Position"
OpMemberName %33 1 "gl_PointSize"
OpName %35 ""
OpName %49 "out_interpolators"
OpName %52 "in_interpolators"
OpName %101 "i"
OpName %179 "i"
OpMemberDecorate %11 0 BuiltIn Position
OpMemberDecorate %11 1 BuiltIn PointSize
OpDecorate %11 Block
OpMemberDecorate %33 0 BuiltIn Position
OpMemberDecorate %33 1 BuiltIn PointSize
OpDecorate %33 Block
OpDecorate %49 Location 0
OpDecorate %52 Location 0
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%6 = OpTypeBool
%7 = OpTypePointer Function %6
%9 = OpTypeFloat 32
%10 = OpTypeVector %9 4
%11 = OpTypeStruct %10 %9
%12 = OpTypeInt 32 0
%13 = OpConstant %12 3
%14 = OpTypeArray %11 %13
%15 = OpTypePointer Input %14
%16 = OpVariable %15 Input
%17 = OpTypeInt 32 1
%18 = OpConstant %17 0
%19 = OpConstant %12 0
%20 = OpTypePointer Input %9
%23 = OpConstant %17 2
%28 = OpConstant %9 0.001
%33 = OpTypeStruct %10 %9
%34 = OpTypePointer Output %33
%35 = OpVariable %34 Output
%36 = OpTypePointer Input %10
%39 = OpTypePointer Output %10
%41 = OpConstant %17 1
%44 = OpTypePointer Output %9
%46 = OpConstant %12 16
%47 = OpTypeArray %10 %46
%48 = OpTypePointer Output %47
%49 = OpVariable %48 Output
%50 = OpTypeArray %47 %13
%51 = OpTypePointer Input %50
%52 = OpVariable %51 Input
%53 = OpTypePointer Input %47
%100 = OpTypePointer Function %17
%108 = OpConstant %17 16
%4 = OpFunction %2 None %3
OpName %main "main"
OpName %left_aligned "left_aligned"
OpName %gl_PerVertex "gl_PerVertex"
OpMemberName %gl_PerVertex 0 "gl_Position"
OpMemberName %gl_PerVertex 1 "gl_PointSize"
OpName %gl_in "gl_in"
OpName %gl_PerVertex_0 "gl_PerVertex"
OpMemberName %gl_PerVertex_0 0 "gl_Position"
OpMemberName %gl_PerVertex_0 1 "gl_PointSize"
OpName %_ ""
OpName %out_interpolators "out_interpolators"
OpName %in_interpolators "in_interpolators"
OpName %i "i"
OpName %i_0 "i"
OpMemberDecorate %gl_PerVertex 0 BuiltIn Position
OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize
OpDecorate %gl_PerVertex Block
OpMemberDecorate %gl_PerVertex_0 0 BuiltIn Position
OpMemberDecorate %gl_PerVertex_0 1 BuiltIn PointSize
OpDecorate %gl_PerVertex_0 Block
OpDecorate %out_interpolators Location 0
OpDecorate %in_interpolators Location 0
%void = OpTypeVoid
%3 = OpTypeFunction %void
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%gl_PerVertex = OpTypeStruct %v4float %float
%uint = OpTypeInt 32 0
%13 = OpConstant %uint 3
%_arr_gl_PerVertex_13 = OpTypeArray %gl_PerVertex %13
%_ptr_Input__arr_gl_PerVertex_13 = OpTypePointer Input %_arr_gl_PerVertex_13
%gl_in = OpVariable %_ptr_Input__arr_gl_PerVertex_13 Input
%int = OpTypeInt 32 1
%18 = OpConstant %int 0
%19 = OpConstant %uint 0
%_ptr_Input_float = OpTypePointer Input %float
%23 = OpConstant %int 2
%gl_PerVertex_0 = OpTypeStruct %v4float %float
%_ptr_Output_gl_PerVertex_0 = OpTypePointer Output %gl_PerVertex_0
%_ = OpVariable %_ptr_Output_gl_PerVertex_0 Output
%_ptr_Input_v4float = OpTypePointer Input %v4float
%_ptr_Output_v4float = OpTypePointer Output %v4float
%38 = OpConstant %int 1
%_ptr_Output_float = OpTypePointer Output %float
%43 = OpConstant %uint 16
%_arr_v4float_43 = OpTypeArray %v4float %43
%_ptr_Output__arr_v4float_43 = OpTypePointer Output %_arr_v4float_43
%out_interpolators = OpVariable %_ptr_Output__arr_v4float_43 Output
%_arr__arr_v4float_43_13 = OpTypeArray %_arr_v4float_43 %13
%_ptr_Input__arr__arr_v4float_43_13 = OpTypePointer Input %_arr__arr_v4float_43_13
%in_interpolators = OpVariable %_ptr_Input__arr__arr_v4float_43_13 Input
%_ptr_Input__arr_v4float_43 = OpTypePointer Input %_arr_v4float_43
%_ptr_Function_int = OpTypePointer Function %int
%105 = OpConstant %int 16
%main = OpFunction %void None %3
%5 = OpLabel
%8 = OpVariable %7 Function
%101 = OpVariable %100 Function
%179 = OpVariable %100 Function
%21 = OpAccessChain %20 %16 %18 %18 %19
%22 = OpLoad %9 %21
%24 = OpAccessChain %20 %16 %23 %18 %19
%25 = OpLoad %9 %24
%26 = OpFSub %9 %22 %25
%27 = OpExtInst %9 %1 FAbs %26
%29 = OpFOrdLessThan %6 %27 %28
OpStore %8 %29
%30 = OpLoad %6 %8
OpSelectionMerge %32 None
OpBranchConditional %30 %31 %126
%31 = OpLabel
%37 = OpAccessChain %36 %16 %18 %18
%38 = OpLoad %10 %37
%40 = OpAccessChain %39 %35 %18
OpStore %40 %38
%42 = OpAccessChain %20 %16 %18 %41
%43 = OpLoad %9 %42
%45 = OpAccessChain %44 %35 %41
OpStore %45 %43
%54 = OpAccessChain %53 %52 %18
%55 = OpLoad %47 %54
OpStore %49 %55
%left_aligned = OpVariable %_ptr_Function_bool Function
%i = OpVariable %_ptr_Function_int Function
%i_0 = OpVariable %_ptr_Function_int Function
%21 = OpAccessChain %_ptr_Input_float %gl_in %18 %18 %19
%22 = OpLoad %float %21
%24 = OpAccessChain %_ptr_Input_float %gl_in %23 %18 %19
%25 = OpLoad %float %24
%26 = OpFOrdEqual %bool %22 %25
OpStore %left_aligned %26
%27 = OpLoad %bool %left_aligned
OpSelectionMerge %29 None
OpBranchConditional %27 %28 %123
%28 = OpLabel
%34 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%35 = OpLoad %v4float %34
%37 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %37 %35
%39 = OpAccessChain %_ptr_Input_float %gl_in %18 %38
%40 = OpLoad %float %39
%42 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %42 %40
%51 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %18
%52 = OpLoad %_arr_v4float_43 %51
OpStore %out_interpolators %52
OpEmitVertex
%56 = OpAccessChain %36 %16 %41 %18
%57 = OpLoad %10 %56
%58 = OpAccessChain %39 %35 %18
%53 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%54 = OpLoad %v4float %53
%55 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %55 %54
%56 = OpAccessChain %_ptr_Input_float %gl_in %38 %38
%57 = OpLoad %float %56
%58 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %58 %57
%59 = OpAccessChain %20 %16 %41 %41
%60 = OpLoad %9 %59
%61 = OpAccessChain %44 %35 %41
OpStore %61 %60
%62 = OpAccessChain %53 %52 %41
%63 = OpLoad %47 %62
OpStore %49 %63
%59 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %38
%60 = OpLoad %_arr_v4float_43 %59
OpStore %out_interpolators %60
OpEmitVertex
%64 = OpAccessChain %36 %16 %23 %18
%65 = OpLoad %10 %64
%66 = OpAccessChain %39 %35 %18
%61 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%62 = OpLoad %v4float %61
%63 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %63 %62
%64 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%65 = OpLoad %float %64
%66 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %66 %65
%67 = OpAccessChain %20 %16 %23 %41
%68 = OpLoad %9 %67
%69 = OpAccessChain %44 %35 %41
OpStore %69 %68
%70 = OpAccessChain %53 %52 %23
%71 = OpLoad %47 %70
OpStore %49 %71
%67 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%68 = OpLoad %_arr_v4float_43 %67
OpStore %out_interpolators %68
OpEmitVertex
OpEndPrimitive
%72 = OpAccessChain %36 %16 %23 %18
%73 = OpLoad %10 %72
%74 = OpAccessChain %39 %35 %18
%69 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%70 = OpLoad %v4float %69
%71 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %71 %70
%72 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%73 = OpLoad %float %72
%74 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %74 %73
%75 = OpAccessChain %20 %16 %23 %41
%76 = OpLoad %9 %75
%77 = OpAccessChain %44 %35 %41
OpStore %77 %76
%78 = OpAccessChain %53 %52 %23
%79 = OpLoad %47 %78
OpStore %49 %79
%75 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%76 = OpLoad %_arr_v4float_43 %75
OpStore %out_interpolators %76
OpEmitVertex
%80 = OpAccessChain %36 %16 %41 %18
%81 = OpLoad %10 %80
%82 = OpAccessChain %39 %35 %18
%77 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%78 = OpLoad %v4float %77
%79 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %79 %78
%80 = OpAccessChain %_ptr_Input_float %gl_in %38 %38
%81 = OpLoad %float %80
%82 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %82 %81
%83 = OpAccessChain %20 %16 %41 %41
%84 = OpLoad %9 %83
%85 = OpAccessChain %44 %35 %41
OpStore %85 %84
%86 = OpAccessChain %53 %52 %41
%87 = OpLoad %47 %86
OpStore %49 %87
%83 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %38
%84 = OpLoad %_arr_v4float_43 %83
OpStore %out_interpolators %84
OpEmitVertex
%88 = OpAccessChain %36 %16 %41 %18
%89 = OpLoad %10 %88
%90 = OpAccessChain %36 %16 %23 %18
%91 = OpLoad %10 %90
%92 = OpFAdd %10 %89 %91
%93 = OpAccessChain %36 %16 %18 %18
%94 = OpLoad %10 %93
%95 = OpFSub %10 %92 %94
%96 = OpAccessChain %39 %35 %18
%85 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%86 = OpLoad %v4float %85
%87 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%88 = OpLoad %v4float %87
%89 = OpFAdd %v4float %86 %88
%90 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%91 = OpLoad %v4float %90
%92 = OpFSub %v4float %89 %91
%93 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %93 %92
%94 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%95 = OpLoad %float %94
%96 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %96 %95
%97 = OpAccessChain %20 %16 %23 %41
%98 = OpLoad %9 %97
%99 = OpAccessChain %44 %35 %41
OpStore %99 %98
OpStore %101 %18
OpStore %i %18
OpBranch %99
%99 = OpLabel
OpLoopMerge %101 %102 None
OpBranch %103
%103 = OpLabel
%104 = OpLoad %int %i
%106 = OpSLessThan %bool %104 %105
OpBranchConditional %106 %100 %101
%100 = OpLabel
%107 = OpLoad %int %i
%108 = OpLoad %int %i
%109 = OpAccessChain %_ptr_Input_v4float %in_interpolators %18 %108
%110 = OpLoad %v4float %109
%111 = OpFNegate %v4float %110
%112 = OpLoad %int %i
%113 = OpAccessChain %_ptr_Input_v4float %in_interpolators %38 %112
%114 = OpLoad %v4float %113
%115 = OpFAdd %v4float %111 %114
%116 = OpLoad %int %i
%117 = OpAccessChain %_ptr_Input_v4float %in_interpolators %23 %116
%118 = OpLoad %v4float %117
%119 = OpFAdd %v4float %115 %118
%120 = OpAccessChain %_ptr_Output_v4float %out_interpolators %107
OpStore %120 %119
OpBranch %102
%102 = OpLabel
OpLoopMerge %104 %105 None
OpBranch %106
%106 = OpLabel
%107 = OpLoad %17 %101
%109 = OpSLessThan %6 %107 %108
OpBranchConditional %109 %103 %104
%103 = OpLabel
%110 = OpLoad %17 %101
%111 = OpLoad %17 %101
%112 = OpAccessChain %36 %52 %18 %111
%113 = OpLoad %10 %112
%114 = OpFNegate %10 %113
%115 = OpLoad %17 %101
%116 = OpAccessChain %36 %52 %41 %115
%117 = OpLoad %10 %116
%118 = OpFAdd %10 %114 %117
%119 = OpLoad %17 %101
%120 = OpAccessChain %36 %52 %23 %119
%121 = OpLoad %10 %120
%122 = OpFAdd %10 %118 %121
%123 = OpAccessChain %39 %49 %110
OpStore %123 %122
OpBranch %105
%105 = OpLabel
%124 = OpLoad %17 %101
%125 = OpIAdd %17 %124 %41
OpStore %101 %125
OpBranch %102
%104 = OpLabel
%121 = OpLoad %int %i
%122 = OpIAdd %int %121 %38
OpStore %i %122
OpBranch %99
%101 = OpLabel
OpEmitVertex
OpEndPrimitive
OpBranch %32
%126 = OpLabel
%127 = OpAccessChain %36 %16 %18 %18
%128 = OpLoad %10 %127
%129 = OpAccessChain %39 %35 %18
OpBranch %29
%123 = OpLabel
%124 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%125 = OpLoad %v4float %124
%126 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %126 %125
%127 = OpAccessChain %_ptr_Input_float %gl_in %18 %38
%128 = OpLoad %float %127
%129 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %129 %128
%130 = OpAccessChain %20 %16 %18 %41
%131 = OpLoad %9 %130
%132 = OpAccessChain %44 %35 %41
OpStore %132 %131
%133 = OpAccessChain %53 %52 %18
%134 = OpLoad %47 %133
OpStore %49 %134
%130 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %18
%131 = OpLoad %_arr_v4float_43 %130
OpStore %out_interpolators %131
OpEmitVertex
%135 = OpAccessChain %36 %16 %41 %18
%136 = OpLoad %10 %135
%137 = OpAccessChain %39 %35 %18
%132 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%133 = OpLoad %v4float %132
%134 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %134 %133
%135 = OpAccessChain %_ptr_Input_float %gl_in %38 %38
%136 = OpLoad %float %135
%137 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %137 %136
%138 = OpAccessChain %20 %16 %41 %41
%139 = OpLoad %9 %138
%140 = OpAccessChain %44 %35 %41
OpStore %140 %139
%141 = OpAccessChain %53 %52 %41
%142 = OpLoad %47 %141
OpStore %49 %142
%138 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %38
%139 = OpLoad %_arr_v4float_43 %138
OpStore %out_interpolators %139
OpEmitVertex
%143 = OpAccessChain %36 %16 %23 %18
%144 = OpLoad %10 %143
%145 = OpAccessChain %39 %35 %18
%140 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%141 = OpLoad %v4float %140
%142 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %142 %141
%143 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%144 = OpLoad %float %143
%145 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %145 %144
%146 = OpAccessChain %20 %16 %23 %41
%147 = OpLoad %9 %146
%148 = OpAccessChain %44 %35 %41
OpStore %148 %147
%149 = OpAccessChain %53 %52 %23
%150 = OpLoad %47 %149
OpStore %49 %150
%146 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%147 = OpLoad %_arr_v4float_43 %146
OpStore %out_interpolators %147
OpEmitVertex
OpEndPrimitive
%151 = OpAccessChain %36 %16 %18 %18
%152 = OpLoad %10 %151
%153 = OpAccessChain %39 %35 %18
%148 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%149 = OpLoad %v4float %148
%150 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %150 %149
%151 = OpAccessChain %_ptr_Input_float %gl_in %18 %38
%152 = OpLoad %float %151
%153 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %153 %152
%154 = OpAccessChain %20 %16 %18 %41
%155 = OpLoad %9 %154
%156 = OpAccessChain %44 %35 %41
OpStore %156 %155
%157 = OpAccessChain %53 %52 %18
%158 = OpLoad %47 %157
OpStore %49 %158
%154 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %18
%155 = OpLoad %_arr_v4float_43 %154
OpStore %out_interpolators %155
OpEmitVertex
%159 = OpAccessChain %36 %16 %23 %18
%160 = OpLoad %10 %159
%161 = OpAccessChain %39 %35 %18
%156 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%157 = OpLoad %v4float %156
%158 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %158 %157
%159 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%160 = OpLoad %float %159
%161 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %161 %160
%162 = OpAccessChain %20 %16 %23 %41
%163 = OpLoad %9 %162
%164 = OpAccessChain %44 %35 %41
OpStore %164 %163
%165 = OpAccessChain %53 %52 %23
%166 = OpLoad %47 %165
OpStore %49 %166
%162 = OpAccessChain %_ptr_Input__arr_v4float_43 %in_interpolators %23
%163 = OpLoad %_arr_v4float_43 %162
OpStore %out_interpolators %163
OpEmitVertex
%167 = OpAccessChain %36 %16 %18 %18
%168 = OpLoad %10 %167
%169 = OpAccessChain %36 %16 %23 %18
%170 = OpLoad %10 %169
%171 = OpFAdd %10 %168 %170
%172 = OpAccessChain %36 %16 %41 %18
%173 = OpLoad %10 %172
%174 = OpFSub %10 %171 %173
%175 = OpAccessChain %39 %35 %18
%164 = OpAccessChain %_ptr_Input_v4float %gl_in %18 %18
%165 = OpLoad %v4float %164
%166 = OpAccessChain %_ptr_Input_v4float %gl_in %23 %18
%167 = OpLoad %v4float %166
%168 = OpFAdd %v4float %165 %167
%169 = OpAccessChain %_ptr_Input_v4float %gl_in %38 %18
%170 = OpLoad %v4float %169
%171 = OpFSub %v4float %168 %170
%172 = OpAccessChain %_ptr_Output_v4float %_ %18
OpStore %172 %171
%173 = OpAccessChain %_ptr_Input_float %gl_in %23 %38
%174 = OpLoad %float %173
%175 = OpAccessChain %_ptr_Output_float %_ %38
OpStore %175 %174
%176 = OpAccessChain %20 %16 %23 %41
%177 = OpLoad %9 %176
%178 = OpAccessChain %44 %35 %41
OpStore %178 %177
OpStore %179 %18
OpStore %i_0 %18
OpBranch %177
%177 = OpLabel
OpLoopMerge %179 %180 None
OpBranch %181
%181 = OpLabel
%182 = OpLoad %int %i_0
%183 = OpSLessThan %bool %182 %105
OpBranchConditional %183 %178 %179
%178 = OpLabel
%184 = OpLoad %int %i_0
%185 = OpLoad %int %i_0
%186 = OpAccessChain %_ptr_Input_v4float %in_interpolators %18 %185
%187 = OpLoad %v4float %186
%188 = OpLoad %int %i_0
%189 = OpAccessChain %_ptr_Input_v4float %in_interpolators %38 %188
%190 = OpLoad %v4float %189
%191 = OpFNegate %v4float %190
%192 = OpFAdd %v4float %187 %191
%193 = OpLoad %int %i_0
%194 = OpAccessChain %_ptr_Input_v4float %in_interpolators %23 %193
%195 = OpLoad %v4float %194
%196 = OpFAdd %v4float %192 %195
%197 = OpAccessChain %_ptr_Output_v4float %out_interpolators %184
OpStore %197 %196
OpBranch %180
%180 = OpLabel
OpLoopMerge %182 %183 None
OpBranch %184
%184 = OpLabel
%185 = OpLoad %17 %179
%186 = OpSLessThan %6 %185 %108
OpBranchConditional %186 %181 %182
%181 = OpLabel
%187 = OpLoad %17 %179
%188 = OpLoad %17 %179
%189 = OpAccessChain %36 %52 %18 %188
%190 = OpLoad %10 %189
%191 = OpLoad %17 %179
%192 = OpAccessChain %36 %52 %41 %191
%193 = OpLoad %10 %192
%194 = OpFNegate %10 %193
%195 = OpFAdd %10 %190 %194
%196 = OpLoad %17 %179
%197 = OpAccessChain %36 %52 %23 %196
%198 = OpLoad %10 %197
%199 = OpFAdd %10 %195 %198
%200 = OpAccessChain %39 %49 %187
OpStore %200 %199
OpBranch %183
%183 = OpLabel
%201 = OpLoad %17 %179
%202 = OpIAdd %17 %201 %41
OpStore %179 %202
OpBranch %180
%182 = OpLabel
%198 = OpLoad %int %i_0
%199 = OpIAdd %int %198 %38
OpStore %i_0 %199
OpBranch %177
%179 = OpLabel
OpEmitVertex
OpEndPrimitive
OpBranch %32
%32 = OpLabel
OpBranch %29
%29 = OpLabel
OpReturn
OpFunctionEnd

View File

@ -13,6 +13,7 @@ layout(set = 0, binding = 1) uniform consts_type {
layout(push_constant) uniform push_consts_type {
vec4 window_scale;
vec4 vtx_fmt;
vec4 point_size;
vec4 alpha_test;
uint ps_param_gen;
} push_constants;
@ -28,4 +29,4 @@ layout(location = 0) out vec4 oC[4];
void main() {
// This shader does absolutely nothing!
return;
}
}

View File

@ -4,23 +4,31 @@
#version 450 core
#extension all : warn
layout(push_constant) uniform push_consts_type {
vec4 window_scale;
vec4 vtx_fmt;
vec4 point_size;
vec4 alpha_test;
uint ps_param_gen;
} push_constants;
in gl_PerVertex {
vec4 gl_Position;
float gl_PointSize;
// float gl_ClipDistance[];
} gl_in[];
out gl_PerVertex {
vec4 gl_Position;
float gl_PointSize;
// float gl_ClipDistance[];
};
layout(location = 0) in vec4 in_interpolators[][16];
layout(location = 0) out vec4 out_interpolators[16];
layout(location = 16) in vec2 in_point_coord_unused[];
layout(location = 17) in float point_size[];
layout(location = 0) out vec4 out_interpolators[16];
layout(location = 16) out vec2 point_coord;
// TODO(benvanik): fetch default point size from register and use that if
// the VS doesn't write oPointSize.
// TODO(benvanik): clamp to min/max.
// TODO(benvanik): figure out how to see which interpolator gets adjusted.
@ -35,10 +43,17 @@ void main() {
vec2( 1.0, -1.0),
};
vec4 pos = gl_in[0].gl_Position;
float psize = gl_in[0].gl_PointSize;
vec2 window_scaled_psize = push_constants.point_size.xy;
// Shader header writes -1.0f to pointSize by default, so any positive value
// means that it was overwritten by the translated vertex shader.
if (point_size[0] > 0.0f) {
window_scaled_psize = vec2(point_size[0]);
}
window_scaled_psize /= push_constants.window_scale.zw;
for (int i = 0; i < 4; ++i) {
gl_Position = vec4(pos.xy + offsets[i] * psize, pos.zw);
gl_Position = vec4(pos.xy + (offsets[i] * window_scaled_psize), pos.zw);
out_interpolators = in_interpolators[0];
point_coord = max(offsets[i], vec2(0.0f));
EmitVertex();
}
EndPrimitive();