From c1db89b4ddbdbc9eb6f026f59c43b49237e4115e Mon Sep 17 00:00:00 2001 From: Dan Weatherford Date: Sun, 6 Nov 2016 17:40:40 -0600 Subject: [PATCH 1/2] Eliminate double lock of Vulkan queue mutex --- src/xenia/gpu/vulkan/vulkan_command_processor.cc | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/xenia/gpu/vulkan/vulkan_command_processor.cc b/src/xenia/gpu/vulkan/vulkan_command_processor.cc index 67b9bc017..b6e2398fa 100644 --- a/src/xenia/gpu/vulkan/vulkan_command_processor.cc +++ b/src/xenia/gpu/vulkan/vulkan_command_processor.cc @@ -396,14 +396,8 @@ void VulkanCommandProcessor::PerformSwap(uint32_t frontbuffer_ptr, submit_info.signalSemaphoreCount = 1; submit_info.pSignalSemaphores = &swap_sem; - if (queue_mutex_) { - std::lock_guard lock(*queue_mutex_); - status = vkQueueSubmit(queue_, 1, &submit_info, current_batch_fence_); - CheckResult(status, "vkQueueSubmit"); - } else { - status = vkQueueSubmit(queue_, 1, &submit_info, current_batch_fence_); - CheckResult(status, "vkQueueSubmit"); - } + status = vkQueueSubmit(queue_, 1, &submit_info, current_batch_fence_); + CheckResult(status, "vkQueueSubmit"); if (device_->is_renderdoc_attached() && capturing_) { device_->EndRenderDocFrameCapture(); From 6f6e638f2fb3103ebaaa79778a2f16f483817ea8 Mon Sep 17 00:00:00 2001 From: Dan Weatherford Date: Wed, 2 Nov 2016 23:48:21 -0500 Subject: [PATCH 2/2] [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. --- src/xenia/gpu/spirv_shader_translator.cc | 64 +- src/xenia/gpu/spirv_shader_translator.h | 12 +- src/xenia/gpu/vulkan/pipeline_cache.cc | 141 ++-- src/xenia/gpu/vulkan/pipeline_cache.h | 1 + src/xenia/gpu/vulkan/shaders/bin/dummy_frag.h | 72 +- .../gpu/vulkan/shaders/bin/dummy_frag.txt | 178 ++--- .../shaders/bin/line_quad_list_geom.txt | 200 +++--- .../gpu/vulkan/shaders/bin/point_list_geom.h | 418 ++++++----- .../vulkan/shaders/bin/point_list_geom.txt | 301 ++++---- .../gpu/vulkan/shaders/bin/quad_list_geom.txt | 180 ++--- .../gpu/vulkan/shaders/bin/rect_list_geom.h | 661 +++++++++--------- .../gpu/vulkan/shaders/bin/rect_list_geom.txt | 537 +++++++------- src/xenia/gpu/vulkan/shaders/dummy.frag | 3 +- src/xenia/gpu/vulkan/shaders/point_list.geom | 29 +- 14 files changed, 1501 insertions(+), 1296 deletions(-) diff --git a/src/xenia/gpu/spirv_shader_translator.cc b/src/xenia/gpu/spirv_shader_translator.cc index 8daaf8815..29e8e671c 100644 --- a/src/xenia/gpu/spirv_shader_translator.cc +++ b/src/xenia/gpu/spirv_shader_translator.cc @@ -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(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(offsetof(SpirvPushConstants, alpha_test))); - b.addMemberName(push_constants_type, 2, "alpha_test"); - // uint ps_param_gen; + static_cast(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(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(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({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({b.makeUintConstant(3)})); + std::vector({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 SpirvShaderTranslator::CompleteTranslation() { // Alpha test auto alpha_test_ptr = b.createAccessChain( spv::StorageClass::StorageClassPushConstant, push_consts_, - std::vector({b.makeUintConstant(2)})); + std::vector({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()); diff --git a/src/xenia/gpu/spirv_shader_translator.h b/src/xenia/gpu/spirv_shader_translator.h index a6f6fe67c..bdeb64940 100644 --- a/src/xenia/gpu/spirv_shader_translator.h +++ b/src/xenia/gpu/spirv_shader_translator.h @@ -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; diff --git a/src/xenia/gpu/vulkan/pipeline_cache.cc b/src/xenia/gpu/vulkan/pipeline_cache.cc index c07f07e4a..69cf3d8b4 100644 --- a/src/xenia/gpu/vulkan/pipeline_cache.cc +++ b/src/xenia/gpu/vulkan/pipeline_cache.cc @@ -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(®s.pa_cl_vport_zscale, XE_GPU_REG_PA_CL_VPORT_ZSCALE); + // RB_SURFACE_INFO + auto surface_msaa = + static_cast((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((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(®s.rb_colorcontrol, XE_GPU_REG_RB_COLORCONTROL); push_constants_dirty |= SetShadowRegister(®s.rb_alpha_ref, XE_GPU_REG_RB_ALPHA_REF); + push_constants_dirty |= + SetShadowRegister(®s.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((regs.pa_su_point_size & 0xffff0000) >> 16) / 8.0f; + push_constants.point_size[1] = + static_cast((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; diff --git a/src/xenia/gpu/vulkan/pipeline_cache.h b/src/xenia/gpu/vulkan/pipeline_cache.h index d359dd0cc..5b14f03ce 100644 --- a/src/xenia/gpu/vulkan/pipeline_cache.h +++ b/src/xenia/gpu/vulkan/pipeline_cache.h @@ -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)); } diff --git a/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.h b/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.h index 4979148f4..d4e3da335 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.h +++ b/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.h @@ -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, diff --git a/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.txt b/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.txt index 87e4a97e3..5eb0234fc 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.txt +++ b/src/xenia/gpu/vulkan/shaders/bin/dummy_frag.txt @@ -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 diff --git a/src/xenia/gpu/vulkan/shaders/bin/line_quad_list_geom.txt b/src/xenia/gpu/vulkan/shaders/bin/line_quad_list_geom.txt index bfdd834d8..a159da9cb 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/line_quad_list_geom.txt +++ b/src/xenia/gpu/vulkan/shaders/bin/line_quad_list_geom.txt @@ -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 diff --git a/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.h b/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.h index 700c3a71c..4669ac85c 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.h +++ b/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.h @@ -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, }; diff --git a/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.txt b/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.txt index 84f31f4ac..f10172256 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.txt +++ b/src/xenia/gpu/vulkan/shaders/bin/point_list_geom.txt @@ -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 diff --git a/src/xenia/gpu/vulkan/shaders/bin/quad_list_geom.txt b/src/xenia/gpu/vulkan/shaders/bin/quad_list_geom.txt index 1b076e26a..c1c44c1a9 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/quad_list_geom.txt +++ b/src/xenia/gpu/vulkan/shaders/bin/quad_list_geom.txt @@ -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 diff --git a/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.h b/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.h index 92a50d5b9..946f882ff 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.h +++ b/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.h @@ -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, }; diff --git a/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.txt b/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.txt index 95caca313..3cdc20d51 100644 --- a/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.txt +++ b/src/xenia/gpu/vulkan/shaders/bin/rect_list_geom.txt @@ -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 diff --git a/src/xenia/gpu/vulkan/shaders/dummy.frag b/src/xenia/gpu/vulkan/shaders/dummy.frag index eeeef3804..bc44931a5 100644 --- a/src/xenia/gpu/vulkan/shaders/dummy.frag +++ b/src/xenia/gpu/vulkan/shaders/dummy.frag @@ -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; -} \ No newline at end of file +} diff --git a/src/xenia/gpu/vulkan/shaders/point_list.geom b/src/xenia/gpu/vulkan/shaders/point_list.geom index 6cb6e6d4f..cf1d42a93 100644 --- a/src/xenia/gpu/vulkan/shaders/point_list.geom +++ b/src/xenia/gpu/vulkan/shaders/point_list.geom @@ -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();