From dce6938827bd5df71bd0c95eaff1735f0e8dbca8 Mon Sep 17 00:00:00 2001 From: Triang3l Date: Sun, 6 Jun 2021 18:27:43 +0300 Subject: [PATCH] [D3D12] ROV sample depth via ddxy(z), DSV depth bias cleanup --- .../gpu/d3d12/d3d12_command_processor.cc | 9 +- src/xenia/gpu/d3d12/pipeline_cache.cc | 27 +- src/xenia/gpu/draw_util.cc | 5 + src/xenia/gpu/draw_util.h | 30 + src/xenia/gpu/dxbc_shader_translator.cc | 108 +- src/xenia/gpu/dxbc_shader_translator.h | 38 +- src/xenia/gpu/dxbc_shader_translator_om.cc | 800 ++--- src/xenia/gpu/register_table.inc | 3 + .../bytecode/d3d12_5_1/continuous_quad_hs.h | 457 ++- .../d3d12_5_1/continuous_triangle_hs.h | 457 ++- .../bytecode/d3d12_5_1/discrete_quad_hs.h | 457 ++- .../bytecode/d3d12_5_1/discrete_triangle_hs.h | 457 ++- .../bytecode/d3d12_5_1/float24_round_ps.h | 73 +- .../bytecode/d3d12_5_1/float24_truncate_ps.h | 73 +- .../d3d12_5_1/primitive_point_list_gs.h | 1664 +++++----- .../d3d12_5_1/primitive_quad_list_gs.h | 1069 ++++--- .../d3d12_5_1/primitive_rectangle_list_gs.h | 2741 ++++++++--------- .../d3d12_5_1/tessellation_adaptive_vs.h | 477 ++- .../d3d12_5_1/tessellation_indexed_vs.h | 477 ++- .../gpu/shaders/primitive_point_list.gs.hlsl | 1 - .../shaders/primitive_rectangle_list.gs.hlsl | 4 - src/xenia/gpu/shaders/xenos_draw.hlsli | 4 +- 22 files changed, 4603 insertions(+), 4828 deletions(-) diff --git a/src/xenia/gpu/d3d12/d3d12_command_processor.cc b/src/xenia/gpu/d3d12/d3d12_command_processor.cc index 4c7038146..91b9415c8 100644 --- a/src/xenia/gpu/d3d12/d3d12_command_processor.cc +++ b/src/xenia/gpu/d3d12/d3d12_command_processor.cc @@ -3213,12 +3213,6 @@ void D3D12CommandProcessor::UpdateSystemConstantValues( dirty |= system_constants_.edram_depth_base_dwords != depth_base_dwords; system_constants_.edram_depth_base_dwords = depth_base_dwords; - float depth_range_scale = viewport_info.z_max - viewport_info.z_min; - dirty |= system_constants_.edram_depth_range_scale != depth_range_scale; - system_constants_.edram_depth_range_scale = depth_range_scale; - dirty |= system_constants_.edram_depth_range_offset != viewport_info.z_min; - system_constants_.edram_depth_range_offset = viewport_info.z_min; - // For non-polygons, front polygon offset is used, and it's enabled if // POLY_OFFSET_PARA_ENABLED is set, for polygons, separate front and back // are used. @@ -3247,8 +3241,7 @@ void D3D12CommandProcessor::UpdateSystemConstantValues( poly_offset_back_offset = poly_offset_front_offset; } } - // "slope computed in subpixels (1/12 or 1/16)" - R5xx Acceleration. Also: - // https://github.com/mesa3d/mesa/blob/54ad9b444c8e73da498211870e785239ad3ff1aa/src/gallium/drivers/radeonsi/si_state.c#L943 + // "slope computed in subpixels ([...] 1/16)" - R5xx Acceleration. poly_offset_front_scale *= (1.0f / 16.0f) * resolution_scale; poly_offset_back_scale *= (1.0f / 16.0f) * resolution_scale; dirty |= system_constants_.edram_poly_offset_front_scale != diff --git a/src/xenia/gpu/d3d12/pipeline_cache.cc b/src/xenia/gpu/d3d12/pipeline_cache.cc index bd4268c38..9b39be885 100644 --- a/src/xenia/gpu/d3d12/pipeline_cache.cc +++ b/src/xenia/gpu/d3d12/pipeline_cache.cc @@ -1457,31 +1457,16 @@ bool PipelineCache::GetCurrentStateDescription( } } if (!edram_rov_used) { - // Conversion based on the calculations in Call of Duty 4 and the values it - // writes to the registers, and also on: - // https://github.com/mesa3d/mesa/blob/54ad9b444c8e73da498211870e785239ad3ff1aa/src/gallium/drivers/radeonsi/si_state.c#L943 - // Dividing the scale by 2 - Call of Duty 4 sets the constant bias of - // 1/32768 for decals, however, it's done in two steps in separate places: - // first it's divided by 65536, and then it's multiplied by 2 (which is - // consistent with what si_create_rs_state does, which multiplies the offset - // by 2 if it comes from a non-D3D9 API for 24-bit depth buffers) - and - // multiplying by 2 to the number of significand bits. Tested mostly in Call - // of Duty 4 (vehicledamage map explosion decals) and Red Dead Redemption - // (shadows - 2^17 is not enough, 2^18 hasn't been tested, but 2^19 - // eliminates the acne). - if (regs.Get().depth_format == - xenos::DepthRenderTargetFormat::kD24FS8) { - poly_offset *= float(1 << 19); - } else { - poly_offset *= float(1 << 23); - } + float poly_offset_host_scale = draw_util::GetD3D10PolygonOffsetScale( + regs.Get().depth_format, true); // Using ceil here just in case a game wants the offset but passes a value // that is too small - it's better to apply more offset than to make depth // fighting worse or to disable the offset completely (Direct3D 12 takes an // integer value). - description_out.depth_bias = int32_t(std::ceil(std::abs(poly_offset))) * - (poly_offset < 0.0f ? -1 : 1); - // "slope computed in subpixels (1/12 or 1/16)" - R5xx Acceleration. + description_out.depth_bias = + int32_t(std::ceil(std::abs(poly_offset * poly_offset_host_scale))) * + (poly_offset < 0.0f ? -1 : 1); + // "slope computed in subpixels ([...] 1/16)" - R5xx Acceleration. description_out.depth_bias_slope_scaled = poly_offset_scale * (1.0f / 16.0f); } diff --git a/src/xenia/gpu/draw_util.cc b/src/xenia/gpu/draw_util.cc index 21db6f42b..49149b7f9 100644 --- a/src/xenia/gpu/draw_util.cc +++ b/src/xenia/gpu/draw_util.cc @@ -136,6 +136,11 @@ bool IsRasterizationPotentiallyDone(const RegisterFile& regs, return true; } +// https://docs.microsoft.com/en-us/windows/win32/api/d3d11/ne-d3d11-d3d11_standard_multisample_quality_levels +const int8_t kD3D10StandardSamplePositions2x[2][2] = {{4, 4}, {-4, -4}}; +const int8_t kD3D10StandardSamplePositions4x[4][2] = { + {-2, -6}, {6, -2}, {-6, 2}, {2, 6}}; + bool IsPixelShaderNeededWithRasterization(const Shader& shader, const RegisterFile& regs) { assert_true(shader.type() == xenos::ShaderType::kPixel); diff --git a/src/xenia/gpu/draw_util.h b/src/xenia/gpu/draw_util.h index 3729f4f77..75d3d4053 100644 --- a/src/xenia/gpu/draw_util.h +++ b/src/xenia/gpu/draw_util.h @@ -88,6 +88,11 @@ inline bool IsPrimitivePolygonal(const RegisterFile& regs) { bool IsRasterizationPotentiallyDone(const RegisterFile& regs, bool primitive_polygonal); +// Direct3D 10.1+ standard sample positions, also used in Vulkan, for +// calculations related to host MSAA, in 1/16th of a pixel. +extern const int8_t kD3D10StandardSamplePositions2x[2][2]; +extern const int8_t kD3D10StandardSamplePositions4x[4][2]; + inline reg::RB_DEPTHCONTROL GetDepthControlForCurrentEdramMode( const RegisterFile& regs) { xenos::ModeControl edram_mode = regs.Get().edram_mode; @@ -101,6 +106,31 @@ inline reg::RB_DEPTHCONTROL GetDepthControlForCurrentEdramMode( return regs.Get(); } +constexpr float GetD3D10PolygonOffsetScale( + xenos::DepthRenderTargetFormat depth_format, bool float24_as_0_to_0_5) { + if (depth_format == xenos::DepthRenderTargetFormat::kD24S8) { + return float(1 << 24); + } + // 20 explicit + 1 implicit (1.) mantissa bits. + // 2^20 is not enough for Call of Duty 4 retail version's first mission F.N.G. + // shooting range floor (with the number 1) on Direct3D 12. Tested on Nvidia + // GeForce GTX 1070, the exact formula (taking into account the 0...1 to + // 0...0.5 remapping described below) used for testing is + // `int(ceil(offset * 2^20 * 0.5)) * sign(offset)`. With 2^20 * 0.5, there + // are various kinds of stripes dependending on the view angle in that + // location. With 2^21 * 0.5, the issue is not present. + constexpr float kFloat24Scale = float(1 << 21); + // 0...0.5 range may be used on the host to represent the 0...1 guest depth + // range to be able to copy all possible encodings, which are [0, 2), via a + // [0, 1] depth output variable, during EDRAM contents reinterpretation. + // This is done by scaling the viewport depth bounds by 0.5. However, the + // depth bias is applied after the viewport. This adjustment is only needed + // for the constant bias - for slope-scaled, the derivatives of Z are + // calculated after the viewport as well, and will already include the 0.5 + // scaling from the viewport. + return float24_as_0_to_0_5 ? kFloat24Scale * 0.5f : kFloat24Scale; +} + inline bool DoesCoverageDependOnAlpha(reg::RB_COLORCONTROL rb_colorcontrol) { return (rb_colorcontrol.alpha_test_enable && rb_colorcontrol.alpha_func != xenos::CompareFunction::kAlways) || diff --git a/src/xenia/gpu/dxbc_shader_translator.cc b/src/xenia/gpu/dxbc_shader_translator.cc index cc337f12b..30582b022 100644 --- a/src/xenia/gpu/dxbc_shader_translator.cc +++ b/src/xenia/gpu/dxbc_shader_translator.cc @@ -562,9 +562,27 @@ void DxbcShaderTranslator::StartPixelShader() { // Load the EDRAM addresses and the coverage. StartPixelShader_LoadROVParameters(); - // Do early 2x2 quad rejection if it makes sense. if (ROV_IsDepthStencilEarly()) { + // Do early 2x2 quad rejection if it's safe. ROV_DepthStencilTest(); + } else { + if (!current_shader().writes_depth()) { + // Get the derivatives of the screen-space (but not clamped to the + // viewport depth bounds yet - this happens after the pixel shader in + // Direct3D 11+; also linear within the triangle - thus constant + // derivatives along the triangle) Z for calculating per-sample depth + // values and the slope-scaled polygon offset to + // system_temp_depth_stencil_ before any return statement is possibly + // reached. + assert_true(system_temp_depth_stencil_ != UINT32_MAX); + dxbc::Src in_position_z(dxbc::Src::V( + uint32_t(InOutRegister::kPSInPosition), dxbc::Src::kZZZZ)); + in_position_used_ |= 0b0100; + a_.OpDerivRTXCoarse(dxbc::Dest::R(system_temp_depth_stencil_, 0b0001), + in_position_z); + a_.OpDerivRTYCoarse(dxbc::Dest::R(system_temp_depth_stencil_, 0b0010), + in_position_z); + } } } @@ -759,15 +777,24 @@ void DxbcShaderTranslator::StartTranslation() { system_temp_rov_params_ = PushSystemTemp(); } if (IsDepthStencilSystemTempUsed()) { - // If the shader doesn't write to oDepth, and ROV is used, each - // component will be written to if depth/stencil is enabled and the - // respective sample is covered - so need to initialize now because the - // first writes will be conditional. - // If the shader writes to oDepth, this is oDepth of the shader, written - // by the guest code, so initialize because assumptions can't be made - // about the integrity of the guest code. - system_temp_depth_stencil_ = - PushSystemTemp(current_shader().writes_depth() ? 0b0001 : 0b1111); + uint32_t depth_stencil_temp_zero_mask; + if (current_shader().writes_depth()) { + // X holds the guest oDepth - make sure it's always initialized because + // assumptions can't be made about the integrity of the guest code. + depth_stencil_temp_zero_mask = 0b0001; + } else { + assert_true(edram_rov_used_); + if (ROV_IsDepthStencilEarly()) { + // XYZW hold per-sample depth / stencil after the early test - written + // conditionally based on the coverage, ensure registers are + // initialized unconditionally for safety. + depth_stencil_temp_zero_mask = 0b1111; + } else { + // XY hold Z gradients, written unconditionally in the beginning. + depth_stencil_temp_zero_mask = 0b0000; + } + } + system_temp_depth_stencil_ = PushSystemTemp(depth_stencil_temp_zero_mask); } uint32_t shader_writes_color_targets = current_shader().writes_color_targets(); @@ -933,11 +960,6 @@ void DxbcShaderTranslator::CompleteVertexOrDomainShader() { dxbc::Src::R(system_temp_position_, dxbc::Src::kWWWW), dxbc::Src::R(system_temp_position_)); - // Write Z and W of the position to a separate attribute so ROV output can get - // per-sample depth. - a_.OpMov(dxbc::Dest::O(uint32_t(InOutRegister::kVSDSOutClipSpaceZW), 0b0011), - dxbc::Src::R(system_temp_position_, 0b1110)); - // Assuming SV_CullDistance was zeroed earlier in this function. // Kill the primitive if needed - check if the shader wants to kill. // TODO(Triang3l): Find if the condition is actually the flag being non-zero. @@ -1983,15 +2005,13 @@ const DxbcShaderTranslator::SystemConstantRdef {"xe_color_exp_bias", ShaderRdefTypeIndex::kFloat4, sizeof(float) * 4}, - {"xe_edram_depth_range", ShaderRdefTypeIndex::kFloat2, - sizeof(float) * 2}, {"xe_edram_poly_offset_front", ShaderRdefTypeIndex::kFloat2, sizeof(float) * 2}, - {"xe_edram_poly_offset_back", ShaderRdefTypeIndex::kFloat2, sizeof(float) * 2}, + {"xe_edram_depth_base_dwords", ShaderRdefTypeIndex::kUint, - sizeof(uint32_t), sizeof(float)}, + sizeof(uint32_t), sizeof(float) * 3}, {"xe_edram_stencil", ShaderRdefTypeIndex::kUint4Array2, sizeof(uint32_t) * 4 * 2}, @@ -2708,24 +2728,7 @@ void DxbcShaderTranslator::WriteInputSignature() { point_parameters.always_reads_mask = param_gen_used ? 0b0011 : 0b0000; } - // Z and W in clip space, for getting per-sample depth with ROV (TEXCOORD#). - size_t clip_space_zw_position = shader_object_.size(); - shader_object_.resize(shader_object_.size() + kParameterDwords); - ++parameter_count; - { - auto& clip_space_zw = *reinterpret_cast( - shader_object_.data() + clip_space_zw_position); - clip_space_zw.semantic_index = kClipSpaceZWTexCoord; - clip_space_zw.component_type = - dxbc::SignatureRegisterComponentType::kFloat32; - clip_space_zw.register_index = uint32_t(InOutRegister::kPSInClipSpaceZW); - clip_space_zw.mask = 0b0011; - clip_space_zw.always_reads_mask = edram_rov_used_ ? 0b0011 : 0b0000; - } - - // Pixel position. Z is not needed - ROV depth testing calculates the depth - // from the clip space Z/W texcoord, and if oDepth is used, it must be - // written to on every execution path anyway (SV_Position). + // Pixel position (SV_Position). size_t position_position = shader_object_.size(); shader_object_.resize(shader_object_.size() + kParameterDwords); ++parameter_count; @@ -2787,9 +2790,6 @@ void DxbcShaderTranslator::WriteInputSignature() { auto& point_parameters = *reinterpret_cast( shader_object_.data() + point_parameters_position); point_parameters.semantic_name_ptr = semantic_offset; - auto& clip_space_zw = *reinterpret_cast( - shader_object_.data() + clip_space_zw_position); - clip_space_zw.semantic_name_ptr = semantic_offset; } semantic_offset += dxbc::AppendAlignedString(shader_object_, "TEXCOORD"); { @@ -2987,22 +2987,6 @@ void DxbcShaderTranslator::WriteOutputSignature() { point_parameters.never_writes_mask = 0b1000; } - // Z and W in clip space, for getting per-sample depth with ROV (TEXCOORD#). - size_t clip_space_zw_position = shader_object_.size(); - shader_object_.resize(shader_object_.size() + kParameterDwords); - ++parameter_count; - { - auto& clip_space_zw = *reinterpret_cast( - shader_object_.data() + clip_space_zw_position); - clip_space_zw.semantic_index = kClipSpaceZWTexCoord; - clip_space_zw.component_type = - dxbc::SignatureRegisterComponentType::kFloat32; - clip_space_zw.register_index = - uint32_t(InOutRegister::kVSDSOutClipSpaceZW); - clip_space_zw.mask = 0b0011; - clip_space_zw.never_writes_mask = 0b1100; - } - // Position (SV_Position). size_t position_position = shader_object_.size(); shader_object_.resize(shader_object_.size() + kParameterDwords); @@ -3072,9 +3056,6 @@ void DxbcShaderTranslator::WriteOutputSignature() { auto& point_parameters = *reinterpret_cast( shader_object_.data() + point_parameters_position); point_parameters.semantic_name_ptr = semantic_offset; - auto& clip_space_zw = *reinterpret_cast( - shader_object_.data() + clip_space_zw_position); - clip_space_zw.semantic_name_ptr = semantic_offset; } semantic_offset += dxbc::AppendAlignedString(shader_object_, "TEXCOORD"); { @@ -3466,9 +3447,6 @@ void DxbcShaderTranslator::WriteShaderCode() { // Point parameters output. ao_.OpDclOutput(dxbc::Dest::O( uint32_t(InOutRegister::kVSDSOutPointParameters), 0b0111)); - // Clip space Z and W output. - ao_.OpDclOutput( - dxbc::Dest::O(uint32_t(InOutRegister::kVSDSOutClipSpaceZW), 0b0011)); // Position output. ao_.OpDclOutputSIV(dxbc::Dest::O(uint32_t(InOutRegister::kVSDSOutPosition)), dxbc::Name::kPosition); @@ -3505,12 +3483,6 @@ void DxbcShaderTranslator::WriteShaderCode() { 0b0011)); } } - if (edram_rov_used_) { - // Z and W in clip space, for per-sample depth. - ao_.OpDclInputPS( - dxbc::InterpolationMode::kLinear, - dxbc::Dest::V(uint32_t(InOutRegister::kPSInClipSpaceZW), 0b0011)); - } if (in_position_used_) { // Position input (XY needed for ps_param_gen, Z needed for non-ROV // float24 conversion; the ROV depth code calculates the depth the from diff --git a/src/xenia/gpu/dxbc_shader_translator.h b/src/xenia/gpu/dxbc_shader_translator.h index 29d4ab01e..ecaff065a 100644 --- a/src/xenia/gpu/dxbc_shader_translator.h +++ b/src/xenia/gpu/dxbc_shader_translator.h @@ -266,13 +266,6 @@ class DxbcShaderTranslator : public ShaderTranslator { float color_exp_bias[4]; - union { - struct { - float edram_depth_range_scale; - float edram_depth_range_offset; - }; - float edram_depth_range[2]; - }; union { struct { float edram_poly_offset_front_scale; @@ -280,7 +273,6 @@ class DxbcShaderTranslator : public ShaderTranslator { }; float edram_poly_offset_front[2]; }; - union { struct { float edram_poly_offset_back_scale; @@ -288,8 +280,9 @@ class DxbcShaderTranslator : public ShaderTranslator { }; float edram_poly_offset_back[2]; }; + uint32_t edram_depth_base_dwords; - uint32_t padding_edram_depth_base_dwords; + uint32_t padding_edram_depth_base_dwords[3]; // In stencil function/operations (they match the layout of the // function/operations in RB_DEPTHCONTROL): @@ -377,10 +370,9 @@ class DxbcShaderTranslator : public ShaderTranslator { kColorExpBias, - kEdramDepthRange, kEdramPolyOffsetFront, - kEdramPolyOffsetBack, + kEdramDepthBaseDwords, kEdramStencil, @@ -584,7 +576,6 @@ class DxbcShaderTranslator : public ShaderTranslator { private: static constexpr uint32_t kPointParametersTexCoord = xenos::kMaxInterpolators; - static constexpr uint32_t kClipSpaceZWTexCoord = kPointParametersTexCoord + 1; enum class InOutRegister : uint32_t { // IF ANY OF THESE ARE CHANGED, WriteInputSignature and WriteOutputSignature @@ -595,7 +586,6 @@ class DxbcShaderTranslator : public ShaderTranslator { kVSDSOutInterpolators = 0, kVSDSOutPointParameters = kVSDSOutInterpolators + xenos::kMaxInterpolators, - kVSDSOutClipSpaceZW, kVSDSOutPosition, // Clip and cull distances must be tightly packed in Direct3D! kVSDSOutClipDistance0123, @@ -607,7 +597,6 @@ class DxbcShaderTranslator : public ShaderTranslator { kPSInInterpolators = 0, kPSInPointParameters = kPSInInterpolators + xenos::kMaxInterpolators, - kPSInClipSpaceZW, kPSInPosition, // nointerpolation inputs. SV_IsFrontFace (X) is always present for // ps_param_gen, SV_SampleIndex (Y) is conditional (only for memexport when @@ -627,7 +616,7 @@ class DxbcShaderTranslator : public ShaderTranslator { // vector, it will be turned into YYYY, and so on. The swizzle may include // out-of-bounds components of the vector for simplicity of use, assuming they // will be dropped anyway later. - dxbc::Src GetSystemConstantSrc(size_t offset, uint32_t swizzle) { + dxbc::Src GetSystemConstantSrc(size_t offset, uint32_t swizzle) const { uint32_t first_component = uint32_t((offset >> 2) & 3); return dxbc::Src::CB( cbuffer_index_system_constants_, @@ -688,6 +677,10 @@ class DxbcShaderTranslator : public ShaderTranslator { } bool IsDepthStencilSystemTempUsed() const { // See system_temp_depth_stencil_ documentation for explanation of cases. + if (edram_rov_used_) { + // Needed for all cases (early, late, late with oDepth). + return true; + } if (current_shader().writes_depth()) { // With host render targets, the depth format may be float24, in this // case, need to multiply it by 0.5 since 0...1 of the guest is stored as @@ -695,10 +688,6 @@ class DxbcShaderTranslator : public ShaderTranslator { // With ROV, need to store it to write later. return true; } - if (edram_rov_used_ && ROV_IsDepthStencilEarly()) { - // Calculated in the beginning, written possibly in the end. - return true; - } return false; } // Whether the current non-ROV pixel shader should convert the depth to 20e4. @@ -1069,15 +1058,18 @@ class DxbcShaderTranslator : public ShaderTranslator { // W - Base-relative resolution-scaled EDRAM offset for 64bpp color data, in // dwords. uint32_t system_temp_rov_params_; - // Two purposes: + // Different purposes: // - When writing to oDepth: X also used to hold the depth written by the // shader, which, for host render targets, if the depth buffer is float24, // needs to be remapped from guest 0...1 to host 0...0.5 and, if needed, // converted to float24 precision; and for ROV, needs to be written in the // end of the shader. - // - Otherwise, when using ROV output with ROV_IsDepthStencilEarly being true: - // New per-sample depth / stencil values, generated during early - // depth / stencil test (actual writing checks coverage bits). + // - When not writing to oDepth, but using ROV: + // - ROV_IsDepthStencilEarly: New per-sample depth / stencil values, + // generated during early depth / stencil test (actual writing checks + // the remaining coverage bits). + // - Not ROV_IsDepthStencilEarly: Z gradients in .xy taken in the beginning + // of the shader before any return statement is possibly reached. uint32_t system_temp_depth_stencil_; // Up to 4 color outputs in pixel shaders (needs to be readable, because of // alpha test, alpha to coverage, exponent bias, gamma, and also for ROV diff --git a/src/xenia/gpu/dxbc_shader_translator_om.cc b/src/xenia/gpu/dxbc_shader_translator_om.cc index bc22f6205..09c6f44e8 100644 --- a/src/xenia/gpu/dxbc_shader_translator_om.cc +++ b/src/xenia/gpu/dxbc_shader_translator_om.cc @@ -2,7 +2,7 @@ ****************************************************************************** * Xenia : Xbox 360 Emulator Research Project * ****************************************************************************** - * Copyright 2018 Ben Vanik. All rights reserved. * + * Copyright 2021 Ben Vanik. All rights reserved. * * Released under the BSD license - see LICENSE in the root for more details. * ****************************************************************************** */ @@ -426,8 +426,99 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { // temp.x = free a_.OpIf(true, temp_x_src); - bool depth_stencil_early = ROV_IsDepthStencilEarly(); bool shader_writes_depth = current_shader().writes_depth(); + bool depth_stencil_early = ROV_IsDepthStencilEarly(); + + dxbc::Src z_ddx_src(dxbc::Src::LF(0.0f)), z_ddy_src(dxbc::Src::LF(0.0f)); + + if (shader_writes_depth) { + // Convert the shader-generated depth to 24-bit, using temp.x as + // temporary. oDepth is already written by StoreResult with saturation, + // no need to clamp here. Adreno 200 doesn't have PA_SC_VPORT_ZMIN/ZMAX, + // so likely there's no need to clamp to the viewport depth bounds. + ROV_DepthTo24Bit(system_temp_depth_stencil_, 0, system_temp_depth_stencil_, + 0, temp, 0); + } else { + dxbc::Src in_position_z( + dxbc::Src::V(uint32_t(InOutRegister::kPSInPosition), dxbc::Src::kZZZZ)); + // Get the derivatives of the screen-space (but not clamped to the viewport + // depth bounds yet - this happens after the pixel shader in Direct3D 11+; + // also linear within the triangle - thus constant derivatives along the + // triangle) Z for calculating per-sample depth values and the slope-scaled + // polygon offset. + // We're using derivatives instead of eval_sample_index for various reasons: + // - eval_sample_index doesn't work with SV_Position - need to use an + // additional interpolant. + // - On AMD, eval_sample_index is actually implemented via calculation and + // scaling of derivatives of barycentric coordinates, therefore there's no + // advantage of using it there. + // - eval_sample_index is (inconsistently, but often) one of the sources of + // the infamous AMD shader compiler crashes when ROV is used in Xenia, in + // addition to shader compiler crashes on WARP. + if (depth_stencil_early) { + z_ddx_src = dxbc::Src::R(temp, dxbc::Src::kXXXX); + z_ddy_src = dxbc::Src::R(temp, dxbc::Src::kYYYY); + // temp.x = ddx(z) + // temp.y = ddy(z) + in_position_used_ |= 0b0100; + a_.OpDerivRTXCoarse(temp_x_dest, in_position_z); + a_.OpDerivRTYCoarse(temp_y_dest, in_position_z); + } else { + // For late depth / stencil testing, derivatives are calculated in the + // beginning of the shader before any return statement is possibly + // reached, and written to system_temp_depth_stencil_.xy. + assert_true(system_temp_depth_stencil_ != UINT32_MAX); + z_ddx_src = dxbc::Src::R(system_temp_depth_stencil_, dxbc::Src::kXXXX); + z_ddy_src = dxbc::Src::R(system_temp_depth_stencil_, dxbc::Src::kYYYY); + } + // Get the maximum depth slope for polygon offset. + // https://docs.microsoft.com/en-us/windows/desktop/direct3d9/depth-bias + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = max(|ddx(z)|, |ddy(z)|) + a_.OpMax(temp_z_dest, z_ddx_src.Abs(), z_ddy_src.Abs()); + // Calculate the depth bias for the needed faceness. + in_front_face_used_ = true; + a_.OpIf(true, + dxbc::Src::V(uint32_t(InOutRegister::kPSInFrontFaceAndSampleIndex), + dxbc::Src::kXXXX)); + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = front face polygon offset + // temp.w = free + a_.OpMAd( + temp_z_dest, temp_z_src, + LoadSystemConstant(SystemConstants::Index::kEdramPolyOffsetFront, + offsetof(SystemConstants, edram_poly_offset_front), + dxbc::Src::kXXXX), + LoadSystemConstant(SystemConstants::Index::kEdramPolyOffsetFront, + offsetof(SystemConstants, edram_poly_offset_front), + dxbc::Src::kYYYY)); + a_.OpElse(); + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = back face polygon offset + // temp.w = free + a_.OpMAd( + temp_z_dest, temp_z_src, + LoadSystemConstant(SystemConstants::Index::kEdramPolyOffsetBack, + offsetof(SystemConstants, edram_poly_offset_back), + dxbc::Src::kXXXX), + LoadSystemConstant(SystemConstants::Index::kEdramPolyOffsetBack, + offsetof(SystemConstants, edram_poly_offset_back), + dxbc::Src::kYYYY)); + a_.OpEndIf(); + // Apply the post-clip and post-viewport polygon offset to the fragment's + // depth. Not clamping yet as this is at the center, which is not + // necessarily covered and not necessarily inside the bounds - derivatives + // scaled by sample positions will be added to this value, and it must be + // linear. + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = biased depth in the center + in_position_used_ |= 0b0100; + a_.OpAdd(temp_z_dest, temp_z_src, in_position_z); + } for (uint32_t i = 0; i < 4; ++i) { // With early depth/stencil, depth/stencil writing may be deferred to the @@ -437,231 +528,26 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { // temporary register. dxbc::Dest sample_depth_stencil_dest( depth_stencil_early ? dxbc::Dest::R(system_temp_depth_stencil_, 1 << i) - : temp_x_dest); + : temp_w_dest); dxbc::Src sample_depth_stencil_src( depth_stencil_early ? dxbc::Src::R(system_temp_depth_stencil_).Select(i) - : temp_x_src); + : temp_w_src); - if (!i) { - if (shader_writes_depth) { - // Convert the shader-generated depth to 24-bit, using temp.x as - // temporary. oDepth is already written by StoreResult with saturation, - // no need to clamp here. Adreno 200 doesn't have PA_SC_VPORT_ZMIN/ZMAX, - // so likely there's no need to clamp to the viewport depth bounds. - ROV_DepthTo24Bit(system_temp_depth_stencil_, 0, - system_temp_depth_stencil_, 0, temp, 0); - } else { - // Load the first sample's Z*W and W to temp.xy - need this regardless - // of coverage for polygon offset. - // temp.x = first sample's clip space Z*W - // temp.y = first sample's clip space W - a_.OpEvalSampleIndex( - dxbc::Dest::R(temp, 0b0011), - dxbc::Src::V(uint32_t(InOutRegister::kPSInClipSpaceZW)), - dxbc::Src::LU(0)); - // Calculate the first sample's Z/W to temp.x for conversion to 24-bit - // and depth test. - // temp.x? = first sample's clip space Z - // temp.y = free - a_.OpDiv(sample_depth_stencil_dest, temp_x_src, temp_y_src, true); - // Apply viewport Z range to the first sample because this would affect - // the slope-scaled depth bias (tested on PC on Direct3D 12, by - // comparing the fraction of the polygon's area with depth clamped - - // affected by the constant bias, but not affected by the slope-scaled - // bias, also depth range clamping should be done after applying the - // offset as well). - // temp.x? = first sample's viewport space Z - a_.OpMAd(sample_depth_stencil_dest, sample_depth_stencil_src, - LoadSystemConstant( - SystemConstants::Index::kEdramDepthRange, - offsetof(SystemConstants, edram_depth_range_scale), - dxbc::Src::kXXXX), - LoadSystemConstant( - SystemConstants::Index::kEdramDepthRange, - offsetof(SystemConstants, edram_depth_range_offset), - dxbc::Src::kXXXX), - true); - // Get the derivatives of a sample's depth, for the slope-scaled polygon - // offset. Probably not very significant that it's for the sample 0 - // rather than for the center, likely neither is accurate because Xenos - // probably calculates the slope between 16ths of a pixel according to - // the meaning of the slope-scaled polygon offset in R5xx Acceleration. - // temp.x? = first sample's viewport space Z - // temp.y = ddx(z) - // temp.z = ddy(z) - a_.OpDerivRTXCoarse(temp_y_dest, sample_depth_stencil_src); - a_.OpDerivRTYCoarse(temp_z_dest, sample_depth_stencil_src); - // Get the maximum depth slope for polygon offset to temp.y. - // https://docs.microsoft.com/en-us/windows/desktop/direct3d9/depth-bias - // temp.x? = first sample's viewport space Z - // temp.y = max(|ddx(z)|, |ddy(z)|) - // temp.z = free - a_.OpMax(temp_y_dest, temp_y_src.Abs(), temp_z_src.Abs()); - // Copy the needed polygon offset values to temp.zw. - // temp.x? = first sample's viewport space Z - // temp.y = max(|ddx(z)|, |ddy(z)|) - // temp.z = polygon offset scale - // temp.w = polygon offset bias - in_front_face_used_ = true; - a_.OpMovC( - dxbc::Dest::R(temp, 0b1100), - dxbc::Src::V(uint32_t(InOutRegister::kPSInFrontFaceAndSampleIndex), - dxbc::Src::kXXXX), - LoadSystemConstant( - SystemConstants::Index::kEdramPolyOffsetFront, - offsetof(SystemConstants, edram_poly_offset_front), - 0b0100 << 4), - LoadSystemConstant( - SystemConstants::Index::kEdramPolyOffsetBack, - offsetof(SystemConstants, edram_poly_offset_back), - 0b0100 << 4)); - // Apply the slope scale and the constant bias to the offset. - // temp.x? = first sample's viewport space Z - // temp.y = polygon offset - // temp.z = free - // temp.w = free - a_.OpMAd(temp_y_dest, temp_y_src, temp_z_src, temp_w_src); - // Calculate the upper Z range bound to temp.z for clamping after - // biasing. - // temp.x? = first sample's viewport space Z - // temp.y = polygon offset - // temp.z = viewport maximum depth - a_.OpAdd(temp_z_dest, - LoadSystemConstant( - SystemConstants::Index::kEdramDepthRange, - offsetof(SystemConstants, edram_depth_range_offset), - dxbc::Src::kXXXX), - LoadSystemConstant( - SystemConstants::Index::kEdramDepthRange, - offsetof(SystemConstants, edram_depth_range_scale), - dxbc::Src::kXXXX)); - } - } - - // Get if the current sample is covered to temp.w. - // temp.x = first sample's viewport space Z if not writing to oDepth - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth + // Get if the current sample is covered. + // temp.x if no oDepth and early = ddx(z) + // temp.y if no oDepth and early = ddy(z) + // temp.z if no oDepth = biased depth in the center // temp.w = coverage of the current sample a_.OpAnd(temp_w_dest, dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kXXXX), dxbc::Src::LU(1 << i)); - // Check if the current sample is covered. Release 1 VGPR. - // temp.x = first sample's viewport space Z if not writing to oDepth - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth + // Check if the current sample is covered. + // temp.x if no oDepth and early = ddx(z) + // temp.y if no oDepth and early = ddy(z) + // temp.z if no oDepth = biased depth in the center // temp.w = free a_.OpIf(true, temp_w_src); - if (shader_writes_depth) { - // Copy the 24-bit depth common to all samples to sample_depth_stencil. - // temp.x = shader-generated 24-bit depth - a_.OpMov(sample_depth_stencil_dest, - dxbc::Src::R(system_temp_depth_stencil_, dxbc::Src::kXXXX)); - } else { - if (i) { - // Sample's depth precalculated for sample 0 (for slope-scaled depth - // bias calculation), but need to calculate it for other samples. - // - // Reusing temp.x because it may contain the depth value for the first - // sample, but it has been written already. - // - // For 2x: - // Using ForcedSampleCount of 4 (2 is not supported on Nvidia), so for - // 2x MSAA, handling samples 0 and 3 (upper-left and lower-right) as 0 - // and 1. Thus, evaluating Z/W at sample 3 when 4x is not enabled. - // - // For 4x: - // Direct3D 12's sample pattern has 1 as top-right, 2 as bottom-left. - // Xbox 360's render targets are 2x taller with 2x MSAA, 2x wider with - // 4x, thus, likely 1 is bottom-left, 2 is top-right - swapping these. - // - // temp.x = sample's clip space Z*W - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = sample's clip space W - if (i == 1) { - a_.OpMovC( - sample_depth_stencil_dest, - LoadSystemConstant(SystemConstants::Index::kSampleCountLog2, - offsetof(SystemConstants, sample_count_log2), - dxbc::Src::kXXXX), - dxbc::Src::LU(3), dxbc::Src::LU(2)); - a_.OpEvalSampleIndex( - dxbc::Dest::R(temp, 0b1001), - dxbc::Src::V(uint32_t(InOutRegister::kPSInClipSpaceZW), - 0b01000000), - sample_depth_stencil_src); - } else { - a_.OpEvalSampleIndex( - dxbc::Dest::R(temp, 0b1001), - dxbc::Src::V(uint32_t(InOutRegister::kPSInClipSpaceZW), - 0b01000000), - dxbc::Src::LU(i == 2 ? 1 : i)); - } - // Calculate Z/W for the current sample from the evaluated Z*W and W. - // temp.x? = sample's clip space Z - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = free - a_.OpDiv(sample_depth_stencil_dest, temp_x_src, temp_w_src, true); - // Apply viewport Z range the same way as it was applied to sample 0. - // temp.x? = sample's viewport space Z - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - a_.OpMAd(sample_depth_stencil_dest, sample_depth_stencil_src, - LoadSystemConstant( - SystemConstants::Index::kEdramDepthRange, - offsetof(SystemConstants, edram_depth_range_scale), - dxbc::Src::kXXXX), - LoadSystemConstant( - SystemConstants::Index::kEdramDepthRange, - offsetof(SystemConstants, edram_depth_range_offset), - dxbc::Src::kXXXX), - true); - } - // Add the bias to the depth of the sample. - // temp.x? = sample's unclamped biased Z - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - a_.OpAdd(sample_depth_stencil_dest, sample_depth_stencil_src, temp_y_src); - // Clamp the biased depth to the lower viewport depth bound. - // temp.x? = sample's lower-clamped biased Z - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - a_.OpMax(sample_depth_stencil_dest, sample_depth_stencil_src, - LoadSystemConstant( - SystemConstants::Index::kEdramDepthRange, - offsetof(SystemConstants, edram_depth_range_offset), - dxbc::Src::kXXXX)); - // Clamp the biased depth to the upper viewport depth bound. - // temp.x? = sample's biased Z - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - a_.OpMin(sample_depth_stencil_dest, sample_depth_stencil_src, temp_z_src, - true); - // Convert the sample's depth to 24-bit, using temp.w as a temporary. - // temp.x? = sample's 24-bit Z - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - ROV_DepthTo24Bit(sample_depth_stencil_src.index_1d_.index_, - sample_depth_stencil_src.swizzle_ & 3, - sample_depth_stencil_src.index_1d_.index_, - sample_depth_stencil_src.swizzle_ & 3, temp, 3); - } - // Load the old depth/stencil value to temp.w. - // temp.x? = sample's 24-bit Z - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = old depth/stencil - if (uav_index_edram_ == kBindingIndexUnallocated) { - uav_index_edram_ = uav_count_++; - } - a_.OpLdUAVTyped( - temp_w_dest, dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY), 1, - dxbc::Src::U(uav_index_edram_, uint32_t(UAVRegister::kEdram), - dxbc::Src::kXXXX)); - uint32_t sample_temp = PushSystemTemp(); dxbc::Dest sample_temp_x_dest(dxbc::Dest::R(sample_temp, 0b0001)); dxbc::Src sample_temp_x_src(dxbc::Src::R(sample_temp, dxbc::Src::kXXXX)); @@ -669,65 +555,205 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { dxbc::Src sample_temp_y_src(dxbc::Src::R(sample_temp, dxbc::Src::kYYYY)); dxbc::Dest sample_temp_z_dest(dxbc::Dest::R(sample_temp, 0b0100)); dxbc::Src sample_temp_z_src(dxbc::Src::R(sample_temp, dxbc::Src::kZZZZ)); + dxbc::Dest sample_temp_w_dest(dxbc::Dest::R(sample_temp, 0b1000)); + dxbc::Src sample_temp_w_src(dxbc::Src::R(sample_temp, dxbc::Src::kWWWW)); + + if (shader_writes_depth) { + // Copy the 24-bit depth common to all samples to sample_depth_stencil. + // temp.w = shader-generated 24-bit depth + assert_false(depth_stencil_early); + a_.OpMov(sample_depth_stencil_dest, + dxbc::Src::R(system_temp_depth_stencil_, dxbc::Src::kXXXX)); + } else { + // Adreno 200 doesn't have PA_SC_VPORT_ZMIN/ZMAX, so likely there's no + // need to clamp to the viewport depth bounds, just to 0...1 - thus only + // saturating in the end of the per-sample depth calculation. + switch (i) { + case 0: + // First sample - off-center for MSAA, in the center without it. + // Using ForcedSampleCount 4 for both 2x and 4x MSAA because + // ForcedSampleCount 2 is not supported on Nvidia, thus the position + // of the top-left sample (0 in Xenia) is always that of the top-left + // sample of host 4x MSAA. + // Calculate the depth in the sample 0 for 2x or 4x MSAA. + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = biased depth in the center + // temp.w if late = unsaturated sample 0 depth at 4x MSAA + a_.OpMAd( + sample_depth_stencil_dest, z_ddx_src, + dxbc::Src::LF(draw_util::kD3D10StandardSamplePositions4x[0][0] * + (1.0f / 16.0f)), + temp_z_src); + a_.OpMAd( + sample_depth_stencil_dest, z_ddy_src, + dxbc::Src::LF(draw_util::kD3D10StandardSamplePositions4x[0][1] * + (1.0f / 16.0f)), + sample_depth_stencil_src); + // Choose between the sample and the center depth depending on whether + // at least 2x MSAA is enabled and saturate. + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = biased depth in the center + // temp.w if late = sample 0 depth + a_.OpMovC( + sample_depth_stencil_dest, + LoadSystemConstant(SystemConstants::Index::kSampleCountLog2, + offsetof(SystemConstants, sample_count_log2), + dxbc::Src::kYYYY), + sample_depth_stencil_src, temp_z_src, true); + break; + case 1: + // - 2x MSAA: Bottom sample -> bottom-right (3) with Direct3D 11's + // ForcedSampleCount 4. + // - 4x MSAA: Bottom-left Xenia sample -> Direct3D 11 sample 2. + // Check if 4x MSAA is used. + a_.OpIf(true, LoadSystemConstant( + SystemConstants::Index::kSampleCountLog2, + offsetof(SystemConstants, sample_count_log2), + dxbc::Src::kXXXX)); + // 4x MSAA. + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = biased depth in the center + // temp.w if late = saturated sample 1 depth at 4x MSAA + a_.OpMAd( + sample_depth_stencil_dest, z_ddx_src, + dxbc::Src::LF(draw_util::kD3D10StandardSamplePositions4x[2][0] * + (1.0f / 16.0f)), + temp_z_src); + a_.OpMAd( + sample_depth_stencil_dest, z_ddy_src, + dxbc::Src::LF(draw_util::kD3D10StandardSamplePositions4x[2][1] * + (1.0f / 16.0f)), + sample_depth_stencil_src, true); + a_.OpElse(); + // 2x MSAA as ForcedSampleCount 4 on the host. + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = biased depth in the center + // temp.w if late = saturated sample 1 depth at 2x MSAA + a_.OpMAd( + sample_depth_stencil_dest, z_ddx_src, + dxbc::Src::LF(draw_util::kD3D10StandardSamplePositions4x[3][0] * + (1.0f / 16.0f)), + temp_z_src); + a_.OpMAd( + sample_depth_stencil_dest, z_ddy_src, + dxbc::Src::LF(draw_util::kD3D10StandardSamplePositions4x[3][1] * + (1.0f / 16.0f)), + sample_depth_stencil_src, true); + a_.OpEndIf(); + break; + default: { + // Xenia samples 2 and 3 (top-right and bottom-right) -> Direct3D 11 + // samples 1 and 3. + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = biased depth in the center + // temp.w if late = saturated sample 2 or 3 depth + const int8_t* sample_position = + draw_util::kD3D10StandardSamplePositions4x[i ^ + (((i & 1) ^ (i >> 1)) * + 0b11)]; + a_.OpMAd(sample_depth_stencil_dest, z_ddx_src, + dxbc::Src::LF(sample_position[0] * (1.0f / 16.0f)), + temp_z_src); + a_.OpMAd(sample_depth_stencil_dest, z_ddy_src, + dxbc::Src::LF(sample_position[1] * (1.0f / 16.0f)), + sample_depth_stencil_src, true); + } break; + } + // Convert the sample's depth to 24-bit, using sample_temp.x as a + // temporary. + // temp.x if early = ddx(z) + // temp.y if early = ddy(z) + // temp.z = biased depth in the center + // temp.w if late = sample's 24-bit Z + ROV_DepthTo24Bit(sample_depth_stencil_src.index_1d_.index_, + sample_depth_stencil_src.swizzle_ & 3, + sample_depth_stencil_src.index_1d_.index_, + sample_depth_stencil_src.swizzle_ & 3, sample_temp, 0); + } + + // Load the old depth/stencil value. + // sample_temp.x = old depth/stencil + if (uav_index_edram_ == kBindingIndexUnallocated) { + uav_index_edram_ = uav_count_++; + } + a_.OpLdUAVTyped( + sample_temp_x_dest, + dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kYYYY), 1, + dxbc::Src::U(uav_index_edram_, uint32_t(UAVRegister::kEdram), + dxbc::Src::kXXXX)); // Depth test. // Extract the old depth part to sample_depth_stencil. - // sample_temp.x = old depth - a_.OpUShR(sample_temp_x_dest, temp_w_src, dxbc::Src::LU(8)); + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + a_.OpUShR(sample_temp_y_dest, sample_temp_x_src, dxbc::Src::LU(8)); // Get the difference between the new and the old depth, > 0 - greater, // == 0 - equal, < 0 - less. - // sample_temp.x = old depth - // sample_temp.y = depth difference - a_.OpIAdd(sample_temp_y_dest, sample_depth_stencil_src, -sample_temp_x_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + // sample_temp.z = depth difference + a_.OpIAdd(sample_temp_z_dest, sample_depth_stencil_src, -sample_temp_y_src); // Check if the depth is "less" or "greater or equal". - // sample_temp.x = old depth - // sample_temp.y = depth difference - // sample_temp.z = depth difference less than 0 - a_.OpILT(sample_temp_z_dest, sample_temp_y_src, dxbc::Src::LI(0)); + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + // sample_temp.z = depth difference + // sample_temp.w = depth difference less than 0 + a_.OpILT(sample_temp_w_dest, sample_temp_z_src, dxbc::Src::LI(0)); // Choose the passed depth function bits for "less" or for "greater". - // sample_temp.x = old depth - // sample_temp.y = depth difference - // sample_temp.z = depth function passed bits for "less" or "greater" - a_.OpMovC(sample_temp_z_dest, sample_temp_z_src, + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + // sample_temp.z = depth difference + // sample_temp.w = depth function passed bits for "less" or "greater" + a_.OpMovC(sample_temp_w_dest, sample_temp_w_src, dxbc::Src::LU(kSysFlag_ROVDepthPassIfLess), dxbc::Src::LU(kSysFlag_ROVDepthPassIfGreater)); // Do the "equal" testing. - // sample_temp.x = old depth - // sample_temp.y = depth function passed bits - // sample_temp.z = free - a_.OpMovC(sample_temp_y_dest, sample_temp_y_src, sample_temp_z_src, + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + // sample_temp.z = depth function passed bits + // sample_temp.w = free + a_.OpMovC(sample_temp_z_dest, sample_temp_z_src, sample_temp_w_src, dxbc::Src::LU(kSysFlag_ROVDepthPassIfEqual)); // Mask the resulting bits with the ones that should pass. - // sample_temp.x = old depth - // sample_temp.y = masked depth function passed bits - // sample_temp.z = free - a_.OpAnd(sample_temp_y_dest, sample_temp_y_src, LoadFlagsSystemConstant()); + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + // sample_temp.z = masked depth function passed bits + a_.OpAnd(sample_temp_z_dest, sample_temp_z_src, LoadFlagsSystemConstant()); // Check if depth test has passed. - // sample_temp.x = old depth - // sample_temp.y = free - a_.OpIf(true, sample_temp_y_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + // sample_temp.z = free + a_.OpIf(true, sample_temp_z_src); { // Extract the depth write flag. - // sample_temp.x = old depth - // sample_temp.y = depth write mask - a_.OpAnd(sample_temp_y_dest, LoadFlagsSystemConstant(), + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth + // sample_temp.z = depth write mask + a_.OpAnd(sample_temp_z_dest, LoadFlagsSystemConstant(), dxbc::Src::LU(kSysFlag_ROVDepthWrite)); // If depth writing is disabled, don't change the depth. - // temp.x? = resulting sample depth after the depth test - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = old depth/stencil - // sample_temp.x = free + // temp.x if no oDepth and early = ddx(z) + // temp.y if no oDepth and early = ddy(z) + // temp.z if no oDepth = biased depth in the center + // temp.w if late = resulting sample depth after the depth test + // sample_temp.x = old depth/stencil // sample_temp.y = free - a_.OpMovC(sample_depth_stencil_dest, sample_temp_y_src, - sample_depth_stencil_src, sample_temp_x_src); + // sample_temp.z = free + a_.OpMovC(sample_depth_stencil_dest, sample_temp_z_src, + sample_depth_stencil_src, sample_temp_y_src); } // Depth test has failed. a_.OpElse(); { // Exclude the bit from the covered sample mask. - // sample_temp.x = old depth + // sample_temp.x = old depth/stencil + // sample_temp.y = old depth a_.OpAnd(dxbc::Dest::R(system_temp_rov_params_, 0b0001), dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kXXXX), dxbc::Src::LU(~uint32_t(1 << i))); @@ -735,22 +761,25 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { a_.OpEndIf(); // Create packed depth/stencil, with the stencil value unchanged at this // point. - // temp.x? = resulting sample depth, current resulting stencil - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = old depth/stencil + // temp.x if no oDepth and early = ddx(z) + // temp.y if no oDepth and early = ddy(z) + // temp.z if no oDepth = biased depth in the center + // temp.w if late = resulting sample depth, current resulting stencil + // sample_temp.x = old depth/stencil a_.OpBFI(sample_depth_stencil_dest, dxbc::Src::LU(24), dxbc::Src::LU(8), - sample_depth_stencil_src, temp_w_src); + sample_depth_stencil_src, sample_temp_x_src); // Stencil test. // Extract the stencil test bit. - // sample_temp.x = stencil test enabled - a_.OpAnd(sample_temp_x_dest, LoadFlagsSystemConstant(), + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil test enabled + a_.OpAnd(sample_temp_y_dest, LoadFlagsSystemConstant(), dxbc::Src::LU(kSysFlag_ROVStencilTest)); // Check if stencil test is enabled. - // sample_temp.x = free - a_.OpIf(true, sample_temp_x_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = free + a_.OpIf(true, sample_temp_y_src); { // Check the current face to get the reference and apply the read mask. in_front_face_used_ = true; @@ -768,9 +797,10 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { : offsetof(SystemConstants, edram_stencil_front_read_mask), dxbc::Src::kXXXX)); // Read-mask the stencil reference. - // sample_temp.x = read-masked stencil reference + // sample_temp.x = old depth/stencil + // sample_temp.y = read-masked stencil reference a_.OpAnd( - sample_temp_x_dest, + sample_temp_y_dest, LoadSystemConstant( SystemConstants::Index::kEdramStencil, j ? offsetof(SystemConstants, edram_stencil_back_reference) @@ -778,38 +808,44 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { dxbc::Src::kXXXX), stencil_read_mask_src); // Read-mask the old stencil value (also dropping the depth bits). - // sample_temp.x = read-masked stencil reference - // sample_temp.y = read-masked old stencil - a_.OpAnd(sample_temp_y_dest, temp_w_src, stencil_read_mask_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = read-masked stencil reference + // sample_temp.z = read-masked old stencil + a_.OpAnd(sample_temp_z_dest, sample_temp_x_src, stencil_read_mask_src); } // Close the face check. a_.OpEndIf(); // Get the difference between the stencil reference and the old stencil, // > 0 - greater, == 0 - equal, < 0 - less. - // sample_temp.x = stencil difference - // sample_temp.y = free - a_.OpIAdd(sample_temp_x_dest, sample_temp_x_src, -sample_temp_y_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil difference + // sample_temp.z = free + a_.OpIAdd(sample_temp_y_dest, sample_temp_y_src, -sample_temp_z_src); // Check if the stencil is "less" or "greater or equal". - // sample_temp.x = stencil difference - // sample_temp.y = stencil difference less than 0 - a_.OpILT(sample_temp_y_dest, sample_temp_x_src, dxbc::Src::LI(0)); + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil difference + // sample_temp.z = stencil difference less than 0 + a_.OpILT(sample_temp_z_dest, sample_temp_y_src, dxbc::Src::LI(0)); // Choose the passed depth function bits for "less" or for "greater". - // sample_temp.x = stencil difference - // sample_temp.y = stencil function passed bits for "less" or "greater" - a_.OpMovC(sample_temp_y_dest, sample_temp_y_src, + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil difference + // sample_temp.z = stencil function passed bits for "less" or "greater" + a_.OpMovC(sample_temp_z_dest, sample_temp_z_src, dxbc::Src::LU(uint32_t(xenos::CompareFunction::kLess)), dxbc::Src::LU(uint32_t(xenos::CompareFunction::kGreater))); // Do the "equal" testing. - // sample_temp.x = stencil function passed bits - // sample_temp.y = free - a_.OpMovC(sample_temp_x_dest, sample_temp_x_src, sample_temp_y_src, + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil function passed bits + // sample_temp.z = free + a_.OpMovC(sample_temp_y_dest, sample_temp_y_src, sample_temp_z_src, dxbc::Src::LU(uint32_t(xenos::CompareFunction::kEqual))); // Get the comparison function and the operations for the current face. - // sample_temp.x = stencil function passed bits - // sample_temp.y = stencil function and operations + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil function passed bits + // sample_temp.z = stencil function and operations in_front_face_used_ = true; a_.OpMovC( - sample_temp_y_dest, + sample_temp_z_dest, dxbc::Src::V(uint32_t(InOutRegister::kPSInFrontFaceAndSampleIndex), dxbc::Src::kXXXX), LoadSystemConstant( @@ -823,44 +859,51 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { // Mask the resulting bits with the ones that should pass (the comparison // function is in the low 3 bits of the constant, and only ANDing 3-bit // values with it, so safe not to UBFE the function). - // sample_temp.x = stencil test result - // sample_temp.y = stencil function and operations - a_.OpAnd(sample_temp_x_dest, sample_temp_x_src, sample_temp_y_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil test result + // sample_temp.z = stencil function and operations + a_.OpAnd(sample_temp_y_dest, sample_temp_y_src, sample_temp_z_src); // Handle passing and failure of the stencil test, to choose the operation // and to discard the sample. - // sample_temp.x = free - // sample_temp.y = stencil function and operations - a_.OpIf(true, sample_temp_x_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = free + // sample_temp.z = stencil function and operations + a_.OpIf(true, sample_temp_y_src); { - // Check if depth test has passed for this sample to sample_temp.y (the - // sample will only be processed if it's covered, so the only thing that - // could unset the bit at this point that matters is the depth test). - // sample_temp.x = depth test result - // sample_temp.y = stencil function and operations - a_.OpAnd(sample_temp_x_dest, + // Check if depth test has passed for this sample (the sample will only + // be processed if it's covered, so the only thing that could unset the + // bit at this point that matters is the depth test). + // sample_temp.x = old depth/stencil + // sample_temp.y = depth test result + // sample_temp.z = stencil function and operations + a_.OpAnd(sample_temp_y_dest, dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kXXXX), dxbc::Src::LU(1 << i)); // Choose the bit offset of the stencil operation. - // sample_temp.x = sample operation offset - // sample_temp.y = stencil function and operations - a_.OpMovC(sample_temp_x_dest, sample_temp_x_src, dxbc::Src::LU(6), + // sample_temp.x = old depth/stencil + // sample_temp.y = sample operation offset + // sample_temp.z = stencil function and operations + a_.OpMovC(sample_temp_y_dest, sample_temp_y_src, dxbc::Src::LU(6), dxbc::Src::LU(9)); // Extract the stencil operation. - // sample_temp.x = stencil operation - // sample_temp.y = free - a_.OpUBFE(sample_temp_x_dest, dxbc::Src::LU(3), sample_temp_x_src, - sample_temp_y_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil operation + // sample_temp.z = free + a_.OpUBFE(sample_temp_y_dest, dxbc::Src::LU(3), sample_temp_y_src, + sample_temp_z_src); } // Stencil test has failed. a_.OpElse(); { // Extract the stencil fail operation. - // sample_temp.x = stencil operation - // sample_temp.y = free - a_.OpUBFE(sample_temp_x_dest, dxbc::Src::LU(3), dxbc::Src::LU(3), - sample_temp_y_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil operation + // sample_temp.z = free + a_.OpUBFE(sample_temp_y_dest, dxbc::Src::LU(3), dxbc::Src::LU(3), + sample_temp_z_src); // Exclude the bit from the covered sample mask. - // sample_temp.x = stencil operation + // sample_temp.x = old depth/stencil + // sample_temp.y = stencil operation a_.OpAnd(dxbc::Dest::R(system_temp_rov_params_, 0b0001), dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kXXXX), dxbc::Src::LU(~uint32_t(1 << i))); @@ -870,18 +913,19 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { // Open the stencil operation switch for writing the new stencil (not // caring about bits 8:31). - // sample_temp.x = will contain unmasked new stencil in 0:7 and junk above - a_.OpSwitch(sample_temp_x_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = will contain unmasked new stencil in 0:7 and junk above + a_.OpSwitch(sample_temp_y_src); { // Zero. a_.OpCase(dxbc::Src::LU(uint32_t(xenos::StencilOp::kZero))); - a_.OpMov(sample_temp_x_dest, dxbc::Src::LU(0)); + a_.OpMov(sample_temp_y_dest, dxbc::Src::LU(0)); a_.OpBreak(); // Replace. a_.OpCase(dxbc::Src::LU(uint32_t(xenos::StencilOp::kReplace))); in_front_face_used_ = true; a_.OpMovC( - sample_temp_x_dest, + sample_temp_y_dest, dxbc::Src::V(uint32_t(InOutRegister::kPSInFrontFaceAndSampleIndex), dxbc::Src::kXXXX), LoadSystemConstant( @@ -897,11 +941,12 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { a_.OpCase(dxbc::Src::LU(uint32_t(xenos::StencilOp::kIncrementClamp))); { // Clear the upper bits for saturation. - a_.OpAnd(sample_temp_x_dest, temp_w_src, dxbc::Src::LU(UINT8_MAX)); + a_.OpAnd(sample_temp_y_dest, sample_temp_x_src, + dxbc::Src::LU(UINT8_MAX)); // Increment. - a_.OpIAdd(sample_temp_x_dest, sample_temp_x_src, dxbc::Src::LI(1)); + a_.OpIAdd(sample_temp_y_dest, sample_temp_y_src, dxbc::Src::LI(1)); // Clamp. - a_.OpIMin(sample_temp_x_dest, sample_temp_x_src, + a_.OpIMin(sample_temp_y_dest, sample_temp_y_src, dxbc::Src::LI(UINT8_MAX)); } a_.OpBreak(); @@ -909,39 +954,41 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { a_.OpCase(dxbc::Src::LU(uint32_t(xenos::StencilOp::kDecrementClamp))); { // Clear the upper bits for saturation. - a_.OpAnd(sample_temp_x_dest, temp_w_src, dxbc::Src::LU(UINT8_MAX)); + a_.OpAnd(sample_temp_y_dest, sample_temp_x_src, + dxbc::Src::LU(UINT8_MAX)); // Increment. - a_.OpIAdd(sample_temp_x_dest, sample_temp_x_src, dxbc::Src::LI(-1)); + a_.OpIAdd(sample_temp_y_dest, sample_temp_y_src, dxbc::Src::LI(-1)); // Clamp. - a_.OpIMax(sample_temp_x_dest, sample_temp_x_src, dxbc::Src::LI(0)); + a_.OpIMax(sample_temp_y_dest, sample_temp_y_src, dxbc::Src::LI(0)); } a_.OpBreak(); // Invert. a_.OpCase(dxbc::Src::LU(uint32_t(xenos::StencilOp::kInvert))); - a_.OpNot(sample_temp_x_dest, temp_w_src); + a_.OpNot(sample_temp_y_dest, sample_temp_x_src); a_.OpBreak(); // Increment and wrap. a_.OpCase(dxbc::Src::LU(uint32_t(xenos::StencilOp::kIncrementWrap))); - a_.OpIAdd(sample_temp_x_dest, temp_w_src, dxbc::Src::LI(1)); + a_.OpIAdd(sample_temp_y_dest, sample_temp_x_src, dxbc::Src::LI(1)); a_.OpBreak(); // Decrement and wrap. a_.OpCase(dxbc::Src::LU(uint32_t(xenos::StencilOp::kDecrementWrap))); - a_.OpIAdd(sample_temp_x_dest, temp_w_src, dxbc::Src::LI(-1)); + a_.OpIAdd(sample_temp_y_dest, sample_temp_x_src, dxbc::Src::LI(-1)); a_.OpBreak(); // Keep. a_.OpDefault(); - a_.OpMov(sample_temp_x_dest, temp_w_src); + a_.OpMov(sample_temp_y_dest, sample_temp_x_src); a_.OpBreak(); } // Close the new stencil switch. a_.OpEndSwitch(); // Select the stencil write mask for the face. - // sample_temp.x = unmasked new stencil in 0:7 and junk above - // sample_temp.y = stencil write mask + // sample_temp.x = old depth/stencil + // sample_temp.y = unmasked new stencil in 0:7 and junk above + // sample_temp.z = stencil write mask in_front_face_used_ = true; a_.OpMovC( - sample_temp_y_dest, + sample_temp_z_dest, dxbc::Src::V(uint32_t(InOutRegister::kPSInFrontFaceAndSampleIndex), dxbc::Src::kXXXX), LoadSystemConstant( @@ -954,81 +1001,86 @@ void DxbcShaderTranslator::ROV_DepthStencilTest() { dxbc::Src::kXXXX)); // Apply the write mask to the new stencil, also dropping the upper 24 // bits. - // sample_temp.x = masked new stencil - // sample_temp.y = stencil write mask - a_.OpAnd(sample_temp_x_dest, sample_temp_x_src, sample_temp_y_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = masked new stencil + // sample_temp.z = stencil write mask + a_.OpAnd(sample_temp_y_dest, sample_temp_y_src, sample_temp_z_src); // Invert the write mask for keeping the old stencil and the depth bits. - // sample_temp.x = masked new stencil - // sample_temp.y = inverted stencil write mask - a_.OpNot(sample_temp_y_dest, sample_temp_y_src); - // Remove the bits that will be replaced from the new combined - // depth/stencil. - // sample_temp.x = masked new stencil - // sample_temp.y = free + // sample_temp.x = old depth/stencil + // sample_temp.y = masked new stencil + // sample_temp.z = inverted stencil write mask + a_.OpNot(sample_temp_z_dest, sample_temp_z_src); + // Remove the bits that will be replaced from the combined depth/stencil + // before inserting their new values. + // sample_temp.x = old depth/stencil + // sample_temp.y = masked new stencil + // sample_temp.z = free + // temp.x if no oDepth and early = ddx(z) + // temp.y if no oDepth and early = ddy(z) + // temp.z if no oDepth = biased depth in the center + // temp.w if late = resulting sample depth, inverse-write-masked old + // stencil a_.OpAnd(sample_depth_stencil_dest, sample_depth_stencil_src, - sample_temp_y_src); + sample_temp_z_src); // Merge the old and the new stencil. - // temp.x? = resulting sample depth/stencil - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = old depth/stencil - // sample_temp.x = free + // temp.x if no oDepth and early = ddx(z) + // temp.y if no oDepth and early = ddy(z) + // temp.z if no oDepth = biased depth in the center + // temp.w if late = resulting sample depth/stencil + // sample_temp.x = old depth/stencil + // sample_temp.y = free a_.OpOr(sample_depth_stencil_dest, sample_depth_stencil_src, - sample_temp_x_src); + sample_temp_y_src); } // Close the stencil test check. a_.OpEndIf(); // Check if the depth/stencil has failed not to modify the depth if it has. - // sample_temp.x = whether depth/stencil has passed for this sample - a_.OpAnd(sample_temp_x_dest, + // sample_temp.x = old depth/stencil + // sample_temp.y = whether depth/stencil has passed for this sample + a_.OpAnd(sample_temp_y_dest, dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kXXXX), dxbc::Src::LU(1 << i)); // If the depth/stencil test has failed, don't change the depth. - // sample_temp.x = free - a_.OpIf(false, sample_temp_x_src); + // sample_temp.x = old depth/stencil + // sample_temp.y = free + a_.OpIf(false, sample_temp_y_src); { // Copy the new stencil over the old depth. - // temp.x? = resulting sample depth/stencil - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = old depth/stencil + // temp.x if no oDepth and early = ddx(z) + // temp.y if no oDepth and early = ddy(z) + // temp.z if no oDepth = biased depth in the center + // temp.w if late = resulting sample depth/stencil a_.OpBFI(sample_depth_stencil_dest, dxbc::Src::LU(8), dxbc::Src::LU(0), - sample_depth_stencil_src, temp_w_src); + sample_depth_stencil_src, sample_temp_x_src); } // Close the depth/stencil passing check. a_.OpEndIf(); // Check if the new depth/stencil is different, and thus needs to be - // written, to temp.w. - // temp.x? = resulting sample depth/stencil - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = whether depth/stencil has been modified - a_.OpINE(temp_w_dest, sample_depth_stencil_src, temp_w_src); + // written. + // sample_temp.x = old depth/stencil + a_.OpINE(sample_temp_x_dest, sample_depth_stencil_src, sample_temp_x_src); if (depth_stencil_early && !current_shader().implicit_early_z_write_allowed()) { // Set the sample bit in bits 4:7 of system_temp_rov_params_.x - always // need to write late in this shader, as it may do something like // explicitly killing pixels. a_.OpBFI(dxbc::Dest::R(system_temp_rov_params_, 0b0001), dxbc::Src::LU(1), - dxbc::Src::LU(4 + i), temp_w_src, + dxbc::Src::LU(4 + i), sample_temp_x_src, dxbc::Src::R(system_temp_rov_params_, dxbc::Src::kXXXX)); } else { // Check if need to write. - // temp.x? = resulting sample depth/stencil - // temp.y = polygon offset if not writing to oDepth - // temp.z = viewport maximum depth if not writing to oDepth - // temp.w = free - a_.OpIf(true, temp_w_src); + // sample_temp.x = free + a_.OpIf(true, sample_temp_x_src); { if (depth_stencil_early) { - // Get if early depth/stencil write is enabled to temp.w. - // temp.w = whether early depth/stencil write is enabled - a_.OpAnd(temp_w_dest, LoadFlagsSystemConstant(), + // Get if early depth/stencil write is enabled. + // sample_temp.x = whether early depth/stencil write is enabled + a_.OpAnd(sample_temp_x_dest, LoadFlagsSystemConstant(), dxbc::Src::LU(kSysFlag_ROVDepthStencilEarlyWrite)); // Check if need to write early. - // temp.w = free - a_.OpIf(true, temp_w_src); + // sample_temp.x = free + a_.OpIf(true, sample_temp_x_src); } // Write the new depth/stencil. if (uav_index_edram_ == kBindingIndexUnallocated) { @@ -1644,10 +1696,10 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToRTVs() { // unbiased alpha from the shader a_.OpMul(dxbc::Dest::R(system_temps_color_[i]), dxbc::Src::R(system_temps_color_[i]), - LoadSystemConstant(SystemConstants::Index::kColorExpBias, - offsetof(SystemConstants, color_exp_bias) + - sizeof(uint32_t) * i, - dxbc::Src::kXXXX)); + LoadSystemConstant( + SystemConstants::Index::kColorExpBias, + offsetof(SystemConstants, color_exp_bias) + sizeof(float) * i, + dxbc::Src::kXXXX)); if (!gamma_render_target_as_srgb_) { // Convert to gamma space - this is incorrect, since it must be done after // blending on the Xbox 360, but this is just one of many blending issues @@ -2044,10 +2096,10 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() { // unbiased alpha from the shader. a_.OpMul(dxbc::Dest::R(system_temps_color_[i]), dxbc::Src::R(system_temps_color_[i]), - LoadSystemConstant(SystemConstants::Index::kColorExpBias, - offsetof(SystemConstants, color_exp_bias) + - sizeof(uint32_t) * i, - dxbc::Src::kXXXX)); + LoadSystemConstant( + SystemConstants::Index::kColorExpBias, + offsetof(SystemConstants, color_exp_bias) + sizeof(float) * i, + dxbc::Src::kXXXX)); // Add the EDRAM bases of the render target to system_temp_rov_params_.zw. a_.OpIAdd(dxbc::Dest::R(system_temp_rov_params_, 0b1100), @@ -2065,7 +2117,7 @@ void DxbcShaderTranslator::CompletePixelShader_WriteToROV() { dxbc::Src::kXXXX)); dxbc::Src rt_clamp_vec_src(LoadSystemConstant( SystemConstants::Index::kEdramRTClamp, - offsetof(SystemConstants, edram_rt_clamp) + sizeof(uint32_t) * 4 * i, + offsetof(SystemConstants, edram_rt_clamp) + sizeof(float) * 4 * i, dxbc::Src::kXYZW)); dxbc::Src rt_format_flags_src(LoadSystemConstant( SystemConstants::Index::kEdramRTFormatFlags, diff --git a/src/xenia/gpu/register_table.inc b/src/xenia/gpu/register_table.inc index 5066432ab..ce5e9f494 100644 --- a/src/xenia/gpu/register_table.inc +++ b/src/xenia/gpu/register_table.inc @@ -421,6 +421,9 @@ XE_GPU_REGISTER(0x2323, kDword, RB_COPY_SURFACE_SLICE) XE_GPU_REGISTER(0x2324, kDword, RB_SAMPLE_COUNT_CTL) XE_GPU_REGISTER(0x2325, kDword, RB_SAMPLE_COUNT_ADDR) +// Polygon offset scales and offsets are 32-bit floating-point. +// "slope computed in subpixels (1/12 or 1/16)" - R5xx Acceleration. +// https://github.com/mesa3d/mesa/blob/54ad9b444c8e73da498211870e785239ad3ff1aa/src/gallium/drivers/radeonsi/si_state.c#L946 XE_GPU_REGISTER(0x2380, kFloat, PA_SU_POLY_OFFSET_FRONT_SCALE) XE_GPU_REGISTER(0x2381, kFloat, PA_SU_POLY_OFFSET_FRONT_OFFSET) XE_GPU_REGISTER(0x2382, kFloat, PA_SU_POLY_OFFSET_BACK_SCALE) diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_hs.h index e7c6b03a2..0294c95bf 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_quad_hs.h @@ -30,10 +30,9 @@ // uint xe_alpha_to_mask; // Offset: 232 Size: 4 [unused] // uint xe_edram_pitch_tiles; // Offset: 236 Size: 4 [unused] // float4 xe_color_exp_bias; // Offset: 240 Size: 16 [unused] -// float2 xe_edram_depth_range; // Offset: 256 Size: 8 [unused] -// float2 xe_edram_poly_offset_front; // Offset: 264 Size: 8 [unused] -// float2 xe_edram_poly_offset_back; // Offset: 272 Size: 8 [unused] -// uint xe_edram_depth_base_dwords; // Offset: 280 Size: 4 [unused] +// float2 xe_edram_poly_offset_front; // Offset: 256 Size: 8 [unused] +// float2 xe_edram_poly_offset_back; // Offset: 264 Size: 8 [unused] +// uint xe_edram_depth_base_dwords; // Offset: 272 Size: 4 [unused] // uint4 xe_edram_stencil[2]; // Offset: 288 Size: 32 [unused] // uint4 xe_edram_rt_base_dwords_scaled;// Offset: 320 Size: 16 [unused] // uint4 xe_edram_rt_format_flags; // Offset: 336 Size: 16 [unused] @@ -122,21 +121,21 @@ ret const BYTE continuous_quad_hs[] = { - 68, 88, 66, 67, 146, 131, - 116, 204, 119, 243, 68, 231, - 8, 3, 192, 172, 212, 177, - 180, 210, 1, 0, 0, 0, - 24, 14, 0, 0, 6, 0, + 68, 88, 66, 67, 235, 115, + 46, 207, 211, 220, 116, 112, + 161, 205, 93, 240, 127, 133, + 74, 91, 1, 0, 0, 0, + 220, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 228, 10, 0, 0, 24, 11, - 0, 0, 76, 11, 0, 0, - 16, 12, 0, 0, 124, 13, + 168, 10, 0, 0, 220, 10, + 0, 0, 16, 11, 0, 0, + 212, 11, 0, 0, 64, 13, 0, 0, 82, 68, 69, 70, - 164, 10, 0, 0, 1, 0, + 104, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 4, 0, 122, 10, + 0, 5, 4, 0, 62, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -153,389 +152,379 @@ const BYTE continuous_quad_hs[] = 121, 115, 116, 101, 109, 95, 99, 98, 117, 102, 102, 101, 114, 0, 171, 171, 100, 0, - 0, 0, 33, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 144, 0, 0, 0, 224, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 5, + 0, 0, 0, 0, 144, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 236, 5, 0, 0, + 0, 0, 196, 5, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 52, 6, 0, 0, 12, 0, + 12, 6, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 79, 6, + 0, 0, 0, 0, 39, 6, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 102, 6, 0, 0, + 0, 0, 62, 6, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 125, 6, 0, 0, 24, 0, + 85, 6, 0, 0, 24, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 156, 6, + 0, 0, 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 192, 6, + 0, 0, 0, 0, 152, 6, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 220, 6, 0, 0, + 0, 0, 180, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 0, 7, 0, 0, + 0, 0, 216, 6, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 20, 7, 0, 0, 0, 0, + 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 56, 7, 0, 0, 140, 0, + 16, 7, 0, 0, 140, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 7, + 0, 0, 0, 0, 76, 7, 0, 0, 144, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 0, 20, 7, 0, 0, + 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 130, 7, 0, 0, + 0, 0, 90, 7, 0, 0, 156, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 80, 7, 0, 0, 0, 0, + 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 146, 7, 0, 0, 160, 0, + 106, 7, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 168, 7, + 0, 0, 0, 0, 128, 7, 0, 0, 168, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 191, 7, 0, 0, + 0, 0, 151, 7, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 224, 7, 0, 0, 180, 0, + 184, 7, 0, 0, 180, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 240, 7, + 0, 0, 0, 0, 200, 7, 0, 0, 184, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 156, 6, 0, 0, + 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 5, 8, 0, 0, + 0, 0, 221, 7, 0, 0, 192, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 40, 8, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 76, 8, 0, 0, 224, 0, + 36, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 97, 8, + 0, 0, 0, 0, 57, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 80, 7, 0, 0, + 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 121, 8, 0, 0, + 0, 0, 81, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 138, 8, 0, 0, 236, 0, + 98, 8, 0, 0, 236, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 159, 8, + 0, 0, 0, 0, 119, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 180, 8, 0, 0, + 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 216, 8, 0, 0, + 0, 0, 176, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 237, 8, 0, 0, 8, 1, + 203, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 8, 9, + 0, 0, 0, 0, 229, 8, 0, 0, 16, 1, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 34, 9, 0, 0, - 24, 1, 0, 0, 4, 0, + 0, 0, 0, 9, 0, 0, + 32, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 20, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 61, 9, 0, 0, 32, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 80, 9, + 56, 9, 0, 0, 64, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 9, - 0, 0, 64, 1, 0, 0, + 0, 0, 0, 0, 124, 9, + 0, 0, 80, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 184, 9, 0, 0, - 80, 1, 0, 0, 16, 0, + 0, 0, 149, 9, 0, 0, + 96, 1, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 168, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 209, 9, 0, 0, 96, 1, - 0, 0, 64, 0, 0, 0, + 204, 9, 0, 0, 160, 1, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 228, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 8, 10, - 0, 0, 160, 1, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 32, 10, 0, 0, + 0, 0, 192, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 68, 10, 0, 0, - 192, 1, 0, 0, 16, 0, + 0, 0, 38, 10, 0, 0, + 208, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 98, 10, 0, 0, 208, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 8, - 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 120, 101, - 95, 102, 108, 97, 103, 115, - 0, 100, 119, 111, 114, 100, - 0, 171, 0, 0, 19, 0, - 1, 0, 1, 0, 0, 0, + 120, 101, 95, 102, 108, 97, + 103, 115, 0, 100, 119, 111, + 114, 100, 0, 171, 0, 0, + 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 5, - 0, 0, 120, 101, 95, 116, - 101, 115, 115, 101, 108, 108, - 97, 116, 105, 111, 110, 95, - 102, 97, 99, 116, 111, 114, - 95, 114, 97, 110, 103, 101, - 0, 102, 108, 111, 97, 116, - 50, 0, 1, 0, 3, 0, - 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 153, 5, 0, 0, 120, 101, + 95, 116, 101, 115, 115, 101, + 108, 108, 97, 116, 105, 111, + 110, 95, 102, 97, 99, 116, + 111, 114, 95, 114, 97, 110, + 103, 101, 0, 102, 108, 111, + 97, 116, 50, 0, 1, 0, + 3, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 6, - 0, 0, 120, 101, 95, 108, - 105, 110, 101, 95, 108, 111, - 111, 112, 95, 99, 108, 111, - 115, 105, 110, 103, 95, 105, - 110, 100, 101, 120, 0, 120, + 0, 0, 0, 0, 0, 0, + 225, 5, 0, 0, 120, 101, + 95, 108, 105, 110, 101, 95, + 108, 111, 111, 112, 95, 99, + 108, 111, 115, 105, 110, 103, + 95, 105, 110, 100, 101, 120, + 0, 120, 101, 95, 118, 101, + 114, 116, 101, 120, 95, 105, + 110, 100, 101, 120, 95, 101, + 110, 100, 105, 97, 110, 0, + 120, 101, 95, 118, 101, 114, + 116, 101, 120, 95, 105, 110, + 100, 101, 120, 95, 111, 102, + 102, 115, 101, 116, 0, 120, 101, 95, 118, 101, 114, 116, 101, 120, 95, 105, 110, 100, - 101, 120, 95, 101, 110, 100, - 105, 97, 110, 0, 120, 101, - 95, 118, 101, 114, 116, 101, - 120, 95, 105, 110, 100, 101, - 120, 95, 111, 102, 102, 115, - 101, 116, 0, 120, 101, 95, - 118, 101, 114, 116, 101, 120, - 95, 105, 110, 100, 101, 120, - 95, 109, 105, 110, 95, 109, - 97, 120, 0, 117, 105, 110, - 116, 50, 0, 171, 1, 0, - 19, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 149, 6, 0, 0, 120, 101, - 95, 117, 115, 101, 114, 95, - 99, 108, 105, 112, 95, 112, - 108, 97, 110, 101, 115, 0, - 102, 108, 111, 97, 116, 52, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 6, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 6, - 0, 0, 120, 101, 95, 110, - 100, 99, 95, 115, 99, 97, - 108, 101, 0, 102, 108, 111, - 97, 116, 51, 0, 1, 0, - 3, 0, 1, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 13, 7, 0, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 120, 0, 102, 108, 111, 97, - 116, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 72, 7, 0, 0, 120, 101, - 95, 110, 100, 99, 95, 111, - 102, 102, 115, 101, 116, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 121, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 109, 105, 110, 95, 109, 97, - 120, 0, 120, 101, 95, 112, - 111, 105, 110, 116, 95, 115, - 99, 114, 101, 101, 110, 95, - 116, 111, 95, 110, 100, 99, - 0, 120, 101, 95, 105, 110, - 116, 101, 114, 112, 111, 108, - 97, 116, 111, 114, 95, 115, - 97, 109, 112, 108, 105, 110, - 103, 95, 112, 97, 116, 116, - 101, 114, 110, 0, 120, 101, - 95, 112, 115, 95, 112, 97, - 114, 97, 109, 95, 103, 101, - 110, 0, 120, 101, 95, 115, - 97, 109, 112, 108, 101, 95, - 99, 111, 117, 110, 116, 95, - 108, 111, 103, 50, 0, 120, - 101, 95, 116, 101, 120, 116, - 117, 114, 101, 95, 115, 119, - 105, 122, 122, 108, 101, 100, - 95, 115, 105, 103, 110, 115, - 0, 117, 105, 110, 116, 52, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, + 101, 120, 95, 109, 105, 110, + 95, 109, 97, 120, 0, 117, + 105, 110, 116, 50, 0, 171, + 1, 0, 19, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, - 95, 116, 101, 120, 116, 117, - 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 101, - 115, 116, 95, 114, 101, 102, - 101, 114, 101, 110, 99, 101, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 111, - 95, 109, 97, 115, 107, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 105, 116, - 99, 104, 95, 116, 105, 108, - 101, 115, 0, 120, 101, 95, - 99, 111, 108, 111, 114, 95, - 101, 120, 112, 95, 98, 105, - 97, 115, 0, 171, 171, 171, + 0, 0, 109, 6, 0, 0, + 120, 101, 95, 117, 115, 101, + 114, 95, 99, 108, 105, 112, + 95, 112, 108, 97, 110, 101, + 115, 0, 102, 108, 111, 97, + 116, 52, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 172, 6, 0, 0, 120, 101, + 95, 110, 100, 99, 95, 115, + 99, 97, 108, 101, 0, 102, + 108, 111, 97, 116, 51, 0, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 212, 6, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 100, 101, 112, - 116, 104, 95, 114, 97, 110, - 103, 101, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 102, 114, 111, 110, 116, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 98, 97, 99, - 107, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 100, - 101, 112, 116, 104, 95, 98, - 97, 115, 101, 95, 100, 119, - 111, 114, 100, 115, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 0, 0, 229, 6, 0, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 120, 0, 102, 108, + 111, 97, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 32, 7, 0, 0, + 120, 101, 95, 110, 100, 99, + 95, 111, 102, 102, 115, 101, + 116, 0, 120, 101, 95, 112, + 111, 105, 110, 116, 95, 115, + 105, 122, 101, 95, 121, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 109, 105, 110, 95, + 109, 97, 120, 0, 120, 101, + 95, 112, 111, 105, 110, 116, + 95, 115, 99, 114, 101, 101, + 110, 95, 116, 111, 95, 110, + 100, 99, 0, 120, 101, 95, + 105, 110, 116, 101, 114, 112, + 111, 108, 97, 116, 111, 114, + 95, 115, 97, 109, 112, 108, + 105, 110, 103, 95, 112, 97, + 116, 116, 101, 114, 110, 0, + 120, 101, 95, 112, 115, 95, + 112, 97, 114, 97, 109, 95, + 103, 101, 110, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 116, 101, + 120, 116, 117, 114, 101, 95, + 115, 119, 105, 122, 122, 108, + 101, 100, 95, 115, 105, 103, + 110, 115, 0, 117, 105, 110, + 116, 52, 0, 171, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, + 0, 0, 247, 7, 0, 0, + 120, 101, 95, 116, 101, 120, + 116, 117, 114, 101, 115, 95, + 114, 101, 115, 111, 108, 118, + 101, 100, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 101, 115, 116, 95, 114, + 101, 102, 101, 114, 101, 110, + 99, 101, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 111, 95, 109, 97, 115, + 107, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 105, 116, 99, 104, 95, 116, + 105, 108, 101, 115, 0, 120, + 101, 95, 99, 111, 108, 111, + 114, 95, 101, 120, 112, 95, + 98, 105, 97, 115, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 100, 101, + 112, 116, 104, 95, 98, 97, + 115, 101, 95, 100, 119, 111, + 114, 100, 115, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 115, 116, 101, 110, 99, + 105, 108, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 97, 115, 101, 95, 100, @@ -546,7 +535,7 @@ const BYTE continuous_quad_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 8, + 0, 0, 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 102, 111, 114, 109, @@ -560,7 +549,7 @@ const BYTE continuous_quad_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 212, 6, 0, 0, 120, 101, + 172, 6, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 107, 101, 101, 112, 95, 109, 97, 115, @@ -570,7 +559,7 @@ const BYTE continuous_quad_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, + 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 108, 101, 110, 100, 95, 102, 97, diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_hs.h index f8863b235..2208ae75b 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/continuous_triangle_hs.h @@ -30,10 +30,9 @@ // uint xe_alpha_to_mask; // Offset: 232 Size: 4 [unused] // uint xe_edram_pitch_tiles; // Offset: 236 Size: 4 [unused] // float4 xe_color_exp_bias; // Offset: 240 Size: 16 [unused] -// float2 xe_edram_depth_range; // Offset: 256 Size: 8 [unused] -// float2 xe_edram_poly_offset_front; // Offset: 264 Size: 8 [unused] -// float2 xe_edram_poly_offset_back; // Offset: 272 Size: 8 [unused] -// uint xe_edram_depth_base_dwords; // Offset: 280 Size: 4 [unused] +// float2 xe_edram_poly_offset_front; // Offset: 256 Size: 8 [unused] +// float2 xe_edram_poly_offset_back; // Offset: 264 Size: 8 [unused] +// uint xe_edram_depth_base_dwords; // Offset: 272 Size: 4 [unused] // uint4 xe_edram_stencil[2]; // Offset: 288 Size: 32 [unused] // uint4 xe_edram_rt_base_dwords_scaled;// Offset: 320 Size: 16 [unused] // uint4 xe_edram_rt_format_flags; // Offset: 336 Size: 16 [unused] @@ -113,21 +112,21 @@ ret const BYTE continuous_triangle_hs[] = { - 68, 88, 66, 67, 14, 65, - 110, 26, 11, 98, 251, 129, - 85, 73, 64, 16, 20, 121, - 179, 108, 1, 0, 0, 0, - 136, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 101, 66, + 223, 231, 73, 98, 52, 221, + 50, 47, 236, 69, 147, 250, + 231, 1, 1, 0, 0, 0, + 76, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 228, 10, 0, 0, 24, 11, - 0, 0, 76, 11, 0, 0, - 224, 11, 0, 0, 236, 12, + 168, 10, 0, 0, 220, 10, + 0, 0, 16, 11, 0, 0, + 164, 11, 0, 0, 176, 12, 0, 0, 82, 68, 69, 70, - 164, 10, 0, 0, 1, 0, + 104, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 4, 0, 122, 10, + 0, 5, 4, 0, 62, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -144,389 +143,379 @@ const BYTE continuous_triangle_hs[] = 121, 115, 116, 101, 109, 95, 99, 98, 117, 102, 102, 101, 114, 0, 171, 171, 100, 0, - 0, 0, 33, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 144, 0, 0, 0, 224, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 5, + 0, 0, 0, 0, 144, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 236, 5, 0, 0, + 0, 0, 196, 5, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 52, 6, 0, 0, 12, 0, + 12, 6, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 79, 6, + 0, 0, 0, 0, 39, 6, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 102, 6, 0, 0, + 0, 0, 62, 6, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 125, 6, 0, 0, 24, 0, + 85, 6, 0, 0, 24, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 156, 6, + 0, 0, 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 192, 6, + 0, 0, 0, 0, 152, 6, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 220, 6, 0, 0, + 0, 0, 180, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 0, 7, 0, 0, + 0, 0, 216, 6, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 20, 7, 0, 0, 0, 0, + 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 56, 7, 0, 0, 140, 0, + 16, 7, 0, 0, 140, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 7, + 0, 0, 0, 0, 76, 7, 0, 0, 144, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 0, 20, 7, 0, 0, + 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 130, 7, 0, 0, + 0, 0, 90, 7, 0, 0, 156, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 80, 7, 0, 0, 0, 0, + 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 146, 7, 0, 0, 160, 0, + 106, 7, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 168, 7, + 0, 0, 0, 0, 128, 7, 0, 0, 168, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 191, 7, 0, 0, + 0, 0, 151, 7, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 224, 7, 0, 0, 180, 0, + 184, 7, 0, 0, 180, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 240, 7, + 0, 0, 0, 0, 200, 7, 0, 0, 184, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 156, 6, 0, 0, + 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 5, 8, 0, 0, + 0, 0, 221, 7, 0, 0, 192, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 40, 8, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 76, 8, 0, 0, 224, 0, + 36, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 97, 8, + 0, 0, 0, 0, 57, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 80, 7, 0, 0, + 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 121, 8, 0, 0, + 0, 0, 81, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 138, 8, 0, 0, 236, 0, + 98, 8, 0, 0, 236, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 159, 8, + 0, 0, 0, 0, 119, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 180, 8, 0, 0, + 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 216, 8, 0, 0, + 0, 0, 176, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 237, 8, 0, 0, 8, 1, + 203, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 8, 9, + 0, 0, 0, 0, 229, 8, 0, 0, 16, 1, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 34, 9, 0, 0, - 24, 1, 0, 0, 4, 0, + 0, 0, 0, 9, 0, 0, + 32, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 20, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 61, 9, 0, 0, 32, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 80, 9, + 56, 9, 0, 0, 64, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 9, - 0, 0, 64, 1, 0, 0, + 0, 0, 0, 0, 124, 9, + 0, 0, 80, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 184, 9, 0, 0, - 80, 1, 0, 0, 16, 0, + 0, 0, 149, 9, 0, 0, + 96, 1, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 168, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 209, 9, 0, 0, 96, 1, - 0, 0, 64, 0, 0, 0, + 204, 9, 0, 0, 160, 1, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 228, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 8, 10, - 0, 0, 160, 1, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 32, 10, 0, 0, + 0, 0, 192, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 68, 10, 0, 0, - 192, 1, 0, 0, 16, 0, + 0, 0, 38, 10, 0, 0, + 208, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 98, 10, 0, 0, 208, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 8, - 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 120, 101, - 95, 102, 108, 97, 103, 115, - 0, 100, 119, 111, 114, 100, - 0, 171, 0, 0, 19, 0, - 1, 0, 1, 0, 0, 0, + 120, 101, 95, 102, 108, 97, + 103, 115, 0, 100, 119, 111, + 114, 100, 0, 171, 0, 0, + 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 5, - 0, 0, 120, 101, 95, 116, - 101, 115, 115, 101, 108, 108, - 97, 116, 105, 111, 110, 95, - 102, 97, 99, 116, 111, 114, - 95, 114, 97, 110, 103, 101, - 0, 102, 108, 111, 97, 116, - 50, 0, 1, 0, 3, 0, - 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 153, 5, 0, 0, 120, 101, + 95, 116, 101, 115, 115, 101, + 108, 108, 97, 116, 105, 111, + 110, 95, 102, 97, 99, 116, + 111, 114, 95, 114, 97, 110, + 103, 101, 0, 102, 108, 111, + 97, 116, 50, 0, 1, 0, + 3, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 6, - 0, 0, 120, 101, 95, 108, - 105, 110, 101, 95, 108, 111, - 111, 112, 95, 99, 108, 111, - 115, 105, 110, 103, 95, 105, - 110, 100, 101, 120, 0, 120, + 0, 0, 0, 0, 0, 0, + 225, 5, 0, 0, 120, 101, + 95, 108, 105, 110, 101, 95, + 108, 111, 111, 112, 95, 99, + 108, 111, 115, 105, 110, 103, + 95, 105, 110, 100, 101, 120, + 0, 120, 101, 95, 118, 101, + 114, 116, 101, 120, 95, 105, + 110, 100, 101, 120, 95, 101, + 110, 100, 105, 97, 110, 0, + 120, 101, 95, 118, 101, 114, + 116, 101, 120, 95, 105, 110, + 100, 101, 120, 95, 111, 102, + 102, 115, 101, 116, 0, 120, 101, 95, 118, 101, 114, 116, 101, 120, 95, 105, 110, 100, - 101, 120, 95, 101, 110, 100, - 105, 97, 110, 0, 120, 101, - 95, 118, 101, 114, 116, 101, - 120, 95, 105, 110, 100, 101, - 120, 95, 111, 102, 102, 115, - 101, 116, 0, 120, 101, 95, - 118, 101, 114, 116, 101, 120, - 95, 105, 110, 100, 101, 120, - 95, 109, 105, 110, 95, 109, - 97, 120, 0, 117, 105, 110, - 116, 50, 0, 171, 1, 0, - 19, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 149, 6, 0, 0, 120, 101, - 95, 117, 115, 101, 114, 95, - 99, 108, 105, 112, 95, 112, - 108, 97, 110, 101, 115, 0, - 102, 108, 111, 97, 116, 52, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 6, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 6, - 0, 0, 120, 101, 95, 110, - 100, 99, 95, 115, 99, 97, - 108, 101, 0, 102, 108, 111, - 97, 116, 51, 0, 1, 0, - 3, 0, 1, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 13, 7, 0, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 120, 0, 102, 108, 111, 97, - 116, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 72, 7, 0, 0, 120, 101, - 95, 110, 100, 99, 95, 111, - 102, 102, 115, 101, 116, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 121, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 109, 105, 110, 95, 109, 97, - 120, 0, 120, 101, 95, 112, - 111, 105, 110, 116, 95, 115, - 99, 114, 101, 101, 110, 95, - 116, 111, 95, 110, 100, 99, - 0, 120, 101, 95, 105, 110, - 116, 101, 114, 112, 111, 108, - 97, 116, 111, 114, 95, 115, - 97, 109, 112, 108, 105, 110, - 103, 95, 112, 97, 116, 116, - 101, 114, 110, 0, 120, 101, - 95, 112, 115, 95, 112, 97, - 114, 97, 109, 95, 103, 101, - 110, 0, 120, 101, 95, 115, - 97, 109, 112, 108, 101, 95, - 99, 111, 117, 110, 116, 95, - 108, 111, 103, 50, 0, 120, - 101, 95, 116, 101, 120, 116, - 117, 114, 101, 95, 115, 119, - 105, 122, 122, 108, 101, 100, - 95, 115, 105, 103, 110, 115, - 0, 117, 105, 110, 116, 52, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, + 101, 120, 95, 109, 105, 110, + 95, 109, 97, 120, 0, 117, + 105, 110, 116, 50, 0, 171, + 1, 0, 19, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, - 95, 116, 101, 120, 116, 117, - 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 101, - 115, 116, 95, 114, 101, 102, - 101, 114, 101, 110, 99, 101, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 111, - 95, 109, 97, 115, 107, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 105, 116, - 99, 104, 95, 116, 105, 108, - 101, 115, 0, 120, 101, 95, - 99, 111, 108, 111, 114, 95, - 101, 120, 112, 95, 98, 105, - 97, 115, 0, 171, 171, 171, + 0, 0, 109, 6, 0, 0, + 120, 101, 95, 117, 115, 101, + 114, 95, 99, 108, 105, 112, + 95, 112, 108, 97, 110, 101, + 115, 0, 102, 108, 111, 97, + 116, 52, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 172, 6, 0, 0, 120, 101, + 95, 110, 100, 99, 95, 115, + 99, 97, 108, 101, 0, 102, + 108, 111, 97, 116, 51, 0, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 212, 6, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 100, 101, 112, - 116, 104, 95, 114, 97, 110, - 103, 101, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 102, 114, 111, 110, 116, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 98, 97, 99, - 107, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 100, - 101, 112, 116, 104, 95, 98, - 97, 115, 101, 95, 100, 119, - 111, 114, 100, 115, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 0, 0, 229, 6, 0, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 120, 0, 102, 108, + 111, 97, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 32, 7, 0, 0, + 120, 101, 95, 110, 100, 99, + 95, 111, 102, 102, 115, 101, + 116, 0, 120, 101, 95, 112, + 111, 105, 110, 116, 95, 115, + 105, 122, 101, 95, 121, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 109, 105, 110, 95, + 109, 97, 120, 0, 120, 101, + 95, 112, 111, 105, 110, 116, + 95, 115, 99, 114, 101, 101, + 110, 95, 116, 111, 95, 110, + 100, 99, 0, 120, 101, 95, + 105, 110, 116, 101, 114, 112, + 111, 108, 97, 116, 111, 114, + 95, 115, 97, 109, 112, 108, + 105, 110, 103, 95, 112, 97, + 116, 116, 101, 114, 110, 0, + 120, 101, 95, 112, 115, 95, + 112, 97, 114, 97, 109, 95, + 103, 101, 110, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 116, 101, + 120, 116, 117, 114, 101, 95, + 115, 119, 105, 122, 122, 108, + 101, 100, 95, 115, 105, 103, + 110, 115, 0, 117, 105, 110, + 116, 52, 0, 171, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, + 0, 0, 247, 7, 0, 0, + 120, 101, 95, 116, 101, 120, + 116, 117, 114, 101, 115, 95, + 114, 101, 115, 111, 108, 118, + 101, 100, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 101, 115, 116, 95, 114, + 101, 102, 101, 114, 101, 110, + 99, 101, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 111, 95, 109, 97, 115, + 107, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 105, 116, 99, 104, 95, 116, + 105, 108, 101, 115, 0, 120, + 101, 95, 99, 111, 108, 111, + 114, 95, 101, 120, 112, 95, + 98, 105, 97, 115, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 100, 101, + 112, 116, 104, 95, 98, 97, + 115, 101, 95, 100, 119, 111, + 114, 100, 115, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 115, 116, 101, 110, 99, + 105, 108, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 97, 115, 101, 95, 100, @@ -537,7 +526,7 @@ const BYTE continuous_triangle_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 8, + 0, 0, 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 102, 111, 114, 109, @@ -551,7 +540,7 @@ const BYTE continuous_triangle_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 212, 6, 0, 0, 120, 101, + 172, 6, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 107, 101, 101, 112, 95, 109, 97, 115, @@ -561,7 +550,7 @@ const BYTE continuous_triangle_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, + 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 108, 101, 110, 100, 95, 102, 97, diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_hs.h index 67cc36e5f..f42d65069 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_quad_hs.h @@ -30,10 +30,9 @@ // uint xe_alpha_to_mask; // Offset: 232 Size: 4 [unused] // uint xe_edram_pitch_tiles; // Offset: 236 Size: 4 [unused] // float4 xe_color_exp_bias; // Offset: 240 Size: 16 [unused] -// float2 xe_edram_depth_range; // Offset: 256 Size: 8 [unused] -// float2 xe_edram_poly_offset_front; // Offset: 264 Size: 8 [unused] -// float2 xe_edram_poly_offset_back; // Offset: 272 Size: 8 [unused] -// uint xe_edram_depth_base_dwords; // Offset: 280 Size: 4 [unused] +// float2 xe_edram_poly_offset_front; // Offset: 256 Size: 8 [unused] +// float2 xe_edram_poly_offset_back; // Offset: 264 Size: 8 [unused] +// uint xe_edram_depth_base_dwords; // Offset: 272 Size: 4 [unused] // uint4 xe_edram_stencil[2]; // Offset: 288 Size: 32 [unused] // uint4 xe_edram_rt_base_dwords_scaled;// Offset: 320 Size: 16 [unused] // uint4 xe_edram_rt_format_flags; // Offset: 336 Size: 16 [unused] @@ -122,21 +121,21 @@ ret const BYTE discrete_quad_hs[] = { - 68, 88, 66, 67, 183, 84, - 25, 154, 52, 54, 58, 114, - 78, 181, 115, 248, 136, 102, - 23, 147, 1, 0, 0, 0, - 24, 14, 0, 0, 6, 0, + 68, 88, 66, 67, 133, 207, + 137, 232, 78, 97, 5, 29, + 188, 112, 65, 159, 75, 218, + 107, 227, 1, 0, 0, 0, + 220, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 228, 10, 0, 0, 24, 11, - 0, 0, 76, 11, 0, 0, - 16, 12, 0, 0, 124, 13, + 168, 10, 0, 0, 220, 10, + 0, 0, 16, 11, 0, 0, + 212, 11, 0, 0, 64, 13, 0, 0, 82, 68, 69, 70, - 164, 10, 0, 0, 1, 0, + 104, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 4, 0, 122, 10, + 0, 5, 4, 0, 62, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -153,389 +152,379 @@ const BYTE discrete_quad_hs[] = 121, 115, 116, 101, 109, 95, 99, 98, 117, 102, 102, 101, 114, 0, 171, 171, 100, 0, - 0, 0, 33, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 144, 0, 0, 0, 224, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 5, + 0, 0, 0, 0, 144, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 236, 5, 0, 0, + 0, 0, 196, 5, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 52, 6, 0, 0, 12, 0, + 12, 6, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 79, 6, + 0, 0, 0, 0, 39, 6, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 102, 6, 0, 0, + 0, 0, 62, 6, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 125, 6, 0, 0, 24, 0, + 85, 6, 0, 0, 24, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 156, 6, + 0, 0, 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 192, 6, + 0, 0, 0, 0, 152, 6, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 220, 6, 0, 0, + 0, 0, 180, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 0, 7, 0, 0, + 0, 0, 216, 6, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 20, 7, 0, 0, 0, 0, + 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 56, 7, 0, 0, 140, 0, + 16, 7, 0, 0, 140, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 7, + 0, 0, 0, 0, 76, 7, 0, 0, 144, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 0, 20, 7, 0, 0, + 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 130, 7, 0, 0, + 0, 0, 90, 7, 0, 0, 156, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 80, 7, 0, 0, 0, 0, + 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 146, 7, 0, 0, 160, 0, + 106, 7, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 168, 7, + 0, 0, 0, 0, 128, 7, 0, 0, 168, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 191, 7, 0, 0, + 0, 0, 151, 7, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 224, 7, 0, 0, 180, 0, + 184, 7, 0, 0, 180, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 240, 7, + 0, 0, 0, 0, 200, 7, 0, 0, 184, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 156, 6, 0, 0, + 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 5, 8, 0, 0, + 0, 0, 221, 7, 0, 0, 192, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 40, 8, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 76, 8, 0, 0, 224, 0, + 36, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 97, 8, + 0, 0, 0, 0, 57, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 80, 7, 0, 0, + 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 121, 8, 0, 0, + 0, 0, 81, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 138, 8, 0, 0, 236, 0, + 98, 8, 0, 0, 236, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 159, 8, + 0, 0, 0, 0, 119, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 180, 8, 0, 0, + 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 216, 8, 0, 0, + 0, 0, 176, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 237, 8, 0, 0, 8, 1, + 203, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 8, 9, + 0, 0, 0, 0, 229, 8, 0, 0, 16, 1, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 34, 9, 0, 0, - 24, 1, 0, 0, 4, 0, + 0, 0, 0, 9, 0, 0, + 32, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 20, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 61, 9, 0, 0, 32, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 80, 9, + 56, 9, 0, 0, 64, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 9, - 0, 0, 64, 1, 0, 0, + 0, 0, 0, 0, 124, 9, + 0, 0, 80, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 184, 9, 0, 0, - 80, 1, 0, 0, 16, 0, + 0, 0, 149, 9, 0, 0, + 96, 1, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 168, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 209, 9, 0, 0, 96, 1, - 0, 0, 64, 0, 0, 0, + 204, 9, 0, 0, 160, 1, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 228, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 8, 10, - 0, 0, 160, 1, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 32, 10, 0, 0, + 0, 0, 192, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 68, 10, 0, 0, - 192, 1, 0, 0, 16, 0, + 0, 0, 38, 10, 0, 0, + 208, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 98, 10, 0, 0, 208, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 8, - 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 120, 101, - 95, 102, 108, 97, 103, 115, - 0, 100, 119, 111, 114, 100, - 0, 171, 0, 0, 19, 0, - 1, 0, 1, 0, 0, 0, + 120, 101, 95, 102, 108, 97, + 103, 115, 0, 100, 119, 111, + 114, 100, 0, 171, 0, 0, + 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 5, - 0, 0, 120, 101, 95, 116, - 101, 115, 115, 101, 108, 108, - 97, 116, 105, 111, 110, 95, - 102, 97, 99, 116, 111, 114, - 95, 114, 97, 110, 103, 101, - 0, 102, 108, 111, 97, 116, - 50, 0, 1, 0, 3, 0, - 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 153, 5, 0, 0, 120, 101, + 95, 116, 101, 115, 115, 101, + 108, 108, 97, 116, 105, 111, + 110, 95, 102, 97, 99, 116, + 111, 114, 95, 114, 97, 110, + 103, 101, 0, 102, 108, 111, + 97, 116, 50, 0, 1, 0, + 3, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 6, - 0, 0, 120, 101, 95, 108, - 105, 110, 101, 95, 108, 111, - 111, 112, 95, 99, 108, 111, - 115, 105, 110, 103, 95, 105, - 110, 100, 101, 120, 0, 120, + 0, 0, 0, 0, 0, 0, + 225, 5, 0, 0, 120, 101, + 95, 108, 105, 110, 101, 95, + 108, 111, 111, 112, 95, 99, + 108, 111, 115, 105, 110, 103, + 95, 105, 110, 100, 101, 120, + 0, 120, 101, 95, 118, 101, + 114, 116, 101, 120, 95, 105, + 110, 100, 101, 120, 95, 101, + 110, 100, 105, 97, 110, 0, + 120, 101, 95, 118, 101, 114, + 116, 101, 120, 95, 105, 110, + 100, 101, 120, 95, 111, 102, + 102, 115, 101, 116, 0, 120, 101, 95, 118, 101, 114, 116, 101, 120, 95, 105, 110, 100, - 101, 120, 95, 101, 110, 100, - 105, 97, 110, 0, 120, 101, - 95, 118, 101, 114, 116, 101, - 120, 95, 105, 110, 100, 101, - 120, 95, 111, 102, 102, 115, - 101, 116, 0, 120, 101, 95, - 118, 101, 114, 116, 101, 120, - 95, 105, 110, 100, 101, 120, - 95, 109, 105, 110, 95, 109, - 97, 120, 0, 117, 105, 110, - 116, 50, 0, 171, 1, 0, - 19, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 149, 6, 0, 0, 120, 101, - 95, 117, 115, 101, 114, 95, - 99, 108, 105, 112, 95, 112, - 108, 97, 110, 101, 115, 0, - 102, 108, 111, 97, 116, 52, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 6, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 6, - 0, 0, 120, 101, 95, 110, - 100, 99, 95, 115, 99, 97, - 108, 101, 0, 102, 108, 111, - 97, 116, 51, 0, 1, 0, - 3, 0, 1, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 13, 7, 0, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 120, 0, 102, 108, 111, 97, - 116, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 72, 7, 0, 0, 120, 101, - 95, 110, 100, 99, 95, 111, - 102, 102, 115, 101, 116, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 121, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 109, 105, 110, 95, 109, 97, - 120, 0, 120, 101, 95, 112, - 111, 105, 110, 116, 95, 115, - 99, 114, 101, 101, 110, 95, - 116, 111, 95, 110, 100, 99, - 0, 120, 101, 95, 105, 110, - 116, 101, 114, 112, 111, 108, - 97, 116, 111, 114, 95, 115, - 97, 109, 112, 108, 105, 110, - 103, 95, 112, 97, 116, 116, - 101, 114, 110, 0, 120, 101, - 95, 112, 115, 95, 112, 97, - 114, 97, 109, 95, 103, 101, - 110, 0, 120, 101, 95, 115, - 97, 109, 112, 108, 101, 95, - 99, 111, 117, 110, 116, 95, - 108, 111, 103, 50, 0, 120, - 101, 95, 116, 101, 120, 116, - 117, 114, 101, 95, 115, 119, - 105, 122, 122, 108, 101, 100, - 95, 115, 105, 103, 110, 115, - 0, 117, 105, 110, 116, 52, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, + 101, 120, 95, 109, 105, 110, + 95, 109, 97, 120, 0, 117, + 105, 110, 116, 50, 0, 171, + 1, 0, 19, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, - 95, 116, 101, 120, 116, 117, - 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 101, - 115, 116, 95, 114, 101, 102, - 101, 114, 101, 110, 99, 101, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 111, - 95, 109, 97, 115, 107, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 105, 116, - 99, 104, 95, 116, 105, 108, - 101, 115, 0, 120, 101, 95, - 99, 111, 108, 111, 114, 95, - 101, 120, 112, 95, 98, 105, - 97, 115, 0, 171, 171, 171, + 0, 0, 109, 6, 0, 0, + 120, 101, 95, 117, 115, 101, + 114, 95, 99, 108, 105, 112, + 95, 112, 108, 97, 110, 101, + 115, 0, 102, 108, 111, 97, + 116, 52, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 172, 6, 0, 0, 120, 101, + 95, 110, 100, 99, 95, 115, + 99, 97, 108, 101, 0, 102, + 108, 111, 97, 116, 51, 0, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 212, 6, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 100, 101, 112, - 116, 104, 95, 114, 97, 110, - 103, 101, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 102, 114, 111, 110, 116, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 98, 97, 99, - 107, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 100, - 101, 112, 116, 104, 95, 98, - 97, 115, 101, 95, 100, 119, - 111, 114, 100, 115, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 0, 0, 229, 6, 0, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 120, 0, 102, 108, + 111, 97, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 32, 7, 0, 0, + 120, 101, 95, 110, 100, 99, + 95, 111, 102, 102, 115, 101, + 116, 0, 120, 101, 95, 112, + 111, 105, 110, 116, 95, 115, + 105, 122, 101, 95, 121, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 109, 105, 110, 95, + 109, 97, 120, 0, 120, 101, + 95, 112, 111, 105, 110, 116, + 95, 115, 99, 114, 101, 101, + 110, 95, 116, 111, 95, 110, + 100, 99, 0, 120, 101, 95, + 105, 110, 116, 101, 114, 112, + 111, 108, 97, 116, 111, 114, + 95, 115, 97, 109, 112, 108, + 105, 110, 103, 95, 112, 97, + 116, 116, 101, 114, 110, 0, + 120, 101, 95, 112, 115, 95, + 112, 97, 114, 97, 109, 95, + 103, 101, 110, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 116, 101, + 120, 116, 117, 114, 101, 95, + 115, 119, 105, 122, 122, 108, + 101, 100, 95, 115, 105, 103, + 110, 115, 0, 117, 105, 110, + 116, 52, 0, 171, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, + 0, 0, 247, 7, 0, 0, + 120, 101, 95, 116, 101, 120, + 116, 117, 114, 101, 115, 95, + 114, 101, 115, 111, 108, 118, + 101, 100, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 101, 115, 116, 95, 114, + 101, 102, 101, 114, 101, 110, + 99, 101, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 111, 95, 109, 97, 115, + 107, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 105, 116, 99, 104, 95, 116, + 105, 108, 101, 115, 0, 120, + 101, 95, 99, 111, 108, 111, + 114, 95, 101, 120, 112, 95, + 98, 105, 97, 115, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 100, 101, + 112, 116, 104, 95, 98, 97, + 115, 101, 95, 100, 119, 111, + 114, 100, 115, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 115, 116, 101, 110, 99, + 105, 108, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 97, 115, 101, 95, 100, @@ -546,7 +535,7 @@ const BYTE discrete_quad_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 8, + 0, 0, 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 102, 111, 114, 109, @@ -560,7 +549,7 @@ const BYTE discrete_quad_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 212, 6, 0, 0, 120, 101, + 172, 6, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 107, 101, 101, 112, 95, 109, 97, 115, @@ -570,7 +559,7 @@ const BYTE discrete_quad_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, + 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 108, 101, 110, 100, 95, 102, 97, diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_hs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_hs.h index a763c4431..451a46b86 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_hs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/discrete_triangle_hs.h @@ -30,10 +30,9 @@ // uint xe_alpha_to_mask; // Offset: 232 Size: 4 [unused] // uint xe_edram_pitch_tiles; // Offset: 236 Size: 4 [unused] // float4 xe_color_exp_bias; // Offset: 240 Size: 16 [unused] -// float2 xe_edram_depth_range; // Offset: 256 Size: 8 [unused] -// float2 xe_edram_poly_offset_front; // Offset: 264 Size: 8 [unused] -// float2 xe_edram_poly_offset_back; // Offset: 272 Size: 8 [unused] -// uint xe_edram_depth_base_dwords; // Offset: 280 Size: 4 [unused] +// float2 xe_edram_poly_offset_front; // Offset: 256 Size: 8 [unused] +// float2 xe_edram_poly_offset_back; // Offset: 264 Size: 8 [unused] +// uint xe_edram_depth_base_dwords; // Offset: 272 Size: 4 [unused] // uint4 xe_edram_stencil[2]; // Offset: 288 Size: 32 [unused] // uint4 xe_edram_rt_base_dwords_scaled;// Offset: 320 Size: 16 [unused] // uint4 xe_edram_rt_format_flags; // Offset: 336 Size: 16 [unused] @@ -113,21 +112,21 @@ ret const BYTE discrete_triangle_hs[] = { - 68, 88, 66, 67, 107, 69, - 140, 4, 169, 103, 68, 92, - 220, 233, 45, 213, 95, 49, - 241, 42, 1, 0, 0, 0, - 136, 13, 0, 0, 6, 0, + 68, 88, 66, 67, 106, 99, + 99, 223, 105, 193, 70, 218, + 33, 84, 217, 184, 177, 180, + 199, 65, 1, 0, 0, 0, + 76, 13, 0, 0, 6, 0, 0, 0, 56, 0, 0, 0, - 228, 10, 0, 0, 24, 11, - 0, 0, 76, 11, 0, 0, - 224, 11, 0, 0, 236, 12, + 168, 10, 0, 0, 220, 10, + 0, 0, 16, 11, 0, 0, + 164, 11, 0, 0, 176, 12, 0, 0, 82, 68, 69, 70, - 164, 10, 0, 0, 1, 0, + 104, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 72, - 0, 5, 4, 0, 122, 10, + 0, 5, 4, 0, 62, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, @@ -144,389 +143,379 @@ const BYTE discrete_triangle_hs[] = 121, 115, 116, 101, 109, 95, 99, 98, 117, 102, 102, 101, 114, 0, 171, 171, 100, 0, - 0, 0, 33, 0, 0, 0, + 0, 0, 32, 0, 0, 0, 144, 0, 0, 0, 224, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 5, + 0, 0, 0, 0, 144, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 236, 5, 0, 0, + 0, 0, 196, 5, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 52, 6, 0, 0, 12, 0, + 12, 6, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 79, 6, + 0, 0, 0, 0, 39, 6, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 102, 6, 0, 0, + 0, 0, 62, 6, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 125, 6, 0, 0, 24, 0, + 85, 6, 0, 0, 24, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 156, 6, + 0, 0, 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 192, 6, + 0, 0, 0, 0, 152, 6, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 220, 6, 0, 0, + 0, 0, 180, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 0, 7, 0, 0, + 0, 0, 216, 6, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 20, 7, 0, 0, 0, 0, + 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 56, 7, 0, 0, 140, 0, + 16, 7, 0, 0, 140, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 7, + 0, 0, 0, 0, 76, 7, 0, 0, 144, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 0, 20, 7, 0, 0, + 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 130, 7, 0, 0, + 0, 0, 90, 7, 0, 0, 156, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 80, 7, 0, 0, 0, 0, + 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 146, 7, 0, 0, 160, 0, + 106, 7, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 168, 7, + 0, 0, 0, 0, 128, 7, 0, 0, 168, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 191, 7, 0, 0, + 0, 0, 151, 7, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 224, 7, 0, 0, 180, 0, + 184, 7, 0, 0, 180, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 240, 7, + 0, 0, 0, 0, 200, 7, 0, 0, 184, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 156, 6, 0, 0, + 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 5, 8, 0, 0, + 0, 0, 221, 7, 0, 0, 192, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 40, 8, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 76, 8, 0, 0, 224, 0, + 36, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 97, 8, + 0, 0, 0, 0, 57, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 80, 7, 0, 0, + 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 121, 8, 0, 0, + 0, 0, 81, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 138, 8, 0, 0, 236, 0, + 98, 8, 0, 0, 236, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 159, 8, + 0, 0, 0, 0, 119, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 180, 8, 0, 0, + 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 216, 8, 0, 0, + 0, 0, 176, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 237, 8, 0, 0, 8, 1, + 203, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 8, 9, + 0, 0, 0, 0, 229, 8, 0, 0, 16, 1, 0, 0, - 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 4, 0, 0, 0, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 34, 9, 0, 0, - 24, 1, 0, 0, 4, 0, + 0, 0, 0, 9, 0, 0, + 32, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 20, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 61, 9, 0, 0, 32, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 80, 9, + 56, 9, 0, 0, 64, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 116, 9, - 0, 0, 64, 1, 0, 0, + 0, 0, 0, 0, 124, 9, + 0, 0, 80, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 184, 9, 0, 0, - 80, 1, 0, 0, 16, 0, + 0, 0, 149, 9, 0, 0, + 96, 1, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 168, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 209, 9, 0, 0, 96, 1, - 0, 0, 64, 0, 0, 0, + 204, 9, 0, 0, 160, 1, + 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 228, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 8, 10, - 0, 0, 160, 1, 0, 0, - 32, 0, 0, 0, 0, 0, - 0, 0, 32, 10, 0, 0, + 0, 0, 192, 1, 0, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 68, 10, 0, 0, - 192, 1, 0, 0, 16, 0, + 0, 0, 38, 10, 0, 0, + 208, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 148, 9, 0, 0, 0, 0, + 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 98, 10, 0, 0, 208, 1, - 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 8, - 0, 0, 0, 0, 0, 0, - 255, 255, 255, 255, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 120, 101, - 95, 102, 108, 97, 103, 115, - 0, 100, 119, 111, 114, 100, - 0, 171, 0, 0, 19, 0, - 1, 0, 1, 0, 0, 0, + 120, 101, 95, 102, 108, 97, + 103, 115, 0, 100, 119, 111, + 114, 100, 0, 171, 0, 0, + 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 193, 5, - 0, 0, 120, 101, 95, 116, - 101, 115, 115, 101, 108, 108, - 97, 116, 105, 111, 110, 95, - 102, 97, 99, 116, 111, 114, - 95, 114, 97, 110, 103, 101, - 0, 102, 108, 111, 97, 116, - 50, 0, 1, 0, 3, 0, - 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 153, 5, 0, 0, 120, 101, + 95, 116, 101, 115, 115, 101, + 108, 108, 97, 116, 105, 111, + 110, 95, 102, 97, 99, 116, + 111, 114, 95, 114, 97, 110, + 103, 101, 0, 102, 108, 111, + 97, 116, 50, 0, 1, 0, + 3, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 6, - 0, 0, 120, 101, 95, 108, - 105, 110, 101, 95, 108, 111, - 111, 112, 95, 99, 108, 111, - 115, 105, 110, 103, 95, 105, - 110, 100, 101, 120, 0, 120, + 0, 0, 0, 0, 0, 0, + 225, 5, 0, 0, 120, 101, + 95, 108, 105, 110, 101, 95, + 108, 111, 111, 112, 95, 99, + 108, 111, 115, 105, 110, 103, + 95, 105, 110, 100, 101, 120, + 0, 120, 101, 95, 118, 101, + 114, 116, 101, 120, 95, 105, + 110, 100, 101, 120, 95, 101, + 110, 100, 105, 97, 110, 0, + 120, 101, 95, 118, 101, 114, + 116, 101, 120, 95, 105, 110, + 100, 101, 120, 95, 111, 102, + 102, 115, 101, 116, 0, 120, 101, 95, 118, 101, 114, 116, 101, 120, 95, 105, 110, 100, - 101, 120, 95, 101, 110, 100, - 105, 97, 110, 0, 120, 101, - 95, 118, 101, 114, 116, 101, - 120, 95, 105, 110, 100, 101, - 120, 95, 111, 102, 102, 115, - 101, 116, 0, 120, 101, 95, - 118, 101, 114, 116, 101, 120, - 95, 105, 110, 100, 101, 120, - 95, 109, 105, 110, 95, 109, - 97, 120, 0, 117, 105, 110, - 116, 50, 0, 171, 1, 0, - 19, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 149, 6, 0, 0, 120, 101, - 95, 117, 115, 101, 114, 95, - 99, 108, 105, 112, 95, 112, - 108, 97, 110, 101, 115, 0, - 102, 108, 111, 97, 116, 52, - 0, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 6, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 6, - 0, 0, 120, 101, 95, 110, - 100, 99, 95, 115, 99, 97, - 108, 101, 0, 102, 108, 111, - 97, 116, 51, 0, 1, 0, - 3, 0, 1, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 13, 7, 0, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 120, 0, 102, 108, 111, 97, - 116, 0, 171, 171, 0, 0, - 3, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 72, 7, 0, 0, 120, 101, - 95, 110, 100, 99, 95, 111, - 102, 102, 115, 101, 116, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 121, 0, 120, 101, - 95, 112, 111, 105, 110, 116, - 95, 115, 105, 122, 101, 95, - 109, 105, 110, 95, 109, 97, - 120, 0, 120, 101, 95, 112, - 111, 105, 110, 116, 95, 115, - 99, 114, 101, 101, 110, 95, - 116, 111, 95, 110, 100, 99, - 0, 120, 101, 95, 105, 110, - 116, 101, 114, 112, 111, 108, - 97, 116, 111, 114, 95, 115, - 97, 109, 112, 108, 105, 110, - 103, 95, 112, 97, 116, 116, - 101, 114, 110, 0, 120, 101, - 95, 112, 115, 95, 112, 97, - 114, 97, 109, 95, 103, 101, - 110, 0, 120, 101, 95, 115, - 97, 109, 112, 108, 101, 95, - 99, 111, 117, 110, 116, 95, - 108, 111, 103, 50, 0, 120, - 101, 95, 116, 101, 120, 116, - 117, 114, 101, 95, 115, 119, - 105, 122, 122, 108, 101, 100, - 95, 115, 105, 103, 110, 115, - 0, 117, 105, 110, 116, 52, - 0, 171, 171, 171, 1, 0, - 19, 0, 1, 0, 4, 0, + 101, 120, 95, 109, 105, 110, + 95, 109, 97, 120, 0, 117, + 105, 110, 116, 50, 0, 171, + 1, 0, 19, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, - 95, 116, 101, 120, 116, 117, - 114, 101, 115, 95, 114, 101, - 115, 111, 108, 118, 101, 100, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 101, - 115, 116, 95, 114, 101, 102, - 101, 114, 101, 110, 99, 101, - 0, 120, 101, 95, 97, 108, - 112, 104, 97, 95, 116, 111, - 95, 109, 97, 115, 107, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 105, 116, - 99, 104, 95, 116, 105, 108, - 101, 115, 0, 120, 101, 95, - 99, 111, 108, 111, 114, 95, - 101, 120, 112, 95, 98, 105, - 97, 115, 0, 171, 171, 171, + 0, 0, 109, 6, 0, 0, + 120, 101, 95, 117, 115, 101, + 114, 95, 99, 108, 105, 112, + 95, 112, 108, 97, 110, 101, + 115, 0, 102, 108, 111, 97, + 116, 52, 0, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 172, 6, 0, 0, 120, 101, + 95, 110, 100, 99, 95, 115, + 99, 97, 108, 101, 0, 102, + 108, 111, 97, 116, 51, 0, 1, 0, 3, 0, 1, 0, - 4, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 212, 6, 0, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 100, 101, 112, - 116, 104, 95, 114, 97, 110, - 103, 101, 0, 120, 101, 95, - 101, 100, 114, 97, 109, 95, - 112, 111, 108, 121, 95, 111, - 102, 102, 115, 101, 116, 95, - 102, 114, 111, 110, 116, 0, - 120, 101, 95, 101, 100, 114, - 97, 109, 95, 112, 111, 108, - 121, 95, 111, 102, 102, 115, - 101, 116, 95, 98, 97, 99, - 107, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 100, - 101, 112, 116, 104, 95, 98, - 97, 115, 101, 95, 100, 119, - 111, 114, 100, 115, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 115, 116, 101, 110, - 99, 105, 108, 0, 171, 171, + 0, 0, 229, 6, 0, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 120, 0, 102, 108, + 111, 97, 116, 0, 171, 171, + 0, 0, 3, 0, 1, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 32, 7, 0, 0, + 120, 101, 95, 110, 100, 99, + 95, 111, 102, 102, 115, 101, + 116, 0, 120, 101, 95, 112, + 111, 105, 110, 116, 95, 115, + 105, 122, 101, 95, 121, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 105, 122, + 101, 95, 109, 105, 110, 95, + 109, 97, 120, 0, 120, 101, + 95, 112, 111, 105, 110, 116, + 95, 115, 99, 114, 101, 101, + 110, 95, 116, 111, 95, 110, + 100, 99, 0, 120, 101, 95, + 105, 110, 116, 101, 114, 112, + 111, 108, 97, 116, 111, 114, + 95, 115, 97, 109, 112, 108, + 105, 110, 103, 95, 112, 97, + 116, 116, 101, 114, 110, 0, + 120, 101, 95, 112, 115, 95, + 112, 97, 114, 97, 109, 95, + 103, 101, 110, 0, 120, 101, + 95, 115, 97, 109, 112, 108, + 101, 95, 99, 111, 117, 110, + 116, 95, 108, 111, 103, 50, + 0, 120, 101, 95, 116, 101, + 120, 116, 117, 114, 101, 95, + 115, 119, 105, 122, 122, 108, + 101, 100, 95, 115, 105, 103, + 110, 115, 0, 117, 105, 110, + 116, 52, 0, 171, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, + 0, 0, 247, 7, 0, 0, + 120, 101, 95, 116, 101, 120, + 116, 117, 114, 101, 115, 95, + 114, 101, 115, 111, 108, 118, + 101, 100, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 101, 115, 116, 95, 114, + 101, 102, 101, 114, 101, 110, + 99, 101, 0, 120, 101, 95, + 97, 108, 112, 104, 97, 95, + 116, 111, 95, 109, 97, 115, + 107, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 105, 116, 99, 104, 95, 116, + 105, 108, 101, 115, 0, 120, + 101, 95, 99, 111, 108, 111, + 114, 95, 101, 120, 112, 95, + 98, 105, 97, 115, 0, 171, + 171, 171, 1, 0, 3, 0, + 1, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 6, + 0, 0, 120, 101, 95, 101, + 100, 114, 97, 109, 95, 112, + 111, 108, 121, 95, 111, 102, + 102, 115, 101, 116, 95, 102, + 114, 111, 110, 116, 0, 120, + 101, 95, 101, 100, 114, 97, + 109, 95, 112, 111, 108, 121, + 95, 111, 102, 102, 115, 101, + 116, 95, 98, 97, 99, 107, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 100, 101, + 112, 116, 104, 95, 98, 97, + 115, 101, 95, 100, 119, 111, + 114, 100, 115, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 115, 116, 101, 110, 99, + 105, 108, 0, 171, 171, 171, + 1, 0, 19, 0, 1, 0, + 4, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 97, 115, 101, 95, 100, @@ -537,7 +526,7 @@ const BYTE discrete_triangle_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 8, + 0, 0, 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 102, 111, 114, 109, @@ -551,7 +540,7 @@ const BYTE discrete_triangle_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 212, 6, 0, 0, 120, 101, + 172, 6, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 107, 101, 101, 112, 95, 109, 97, 115, @@ -561,7 +550,7 @@ const BYTE discrete_triangle_hs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, + 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 108, 101, 110, 100, 95, 102, 97, diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_round_ps.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_round_ps.h index 3d8532a7c..ca93f0d29 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_round_ps.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_round_ps.h @@ -25,8 +25,7 @@ // TEXCOORD 14 xyzw 14 NONE float // TEXCOORD 15 xyzw 15 NONE float // TEXCOORD 16 xyz 16 NONE float -// TEXCOORD 17 xy 17 NONE float -// SV_Position 0 xyzw 18 POS float z +// SV_Position 0 xyzw 17 POS float z // // // Output signature: @@ -39,10 +38,10 @@ // ps_5_1 dcl_globalFlags refactoringAllowed -dcl_input_ps_siv linear noperspective sample v18.z, position +dcl_input_ps_siv linear noperspective sample v17.z, position dcl_output oDepth dcl_temps 2 -mul_sat [precise(x)] r0.x, v18.z, l(2.000000) +mul_sat [precise(x)] r0.x, v17.z, l(2.000000) uge [precise(y)] r0.y, l(0x7fffffff), r0.x and [precise(x)] r0.x, r0.x, r0.y umin [precise(x)] r0.x, r0.x, l(0x3ffffff8) @@ -77,15 +76,15 @@ ret const BYTE float24_round_ps[] = { - 68, 88, 66, 67, 158, 26, - 2, 251, 222, 64, 214, 76, - 29, 112, 151, 205, 140, 229, - 136, 85, 1, 0, 0, 0, - 32, 7, 0, 0, 5, 0, + 68, 88, 66, 67, 23, 65, + 158, 4, 125, 87, 131, 240, + 183, 241, 233, 246, 170, 100, + 46, 3, 1, 0, 0, 0, + 8, 7, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 160, 0, 0, 0, 144, 2, - 0, 0, 196, 2, 0, 0, - 132, 6, 0, 0, 82, 68, + 160, 0, 0, 0, 120, 2, + 0, 0, 172, 2, 0, 0, + 108, 6, 0, 0, 82, 68, 69, 70, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -104,84 +103,80 @@ const BYTE float24_round_ps[] = 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 49, 48, 46, 49, 0, 73, 83, - 71, 78, 232, 1, 0, 0, - 19, 0, 0, 0, 8, 0, - 0, 0, 208, 1, 0, 0, + 71, 78, 208, 1, 0, 0, + 18, 0, 0, 0, 8, 0, + 0, 0, 184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 7, 0, - 0, 0, 208, 1, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 17, 0, 0, 0, 3, 0, - 0, 0, 217, 1, 0, 0, + 0, 0, 193, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 18, 0, 0, 0, 15, 4, + 17, 0, 0, 0, 15, 4, 0, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 83, 86, 95, 80, 111, 115, 105, @@ -199,14 +194,14 @@ const BYTE float24_round_ps[] = 0, 0, 81, 0, 0, 0, 238, 0, 0, 0, 106, 8, 0, 1, 100, 56, 0, 4, - 66, 16, 16, 0, 18, 0, + 66, 16, 16, 0, 17, 0, 0, 0, 1, 0, 0, 0, 101, 0, 0, 2, 1, 192, 0, 0, 104, 0, 0, 2, 2, 0, 0, 0, 56, 32, 8, 7, 18, 0, 16, 0, 0, 0, 0, 0, 42, 16, - 16, 0, 18, 0, 0, 0, + 16, 0, 17, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 64, 80, 0, 16, 7, 34, 0, 16, 0, 0, 0, diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_truncate_ps.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_truncate_ps.h index c7366a40e..1111cd47f 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_truncate_ps.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/float24_truncate_ps.h @@ -25,8 +25,7 @@ // TEXCOORD 14 xyzw 14 NONE float // TEXCOORD 15 xyzw 15 NONE float // TEXCOORD 16 xyz 16 NONE float -// TEXCOORD 17 xy 17 NONE float -// SV_Position 0 xyzw 18 POS float z +// SV_Position 0 xyzw 17 POS float z // // // Output signature: @@ -39,10 +38,10 @@ // ps_5_1 dcl_globalFlags refactoringAllowed -dcl_input_ps_siv linear noperspective sample v18.z, position +dcl_input_ps_siv linear noperspective sample v17.z, position dcl_output oDepthLE dcl_temps 1 -mul_sat [precise(x)] r0.x, v18.z, l(2.000000) +mul_sat [precise(x)] r0.x, v17.z, l(2.000000) uge [precise(y)] r0.y, r0.x, l(0x2e800000) if_nz r0.y ubfe [precise(y)] r0.y, l(8), l(23), r0.x @@ -59,15 +58,15 @@ ret const BYTE float24_truncate_ps[] = { - 68, 88, 66, 67, 201, 169, - 38, 197, 229, 54, 101, 133, - 21, 246, 48, 234, 166, 77, - 170, 172, 1, 0, 0, 0, - 164, 4, 0, 0, 5, 0, + 68, 88, 66, 67, 73, 81, + 190, 30, 130, 230, 10, 4, + 35, 6, 194, 2, 204, 207, + 200, 64, 1, 0, 0, 0, + 140, 4, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 160, 0, 0, 0, 144, 2, - 0, 0, 204, 2, 0, 0, - 8, 4, 0, 0, 82, 68, + 160, 0, 0, 0, 120, 2, + 0, 0, 180, 2, 0, 0, + 240, 3, 0, 0, 82, 68, 69, 70, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -86,84 +85,80 @@ const BYTE float24_truncate_ps[] = 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 49, 48, 46, 49, 0, 73, 83, - 71, 78, 232, 1, 0, 0, - 19, 0, 0, 0, 8, 0, - 0, 0, 208, 1, 0, 0, + 71, 78, 208, 1, 0, 0, + 18, 0, 0, 0, 8, 0, + 0, 0, 184, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 15, 0, - 0, 0, 208, 1, 0, 0, + 0, 0, 184, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 7, 0, - 0, 0, 208, 1, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 17, 0, 0, 0, 3, 0, - 0, 0, 217, 1, 0, 0, + 0, 0, 193, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 18, 0, 0, 0, 15, 4, + 17, 0, 0, 0, 15, 4, 0, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 83, 86, 95, 80, 111, 115, 105, @@ -183,13 +178,13 @@ const BYTE float24_truncate_ps[] = 0, 0, 77, 0, 0, 0, 106, 8, 0, 1, 100, 56, 0, 4, 66, 16, 16, 0, - 18, 0, 0, 0, 1, 0, + 17, 0, 0, 0, 1, 0, 0, 0, 101, 0, 0, 2, 1, 112, 2, 0, 104, 0, 0, 2, 1, 0, 0, 0, 56, 32, 8, 7, 18, 0, 16, 0, 0, 0, 0, 0, - 42, 16, 16, 0, 18, 0, + 42, 16, 16, 0, 17, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 64, 80, 0, 16, 7, 34, 0, 16, 0, diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_point_list_gs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_point_list_gs.h index 938c9d044..c71626f88 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_point_list_gs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_point_list_gs.h @@ -30,10 +30,9 @@ // uint xe_alpha_to_mask; // Offset: 232 Size: 4 [unused] // uint xe_edram_pitch_tiles; // Offset: 236 Size: 4 [unused] // float4 xe_color_exp_bias; // Offset: 240 Size: 16 [unused] -// float2 xe_edram_depth_range; // Offset: 256 Size: 8 [unused] -// float2 xe_edram_poly_offset_front; // Offset: 264 Size: 8 [unused] -// float2 xe_edram_poly_offset_back; // Offset: 272 Size: 8 [unused] -// uint xe_edram_depth_base_dwords; // Offset: 280 Size: 4 [unused] +// float2 xe_edram_poly_offset_front; // Offset: 256 Size: 8 [unused] +// float2 xe_edram_poly_offset_back; // Offset: 264 Size: 8 [unused] +// uint xe_edram_depth_base_dwords; // Offset: 272 Size: 4 [unused] // uint4 xe_edram_stencil[2]; // Offset: 288 Size: 32 [unused] // uint4 xe_edram_rt_base_dwords_scaled;// Offset: 320 Size: 16 [unused] // uint4 xe_edram_rt_format_flags; // Offset: 336 Size: 16 [unused] @@ -74,11 +73,10 @@ // TEXCOORD 14 xyzw 14 NONE float xyzw // TEXCOORD 15 xyzw 15 NONE float xyzw // TEXCOORD 16 xyz 16 NONE float z -// TEXCOORD 17 xy 17 NONE float xy -// SV_Position 0 xyzw 18 POS float xyzw -// SV_ClipDistance 0 xyzw 19 CLIPDST float xyzw -// SV_ClipDistance 1 xy 20 CLIPDST float xy -// SV_CullDistance 0 z 20 CULLDST float z +// SV_Position 0 xyzw 17 POS float xyzw +// SV_ClipDistance 0 xyzw 18 CLIPDST float xyzw +// SV_ClipDistance 1 xy 19 CLIPDST float xy +// SV_CullDistance 0 z 19 CULLDST float z // // // Output signature: @@ -102,10 +100,9 @@ // TEXCOORD 14 xyzw 14 NONE float xyzw // TEXCOORD 15 xyzw 15 NONE float xyzw // TEXCOORD 16 xyz 16 NONE float xyz -// TEXCOORD 17 xy 17 NONE float xy -// SV_Position 0 xyzw 18 POS float xyzw -// SV_ClipDistance 0 xyzw 19 CLIPDST float xyzw -// SV_ClipDistance 1 xy 20 CLIPDST float xy +// SV_Position 0 xyzw 17 POS float xyzw +// SV_ClipDistance 0 xyzw 18 CLIPDST float xyzw +// SV_ClipDistance 1 xy 19 CLIPDST float xy // gs_5_1 dcl_globalFlags refactoringAllowed @@ -127,11 +124,10 @@ dcl_input v[1][13].xyzw dcl_input v[1][14].xyzw dcl_input v[1][15].xyzw dcl_input v[1][16].xyz -dcl_input v[1][17].xy -dcl_input_siv v[1][18].xyzw, position -dcl_input v[1][19].xyzw -dcl_input v[1][20].xy -dcl_input v[1][20].z +dcl_input_siv v[1][17].xyzw, position +dcl_input v[1][18].xyzw +dcl_input v[1][19].xy +dcl_input v[1][19].z dcl_temps 3 dcl_inputprimitive point dcl_stream m0 @@ -153,13 +149,12 @@ dcl_output o13.xyzw dcl_output o14.xyzw dcl_output o15.xyzw dcl_output o16.xyz -dcl_output o17.xy -dcl_output_siv o18.xyzw, position -dcl_output_siv o19.xyzw, clip_distance -dcl_output_siv o20.xy, clip_distance +dcl_output_siv o17.xyzw, position +dcl_output_siv o18.xyzw, clip_distance +dcl_output_siv o19.xy, clip_distance dcl_maxout 4 -lt [precise(x)] r0.x, v[0][20].z, l(0.000000) -ne [precise] r1.xyzw, v[0][18].xyzw, v[0][18].xyzw +lt [precise(x)] r0.x, v[0][19].z, l(0.000000) +ne [precise] r1.xyzw, v[0][17].xyzw, v[0][17].xyzw or [precise(yz)] r0.yz, r1.zzwz, r1.xxyx or [precise(y)] r0.y, r0.z, r0.y or [precise(x)] r0.x, r0.y, r0.x @@ -172,10 +167,10 @@ movc [precise(y)] r1.y, r0.x, v[0][16].z, CB0[0][9].w max [precise(xy)] r0.xy, r1.xyxx, CB0[0][10].xxxx min [precise(xy)] r0.xy, r0.xyxx, CB0[0][10].yyyy mul [precise(xy)] r0.xy, r0.xyxx, CB0[0][10].zwzz -mul [precise(xy)] r0.xy, r0.xyxx, v[0][18].wwww +mul [precise(xy)] r0.xy, r0.xyxx, v[0][17].wwww mov [precise(xyz)] r1.xyz, -r0.xxyx mov [precise(w)] r1.w, r0.y -add [precise] r2.xyzw, r1.xwyz, v[0][18].xyxy +add [precise] r2.xyzw, r1.xwyz, v[0][17].xyxy mov o0.xyzw, v[0][0].xyzw mov o1.xyzw, v[0][1].xyzw mov o2.xyzw, v[0][2].xyzw @@ -194,11 +189,10 @@ mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xy, l(0,0,0,0) mov o16.z, v[0][16].z -mov o17.xy, v[0][17].xyxx -mov o18.xy, r2.xyxx -mov o18.zw, v[0][18].zzzw -mov o19.xyzw, v[0][19].xyzw -mov o20.xy, v[0][20].xyxx +mov o17.xy, r2.xyxx +mov o17.zw, v[0][17].zzzw +mov o18.xyzw, v[0][18].xyzw +mov o19.xy, v[0][19].xyxx emit_stream m0 mov o0.xyzw, v[0][0].xyzw mov o1.xyzw, v[0][1].xyzw @@ -218,13 +212,12 @@ mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xy, l(0,1.000000,0,0) mov o16.z, v[0][16].z -mov o17.xy, v[0][17].xyxx -mov o18.xy, r2.zwzz -mov o18.zw, v[0][18].zzzw -mov o19.xyzw, v[0][19].xyzw -mov o20.xy, v[0][20].xyxx +mov o17.xy, r2.zwzz +mov o17.zw, v[0][17].zzzw +mov o18.xyzw, v[0][18].xyzw +mov o19.xy, v[0][19].xyxx emit_stream m0 -add [precise(yw)] r0.yw, r0.xxxy, v[0][18].xxxy +add [precise(yw)] r0.yw, r0.xxxy, v[0][17].xxxy mov o0.xyzw, v[0][0].xyzw mov o1.xyzw, v[0][1].xyzw mov o2.xyzw, v[0][2].xyzw @@ -243,14 +236,13 @@ mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xy, l(1.000000,0,0,0) mov o16.z, v[0][16].z -mov o17.xy, v[0][17].xyxx -mov o18.xy, r0.ywyy -mov o18.zw, v[0][18].zzzw -mov o19.xyzw, v[0][19].xyzw -mov o20.xy, v[0][20].xyxx +mov o17.xy, r0.ywyy +mov o17.zw, v[0][17].zzzw +mov o18.xyzw, v[0][18].xyzw +mov o19.xy, v[0][19].xyxx emit_stream m0 mov [precise(z)] r0.z, r1.z -add [precise(xy)] r0.xy, r0.xzxx, v[0][18].xyxx +add [precise(xy)] r0.xy, r0.xzxx, v[0][17].xyxx mov o0.xyzw, v[0][0].xyzw mov o1.xyzw, v[0][1].xyzw mov o2.xyzw, v[0][2].xyzw @@ -269,34 +261,33 @@ mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xy, l(1.000000,1.000000,0,0) mov o16.z, v[0][16].z -mov o17.xy, v[0][17].xyxx -mov o18.xy, r0.xyxx -mov o18.zw, v[0][18].zzzw -mov o19.xyzw, v[0][19].xyzw -mov o20.xy, v[0][20].xyxx +mov o17.xy, r0.xyxx +mov o17.zw, v[0][17].zzzw +mov o18.xyzw, v[0][18].xyzw +mov o19.xy, v[0][19].xyxx emit_stream m0 cut_stream m0 ret -// Approximately 119 instruction slots used +// Approximately 115 instruction slots used #endif const BYTE primitive_point_list_gs[] = { - 68, 88, 66, 67, 68, 59, - 71, 28, 83, 68, 5, 25, - 96, 100, 87, 189, 56, 85, - 85, 141, 1, 0, 0, 0, - 96, 30, 0, 0, 5, 0, + 68, 88, 66, 67, 115, 124, + 241, 219, 23, 99, 136, 233, + 199, 163, 73, 55, 23, 40, + 165, 211, 1, 0, 0, 0, + 116, 29, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 224, 10, 0, 0, 56, 13, - 0, 0, 188, 15, 0, 0, - 196, 29, 0, 0, 82, 68, - 69, 70, 164, 10, 0, 0, + 164, 10, 0, 0, 228, 12, + 0, 0, 76, 15, 0, 0, + 216, 28, 0, 0, 82, 68, + 69, 70, 104, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 83, 71, 0, 5, 4, 0, - 122, 10, 0, 0, 19, 19, + 62, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, @@ -312,389 +303,379 @@ const BYTE primitive_point_list_gs[] = 95, 115, 121, 115, 116, 101, 109, 95, 99, 98, 117, 102, 102, 101, 114, 0, 171, 171, - 100, 0, 0, 0, 33, 0, + 100, 0, 0, 0, 32, 0, 0, 0, 144, 0, 0, 0, 224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 184, 5, 0, 0, 0, 0, + 144, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 236, 5, + 0, 0, 0, 0, 196, 5, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 52, 6, 0, 0, + 0, 0, 12, 6, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 79, 6, 0, 0, 16, 0, + 39, 6, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 102, 6, + 0, 0, 0, 0, 62, 6, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 125, 6, 0, 0, + 0, 0, 85, 6, 0, 0, 24, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 156, 6, 0, 0, 0, 0, + 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 192, 6, 0, 0, 32, 0, + 152, 6, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 0, 220, 6, + 0, 0, 0, 0, 180, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 216, 6, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 0, 20, 7, 0, 0, + 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 56, 7, 0, 0, + 0, 0, 16, 7, 0, 0, 140, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, - 80, 7, 0, 0, 0, 0, + 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 116, 7, 0, 0, 144, 0, + 76, 7, 0, 0, 144, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 20, 7, + 0, 0, 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 130, 7, + 0, 0, 0, 0, 90, 7, 0, 0, 156, 0, 0, 0, 4, 0, 0, 0, 2, 0, - 0, 0, 80, 7, 0, 0, + 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 146, 7, 0, 0, + 0, 0, 106, 7, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 168, 7, 0, 0, 168, 0, + 128, 7, 0, 0, 168, 0, 0, 0, 8, 0, 0, 0, - 2, 0, 0, 0, 16, 6, + 2, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 191, 7, + 0, 0, 0, 0, 151, 7, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 224, 7, 0, 0, + 0, 0, 184, 7, 0, 0, 180, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 240, 7, 0, 0, 184, 0, + 200, 7, 0, 0, 184, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 156, 6, + 0, 0, 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 5, 8, + 0, 0, 0, 0, 221, 7, 0, 0, 192, 0, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 40, 8, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 76, 8, 0, 0, + 0, 0, 36, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 97, 8, 0, 0, 228, 0, + 57, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 121, 8, + 0, 0, 0, 0, 81, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 138, 8, 0, 0, + 0, 0, 98, 8, 0, 0, 236, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 159, 8, 0, 0, 240, 0, + 119, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 8, + 0, 0, 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 176, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 237, 8, 0, 0, + 0, 0, 203, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 8, 9, 0, 0, 16, 1, - 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 229, 8, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 34, 9, - 0, 0, 24, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 0, 0, 0, 9, + 0, 0, 32, 1, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 20, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 61, 9, 0, 0, - 32, 1, 0, 0, 32, 0, + 0, 0, 56, 9, 0, 0, + 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 80, 9, 0, 0, 0, 0, + 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 116, 9, 0, 0, 64, 1, + 124, 9, 0, 0, 80, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 148, 9, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 184, 9, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 0, 0, 149, 9, + 0, 0, 96, 1, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 168, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 209, 9, 0, 0, - 96, 1, 0, 0, 64, 0, + 0, 0, 204, 9, 0, 0, + 160, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 228, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 8, 10, 0, 0, 160, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 32, 10, + 8, 10, 0, 0, 192, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 68, 10, - 0, 0, 192, 1, 0, 0, + 0, 0, 0, 0, 38, 10, + 0, 0, 208, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 98, 10, 0, 0, - 208, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 180, 8, 0, 0, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 120, 101, 95, 102, 108, 97, - 103, 115, 0, 100, 119, 111, - 114, 100, 0, 171, 0, 0, - 19, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 193, 5, 0, 0, 120, 101, - 95, 116, 101, 115, 115, 101, - 108, 108, 97, 116, 105, 111, - 110, 95, 102, 97, 99, 116, - 111, 114, 95, 114, 97, 110, - 103, 101, 0, 102, 108, 111, - 97, 116, 50, 0, 1, 0, - 3, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 9, 6, 0, 0, 120, 101, - 95, 108, 105, 110, 101, 95, - 108, 111, 111, 112, 95, 99, - 108, 111, 115, 105, 110, 103, - 95, 105, 110, 100, 101, 120, - 0, 120, 101, 95, 118, 101, - 114, 116, 101, 120, 95, 105, - 110, 100, 101, 120, 95, 101, - 110, 100, 105, 97, 110, 0, - 120, 101, 95, 118, 101, 114, - 116, 101, 120, 95, 105, 110, - 100, 101, 120, 95, 111, 102, - 102, 115, 101, 116, 0, 120, - 101, 95, 118, 101, 114, 116, - 101, 120, 95, 105, 110, 100, - 101, 120, 95, 109, 105, 110, - 95, 109, 97, 120, 0, 117, - 105, 110, 116, 50, 0, 171, - 1, 0, 19, 0, 1, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 149, 6, 0, 0, - 120, 101, 95, 117, 115, 101, - 114, 95, 99, 108, 105, 112, - 95, 112, 108, 97, 110, 101, - 115, 0, 102, 108, 111, 97, - 116, 52, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 212, 6, 0, 0, 120, 101, - 95, 110, 100, 99, 95, 115, - 99, 97, 108, 101, 0, 102, - 108, 111, 97, 116, 51, 0, - 1, 0, 3, 0, 1, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 13, 7, 0, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 120, 0, 102, 108, - 111, 97, 116, 0, 171, 171, - 0, 0, 3, 0, 1, 0, + 0, 0, 120, 101, 95, 102, + 108, 97, 103, 115, 0, 100, + 119, 111, 114, 100, 0, 171, + 0, 0, 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 7, 0, 0, + 0, 0, 153, 5, 0, 0, + 120, 101, 95, 116, 101, 115, + 115, 101, 108, 108, 97, 116, + 105, 111, 110, 95, 102, 97, + 99, 116, 111, 114, 95, 114, + 97, 110, 103, 101, 0, 102, + 108, 111, 97, 116, 50, 0, + 1, 0, 3, 0, 1, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 225, 5, 0, 0, + 120, 101, 95, 108, 105, 110, + 101, 95, 108, 111, 111, 112, + 95, 99, 108, 111, 115, 105, + 110, 103, 95, 105, 110, 100, + 101, 120, 0, 120, 101, 95, + 118, 101, 114, 116, 101, 120, + 95, 105, 110, 100, 101, 120, + 95, 101, 110, 100, 105, 97, + 110, 0, 120, 101, 95, 118, + 101, 114, 116, 101, 120, 95, + 105, 110, 100, 101, 120, 95, + 111, 102, 102, 115, 101, 116, + 0, 120, 101, 95, 118, 101, + 114, 116, 101, 120, 95, 105, + 110, 100, 101, 120, 95, 109, + 105, 110, 95, 109, 97, 120, + 0, 117, 105, 110, 116, 50, + 0, 171, 1, 0, 19, 0, + 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 6, + 0, 0, 120, 101, 95, 117, + 115, 101, 114, 95, 99, 108, + 105, 112, 95, 112, 108, 97, + 110, 101, 115, 0, 102, 108, + 111, 97, 116, 52, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 172, 6, 0, 0, 120, 101, 95, 110, 100, 99, - 95, 111, 102, 102, 115, 101, - 116, 0, 120, 101, 95, 112, + 95, 115, 99, 97, 108, 101, + 0, 102, 108, 111, 97, 116, + 51, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 6, + 0, 0, 120, 101, 95, 112, 111, 105, 110, 116, 95, 115, - 105, 122, 101, 95, 121, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 109, 105, 110, 95, - 109, 97, 120, 0, 120, 101, + 105, 122, 101, 95, 120, 0, + 102, 108, 111, 97, 116, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 7, + 0, 0, 120, 101, 95, 110, + 100, 99, 95, 111, 102, 102, + 115, 101, 116, 0, 120, 101, 95, 112, 111, 105, 110, 116, - 95, 115, 99, 114, 101, 101, - 110, 95, 116, 111, 95, 110, - 100, 99, 0, 120, 101, 95, - 105, 110, 116, 101, 114, 112, - 111, 108, 97, 116, 111, 114, - 95, 115, 97, 109, 112, 108, - 105, 110, 103, 95, 112, 97, - 116, 116, 101, 114, 110, 0, - 120, 101, 95, 112, 115, 95, - 112, 97, 114, 97, 109, 95, - 103, 101, 110, 0, 120, 101, - 95, 115, 97, 109, 112, 108, - 101, 95, 99, 111, 117, 110, - 116, 95, 108, 111, 103, 50, - 0, 120, 101, 95, 116, 101, - 120, 116, 117, 114, 101, 95, - 115, 119, 105, 122, 122, 108, - 101, 100, 95, 115, 105, 103, - 110, 115, 0, 117, 105, 110, - 116, 52, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, - 120, 101, 95, 116, 101, 120, - 116, 117, 114, 101, 115, 95, - 114, 101, 115, 111, 108, 118, - 101, 100, 0, 120, 101, 95, - 97, 108, 112, 104, 97, 95, - 116, 101, 115, 116, 95, 114, - 101, 102, 101, 114, 101, 110, - 99, 101, 0, 120, 101, 95, - 97, 108, 112, 104, 97, 95, - 116, 111, 95, 109, 97, 115, - 107, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 105, 116, 99, 104, 95, 116, - 105, 108, 101, 115, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 6, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 100, - 101, 112, 116, 104, 95, 114, - 97, 110, 103, 101, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 112, 111, 108, 121, - 95, 111, 102, 102, 115, 101, - 116, 95, 102, 114, 111, 110, - 116, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 111, 108, 121, 95, 111, 102, - 102, 115, 101, 116, 95, 98, - 97, 99, 107, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 100, 101, 112, 116, 104, - 95, 98, 97, 115, 101, 95, - 100, 119, 111, 114, 100, 115, - 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 115, 116, - 101, 110, 99, 105, 108, 0, + 95, 115, 105, 122, 101, 95, + 121, 0, 120, 101, 95, 112, + 111, 105, 110, 116, 95, 115, + 105, 122, 101, 95, 109, 105, + 110, 95, 109, 97, 120, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 99, 114, + 101, 101, 110, 95, 116, 111, + 95, 110, 100, 99, 0, 120, + 101, 95, 105, 110, 116, 101, + 114, 112, 111, 108, 97, 116, + 111, 114, 95, 115, 97, 109, + 112, 108, 105, 110, 103, 95, + 112, 97, 116, 116, 101, 114, + 110, 0, 120, 101, 95, 112, + 115, 95, 112, 97, 114, 97, + 109, 95, 103, 101, 110, 0, + 120, 101, 95, 115, 97, 109, + 112, 108, 101, 95, 99, 111, + 117, 110, 116, 95, 108, 111, + 103, 50, 0, 120, 101, 95, + 116, 101, 120, 116, 117, 114, + 101, 95, 115, 119, 105, 122, + 122, 108, 101, 100, 95, 115, + 105, 103, 110, 115, 0, 117, + 105, 110, 116, 52, 0, 171, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 8, + 0, 0, 0, 0, 247, 7, + 0, 0, 120, 101, 95, 116, + 101, 120, 116, 117, 114, 101, + 115, 95, 114, 101, 115, 111, + 108, 118, 101, 100, 0, 120, + 101, 95, 97, 108, 112, 104, + 97, 95, 116, 101, 115, 116, + 95, 114, 101, 102, 101, 114, + 101, 110, 99, 101, 0, 120, + 101, 95, 97, 108, 112, 104, + 97, 95, 116, 111, 95, 109, + 97, 115, 107, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 105, 116, 99, 104, + 95, 116, 105, 108, 101, 115, + 0, 120, 101, 95, 99, 111, + 108, 111, 114, 95, 101, 120, + 112, 95, 98, 105, 97, 115, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 172, 6, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 111, 108, 121, 95, + 111, 102, 102, 115, 101, 116, + 95, 102, 114, 111, 110, 116, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 112, 111, + 108, 121, 95, 111, 102, 102, + 115, 101, 116, 95, 98, 97, + 99, 107, 0, 120, 101, 95, + 101, 100, 114, 97, 109, 95, + 100, 101, 112, 116, 104, 95, + 98, 97, 115, 101, 95, 100, + 119, 111, 114, 100, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 115, 116, 101, + 110, 99, 105, 108, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 97, 115, 101, @@ -706,7 +687,7 @@ const BYTE primitive_point_list_gs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, + 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 102, 111, 114, 109, 97, 116, 95, 102, @@ -719,7 +700,7 @@ const BYTE primitive_point_list_gs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 212, 6, 0, 0, + 0, 0, 172, 6, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 107, 101, 101, 112, 95, 109, @@ -729,7 +710,7 @@ const BYTE primitive_point_list_gs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, + 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 108, 101, 110, 100, 95, @@ -746,96 +727,92 @@ const BYTE primitive_point_list_gs[] = 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 49, 48, 46, 49, 0, 171, 171, - 73, 83, 71, 78, 80, 2, - 0, 0, 22, 0, 0, 0, - 8, 0, 0, 0, 24, 2, + 73, 83, 71, 78, 56, 2, + 0, 0, 21, 0, 0, 0, + 8, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, - 15, 15, 0, 0, 24, 2, + 15, 15, 0, 0, 0, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, - 7, 4, 0, 0, 24, 2, - 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 17, 0, 0, 0, - 3, 3, 0, 0, 33, 2, + 7, 4, 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, - 0, 0, 18, 0, 0, 0, - 15, 15, 0, 0, 45, 2, + 0, 0, 17, 0, 0, 0, + 15, 15, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, - 0, 0, 19, 0, 0, 0, - 15, 15, 0, 0, 45, 2, + 0, 0, 18, 0, 0, 0, + 15, 15, 0, 0, 21, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, - 0, 0, 20, 0, 0, 0, - 3, 3, 0, 0, 61, 2, + 0, 0, 19, 0, 0, 0, + 3, 3, 0, 0, 37, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, - 0, 0, 20, 0, 0, 0, + 0, 0, 19, 0, 0, 0, 4, 4, 0, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 83, 86, 95, 80, 111, @@ -846,411 +823,307 @@ const BYTE primitive_point_list_gs[] = 86, 95, 67, 117, 108, 108, 68, 105, 115, 116, 97, 110, 99, 101, 0, 171, 171, 171, - 79, 83, 71, 53, 124, 2, - 0, 0, 21, 0, 0, 0, + 79, 83, 71, 53, 96, 2, + 0, 0, 20, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 1, 0, + 56, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 4, 0, + 56, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 7, 0, + 56, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 10, 0, + 56, 2, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 13, 0, + 56, 2, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 16, 0, + 56, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 7, 8, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 65, 2, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 17, 0, 0, 0, - 3, 12, 0, 0, 0, 0, - 0, 0, 93, 2, 0, 0, - 0, 0, 0, 0, 1, 0, + 15, 0, 0, 0, 0, 0, + 0, 0, 77, 2, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 105, 2, 0, 0, 0, 0, + 77, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 19, 0, - 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 105, 2, + 0, 0, 3, 12, 0, 0, + 84, 69, 88, 67, 79, 79, + 82, 68, 0, 83, 86, 95, + 80, 111, 115, 105, 116, 105, + 111, 110, 0, 83, 86, 95, + 67, 108, 105, 112, 68, 105, + 115, 116, 97, 110, 99, 101, + 0, 171, 171, 171, 83, 72, + 69, 88, 132, 13, 0, 0, + 81, 0, 2, 0, 97, 3, + 0, 0, 106, 8, 0, 1, + 89, 0, 0, 7, 70, 142, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 95, 0, + 0, 4, 242, 16, 32, 0, + 1, 0, 0, 0, 0, 0, + 0, 0, 95, 0, 0, 4, + 242, 16, 32, 0, 1, 0, 0, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 20, 0, 0, 0, - 3, 12, 0, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 83, 86, 95, 80, 111, - 115, 105, 116, 105, 111, 110, - 0, 83, 86, 95, 67, 108, - 105, 112, 68, 105, 115, 116, - 97, 110, 99, 101, 0, 171, - 171, 171, 83, 72, 69, 88, - 0, 14, 0, 0, 81, 0, - 2, 0, 128, 3, 0, 0, - 106, 8, 0, 1, 89, 0, - 0, 7, 70, 142, 48, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 0, 0, - 0, 0, 95, 0, 0, 4, - 242, 16, 32, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, 0, 0, - 1, 0, 0, 0, 95, 0, + 2, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 1, 0, 0, 0, 2, 0, + 1, 0, 0, 0, 3, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 95, 0, + 5, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 1, 0, 0, 0, 5, 0, + 1, 0, 0, 0, 6, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, - 0, 0, 6, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, 0, 0, - 7, 0, 0, 0, 95, 0, + 8, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 1, 0, 0, 0, 8, 0, + 1, 0, 0, 0, 9, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, 0, 0, - 10, 0, 0, 0, 95, 0, + 11, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 1, 0, 0, 0, 11, 0, + 1, 0, 0, 0, 12, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, - 0, 0, 12, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, 0, 0, - 13, 0, 0, 0, 95, 0, + 14, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 1, 0, 0, 0, 14, 0, + 1, 0, 0, 0, 15, 0, 0, 0, 95, 0, 0, 4, - 242, 16, 32, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 95, 0, 0, 4, 114, 16, + 114, 16, 32, 0, 1, 0, + 0, 0, 16, 0, 0, 0, + 97, 0, 0, 5, 242, 16, 32, 0, 1, 0, 0, 0, - 16, 0, 0, 0, 95, 0, - 0, 4, 50, 16, 32, 0, - 1, 0, 0, 0, 17, 0, - 0, 0, 97, 0, 0, 5, + 17, 0, 0, 0, 1, 0, + 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 1, 0, 0, 0, 18, 0, 0, 0, - 1, 0, 0, 0, 95, 0, - 0, 4, 242, 16, 32, 0, + 95, 0, 0, 4, 50, 16, + 32, 0, 1, 0, 0, 0, + 19, 0, 0, 0, 95, 0, + 0, 4, 66, 16, 32, 0, 1, 0, 0, 0, 19, 0, - 0, 0, 95, 0, 0, 4, - 50, 16, 32, 0, 1, 0, - 0, 0, 20, 0, 0, 0, - 95, 0, 0, 4, 66, 16, - 32, 0, 1, 0, 0, 0, - 20, 0, 0, 0, 104, 0, - 0, 2, 3, 0, 0, 0, - 93, 8, 0, 1, 143, 0, - 0, 3, 0, 0, 17, 0, - 0, 0, 0, 0, 92, 40, - 0, 1, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 3, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 4, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 5, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 6, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 7, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 8, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 9, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 10, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 11, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 12, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 13, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 14, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 15, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 16, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 17, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 18, 0, - 0, 0, 1, 0, 0, 0, + 0, 0, 104, 0, 0, 2, + 3, 0, 0, 0, 93, 8, + 0, 1, 143, 0, 0, 3, + 0, 0, 17, 0, 0, 0, + 0, 0, 92, 40, 0, 1, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 2, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 3, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 4, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 5, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 6, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 7, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 8, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 9, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 10, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 11, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 12, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 13, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 14, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 15, 0, 0, 0, + 101, 0, 0, 3, 114, 32, + 16, 0, 16, 0, 0, 0, 103, 0, 0, 4, 242, 32, - 16, 0, 19, 0, 0, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 50, 32, 16, 0, - 20, 0, 0, 0, 2, 0, - 0, 0, 94, 0, 0, 2, - 4, 0, 0, 0, 49, 0, - 8, 8, 18, 0, 16, 0, - 0, 0, 0, 0, 42, 16, - 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 1, 64, - 0, 0, 0, 0, 0, 0, - 57, 0, 120, 9, 242, 0, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 60, 0, 48, 7, 98, 0, - 16, 0, 0, 0, 0, 0, - 166, 11, 16, 0, 1, 0, - 0, 0, 6, 1, 16, 0, - 1, 0, 0, 0, 60, 0, - 16, 7, 34, 0, 16, 0, - 0, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 60, 0, 8, 7, - 18, 0, 16, 0, 0, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 31, 0, 4, 3, 10, 0, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 21, 0, - 0, 1, 49, 0, 8, 8, + 16, 0, 17, 0, 0, 0, + 1, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 18, 0, 0, 0, 2, 0, + 0, 0, 103, 0, 0, 4, + 50, 32, 16, 0, 19, 0, + 0, 0, 2, 0, 0, 0, + 94, 0, 0, 2, 4, 0, + 0, 0, 49, 0, 8, 8, 18, 0, 16, 0, 0, 0, + 0, 0, 42, 16, 32, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 42, 16, - 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 55, 0, - 8, 12, 18, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 16, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 58, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 55, 0, - 16, 12, 34, 0, 16, 0, - 1, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 42, 16, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 58, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 52, 0, - 24, 9, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 1, 0, 0, 0, - 6, 128, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 51, 0, - 24, 9, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 86, 133, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 56, 0, - 24, 9, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 230, 138, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 56, 0, - 24, 8, 50, 0, 16, 0, - 0, 0, 0, 0, 70, 0, - 16, 0, 0, 0, 0, 0, - 246, 31, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 56, 6, 114, 0, - 16, 0, 1, 0, 0, 0, - 6, 1, 16, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 64, 5, 130, 0, - 16, 0, 1, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 120, 8, - 242, 0, 16, 0, 2, 0, - 0, 0, 198, 9, 16, 0, - 1, 0, 0, 0, 70, 20, - 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 57, 0, + 120, 9, 242, 0, 16, 0, 1, 0, 0, 0, 70, 30, 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 2, 0, 0, 0, 70, 30, + 17, 0, 0, 0, 70, 30, 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 3, 0, 0, 0, 70, 30, + 17, 0, 0, 0, 60, 0, + 48, 7, 98, 0, 16, 0, + 0, 0, 0, 0, 166, 11, + 16, 0, 1, 0, 0, 0, + 6, 1, 16, 0, 1, 0, + 0, 0, 60, 0, 16, 7, + 34, 0, 16, 0, 0, 0, + 0, 0, 42, 0, 16, 0, + 0, 0, 0, 0, 26, 0, + 16, 0, 0, 0, 0, 0, + 60, 0, 8, 7, 18, 0, + 16, 0, 0, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 31, 0, + 4, 3, 10, 0, 16, 0, + 0, 0, 0, 0, 62, 0, + 0, 1, 21, 0, 0, 1, + 49, 0, 8, 8, 18, 0, + 16, 0, 0, 0, 0, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 42, 16, 32, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 55, 0, 8, 12, + 18, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 42, 16, 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 4, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 58, 128, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 0, + 0, 0, 55, 0, 16, 12, + 34, 0, 16, 0, 1, 0, + 0, 0, 10, 0, 16, 0, + 0, 0, 0, 0, 42, 16, 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 5, 0, 0, 0, 70, 30, + 16, 0, 0, 0, 58, 128, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 52, 0, 24, 9, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 1, 0, 0, 0, 6, 128, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 51, 0, 24, 9, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 86, 133, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 56, 0, 24, 9, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 230, 138, + 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 56, 0, 24, 8, + 50, 0, 16, 0, 0, 0, + 0, 0, 70, 0, 16, 0, + 0, 0, 0, 0, 246, 31, 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 6, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 7, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 8, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 9, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 10, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 11, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 12, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 13, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 14, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 15, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 54, 0, - 0, 8, 50, 32, 16, 0, - 16, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 66, 32, - 16, 0, 16, 0, 0, 0, - 42, 16, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 5, 50, 32, - 16, 0, 18, 0, 0, 0, - 70, 0, 16, 0, 2, 0, - 0, 0, 54, 0, 0, 6, - 194, 32, 16, 0, 18, 0, - 0, 0, 166, 30, 32, 0, - 0, 0, 0, 0, 18, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 19, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 19, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 20, 0, - 0, 0, 70, 16, 32, 0, - 0, 0, 0, 0, 20, 0, - 0, 0, 117, 0, 0, 3, - 0, 0, 17, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 56, 6, 114, 0, 16, 0, + 1, 0, 0, 0, 6, 1, + 16, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 64, 5, 130, 0, 16, 0, + 1, 0, 0, 0, 26, 0, + 16, 0, 0, 0, 0, 0, + 0, 0, 120, 8, 242, 0, + 16, 0, 2, 0, 0, 0, + 198, 9, 16, 0, 1, 0, + 0, 0, 70, 20, 32, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 54, 0, 0, 6, 242, 32, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, @@ -1319,263 +1192,342 @@ const BYTE primitive_point_list_gs[] = 50, 32, 16, 0, 16, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 66, 32, 16, 0, + 16, 0, 0, 0, 42, 16, + 32, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 5, 50, 32, 16, 0, + 17, 0, 0, 0, 70, 0, + 16, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 194, 32, + 16, 0, 17, 0, 0, 0, + 166, 30, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 18, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 18, 0, 0, 0, + 54, 0, 0, 6, 50, 32, + 16, 0, 19, 0, 0, 0, + 70, 16, 32, 0, 0, 0, + 0, 0, 19, 0, 0, 0, + 117, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 4, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 5, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 7, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 8, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 9, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 10, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 10, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 11, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 12, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 13, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 14, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 15, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 54, 0, 0, 8, 50, 32, + 16, 0, 16, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 128, 63, + 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 66, 32, 16, 0, 16, 0, + 0, 0, 42, 16, 32, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 17, 0, + 0, 0, 230, 10, 16, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 194, 32, 16, 0, + 17, 0, 0, 0, 166, 30, + 32, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 0, + 80, 8, 162, 0, 16, 0, + 0, 0, 0, 0, 6, 4, + 16, 0, 0, 0, 0, 0, + 6, 20, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 4, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 5, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 5, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 7, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 8, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 9, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 10, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 10, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 11, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 12, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 13, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 14, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 15, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 54, 0, 0, 8, 50, 32, + 16, 0, 16, 0, 0, 0, + 2, 64, 0, 0, 0, 0, + 128, 63, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 66, 32, 16, 0, 16, 0, + 0, 0, 42, 16, 32, 0, + 0, 0, 0, 0, 16, 0, + 0, 0, 54, 0, 0, 5, + 50, 32, 16, 0, 17, 0, + 0, 0, 214, 5, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 194, 32, 16, 0, + 17, 0, 0, 0, 166, 30, + 32, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 32, 5, 66, 0, 16, 0, + 0, 0, 0, 0, 42, 0, + 16, 0, 1, 0, 0, 0, + 0, 0, 24, 8, 50, 0, + 16, 0, 0, 0, 0, 0, + 134, 0, 16, 0, 0, 0, + 0, 0, 70, 16, 32, 0, + 0, 0, 0, 0, 17, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 0, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 1, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 2, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 3, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 4, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 4, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 5, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 5, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 6, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 6, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 7, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 7, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 8, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 8, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 9, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 9, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 10, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 10, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 11, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 11, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 12, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 12, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 13, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 13, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 14, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 14, 0, + 0, 0, 54, 0, 0, 6, + 242, 32, 16, 0, 15, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 54, 0, 0, 8, + 50, 32, 16, 0, 16, 0, + 0, 0, 2, 64, 0, 0, + 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 6, 66, 32, 16, 0, 16, 0, 0, 0, 42, 16, 32, 0, 0, 0, 0, 0, 16, 0, 0, 0, 54, 0, - 0, 6, 50, 32, 16, 0, - 17, 0, 0, 0, 70, 16, - 32, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 54, 0, 0, 5, 50, 32, 16, 0, - 18, 0, 0, 0, 230, 10, - 16, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 194, 32, - 16, 0, 18, 0, 0, 0, - 166, 30, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 0, 80, 8, 162, 0, - 16, 0, 0, 0, 0, 0, - 6, 4, 16, 0, 0, 0, - 0, 0, 6, 20, 32, 0, - 0, 0, 0, 0, 18, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 2, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 4, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 5, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 6, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 7, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 8, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 8, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 9, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 9, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 10, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 11, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 12, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 13, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 13, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 14, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 15, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 54, 0, 0, 8, - 50, 32, 16, 0, 16, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 6, 66, 32, 16, 0, - 16, 0, 0, 0, 42, 16, - 32, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 54, 0, - 0, 6, 50, 32, 16, 0, - 17, 0, 0, 0, 70, 16, - 32, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 54, 0, - 0, 5, 50, 32, 16, 0, - 18, 0, 0, 0, 214, 5, + 17, 0, 0, 0, 70, 0, 16, 0, 0, 0, 0, 0, 54, 0, 0, 6, 194, 32, - 16, 0, 18, 0, 0, 0, - 166, 30, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 32, 5, 66, 0, - 16, 0, 0, 0, 0, 0, - 42, 0, 16, 0, 1, 0, - 0, 0, 0, 0, 24, 8, - 50, 0, 16, 0, 0, 0, - 0, 0, 134, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 1, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 2, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 3, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 4, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 5, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 5, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 6, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 7, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 8, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 9, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 10, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 11, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 11, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 12, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 13, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 14, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 54, 0, - 0, 6, 242, 32, 16, 0, - 15, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 54, 0, - 0, 8, 50, 32, 16, 0, - 16, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 128, 63, - 0, 0, 128, 63, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 66, 32, - 16, 0, 16, 0, 0, 0, - 42, 16, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 0, 0, + 166, 30, 32, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 54, 0, 0, 5, 50, 32, + 54, 0, 0, 6, 242, 32, 16, 0, 18, 0, 0, 0, - 70, 0, 16, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 194, 32, 16, 0, 18, 0, - 0, 0, 166, 30, 32, 0, - 0, 0, 0, 0, 18, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 19, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 19, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 20, 0, - 0, 0, 70, 16, 32, 0, - 0, 0, 0, 0, 20, 0, - 0, 0, 117, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 118, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 148, 0, - 0, 0, 119, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 0, - 11, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 2, 0, 0, 0, 1, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 18, 0, 0, 0, + 54, 0, 0, 6, 50, 32, + 16, 0, 19, 0, 0, 0, + 70, 16, 32, 0, 0, 0, + 0, 0, 19, 0, 0, 0, + 117, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 118, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 115, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, + 41, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_quad_list_gs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_quad_list_gs.h index 5ba8d66eb..ac77eae81 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_quad_list_gs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_quad_list_gs.h @@ -25,11 +25,10 @@ // TEXCOORD 14 xyzw 14 NONE float xyzw // TEXCOORD 15 xyzw 15 NONE float xyzw // TEXCOORD 16 xyz 16 NONE float xyz -// TEXCOORD 17 xy 17 NONE float xy -// SV_Position 0 xyzw 18 POS float xyzw -// SV_ClipDistance 0 xyzw 19 CLIPDST float xyzw -// SV_ClipDistance 1 xy 20 CLIPDST float xy -// SV_CullDistance 0 z 20 CULLDST float +// SV_Position 0 xyzw 17 POS float xyzw +// SV_ClipDistance 0 xyzw 18 CLIPDST float xyzw +// SV_ClipDistance 1 xy 19 CLIPDST float xy +// SV_CullDistance 0 z 19 CULLDST float // // // Output signature: @@ -53,10 +52,9 @@ // TEXCOORD 14 xyzw 14 NONE float xyzw // TEXCOORD 15 xyzw 15 NONE float xyzw // TEXCOORD 16 xyz 16 NONE float xyz -// TEXCOORD 17 xy 17 NONE float xy -// SV_Position 0 xyzw 18 POS float xyzw -// SV_ClipDistance 0 xyzw 19 CLIPDST float xyzw -// SV_ClipDistance 1 xy 20 CLIPDST float xy +// SV_Position 0 xyzw 17 POS float xyzw +// SV_ClipDistance 0 xyzw 18 CLIPDST float xyzw +// SV_ClipDistance 1 xy 19 CLIPDST float xy // gs_5_1 dcl_globalFlags refactoringAllowed @@ -77,11 +75,10 @@ dcl_input v[4][13].xyzw dcl_input v[4][14].xyzw dcl_input v[4][15].xyzw dcl_input v[4][16].xyz -dcl_input v[4][17].xy -dcl_input_siv v[4][18].xyzw, position -dcl_input v[4][19].xyzw -dcl_input v[4][20].xy -dcl_input v[4][20].z +dcl_input_siv v[4][17].xyzw, position +dcl_input v[4][18].xyzw +dcl_input v[4][19].xy +dcl_input v[4][19].z dcl_inputprimitive lineadj dcl_stream m0 dcl_outputtopology trianglestrip @@ -102,10 +99,9 @@ dcl_output o13.xyzw dcl_output o14.xyzw dcl_output o15.xyzw dcl_output o16.xyz -dcl_output o17.xy -dcl_output_siv o18.xyzw, position -dcl_output_siv o19.xyzw, clip_distance -dcl_output_siv o20.xy, clip_distance +dcl_output_siv o17.xyzw, position +dcl_output_siv o18.xyzw, clip_distance +dcl_output_siv o19.xy, clip_distance dcl_maxout 4 mov o0.xyzw, v[0][0].xyzw mov o1.xyzw, v[0][1].xyzw @@ -124,10 +120,9 @@ mov o13.xyzw, v[0][13].xyzw mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xyz, v[0][16].xyzx -mov o17.xy, v[0][17].xyxx +mov o17.xyzw, v[0][17].xyzw mov o18.xyzw, v[0][18].xyzw -mov o19.xyzw, v[0][19].xyzw -mov o20.xy, v[0][20].xyxx +mov o19.xy, v[0][19].xyxx emit_stream m0 mov o0.xyzw, v[1][0].xyzw mov o1.xyzw, v[1][1].xyzw @@ -146,10 +141,9 @@ mov o13.xyzw, v[1][13].xyzw mov o14.xyzw, v[1][14].xyzw mov o15.xyzw, v[1][15].xyzw mov o16.xyz, v[1][16].xyzx -mov o17.xy, v[1][17].xyxx +mov o17.xyzw, v[1][17].xyzw mov o18.xyzw, v[1][18].xyzw -mov o19.xyzw, v[1][19].xyzw -mov o20.xy, v[1][20].xyxx +mov o19.xy, v[1][19].xyxx emit_stream m0 mov o0.xyzw, v[3][0].xyzw mov o1.xyzw, v[3][1].xyzw @@ -168,10 +162,9 @@ mov o13.xyzw, v[3][13].xyzw mov o14.xyzw, v[3][14].xyzw mov o15.xyzw, v[3][15].xyzw mov o16.xyz, v[3][16].xyzx -mov o17.xy, v[3][17].xyxx +mov o17.xyzw, v[3][17].xyzw mov o18.xyzw, v[3][18].xyzw -mov o19.xyzw, v[3][19].xyzw -mov o20.xy, v[3][20].xyxx +mov o19.xy, v[3][19].xyxx emit_stream m0 mov o0.xyzw, v[2][0].xyzw mov o1.xyzw, v[2][1].xyzw @@ -190,27 +183,26 @@ mov o13.xyzw, v[2][13].xyzw mov o14.xyzw, v[2][14].xyzw mov o15.xyzw, v[2][15].xyzw mov o16.xyz, v[2][16].xyzx -mov o17.xy, v[2][17].xyxx +mov o17.xyzw, v[2][17].xyzw mov o18.xyzw, v[2][18].xyzw -mov o19.xyzw, v[2][19].xyzw -mov o20.xy, v[2][20].xyxx +mov o19.xy, v[2][19].xyxx emit_stream m0 cut_stream m0 ret -// Approximately 90 instruction slots used +// Approximately 86 instruction slots used #endif const BYTE primitive_quad_list_gs[] = { - 68, 88, 66, 67, 134, 27, - 204, 193, 51, 80, 62, 85, - 179, 61, 221, 124, 65, 162, - 208, 217, 1, 0, 0, 0, - 212, 16, 0, 0, 5, 0, + 68, 88, 66, 67, 60, 29, + 113, 120, 166, 105, 127, 75, + 174, 160, 2, 184, 182, 91, + 66, 12, 1, 0, 0, 0, + 36, 16, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 160, 0, 0, 0, 248, 2, - 0, 0, 124, 5, 0, 0, - 56, 16, 0, 0, 82, 68, + 160, 0, 0, 0, 224, 2, + 0, 0, 72, 5, 0, 0, + 136, 15, 0, 0, 82, 68, 69, 70, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -229,96 +221,92 @@ const BYTE primitive_quad_list_gs[] = 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 49, 48, 46, 49, 0, 73, 83, - 71, 78, 80, 2, 0, 0, - 22, 0, 0, 0, 8, 0, - 0, 0, 24, 2, 0, 0, + 71, 78, 56, 2, 0, 0, + 21, 0, 0, 0, 8, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 7, 7, - 0, 0, 24, 2, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 17, 0, 0, 0, 3, 3, - 0, 0, 33, 2, 0, 0, + 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 18, 0, 0, 0, 15, 15, - 0, 0, 45, 2, 0, 0, + 17, 0, 0, 0, 15, 15, + 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 19, 0, 0, 0, 15, 15, - 0, 0, 45, 2, 0, 0, + 18, 0, 0, 0, 15, 15, + 0, 0, 21, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 3, 3, - 0, 0, 61, 2, 0, 0, + 19, 0, 0, 0, 3, 3, + 0, 0, 37, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 4, 0, + 19, 0, 0, 0, 4, 0, 0, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 83, 86, 95, 80, 111, 115, 105, @@ -329,595 +317,570 @@ const BYTE primitive_quad_list_gs[] = 67, 117, 108, 108, 68, 105, 115, 116, 97, 110, 99, 101, 0, 171, 171, 171, 79, 83, - 71, 53, 124, 2, 0, 0, - 21, 0, 0, 0, 8, 0, + 71, 53, 96, 2, 0, 0, + 20, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 0, 0, + 56, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 3, 0, + 56, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 6, 0, + 56, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 9, 0, + 56, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 12, 0, + 56, 2, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 15, 0, + 56, 2, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 7, 8, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, - 17, 0, 0, 0, 0, 0, + 0, 0, 65, 2, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 17, 0, 0, 0, 3, 12, + 17, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 93, 2, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, + 77, 2, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 105, 2, - 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 2, + 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 19, 0, 0, 0, - 15, 0, 0, 0, 0, 0, - 0, 0, 105, 2, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 3, 12, - 0, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 83, - 86, 95, 67, 108, 105, 112, - 68, 105, 115, 116, 97, 110, - 99, 101, 0, 171, 171, 171, - 83, 72, 69, 88, 180, 10, - 0, 0, 81, 0, 2, 0, - 173, 2, 0, 0, 106, 8, - 0, 1, 95, 0, 0, 4, - 242, 16, 32, 0, 4, 0, - 0, 0, 0, 0, 0, 0, - 95, 0, 0, 4, 242, 16, - 32, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 95, 0, + 3, 12, 0, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 83, 86, 95, 67, 108, + 105, 112, 68, 105, 115, 116, + 97, 110, 99, 101, 0, 171, + 171, 171, 83, 72, 69, 88, + 56, 10, 0, 0, 81, 0, + 2, 0, 142, 2, 0, 0, + 106, 8, 0, 1, 95, 0, 0, 4, 242, 16, 32, 0, - 4, 0, 0, 0, 2, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, 0, 0, - 4, 0, 0, 0, 95, 0, + 2, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 4, 0, 0, 0, 5, 0, + 4, 0, 0, 0, 3, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, - 0, 0, 6, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, 0, 0, - 7, 0, 0, 0, 95, 0, + 5, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 4, 0, 0, 0, 8, 0, + 4, 0, 0, 0, 6, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, - 0, 0, 9, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, 0, 0, - 10, 0, 0, 0, 95, 0, + 8, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 4, 0, 0, 0, 11, 0, + 4, 0, 0, 0, 9, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, - 0, 0, 12, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, 0, 0, - 13, 0, 0, 0, 95, 0, + 11, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 4, 0, 0, 0, 14, 0, + 4, 0, 0, 0, 12, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, - 0, 0, 15, 0, 0, 0, - 95, 0, 0, 4, 114, 16, + 0, 0, 13, 0, 0, 0, + 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, 0, 0, - 16, 0, 0, 0, 95, 0, - 0, 4, 50, 16, 32, 0, - 4, 0, 0, 0, 17, 0, - 0, 0, 97, 0, 0, 5, + 14, 0, 0, 0, 95, 0, + 0, 4, 242, 16, 32, 0, + 4, 0, 0, 0, 15, 0, + 0, 0, 95, 0, 0, 4, + 114, 16, 32, 0, 4, 0, + 0, 0, 16, 0, 0, 0, + 97, 0, 0, 5, 242, 16, + 32, 0, 4, 0, 0, 0, + 17, 0, 0, 0, 1, 0, + 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 4, 0, 0, 0, 18, 0, 0, 0, - 1, 0, 0, 0, 95, 0, - 0, 4, 242, 16, 32, 0, - 4, 0, 0, 0, 19, 0, - 0, 0, 95, 0, 0, 4, - 50, 16, 32, 0, 4, 0, - 0, 0, 20, 0, 0, 0, - 95, 0, 0, 4, 66, 16, + 95, 0, 0, 4, 50, 16, 32, 0, 4, 0, 0, 0, - 20, 0, 0, 0, 93, 48, - 0, 1, 143, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 92, 40, 0, 1, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 2, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 3, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 4, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 5, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 6, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 7, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 8, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 9, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 10, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 11, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 12, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 13, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 14, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 15, 0, 0, 0, - 101, 0, 0, 3, 114, 32, - 16, 0, 16, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 17, 0, 0, 0, - 103, 0, 0, 4, 242, 32, - 16, 0, 18, 0, 0, 0, - 1, 0, 0, 0, 103, 0, + 19, 0, 0, 0, 95, 0, + 0, 4, 66, 16, 32, 0, + 4, 0, 0, 0, 19, 0, + 0, 0, 93, 48, 0, 1, + 143, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 92, 40, 0, 1, 101, 0, + 0, 3, 242, 32, 16, 0, + 0, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 1, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 2, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 3, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 4, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 5, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 6, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 7, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 8, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 9, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 10, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 11, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 12, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 13, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 14, 0, 0, 0, 101, 0, + 0, 3, 242, 32, 16, 0, + 15, 0, 0, 0, 101, 0, + 0, 3, 114, 32, 16, 0, + 16, 0, 0, 0, 103, 0, 0, 4, 242, 32, 16, 0, - 19, 0, 0, 0, 2, 0, + 17, 0, 0, 0, 1, 0, 0, 0, 103, 0, 0, 4, - 50, 32, 16, 0, 20, 0, + 242, 32, 16, 0, 18, 0, 0, 0, 2, 0, 0, 0, - 94, 0, 0, 2, 4, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 2, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 4, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 4, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 5, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 5, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 6, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 6, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 7, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 7, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 8, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 8, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 9, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 9, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 10, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 10, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 11, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 12, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 12, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 13, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 13, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 14, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 14, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 15, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 15, 0, - 0, 0, 54, 0, 0, 6, - 114, 32, 16, 0, 16, 0, - 0, 0, 70, 18, 32, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 17, 0, - 0, 0, 70, 16, 32, 0, - 0, 0, 0, 0, 17, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 18, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 18, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 19, 0, - 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 19, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 20, 0, - 0, 0, 70, 16, 32, 0, - 0, 0, 0, 0, 20, 0, - 0, 0, 117, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 2, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 4, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 4, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 5, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 5, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 6, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 6, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 7, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 7, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 8, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 8, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 9, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 9, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 10, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 10, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 11, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 11, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 12, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 12, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 13, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 14, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 14, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 15, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 15, 0, - 0, 0, 54, 0, 0, 6, - 114, 32, 16, 0, 16, 0, - 0, 0, 70, 18, 32, 0, - 1, 0, 0, 0, 16, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 17, 0, - 0, 0, 70, 16, 32, 0, - 1, 0, 0, 0, 17, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 18, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 18, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 19, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 19, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 20, 0, - 0, 0, 70, 16, 32, 0, - 1, 0, 0, 0, 20, 0, - 0, 0, 117, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 2, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 2, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 3, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 4, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 4, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 5, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 6, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 6, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 7, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 7, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 8, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 8, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 9, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 9, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 10, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 10, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 11, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 11, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 12, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 12, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 13, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 13, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 14, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 14, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 15, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 15, 0, - 0, 0, 54, 0, 0, 6, - 114, 32, 16, 0, 16, 0, - 0, 0, 70, 18, 32, 0, - 3, 0, 0, 0, 16, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 17, 0, - 0, 0, 70, 16, 32, 0, - 3, 0, 0, 0, 17, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 18, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 18, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 19, 0, - 0, 0, 70, 30, 32, 0, - 3, 0, 0, 0, 19, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 20, 0, - 0, 0, 70, 16, 32, 0, - 3, 0, 0, 0, 20, 0, - 0, 0, 117, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 1, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 1, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 2, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 2, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 3, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 3, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 4, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 4, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 5, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 5, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 6, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 6, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 7, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 7, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 8, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 8, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 9, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 9, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 10, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 10, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 11, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 11, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 12, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 12, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 13, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 13, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 14, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 14, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 15, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 15, 0, - 0, 0, 54, 0, 0, 6, - 114, 32, 16, 0, 16, 0, - 0, 0, 70, 18, 32, 0, - 2, 0, 0, 0, 16, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 17, 0, - 0, 0, 70, 16, 32, 0, - 2, 0, 0, 0, 17, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 18, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 18, 0, - 0, 0, 54, 0, 0, 6, - 242, 32, 16, 0, 19, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 19, 0, - 0, 0, 54, 0, 0, 6, - 50, 32, 16, 0, 20, 0, - 0, 0, 70, 16, 32, 0, - 2, 0, 0, 0, 20, 0, - 0, 0, 117, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 118, 0, 0, 3, - 0, 0, 17, 0, 0, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 148, 0, - 0, 0, 90, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, + 103, 0, 0, 4, 50, 32, + 16, 0, 19, 0, 0, 0, + 2, 0, 0, 0, 94, 0, + 0, 2, 4, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 32, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 3, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 4, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 4, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 5, 0, 0, 0, + 70, 30, 32, 0, 0, 0, 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 6, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 7, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 8, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 8, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 9, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 9, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 10, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 10, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 11, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 12, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 12, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 13, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 13, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 14, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 15, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 15, 0, 0, 0, + 54, 0, 0, 6, 114, 32, + 16, 0, 16, 0, 0, 0, + 70, 18, 32, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 17, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 18, 0, 0, 0, + 70, 30, 32, 0, 0, 0, + 0, 0, 18, 0, 0, 0, + 54, 0, 0, 6, 50, 32, + 16, 0, 19, 0, 0, 0, + 70, 16, 32, 0, 0, 0, + 0, 0, 19, 0, 0, 0, + 117, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 3, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 4, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 4, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 5, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 5, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 6, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 7, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 8, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 8, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 9, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 9, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 10, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 10, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 11, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 11, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 12, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 12, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 13, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 13, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 14, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 15, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 54, 0, 0, 6, 114, 32, + 16, 0, 16, 0, 0, 0, + 70, 18, 32, 0, 1, 0, + 0, 0, 16, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 17, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 17, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 18, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 18, 0, 0, 0, + 54, 0, 0, 6, 50, 32, + 16, 0, 19, 0, 0, 0, + 70, 16, 32, 0, 1, 0, + 0, 0, 19, 0, 0, 0, + 117, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 3, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 4, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 4, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 5, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 6, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 7, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 8, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 8, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 9, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 9, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 10, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 10, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 11, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 11, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 12, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 12, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 13, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 13, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 14, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 15, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 15, 0, 0, 0, + 54, 0, 0, 6, 114, 32, + 16, 0, 16, 0, 0, 0, + 70, 18, 32, 0, 3, 0, + 0, 0, 16, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 17, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 17, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 18, 0, 0, 0, + 70, 30, 32, 0, 3, 0, + 0, 0, 18, 0, 0, 0, + 54, 0, 0, 6, 50, 32, + 16, 0, 19, 0, 0, 0, + 70, 16, 32, 0, 3, 0, + 0, 0, 19, 0, 0, 0, + 117, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 1, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 1, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 2, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 2, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 3, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 4, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 4, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 5, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 5, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 6, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 6, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 7, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 7, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 8, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 8, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 9, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 9, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 10, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 10, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 11, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 11, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 12, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 12, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 13, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 13, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 14, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 14, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 15, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 15, 0, 0, 0, + 54, 0, 0, 6, 114, 32, + 16, 0, 16, 0, 0, 0, + 70, 18, 32, 0, 2, 0, + 0, 0, 16, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 17, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 17, 0, 0, 0, + 54, 0, 0, 6, 242, 32, + 16, 0, 18, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 18, 0, 0, 0, + 54, 0, 0, 6, 50, 32, + 16, 0, 19, 0, 0, 0, + 70, 16, 32, 0, 2, 0, + 0, 0, 19, 0, 0, 0, + 117, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 118, 0, 0, 3, 0, 0, + 17, 0, 0, 0, 0, 0, + 62, 0, 0, 1, 83, 84, + 65, 84, 148, 0, 0, 0, + 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0 + 0, 0, 6, 0, 0, 0, + 5, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_rectangle_list_gs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_rectangle_list_gs.h index 22f2e5bf7..6ce8c711d 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_rectangle_list_gs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/primitive_rectangle_list_gs.h @@ -25,11 +25,10 @@ // TEXCOORD 14 xyzw 14 NONE float xyzw // TEXCOORD 15 xyzw 15 NONE float xyzw // TEXCOORD 16 xyz 16 NONE float xyz -// TEXCOORD 17 xy 17 NONE float xy -// SV_Position 0 xyzw 18 POS float xyzw -// SV_ClipDistance 0 xyzw 19 CLIPDST float xyzw -// SV_ClipDistance 1 xy 20 CLIPDST float xy -// SV_CullDistance 0 z 20 CULLDST float z +// SV_Position 0 xyzw 17 POS float xyzw +// SV_ClipDistance 0 xyzw 18 CLIPDST float xyzw +// SV_ClipDistance 1 xy 19 CLIPDST float xy +// SV_CullDistance 0 z 19 CULLDST float z // // // Output signature: @@ -53,10 +52,9 @@ // TEXCOORD 14 xyzw 14 NONE float xyzw // TEXCOORD 15 xyzw 15 NONE float xyzw // TEXCOORD 16 xyz 16 NONE float xyz -// TEXCOORD 17 xy 17 NONE float xy -// SV_Position 0 xyzw 18 POS float xyzw -// SV_ClipDistance 0 xyzw 19 CLIPDST float xyzw -// SV_ClipDistance 1 xy 20 CLIPDST float xy +// SV_Position 0 xyzw 17 POS float xyzw +// SV_ClipDistance 0 xyzw 18 CLIPDST float xyzw +// SV_ClipDistance 1 xy 19 CLIPDST float xy // gs_5_1 dcl_globalFlags refactoringAllowed @@ -77,12 +75,11 @@ dcl_input v[3][13].xyzw dcl_input v[3][14].xyzw dcl_input v[3][15].xyzw dcl_input v[3][16].xyz -dcl_input v[3][17].xy -dcl_input_siv v[3][18].xyzw, position -dcl_input v[3][19].xyzw -dcl_input v[3][20].xy -dcl_input v[3][20].z -dcl_temps 21 +dcl_input_siv v[3][17].xyzw, position +dcl_input v[3][18].xyzw +dcl_input v[3][19].xy +dcl_input v[3][19].z +dcl_temps 20 dcl_inputprimitive triangle dcl_stream m0 dcl_outputtopology trianglestrip @@ -103,23 +100,22 @@ dcl_output o13.xyzw dcl_output o14.xyzw dcl_output o15.xyzw dcl_output o16.xyz -dcl_output o17.xy -dcl_output_siv o18.xyzw, position -dcl_output_siv o19.xyzw, clip_distance -dcl_output_siv o20.xy, clip_distance +dcl_output_siv o17.xyzw, position +dcl_output_siv o18.xyzw, clip_distance +dcl_output_siv o19.xy, clip_distance dcl_maxout 6 -max [precise(x)] r0.x, v[1][20].z, v[0][20].z -max [precise(x)] r0.x, r0.x, v[2][20].z +max [precise(x)] r0.x, v[1][19].z, v[0][19].z +max [precise(x)] r0.x, r0.x, v[2][19].z lt [precise(x)] r0.x, r0.x, l(0.000000) -ne [precise] r1.xyzw, v[0][18].xyzw, v[0][18].xyzw +ne [precise] r1.xyzw, v[0][17].xyzw, v[0][17].xyzw or [precise(yz)] r0.yz, r1.zzwz, r1.xxyx or [precise(y)] r0.y, r0.z, r0.y or [precise(x)] r0.x, r0.y, r0.x -ne [precise] r1.xyzw, v[1][18].xyzw, v[1][18].xyzw +ne [precise] r1.xyzw, v[1][17].xyzw, v[1][17].xyzw or [precise(yz)] r0.yz, r1.zzwz, r1.xxyx or [precise(y)] r0.y, r0.z, r0.y or [precise(x)] r0.x, r0.y, r0.x -ne [precise] r1.xyzw, v[2][18].xyzw, v[2][18].xyzw +ne [precise] r1.xyzw, v[2][17].xyzw, v[2][17].xyzw or [precise(yz)] r0.yz, r1.zzwz, r1.xxyx or [precise(y)] r0.y, r0.z, r0.y or [precise(x)] r0.x, r0.y, r0.x @@ -143,10 +139,9 @@ mov o13.xyzw, v[0][13].xyzw mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xyz, v[0][16].xyzx -mov o17.xy, v[0][17].xyxx +mov o17.xyzw, v[0][17].xyzw mov o18.xyzw, v[0][18].xyzw -mov o19.xyzw, v[0][19].xyzw -mov o20.xy, v[0][20].xyxx +mov o19.xy, v[0][19].xyxx emit_stream m0 mov o0.xyzw, v[1][0].xyzw mov o1.xyzw, v[1][1].xyzw @@ -165,10 +160,9 @@ mov o13.xyzw, v[1][13].xyzw mov o14.xyzw, v[1][14].xyzw mov o15.xyzw, v[1][15].xyzw mov o16.xyz, v[1][16].xyzx -mov o17.xy, v[1][17].xyxx +mov o17.xyzw, v[1][17].xyzw mov o18.xyzw, v[1][18].xyzw -mov o19.xyzw, v[1][19].xyzw -mov o20.xy, v[1][20].xyxx +mov o19.xy, v[1][19].xyxx emit_stream m0 mov o0.xyzw, v[2][0].xyzw mov o1.xyzw, v[2][1].xyzw @@ -187,15 +181,14 @@ mov o13.xyzw, v[2][13].xyzw mov o14.xyzw, v[2][14].xyzw mov o15.xyzw, v[2][15].xyzw mov o16.xyz, v[2][16].xyzx -mov o17.xy, v[2][17].xyxx +mov o17.xyzw, v[2][17].xyzw mov o18.xyzw, v[2][18].xyzw -mov o19.xyzw, v[2][19].xyzw -mov o20.xy, v[2][20].xyxx +mov o19.xy, v[2][19].xyxx emit_stream m0 cut_stream m0 -add [precise(xyz)] r0.xyz, -v[0][18].xyzx, v[1][18].xyzx -add [precise(xyz)] r1.xyz, -v[0][18].xyzx, v[2][18].xyzx -add [precise(xyz)] r2.xyz, -v[1][18].xyzx, v[2][18].xyzx +add [precise(xyz)] r0.xyz, -v[0][17].xyzx, v[1][17].xyzx +add [precise(xyz)] r1.xyz, -v[0][17].xyzx, v[2][17].xyzx +add [precise(xyz)] r2.xyz, -v[1][17].xyzx, v[2][17].xyzx dp3 [precise(x)] r0.x, r0.xyzx, r0.xyzx dp3 [precise(y)] r0.y, r1.xyzx, r1.xyzx dp3 [precise(z)] r0.z, r2.xyzx, r2.xyzx @@ -220,10 +213,9 @@ if_nz r0.w mov o14.xyzw, v[2][14].xyzw mov o15.xyzw, v[2][15].xyzw mov o16.xyz, v[2][16].xyzx - mov o17.xy, v[2][17].xyxx + mov o17.xyzw, v[2][17].xyzw mov o18.xyzw, v[2][18].xyzw - mov o19.xyzw, v[2][19].xyzw - mov o20.xy, v[2][20].xyxx + mov o19.xy, v[2][19].xyxx emit_stream m0 mov o0.xyzw, v[1][0].xyzw mov o1.xyzw, v[1][1].xyzw @@ -242,10 +234,9 @@ if_nz r0.w mov o14.xyzw, v[1][14].xyzw mov o15.xyzw, v[1][15].xyzw mov o16.xyz, v[1][16].xyzx - mov o17.xy, v[1][17].xyxx + mov o17.xyzw, v[1][17].xyzw mov o18.xyzw, v[1][18].xyzw - mov o19.xyzw, v[1][19].xyzw - mov o20.xy, v[1][20].xyxx + mov o19.xy, v[1][19].xyxx emit_stream m0 mov [precise(xyz)] r0.xyz, l(1.000000,1.000000,-1.000000,0) else @@ -270,10 +261,9 @@ else mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xyz, v[0][16].xyzx - mov o17.xy, v[0][17].xyxx + mov o17.xyzw, v[0][17].xyzw mov o18.xyzw, v[0][18].xyzw - mov o19.xyzw, v[0][19].xyzw - mov o20.xy, v[0][20].xyxx + mov o19.xy, v[0][19].xyxx emit_stream m0 mov o0.xyzw, v[2][0].xyzw mov o1.xyzw, v[2][1].xyzw @@ -292,10 +282,9 @@ else mov o14.xyzw, v[2][14].xyzw mov o15.xyzw, v[2][15].xyzw mov o16.xyz, v[2][16].xyzx - mov o17.xy, v[2][17].xyxx + mov o17.xyzw, v[2][17].xyzw mov o18.xyzw, v[2][18].xyzw - mov o19.xyzw, v[2][19].xyzw - mov o20.xy, v[2][20].xyxx + mov o19.xy, v[2][19].xyxx emit_stream m0 mov [precise(xy)] r0.xy, l(-1.000000,1.000000,0,0) else @@ -316,10 +305,9 @@ else mov o14.xyzw, v[1][14].xyzw mov o15.xyzw, v[1][15].xyzw mov o16.xyz, v[1][16].xyzx - mov o17.xy, v[1][17].xyxx + mov o17.xyzw, v[1][17].xyzw mov o18.xyzw, v[1][18].xyzw - mov o19.xyzw, v[1][19].xyzw - mov o20.xy, v[1][20].xyxx + mov o19.xy, v[1][19].xyxx emit_stream m0 mov o0.xyzw, v[0][0].xyzw mov o1.xyzw, v[0][1].xyzw @@ -338,10 +326,9 @@ else mov o14.xyzw, v[0][14].xyzw mov o15.xyzw, v[0][15].xyzw mov o16.xyz, v[0][16].xyzx - mov o17.xy, v[0][17].xyxx + mov o17.xyzw, v[0][17].xyzw mov o18.xyzw, v[0][18].xyzw - mov o19.xyzw, v[0][19].xyzw - mov o20.xy, v[0][20].xyxx + mov o19.xy, v[0][19].xyxx emit_stream m0 mov [precise(xy)] r0.xy, l(1.000000,-1.000000,0,0) endif @@ -398,20 +385,17 @@ mad r16.xyzw, r0.yyyy, v[2][15].xyzw, r16.xyzw mul r17.xyz, r0.xxxx, v[1][16].xyzx mad r17.xyz, r0.zzzz, v[0][16].xyzx, r17.xyzx mad r17.xyz, r0.yyyy, v[2][16].xyzx, r17.xyzx -mul r18.xy, r0.xxxx, v[1][17].xyxx -mad r18.xy, r0.zzzz, v[0][17].xyxx, r18.xyxx -mad r18.xy, r0.yyyy, v[2][17].xyxx, r18.xyxx -mul [precise] r19.xyzw, r0.zzzz, v[0][18].xyzw -mul [precise] r20.xyzw, r0.xxxx, v[1][18].xyzw -add [precise] r19.xyzw, r19.xyzw, r20.xyzw -mul [precise] r20.xyzw, r0.yyyy, v[2][18].xyzw -add [precise] r19.xyzw, r19.xyzw, r20.xyzw -mul r20.xyzw, r0.xxxx, v[1][19].xyzw -mad r20.xyzw, r0.zzzz, v[0][19].xyzw, r20.xyzw -mad r20.xyzw, r0.yyyy, v[2][19].xyzw, r20.xyzw -mul r0.xw, r0.xxxx, v[1][20].xxxy -mad r0.xz, r0.zzzz, v[0][20].xxyx, r0.xxwx -mad r0.xy, r0.yyyy, v[2][20].xyxx, r0.xzxx +mul [precise] r18.xyzw, r0.zzzz, v[0][17].xyzw +mul [precise] r19.xyzw, r0.xxxx, v[1][17].xyzw +add [precise] r18.xyzw, r18.xyzw, r19.xyzw +mul [precise] r19.xyzw, r0.yyyy, v[2][17].xyzw +add [precise] r18.xyzw, r18.xyzw, r19.xyzw +mul r19.xyzw, r0.xxxx, v[1][18].xyzw +mad r19.xyzw, r0.zzzz, v[0][18].xyzw, r19.xyzw +mad r19.xyzw, r0.yyyy, v[2][18].xyzw, r19.xyzw +mul r0.xw, r0.xxxx, v[1][19].xxxy +mad r0.xz, r0.zzzz, v[0][19].xxyx, r0.xxwx +mad r0.xy, r0.yyyy, v[2][19].xyxx, r0.xzxx mov o0.xyzw, r1.xyzw mov o1.xyzw, r2.xyzw mov o2.xyzw, r3.xyzw @@ -429,27 +413,26 @@ mov o13.xyzw, r14.xyzw mov o14.xyzw, r15.xyzw mov o15.xyzw, r16.xyzw mov o16.xyz, r17.xyzx -mov o17.xy, r18.xyxx +mov o17.xyzw, r18.xyzw mov o18.xyzw, r19.xyzw -mov o19.xyzw, r20.xyzw -mov o20.xy, r0.xyxx +mov o19.xy, r0.xyxx emit_stream m0 cut_stream m0 ret -// Approximately 328 instruction slots used +// Approximately 315 instruction slots used #endif const BYTE primitive_rectangle_list_gs[] = { - 68, 88, 66, 67, 27, 22, - 39, 67, 12, 182, 125, 77, - 92, 90, 225, 145, 206, 191, - 17, 125, 1, 0, 0, 0, - 240, 41, 0, 0, 5, 0, + 68, 88, 66, 67, 8, 81, + 101, 117, 123, 39, 249, 189, + 184, 94, 218, 115, 216, 148, + 125, 96, 1, 0, 0, 0, + 68, 40, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 160, 0, 0, 0, 248, 2, - 0, 0, 124, 5, 0, 0, - 84, 41, 0, 0, 82, 68, + 160, 0, 0, 0, 224, 2, + 0, 0, 72, 5, 0, 0, + 168, 39, 0, 0, 82, 68, 69, 70, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -468,96 +451,92 @@ const BYTE primitive_rectangle_list_gs[] = 114, 32, 67, 111, 109, 112, 105, 108, 101, 114, 32, 49, 48, 46, 49, 0, 73, 83, - 71, 78, 80, 2, 0, 0, - 22, 0, 0, 0, 8, 0, - 0, 0, 24, 2, 0, 0, + 71, 78, 56, 2, 0, 0, + 21, 0, 0, 0, 8, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 15, 15, - 0, 0, 24, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 7, 7, - 0, 0, 24, 2, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 17, 0, 0, 0, 3, 3, - 0, 0, 33, 2, 0, 0, + 0, 0, 9, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 18, 0, 0, 0, 15, 15, - 0, 0, 45, 2, 0, 0, + 17, 0, 0, 0, 15, 15, + 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 19, 0, 0, 0, 15, 15, - 0, 0, 45, 2, 0, 0, + 18, 0, 0, 0, 15, 15, + 0, 0, 21, 2, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 3, 3, - 0, 0, 61, 2, 0, 0, + 19, 0, 0, 0, 3, 3, + 0, 0, 37, 2, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 4, 4, + 19, 0, 0, 0, 4, 4, 0, 0, 84, 69, 88, 67, 79, 79, 82, 68, 0, 83, 86, 95, 80, 111, 115, 105, @@ -568,1566 +547,1502 @@ const BYTE primitive_rectangle_list_gs[] = 67, 117, 108, 108, 68, 105, 115, 116, 97, 110, 99, 101, 0, 171, 171, 171, 79, 83, - 71, 53, 124, 2, 0, 0, - 21, 0, 0, 0, 8, 0, + 71, 53, 96, 2, 0, 0, + 20, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 0, 0, + 56, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 3, 0, + 56, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 6, 0, + 56, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 9, 0, + 56, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 10, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 12, 0, + 56, 2, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 12, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 13, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, + 0, 0, 56, 2, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 84, 2, 0, 0, 15, 0, + 56, 2, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 84, 2, + 0, 0, 0, 0, 56, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 16, 0, 0, 0, 7, 8, 0, 0, 0, 0, - 0, 0, 84, 2, 0, 0, - 17, 0, 0, 0, 0, 0, + 0, 0, 65, 2, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, - 17, 0, 0, 0, 3, 12, + 17, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 93, 2, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, + 77, 2, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 105, 2, - 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 2, + 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 19, 0, 0, 0, - 15, 0, 0, 0, 0, 0, - 0, 0, 105, 2, 0, 0, - 1, 0, 0, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 3, 12, - 0, 0, 84, 69, 88, 67, - 79, 79, 82, 68, 0, 83, - 86, 95, 80, 111, 115, 105, - 116, 105, 111, 110, 0, 83, - 86, 95, 67, 108, 105, 112, - 68, 105, 115, 116, 97, 110, - 99, 101, 0, 171, 171, 171, - 83, 72, 69, 88, 208, 35, - 0, 0, 81, 0, 2, 0, - 244, 8, 0, 0, 106, 8, - 0, 1, 95, 0, 0, 4, - 242, 16, 32, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 95, 0, 0, 4, 242, 16, - 32, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 95, 0, + 3, 12, 0, 0, 84, 69, + 88, 67, 79, 79, 82, 68, + 0, 83, 86, 95, 80, 111, + 115, 105, 116, 105, 111, 110, + 0, 83, 86, 95, 67, 108, + 105, 112, 68, 105, 115, 116, + 97, 110, 99, 101, 0, 171, + 171, 171, 83, 72, 69, 88, + 88, 34, 0, 0, 81, 0, + 2, 0, 150, 8, 0, 0, + 106, 8, 0, 1, 95, 0, 0, 4, 242, 16, 32, 0, - 3, 0, 0, 0, 2, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, - 0, 0, 3, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, 0, 0, - 4, 0, 0, 0, 95, 0, + 2, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 3, 0, 0, 0, 5, 0, + 3, 0, 0, 0, 3, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, - 0, 0, 6, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, 0, 0, - 7, 0, 0, 0, 95, 0, + 5, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 3, 0, 0, 0, 8, 0, + 3, 0, 0, 0, 6, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, - 0, 0, 9, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, 0, 0, - 10, 0, 0, 0, 95, 0, + 8, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 3, 0, 0, 0, 11, 0, + 3, 0, 0, 0, 9, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, - 0, 0, 12, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, 0, 0, - 13, 0, 0, 0, 95, 0, + 11, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, - 3, 0, 0, 0, 14, 0, + 3, 0, 0, 0, 12, 0, 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, - 0, 0, 15, 0, 0, 0, - 95, 0, 0, 4, 114, 16, + 0, 0, 13, 0, 0, 0, + 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, 0, 0, - 16, 0, 0, 0, 95, 0, - 0, 4, 50, 16, 32, 0, - 3, 0, 0, 0, 17, 0, - 0, 0, 97, 0, 0, 5, + 14, 0, 0, 0, 95, 0, + 0, 4, 242, 16, 32, 0, + 3, 0, 0, 0, 15, 0, + 0, 0, 95, 0, 0, 4, + 114, 16, 32, 0, 3, 0, + 0, 0, 16, 0, 0, 0, + 97, 0, 0, 5, 242, 16, + 32, 0, 3, 0, 0, 0, + 17, 0, 0, 0, 1, 0, + 0, 0, 95, 0, 0, 4, 242, 16, 32, 0, 3, 0, 0, 0, 18, 0, 0, 0, - 1, 0, 0, 0, 95, 0, - 0, 4, 242, 16, 32, 0, - 3, 0, 0, 0, 19, 0, - 0, 0, 95, 0, 0, 4, - 50, 16, 32, 0, 3, 0, - 0, 0, 20, 0, 0, 0, - 95, 0, 0, 4, 66, 16, + 95, 0, 0, 4, 50, 16, 32, 0, 3, 0, 0, 0, - 20, 0, 0, 0, 104, 0, - 0, 2, 21, 0, 0, 0, - 93, 24, 0, 1, 143, 0, - 0, 3, 0, 0, 17, 0, - 0, 0, 0, 0, 92, 40, - 0, 1, 101, 0, 0, 3, - 242, 32, 16, 0, 0, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 1, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 2, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 3, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 4, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 5, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 6, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 7, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 8, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 9, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 10, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 11, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 12, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 13, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 14, 0, - 0, 0, 101, 0, 0, 3, - 242, 32, 16, 0, 15, 0, - 0, 0, 101, 0, 0, 3, - 114, 32, 16, 0, 16, 0, - 0, 0, 101, 0, 0, 3, - 50, 32, 16, 0, 17, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 18, 0, - 0, 0, 1, 0, 0, 0, + 19, 0, 0, 0, 95, 0, + 0, 4, 66, 16, 32, 0, + 3, 0, 0, 0, 19, 0, + 0, 0, 104, 0, 0, 2, + 20, 0, 0, 0, 93, 24, + 0, 1, 143, 0, 0, 3, + 0, 0, 17, 0, 0, 0, + 0, 0, 92, 40, 0, 1, + 101, 0, 0, 3, 242, 32, + 16, 0, 0, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 1, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 2, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 3, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 4, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 5, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 6, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 7, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 8, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 9, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 10, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 11, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 12, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 13, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 14, 0, 0, 0, + 101, 0, 0, 3, 242, 32, + 16, 0, 15, 0, 0, 0, + 101, 0, 0, 3, 114, 32, + 16, 0, 16, 0, 0, 0, 103, 0, 0, 4, 242, 32, - 16, 0, 19, 0, 0, 0, - 2, 0, 0, 0, 103, 0, - 0, 4, 50, 32, 16, 0, - 20, 0, 0, 0, 2, 0, - 0, 0, 94, 0, 0, 2, - 6, 0, 0, 0, 52, 0, - 8, 9, 18, 0, 16, 0, + 16, 0, 17, 0, 0, 0, + 1, 0, 0, 0, 103, 0, + 0, 4, 242, 32, 16, 0, + 18, 0, 0, 0, 2, 0, + 0, 0, 103, 0, 0, 4, + 50, 32, 16, 0, 19, 0, + 0, 0, 2, 0, 0, 0, + 94, 0, 0, 2, 6, 0, + 0, 0, 52, 0, 8, 9, + 18, 0, 16, 0, 0, 0, + 0, 0, 42, 16, 32, 0, + 1, 0, 0, 0, 19, 0, + 0, 0, 42, 16, 32, 0, + 0, 0, 0, 0, 19, 0, + 0, 0, 52, 0, 8, 8, + 18, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 42, 16, - 32, 0, 1, 0, 0, 0, - 20, 0, 0, 0, 42, 16, - 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 52, 0, - 8, 8, 18, 0, 16, 0, + 32, 0, 2, 0, 0, 0, + 19, 0, 0, 0, 49, 0, + 8, 7, 18, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, - 42, 16, 32, 0, 2, 0, - 0, 0, 20, 0, 0, 0, - 49, 0, 8, 7, 18, 0, + 1, 64, 0, 0, 0, 0, + 0, 0, 57, 0, 120, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 17, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 17, 0, + 0, 0, 60, 0, 48, 7, + 98, 0, 16, 0, 0, 0, + 0, 0, 166, 11, 16, 0, + 1, 0, 0, 0, 6, 1, + 16, 0, 1, 0, 0, 0, + 60, 0, 16, 7, 34, 0, + 16, 0, 0, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 60, 0, + 8, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, - 0, 0, 1, 64, 0, 0, - 0, 0, 0, 0, 57, 0, - 120, 9, 242, 0, 16, 0, + 0, 0, 57, 0, 120, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 30, 32, 0, + 1, 0, 0, 0, 17, 0, + 0, 0, 70, 30, 32, 0, + 1, 0, 0, 0, 17, 0, + 0, 0, 60, 0, 48, 7, + 98, 0, 16, 0, 0, 0, + 0, 0, 166, 11, 16, 0, + 1, 0, 0, 0, 6, 1, + 16, 0, 1, 0, 0, 0, + 60, 0, 16, 7, 34, 0, + 16, 0, 0, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 60, 0, + 8, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 26, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 57, 0, 120, 9, + 242, 0, 16, 0, 1, 0, + 0, 0, 70, 30, 32, 0, + 2, 0, 0, 0, 17, 0, + 0, 0, 70, 30, 32, 0, + 2, 0, 0, 0, 17, 0, + 0, 0, 60, 0, 48, 7, + 98, 0, 16, 0, 0, 0, + 0, 0, 166, 11, 16, 0, + 1, 0, 0, 0, 6, 1, + 16, 0, 1, 0, 0, 0, + 60, 0, 16, 7, 34, 0, + 16, 0, 0, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 60, 0, + 8, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 26, 0, + 16, 0, 0, 0, 0, 0, + 10, 0, 16, 0, 0, 0, + 0, 0, 31, 0, 4, 3, + 10, 0, 16, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 21, 0, 0, 1, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 1, 0, 0, 0, 70, 30, 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 18, 0, 0, 0, 70, 30, 32, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 60, 0, - 48, 7, 98, 0, 16, 0, - 0, 0, 0, 0, 166, 11, - 16, 0, 1, 0, 0, 0, - 6, 1, 16, 0, 1, 0, - 0, 0, 60, 0, 16, 7, - 34, 0, 16, 0, 0, 0, - 0, 0, 42, 0, 16, 0, - 0, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 60, 0, 8, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 57, 0, - 120, 9, 242, 0, 16, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 1, 0, 0, 0, 70, 30, 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 1, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 18, 0, 0, 0, 70, 30, 32, 0, 1, 0, 0, 0, - 18, 0, 0, 0, 60, 0, - 48, 7, 98, 0, 16, 0, - 0, 0, 0, 0, 166, 11, - 16, 0, 1, 0, 0, 0, - 6, 1, 16, 0, 1, 0, - 0, 0, 60, 0, 16, 7, - 34, 0, 16, 0, 0, 0, - 0, 0, 42, 0, 16, 0, - 0, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 60, 0, 8, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 10, 0, 16, 0, - 0, 0, 0, 0, 57, 0, - 120, 9, 242, 0, 16, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 1, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 1, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 2, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 18, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, - 18, 0, 0, 0, 60, 0, - 48, 7, 98, 0, 16, 0, - 0, 0, 0, 0, 166, 11, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 2, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 118, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 0, + 56, 10, 114, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 32, 128, 65, 0, 0, 0, + 0, 0, 0, 0, 17, 0, + 0, 0, 70, 18, 32, 0, + 1, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 56, 10, + 114, 0, 16, 0, 1, 0, + 0, 0, 70, 18, 32, 128, + 65, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 0, 0, + 70, 18, 32, 0, 2, 0, + 0, 0, 17, 0, 0, 0, + 0, 0, 56, 10, 114, 0, + 16, 0, 2, 0, 0, 0, + 70, 18, 32, 128, 65, 0, + 0, 0, 1, 0, 0, 0, + 17, 0, 0, 0, 70, 18, + 32, 0, 2, 0, 0, 0, + 17, 0, 0, 0, 16, 0, + 8, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 70, 2, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 0, 0, + 0, 0, 16, 0, 16, 7, + 34, 0, 16, 0, 0, 0, + 0, 0, 70, 2, 16, 0, + 1, 0, 0, 0, 70, 2, 16, 0, 1, 0, 0, 0, - 6, 1, 16, 0, 1, 0, - 0, 0, 60, 0, 16, 7, + 16, 0, 32, 7, 66, 0, + 16, 0, 0, 0, 0, 0, + 70, 2, 16, 0, 2, 0, + 0, 0, 70, 2, 16, 0, + 2, 0, 0, 0, 49, 0, + 64, 7, 130, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 42, 0, 16, 0, 0, 0, + 0, 0, 49, 0, 8, 7, + 18, 0, 16, 0, 1, 0, + 0, 0, 26, 0, 16, 0, + 0, 0, 0, 0, 42, 0, + 16, 0, 0, 0, 0, 0, + 1, 0, 64, 7, 130, 0, + 16, 0, 0, 0, 0, 0, + 58, 0, 16, 0, 0, 0, + 0, 0, 10, 0, 16, 0, + 1, 0, 0, 0, 31, 0, + 4, 3, 58, 0, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 2, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 2, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 1, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 1, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 56, 8, 114, 0, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 63, 0, 0, + 128, 191, 0, 0, 0, 0, + 18, 0, 0, 1, 49, 0, + 8, 7, 18, 0, 16, 0, + 0, 0, 0, 0, 10, 0, + 16, 0, 0, 0, 0, 0, + 26, 0, 16, 0, 0, 0, + 0, 0, 49, 0, 16, 7, 34, 0, 16, 0, 0, 0, 0, 0, 42, 0, 16, 0, 0, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, - 60, 0, 8, 7, 18, 0, + 1, 0, 8, 7, 18, 0, 16, 0, 0, 0, 0, 0, 26, 0, 16, 0, 0, 0, 0, 0, 10, 0, 16, 0, 0, 0, 0, 0, 31, 0, 4, 3, 10, 0, 16, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 21, 0, 0, 1, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 1, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 1, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 1, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 2, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 2, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 2, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 118, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 0, 0, 56, 10, 114, 0, - 16, 0, 0, 0, 0, 0, - 70, 18, 32, 128, 65, 0, - 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 70, 18, - 32, 0, 1, 0, 0, 0, - 18, 0, 0, 0, 0, 0, - 56, 10, 114, 0, 16, 0, - 1, 0, 0, 0, 70, 18, - 32, 128, 65, 0, 0, 0, - 0, 0, 0, 0, 18, 0, - 0, 0, 70, 18, 32, 0, - 2, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 56, 10, - 114, 0, 16, 0, 2, 0, - 0, 0, 70, 18, 32, 128, - 65, 0, 0, 0, 1, 0, - 0, 0, 18, 0, 0, 0, - 70, 18, 32, 0, 2, 0, - 0, 0, 18, 0, 0, 0, - 16, 0, 8, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 70, 2, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 0, 0, 0, 0, 16, 0, - 16, 7, 34, 0, 16, 0, - 0, 0, 0, 0, 70, 2, - 16, 0, 1, 0, 0, 0, - 70, 2, 16, 0, 1, 0, - 0, 0, 16, 0, 32, 7, - 66, 0, 16, 0, 0, 0, - 0, 0, 70, 2, 16, 0, - 2, 0, 0, 0, 70, 2, - 16, 0, 2, 0, 0, 0, - 49, 0, 64, 7, 130, 0, - 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 42, 0, 16, 0, - 0, 0, 0, 0, 49, 0, - 8, 7, 18, 0, 16, 0, - 1, 0, 0, 0, 26, 0, - 16, 0, 0, 0, 0, 0, - 42, 0, 16, 0, 0, 0, - 0, 0, 1, 0, 64, 7, - 130, 0, 16, 0, 0, 0, - 0, 0, 58, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 1, 0, 0, 0, - 31, 0, 4, 3, 58, 0, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 2, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 2, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 2, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 1, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 1, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 1, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 56, 8, 114, 0, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 63, - 0, 0, 128, 191, 0, 0, - 0, 0, 18, 0, 0, 1, - 49, 0, 8, 7, 18, 0, - 16, 0, 0, 0, 0, 0, - 10, 0, 16, 0, 0, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 49, 0, - 16, 7, 34, 0, 16, 0, - 0, 0, 0, 0, 42, 0, - 16, 0, 0, 0, 0, 0, - 26, 0, 16, 0, 0, 0, - 0, 0, 1, 0, 8, 7, - 18, 0, 16, 0, 0, 0, - 0, 0, 26, 0, 16, 0, - 0, 0, 0, 0, 10, 0, - 16, 0, 0, 0, 0, 0, - 31, 0, 4, 3, 10, 0, - 16, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 2, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 2, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 2, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 2, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 24, 8, 50, 0, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 191, 0, 0, 128, 63, - 0, 0, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 1, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 1, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 1, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 1, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 1, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 1, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 2, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 3, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 3, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 4, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 5, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 6, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 6, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 7, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 7, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 8, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 9, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 9, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 10, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 10, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 11, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 12, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 12, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 13, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 13, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 14, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 15, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 54, 0, 0, 6, 114, 32, - 16, 0, 16, 0, 0, 0, - 70, 18, 32, 0, 0, 0, - 0, 0, 16, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 17, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 18, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 18, 0, 0, 0, - 54, 0, 0, 6, 242, 32, - 16, 0, 19, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 54, 0, 0, 6, 50, 32, - 16, 0, 20, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 20, 0, 0, 0, - 117, 0, 0, 3, 0, 0, - 17, 0, 0, 0, 0, 0, - 54, 0, 24, 8, 50, 0, - 16, 0, 0, 0, 0, 0, - 2, 64, 0, 0, 0, 0, - 128, 63, 0, 0, 128, 191, - 0, 0, 0, 0, 0, 0, - 0, 0, 21, 0, 0, 1, - 54, 0, 32, 5, 66, 0, - 16, 0, 0, 0, 0, 0, - 1, 64, 0, 0, 0, 0, - 128, 63, 21, 0, 0, 1, - 56, 0, 0, 8, 242, 0, - 16, 0, 1, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 1, 0, - 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 70, 14, - 16, 0, 1, 0, 0, 0, - 50, 0, 0, 10, 242, 0, - 16, 0, 1, 0, 0, 0, - 86, 5, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 70, 14, 16, 0, - 1, 0, 0, 0, 56, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 2, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 2, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 2, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 24, 8, 50, 0, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 191, + 0, 0, 128, 63, 0, 0, + 0, 0, 0, 0, 0, 0, + 18, 0, 0, 1, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 1, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 1, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 1, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 2, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 3, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 4, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 5, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 6, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 7, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 8, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 9, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 10, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 11, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 12, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 13, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 14, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 14, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 15, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 54, 0, + 0, 6, 114, 32, 16, 0, + 16, 0, 0, 0, 70, 18, + 32, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 17, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 54, 0, + 0, 6, 242, 32, 16, 0, + 18, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 54, 0, + 0, 6, 50, 32, 16, 0, + 19, 0, 0, 0, 70, 16, + 32, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 117, 0, + 0, 3, 0, 0, 17, 0, + 0, 0, 0, 0, 54, 0, + 24, 8, 50, 0, 16, 0, + 0, 0, 0, 0, 2, 64, + 0, 0, 0, 0, 128, 63, + 0, 0, 128, 191, 0, 0, + 0, 0, 0, 0, 0, 0, + 21, 0, 0, 1, 54, 0, + 32, 5, 66, 0, 16, 0, + 0, 0, 0, 0, 1, 64, + 0, 0, 0, 0, 128, 63, + 21, 0, 0, 1, 56, 0, 0, 8, 242, 0, 16, 0, - 2, 0, 0, 0, 6, 0, + 1, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, - 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 2, 0, 0, 0, + 16, 0, 1, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 70, 14, 16, 0, - 2, 0, 0, 0, 50, 0, + 1, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, - 2, 0, 0, 0, 86, 5, + 1, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 70, 14, 16, 0, 1, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 2, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 1, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 2, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 0, 0, 0, 0, 1, 0, 0, 0, 70, 14, 16, 0, 2, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 3, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 1, 0, 0, 0, - 2, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 3, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 70, 14, 16, 0, 3, 0, 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 3, 0, + 242, 0, 16, 0, 2, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, + 1, 0, 0, 0, 70, 14, + 16, 0, 2, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 3, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 32, 0, + 1, 0, 0, 0, 2, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 3, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, 2, 0, 0, 0, 70, 14, 16, 0, 3, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 4, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 4, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 70, 14, - 16, 0, 4, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 4, 0, 0, 0, + 16, 0, 3, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 3, 0, + 2, 0, 0, 0, 2, 0, 0, 0, 70, 14, 16, 0, - 4, 0, 0, 0, 56, 0, + 3, 0, 0, 0, 56, 0, 0, 8, 242, 0, 16, 0, - 5, 0, 0, 0, 6, 0, + 4, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, - 0, 0, 4, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 5, 0, 0, 0, + 16, 0, 4, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 3, 0, 0, 0, 70, 14, 16, 0, - 5, 0, 0, 0, 50, 0, + 4, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, - 5, 0, 0, 0, 86, 5, + 4, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, + 0, 0, 3, 0, 0, 0, + 70, 14, 16, 0, 4, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 5, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 4, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 5, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 0, 0, 0, 0, 4, 0, 0, 0, 70, 14, 16, 0, 5, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 6, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 1, 0, 0, 0, - 5, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 6, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 5, 0, 0, 0, - 70, 14, 16, 0, 6, 0, 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 6, 0, + 242, 0, 16, 0, 5, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, + 4, 0, 0, 0, 70, 14, + 16, 0, 5, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 6, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 32, 0, + 1, 0, 0, 0, 5, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 6, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, 5, 0, 0, 0, 70, 14, 16, 0, 6, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 7, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 6, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 7, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 70, 14, - 16, 0, 7, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 7, 0, 0, 0, + 16, 0, 6, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 6, 0, + 2, 0, 0, 0, 5, 0, 0, 0, 70, 14, 16, 0, - 7, 0, 0, 0, 56, 0, + 6, 0, 0, 0, 56, 0, 0, 8, 242, 0, 16, 0, - 8, 0, 0, 0, 6, 0, + 7, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, - 0, 0, 7, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 8, 0, 0, 0, + 16, 0, 7, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 70, 14, 16, 0, - 8, 0, 0, 0, 50, 0, + 7, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, - 8, 0, 0, 0, 86, 5, + 7, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, + 0, 0, 6, 0, 0, 0, + 70, 14, 16, 0, 7, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 8, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 7, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 8, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 0, 0, 0, 0, 7, 0, 0, 0, 70, 14, 16, 0, 8, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 9, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 9, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 8, 0, 0, 0, - 70, 14, 16, 0, 9, 0, 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 9, 0, + 242, 0, 16, 0, 8, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, + 7, 0, 0, 0, 70, 14, + 16, 0, 8, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 9, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 32, 0, + 1, 0, 0, 0, 8, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 9, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, 8, 0, 0, 0, 70, 14, 16, 0, 9, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 10, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 9, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 10, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 9, 0, 0, 0, 70, 14, - 16, 0, 10, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 10, 0, 0, 0, + 16, 0, 9, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 9, 0, + 2, 0, 0, 0, 8, 0, 0, 0, 70, 14, 16, 0, - 10, 0, 0, 0, 56, 0, + 9, 0, 0, 0, 56, 0, 0, 8, 242, 0, 16, 0, - 11, 0, 0, 0, 6, 0, + 10, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, - 0, 0, 10, 0, 0, 0, + 0, 0, 9, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 11, 0, 0, 0, + 16, 0, 10, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 10, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 70, 14, 16, 0, - 11, 0, 0, 0, 50, 0, + 10, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, - 11, 0, 0, 0, 86, 5, + 10, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, + 0, 0, 9, 0, 0, 0, + 70, 14, 16, 0, 10, 0, + 0, 0, 56, 0, 0, 8, + 242, 0, 16, 0, 11, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 1, 0, 0, 0, + 10, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 11, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 0, 0, 0, 0, 10, 0, 0, 0, 70, 14, 16, 0, 11, 0, - 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 12, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 1, 0, 0, 0, - 11, 0, 0, 0, 50, 0, - 0, 10, 242, 0, 16, 0, - 12, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 30, 32, 0, 0, 0, - 0, 0, 11, 0, 0, 0, - 70, 14, 16, 0, 12, 0, 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 12, 0, + 242, 0, 16, 0, 11, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, + 10, 0, 0, 0, 70, 14, + 16, 0, 11, 0, 0, 0, + 56, 0, 0, 8, 242, 0, + 16, 0, 12, 0, 0, 0, + 6, 0, 16, 0, 0, 0, + 0, 0, 70, 30, 32, 0, + 1, 0, 0, 0, 11, 0, + 0, 0, 50, 0, 0, 10, + 242, 0, 16, 0, 12, 0, + 0, 0, 166, 10, 16, 0, + 0, 0, 0, 0, 70, 30, + 32, 0, 0, 0, 0, 0, 11, 0, 0, 0, 70, 14, 16, 0, 12, 0, 0, 0, - 56, 0, 0, 8, 242, 0, - 16, 0, 13, 0, 0, 0, - 6, 0, 16, 0, 0, 0, - 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 12, 0, - 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 13, 0, - 0, 0, 166, 10, 16, 0, - 0, 0, 0, 0, 70, 30, - 32, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 70, 14, - 16, 0, 13, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 13, 0, 0, 0, + 16, 0, 12, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 12, 0, + 2, 0, 0, 0, 11, 0, 0, 0, 70, 14, 16, 0, - 13, 0, 0, 0, 56, 0, + 12, 0, 0, 0, 56, 0, 0, 8, 242, 0, 16, 0, - 14, 0, 0, 0, 6, 0, + 13, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, - 0, 0, 13, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 14, 0, 0, 0, + 16, 0, 13, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 12, 0, 0, 0, 70, 14, 16, 0, - 14, 0, 0, 0, 50, 0, + 13, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, - 14, 0, 0, 0, 86, 5, + 13, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, - 0, 0, 13, 0, 0, 0, - 70, 14, 16, 0, 14, 0, + 0, 0, 12, 0, 0, 0, + 70, 14, 16, 0, 13, 0, 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 15, 0, + 242, 0, 16, 0, 14, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, 0, 0, - 14, 0, 0, 0, 50, 0, + 13, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, - 15, 0, 0, 0, 166, 10, + 14, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 0, 0, - 0, 0, 14, 0, 0, 0, - 70, 14, 16, 0, 15, 0, + 0, 0, 13, 0, 0, 0, + 70, 14, 16, 0, 14, 0, 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 15, 0, + 242, 0, 16, 0, 14, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, - 14, 0, 0, 0, 70, 14, - 16, 0, 15, 0, 0, 0, + 13, 0, 0, 0, 70, 14, + 16, 0, 14, 0, 0, 0, 56, 0, 0, 8, 242, 0, - 16, 0, 16, 0, 0, 0, + 16, 0, 15, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 1, 0, 0, 0, 15, 0, + 1, 0, 0, 0, 14, 0, 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 16, 0, + 242, 0, 16, 0, 15, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 70, 14, - 16, 0, 16, 0, 0, 0, + 14, 0, 0, 0, 70, 14, + 16, 0, 15, 0, 0, 0, 50, 0, 0, 10, 242, 0, - 16, 0, 16, 0, 0, 0, + 16, 0, 15, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 2, 0, 0, 0, 15, 0, + 2, 0, 0, 0, 14, 0, 0, 0, 70, 14, 16, 0, - 16, 0, 0, 0, 56, 0, - 0, 8, 114, 0, 16, 0, - 17, 0, 0, 0, 6, 0, + 15, 0, 0, 0, 56, 0, + 0, 8, 242, 0, 16, 0, + 16, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, - 70, 18, 32, 0, 1, 0, - 0, 0, 16, 0, 0, 0, - 50, 0, 0, 10, 114, 0, - 16, 0, 17, 0, 0, 0, - 166, 10, 16, 0, 0, 0, - 0, 0, 70, 18, 32, 0, - 0, 0, 0, 0, 16, 0, - 0, 0, 70, 2, 16, 0, - 17, 0, 0, 0, 50, 0, - 0, 10, 114, 0, 16, 0, - 17, 0, 0, 0, 86, 5, - 16, 0, 0, 0, 0, 0, - 70, 18, 32, 0, 2, 0, - 0, 0, 16, 0, 0, 0, - 70, 2, 16, 0, 17, 0, - 0, 0, 56, 0, 0, 8, - 50, 0, 16, 0, 18, 0, - 0, 0, 6, 0, 16, 0, - 0, 0, 0, 0, 70, 16, - 32, 0, 1, 0, 0, 0, - 17, 0, 0, 0, 50, 0, - 0, 10, 50, 0, 16, 0, - 18, 0, 0, 0, 166, 10, - 16, 0, 0, 0, 0, 0, - 70, 16, 32, 0, 0, 0, - 0, 0, 17, 0, 0, 0, - 70, 0, 16, 0, 18, 0, - 0, 0, 50, 0, 0, 10, - 50, 0, 16, 0, 18, 0, - 0, 0, 86, 5, 16, 0, - 0, 0, 0, 0, 70, 16, - 32, 0, 2, 0, 0, 0, - 17, 0, 0, 0, 70, 0, - 16, 0, 18, 0, 0, 0, - 56, 0, 120, 8, 242, 0, - 16, 0, 19, 0, 0, 0, + 70, 30, 32, 0, 1, 0, + 0, 0, 15, 0, 0, 0, + 50, 0, 0, 10, 242, 0, + 16, 0, 16, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, - 0, 0, 0, 0, 18, 0, + 0, 0, 0, 0, 15, 0, + 0, 0, 70, 14, 16, 0, + 16, 0, 0, 0, 50, 0, + 0, 10, 242, 0, 16, 0, + 16, 0, 0, 0, 86, 5, + 16, 0, 0, 0, 0, 0, + 70, 30, 32, 0, 2, 0, + 0, 0, 15, 0, 0, 0, + 70, 14, 16, 0, 16, 0, + 0, 0, 56, 0, 0, 8, + 114, 0, 16, 0, 17, 0, + 0, 0, 6, 0, 16, 0, + 0, 0, 0, 0, 70, 18, + 32, 0, 1, 0, 0, 0, + 16, 0, 0, 0, 50, 0, + 0, 10, 114, 0, 16, 0, + 17, 0, 0, 0, 166, 10, + 16, 0, 0, 0, 0, 0, + 70, 18, 32, 0, 0, 0, + 0, 0, 16, 0, 0, 0, + 70, 2, 16, 0, 17, 0, + 0, 0, 50, 0, 0, 10, + 114, 0, 16, 0, 17, 0, + 0, 0, 86, 5, 16, 0, + 0, 0, 0, 0, 70, 18, + 32, 0, 2, 0, 0, 0, + 16, 0, 0, 0, 70, 2, + 16, 0, 17, 0, 0, 0, + 56, 0, 120, 8, 242, 0, + 16, 0, 18, 0, 0, 0, + 166, 10, 16, 0, 0, 0, + 0, 0, 70, 30, 32, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 56, 0, 120, 8, - 242, 0, 16, 0, 20, 0, + 242, 0, 16, 0, 19, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, 0, 0, - 18, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 120, 7, 242, 0, 16, 0, - 19, 0, 0, 0, 70, 14, - 16, 0, 19, 0, 0, 0, - 70, 14, 16, 0, 20, 0, + 18, 0, 0, 0, 70, 14, + 16, 0, 18, 0, 0, 0, + 70, 14, 16, 0, 19, 0, 0, 0, 56, 0, 120, 8, - 242, 0, 16, 0, 20, 0, + 242, 0, 16, 0, 19, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, - 18, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 120, 7, 242, 0, 16, 0, - 19, 0, 0, 0, 70, 14, - 16, 0, 19, 0, 0, 0, - 70, 14, 16, 0, 20, 0, + 18, 0, 0, 0, 70, 14, + 16, 0, 18, 0, 0, 0, + 70, 14, 16, 0, 19, 0, 0, 0, 56, 0, 0, 8, - 242, 0, 16, 0, 20, 0, + 242, 0, 16, 0, 19, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 1, 0, 0, 0, - 19, 0, 0, 0, 50, 0, + 18, 0, 0, 0, 50, 0, 0, 10, 242, 0, 16, 0, - 20, 0, 0, 0, 166, 10, + 19, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 0, 0, - 0, 0, 19, 0, 0, 0, - 70, 14, 16, 0, 20, 0, + 0, 0, 18, 0, 0, 0, + 70, 14, 16, 0, 19, 0, 0, 0, 50, 0, 0, 10, - 242, 0, 16, 0, 20, 0, + 242, 0, 16, 0, 19, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 30, 32, 0, 2, 0, 0, 0, - 19, 0, 0, 0, 70, 14, - 16, 0, 20, 0, 0, 0, + 18, 0, 0, 0, 70, 14, + 16, 0, 19, 0, 0, 0, 56, 0, 0, 8, 146, 0, 16, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, 6, 20, 32, 0, - 1, 0, 0, 0, 20, 0, + 1, 0, 0, 0, 19, 0, 0, 0, 50, 0, 0, 10, 82, 0, 16, 0, 0, 0, 0, 0, 166, 10, 16, 0, 0, 0, 0, 0, 6, 17, 32, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 6, 3, + 19, 0, 0, 0, 6, 3, 16, 0, 0, 0, 0, 0, 50, 0, 0, 10, 50, 0, 16, 0, 0, 0, 0, 0, 86, 5, 16, 0, 0, 0, 0, 0, 70, 16, 32, 0, - 2, 0, 0, 0, 20, 0, + 2, 0, 0, 0, 19, 0, 0, 0, 134, 0, 16, 0, 0, 0, 0, 0, 54, 0, 0, 5, 242, 32, 16, 0, @@ -2187,48 +2102,44 @@ const BYTE primitive_rectangle_list_gs[] = 16, 0, 16, 0, 0, 0, 70, 2, 16, 0, 17, 0, 0, 0, 54, 0, 0, 5, - 50, 32, 16, 0, 17, 0, - 0, 0, 70, 0, 16, 0, + 242, 32, 16, 0, 17, 0, + 0, 0, 70, 14, 16, 0, 18, 0, 0, 0, 54, 0, 0, 5, 242, 32, 16, 0, 18, 0, 0, 0, 70, 14, 16, 0, 19, 0, 0, 0, - 54, 0, 0, 5, 242, 32, + 54, 0, 0, 5, 50, 32, 16, 0, 19, 0, 0, 0, - 70, 14, 16, 0, 20, 0, - 0, 0, 54, 0, 0, 5, - 50, 32, 16, 0, 20, 0, - 0, 0, 70, 0, 16, 0, - 0, 0, 0, 0, 117, 0, - 0, 3, 0, 0, 17, 0, - 0, 0, 0, 0, 118, 0, - 0, 3, 0, 0, 17, 0, - 0, 0, 0, 0, 62, 0, - 0, 1, 83, 84, 65, 84, - 148, 0, 0, 0, 72, 1, - 0, 0, 21, 0, 0, 0, - 0, 0, 0, 0, 43, 0, - 0, 0, 81, 0, 0, 0, - 0, 0, 0, 0, 11, 0, - 0, 0, 4, 0, 0, 0, - 3, 0, 0, 0, 0, 0, + 70, 0, 16, 0, 0, 0, + 0, 0, 117, 0, 0, 3, + 0, 0, 17, 0, 0, 0, + 0, 0, 118, 0, 0, 3, + 0, 0, 17, 0, 0, 0, + 0, 0, 62, 0, 0, 1, + 83, 84, 65, 84, 148, 0, + 0, 0, 59, 1, 0, 0, + 20, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, + 78, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, + 4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, - 0, 0, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, - 0, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 3, 0, + 0, 0, 5, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0 + 0, 0, 0, 0, 0, 0 }; diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h index e57e7bc22..78181000d 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_adaptive_vs.h @@ -30,10 +30,9 @@ // uint xe_alpha_to_mask; // Offset: 232 Size: 4 [unused] // uint xe_edram_pitch_tiles; // Offset: 236 Size: 4 [unused] // float4 xe_color_exp_bias; // Offset: 240 Size: 16 [unused] -// float2 xe_edram_depth_range; // Offset: 256 Size: 8 [unused] -// float2 xe_edram_poly_offset_front; // Offset: 264 Size: 8 [unused] -// float2 xe_edram_poly_offset_back; // Offset: 272 Size: 8 [unused] -// uint xe_edram_depth_base_dwords; // Offset: 280 Size: 4 [unused] +// float2 xe_edram_poly_offset_front; // Offset: 256 Size: 8 [unused] +// float2 xe_edram_poly_offset_back; // Offset: 264 Size: 8 [unused] +// uint xe_edram_depth_base_dwords; // Offset: 272 Size: 4 [unused] // uint4 xe_edram_stencil[2]; // Offset: 288 Size: 32 [unused] // uint4 xe_edram_rt_base_dwords_scaled;// Offset: 320 Size: 16 [unused] // uint4 xe_edram_rt_format_flags; // Offset: 336 Size: 16 [unused] @@ -95,21 +94,21 @@ ret const BYTE tessellation_adaptive_vs[] = { - 68, 88, 66, 67, 212, 38, - 27, 180, 73, 71, 102, 38, - 34, 58, 82, 155, 103, 153, - 64, 157, 1, 0, 0, 0, - 236, 13, 0, 0, 5, 0, + 68, 88, 66, 67, 70, 199, + 99, 28, 252, 60, 232, 131, + 32, 27, 138, 155, 32, 225, + 78, 128, 1, 0, 0, 0, + 176, 13, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 224, 10, 0, 0, 20, 11, - 0, 0, 76, 11, 0, 0, - 80, 13, 0, 0, 82, 68, - 69, 70, 164, 10, 0, 0, + 164, 10, 0, 0, 216, 10, + 0, 0, 16, 11, 0, 0, + 20, 13, 0, 0, 82, 68, + 69, 70, 104, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 254, 255, 0, 5, 4, 0, - 122, 10, 0, 0, 19, 19, + 62, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, @@ -125,389 +124,379 @@ const BYTE tessellation_adaptive_vs[] = 95, 115, 121, 115, 116, 101, 109, 95, 99, 98, 117, 102, 102, 101, 114, 0, 171, 171, - 100, 0, 0, 0, 33, 0, + 100, 0, 0, 0, 32, 0, 0, 0, 144, 0, 0, 0, 224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 184, 5, 0, 0, 0, 0, + 144, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 236, 5, + 0, 0, 0, 0, 196, 5, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 2, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 52, 6, 0, 0, + 0, 0, 12, 6, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 79, 6, 0, 0, 16, 0, + 39, 6, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 200, 5, + 2, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 102, 6, + 0, 0, 0, 0, 62, 6, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 125, 6, 0, 0, + 0, 0, 85, 6, 0, 0, 24, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 156, 6, 0, 0, 0, 0, + 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 192, 6, 0, 0, 32, 0, + 152, 6, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 0, 220, 6, + 0, 0, 0, 0, 180, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 216, 6, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 0, 20, 7, 0, 0, + 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 56, 7, 0, 0, + 0, 0, 16, 7, 0, 0, 140, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 80, 7, 0, 0, 0, 0, + 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 116, 7, 0, 0, 144, 0, + 76, 7, 0, 0, 144, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 20, 7, + 0, 0, 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 130, 7, + 0, 0, 0, 0, 90, 7, 0, 0, 156, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 80, 7, 0, 0, + 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 146, 7, 0, 0, + 0, 0, 106, 7, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 168, 7, 0, 0, 168, 0, + 128, 7, 0, 0, 168, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 191, 7, + 0, 0, 0, 0, 151, 7, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 224, 7, 0, 0, + 0, 0, 184, 7, 0, 0, 180, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 240, 7, 0, 0, 184, 0, + 200, 7, 0, 0, 184, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 156, 6, + 0, 0, 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 5, 8, + 0, 0, 0, 0, 221, 7, 0, 0, 192, 0, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 40, 8, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 76, 8, 0, 0, + 0, 0, 36, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 97, 8, 0, 0, 228, 0, + 57, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 121, 8, + 0, 0, 0, 0, 81, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 138, 8, 0, 0, + 0, 0, 98, 8, 0, 0, 236, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 159, 8, 0, 0, 240, 0, + 119, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 8, + 0, 0, 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 176, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 237, 8, 0, 0, + 0, 0, 203, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 8, 9, 0, 0, 16, 1, - 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 229, 8, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 34, 9, - 0, 0, 24, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 0, 0, 0, 9, + 0, 0, 32, 1, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 20, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 61, 9, 0, 0, - 32, 1, 0, 0, 32, 0, + 0, 0, 56, 9, 0, 0, + 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 80, 9, 0, 0, 0, 0, + 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 116, 9, 0, 0, 64, 1, + 124, 9, 0, 0, 80, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 148, 9, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 184, 9, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 0, 0, 149, 9, + 0, 0, 96, 1, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 168, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 209, 9, 0, 0, - 96, 1, 0, 0, 64, 0, + 0, 0, 204, 9, 0, 0, + 160, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 228, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 8, 10, 0, 0, 160, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 32, 10, + 8, 10, 0, 0, 192, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 68, 10, - 0, 0, 192, 1, 0, 0, + 0, 0, 0, 0, 38, 10, + 0, 0, 208, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 98, 10, 0, 0, - 208, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 180, 8, 0, 0, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 120, 101, 95, 102, 108, 97, - 103, 115, 0, 100, 119, 111, - 114, 100, 0, 171, 0, 0, - 19, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 193, 5, 0, 0, 120, 101, - 95, 116, 101, 115, 115, 101, - 108, 108, 97, 116, 105, 111, - 110, 95, 102, 97, 99, 116, - 111, 114, 95, 114, 97, 110, - 103, 101, 0, 102, 108, 111, - 97, 116, 50, 0, 1, 0, - 3, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 9, 6, 0, 0, 120, 101, - 95, 108, 105, 110, 101, 95, - 108, 111, 111, 112, 95, 99, - 108, 111, 115, 105, 110, 103, - 95, 105, 110, 100, 101, 120, - 0, 120, 101, 95, 118, 101, - 114, 116, 101, 120, 95, 105, - 110, 100, 101, 120, 95, 101, - 110, 100, 105, 97, 110, 0, - 120, 101, 95, 118, 101, 114, - 116, 101, 120, 95, 105, 110, - 100, 101, 120, 95, 111, 102, - 102, 115, 101, 116, 0, 120, - 101, 95, 118, 101, 114, 116, - 101, 120, 95, 105, 110, 100, - 101, 120, 95, 109, 105, 110, - 95, 109, 97, 120, 0, 117, - 105, 110, 116, 50, 0, 171, - 1, 0, 19, 0, 1, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 149, 6, 0, 0, - 120, 101, 95, 117, 115, 101, - 114, 95, 99, 108, 105, 112, - 95, 112, 108, 97, 110, 101, - 115, 0, 102, 108, 111, 97, - 116, 52, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 212, 6, 0, 0, 120, 101, - 95, 110, 100, 99, 95, 115, - 99, 97, 108, 101, 0, 102, - 108, 111, 97, 116, 51, 0, - 1, 0, 3, 0, 1, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 13, 7, 0, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 120, 0, 102, 108, - 111, 97, 116, 0, 171, 171, - 0, 0, 3, 0, 1, 0, + 0, 0, 120, 101, 95, 102, + 108, 97, 103, 115, 0, 100, + 119, 111, 114, 100, 0, 171, + 0, 0, 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 7, 0, 0, + 0, 0, 153, 5, 0, 0, + 120, 101, 95, 116, 101, 115, + 115, 101, 108, 108, 97, 116, + 105, 111, 110, 95, 102, 97, + 99, 116, 111, 114, 95, 114, + 97, 110, 103, 101, 0, 102, + 108, 111, 97, 116, 50, 0, + 1, 0, 3, 0, 1, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 225, 5, 0, 0, + 120, 101, 95, 108, 105, 110, + 101, 95, 108, 111, 111, 112, + 95, 99, 108, 111, 115, 105, + 110, 103, 95, 105, 110, 100, + 101, 120, 0, 120, 101, 95, + 118, 101, 114, 116, 101, 120, + 95, 105, 110, 100, 101, 120, + 95, 101, 110, 100, 105, 97, + 110, 0, 120, 101, 95, 118, + 101, 114, 116, 101, 120, 95, + 105, 110, 100, 101, 120, 95, + 111, 102, 102, 115, 101, 116, + 0, 120, 101, 95, 118, 101, + 114, 116, 101, 120, 95, 105, + 110, 100, 101, 120, 95, 109, + 105, 110, 95, 109, 97, 120, + 0, 117, 105, 110, 116, 50, + 0, 171, 1, 0, 19, 0, + 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 6, + 0, 0, 120, 101, 95, 117, + 115, 101, 114, 95, 99, 108, + 105, 112, 95, 112, 108, 97, + 110, 101, 115, 0, 102, 108, + 111, 97, 116, 52, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 172, 6, 0, 0, 120, 101, 95, 110, 100, 99, - 95, 111, 102, 102, 115, 101, - 116, 0, 120, 101, 95, 112, + 95, 115, 99, 97, 108, 101, + 0, 102, 108, 111, 97, 116, + 51, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 6, + 0, 0, 120, 101, 95, 112, 111, 105, 110, 116, 95, 115, - 105, 122, 101, 95, 121, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 109, 105, 110, 95, - 109, 97, 120, 0, 120, 101, + 105, 122, 101, 95, 120, 0, + 102, 108, 111, 97, 116, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 7, + 0, 0, 120, 101, 95, 110, + 100, 99, 95, 111, 102, 102, + 115, 101, 116, 0, 120, 101, 95, 112, 111, 105, 110, 116, - 95, 115, 99, 114, 101, 101, - 110, 95, 116, 111, 95, 110, - 100, 99, 0, 120, 101, 95, - 105, 110, 116, 101, 114, 112, - 111, 108, 97, 116, 111, 114, - 95, 115, 97, 109, 112, 108, - 105, 110, 103, 95, 112, 97, - 116, 116, 101, 114, 110, 0, - 120, 101, 95, 112, 115, 95, - 112, 97, 114, 97, 109, 95, - 103, 101, 110, 0, 120, 101, - 95, 115, 97, 109, 112, 108, - 101, 95, 99, 111, 117, 110, - 116, 95, 108, 111, 103, 50, - 0, 120, 101, 95, 116, 101, - 120, 116, 117, 114, 101, 95, - 115, 119, 105, 122, 122, 108, - 101, 100, 95, 115, 105, 103, - 110, 115, 0, 117, 105, 110, - 116, 52, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, - 120, 101, 95, 116, 101, 120, - 116, 117, 114, 101, 115, 95, - 114, 101, 115, 111, 108, 118, - 101, 100, 0, 120, 101, 95, - 97, 108, 112, 104, 97, 95, - 116, 101, 115, 116, 95, 114, - 101, 102, 101, 114, 101, 110, - 99, 101, 0, 120, 101, 95, - 97, 108, 112, 104, 97, 95, - 116, 111, 95, 109, 97, 115, - 107, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 105, 116, 99, 104, 95, 116, - 105, 108, 101, 115, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 6, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 100, - 101, 112, 116, 104, 95, 114, - 97, 110, 103, 101, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 112, 111, 108, 121, - 95, 111, 102, 102, 115, 101, - 116, 95, 102, 114, 111, 110, - 116, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 111, 108, 121, 95, 111, 102, - 102, 115, 101, 116, 95, 98, - 97, 99, 107, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 100, 101, 112, 116, 104, - 95, 98, 97, 115, 101, 95, - 100, 119, 111, 114, 100, 115, - 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 115, 116, - 101, 110, 99, 105, 108, 0, + 95, 115, 105, 122, 101, 95, + 121, 0, 120, 101, 95, 112, + 111, 105, 110, 116, 95, 115, + 105, 122, 101, 95, 109, 105, + 110, 95, 109, 97, 120, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 99, 114, + 101, 101, 110, 95, 116, 111, + 95, 110, 100, 99, 0, 120, + 101, 95, 105, 110, 116, 101, + 114, 112, 111, 108, 97, 116, + 111, 114, 95, 115, 97, 109, + 112, 108, 105, 110, 103, 95, + 112, 97, 116, 116, 101, 114, + 110, 0, 120, 101, 95, 112, + 115, 95, 112, 97, 114, 97, + 109, 95, 103, 101, 110, 0, + 120, 101, 95, 115, 97, 109, + 112, 108, 101, 95, 99, 111, + 117, 110, 116, 95, 108, 111, + 103, 50, 0, 120, 101, 95, + 116, 101, 120, 116, 117, 114, + 101, 95, 115, 119, 105, 122, + 122, 108, 101, 100, 95, 115, + 105, 103, 110, 115, 0, 117, + 105, 110, 116, 52, 0, 171, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 8, + 0, 0, 0, 0, 247, 7, + 0, 0, 120, 101, 95, 116, + 101, 120, 116, 117, 114, 101, + 115, 95, 114, 101, 115, 111, + 108, 118, 101, 100, 0, 120, + 101, 95, 97, 108, 112, 104, + 97, 95, 116, 101, 115, 116, + 95, 114, 101, 102, 101, 114, + 101, 110, 99, 101, 0, 120, + 101, 95, 97, 108, 112, 104, + 97, 95, 116, 111, 95, 109, + 97, 115, 107, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 105, 116, 99, 104, + 95, 116, 105, 108, 101, 115, + 0, 120, 101, 95, 99, 111, + 108, 111, 114, 95, 101, 120, + 112, 95, 98, 105, 97, 115, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 172, 6, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 111, 108, 121, 95, + 111, 102, 102, 115, 101, 116, + 95, 102, 114, 111, 110, 116, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 112, 111, + 108, 121, 95, 111, 102, 102, + 115, 101, 116, 95, 98, 97, + 99, 107, 0, 120, 101, 95, + 101, 100, 114, 97, 109, 95, + 100, 101, 112, 116, 104, 95, + 98, 97, 115, 101, 95, 100, + 119, 111, 114, 100, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 115, 116, 101, + 110, 99, 105, 108, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 97, 115, 101, @@ -519,7 +508,7 @@ const BYTE tessellation_adaptive_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, + 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 102, 111, 114, 109, 97, 116, 95, 102, @@ -532,7 +521,7 @@ const BYTE tessellation_adaptive_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 212, 6, 0, 0, + 0, 0, 172, 6, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 107, 101, 101, 112, 95, 109, @@ -542,7 +531,7 @@ const BYTE tessellation_adaptive_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, + 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 108, 101, 110, 100, 95, diff --git a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h index bcf1b2115..a85652c38 100644 --- a/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h +++ b/src/xenia/gpu/shaders/bytecode/d3d12_5_1/tessellation_indexed_vs.h @@ -30,10 +30,9 @@ // uint xe_alpha_to_mask; // Offset: 232 Size: 4 [unused] // uint xe_edram_pitch_tiles; // Offset: 236 Size: 4 [unused] // float4 xe_color_exp_bias; // Offset: 240 Size: 16 [unused] -// float2 xe_edram_depth_range; // Offset: 256 Size: 8 [unused] -// float2 xe_edram_poly_offset_front; // Offset: 264 Size: 8 [unused] -// float2 xe_edram_poly_offset_back; // Offset: 272 Size: 8 [unused] -// uint xe_edram_depth_base_dwords; // Offset: 280 Size: 4 [unused] +// float2 xe_edram_poly_offset_front; // Offset: 256 Size: 8 [unused] +// float2 xe_edram_poly_offset_back; // Offset: 264 Size: 8 [unused] +// uint xe_edram_depth_base_dwords; // Offset: 272 Size: 4 [unused] // uint4 xe_edram_stencil[2]; // Offset: 288 Size: 32 [unused] // uint4 xe_edram_rt_base_dwords_scaled;// Offset: 320 Size: 16 [unused] // uint4 xe_edram_rt_format_flags; // Offset: 336 Size: 16 [unused] @@ -97,21 +96,21 @@ ret const BYTE tessellation_indexed_vs[] = { - 68, 88, 66, 67, 241, 20, - 94, 178, 125, 245, 22, 110, - 244, 206, 169, 6, 26, 73, - 7, 98, 1, 0, 0, 0, - 32, 14, 0, 0, 5, 0, + 68, 88, 66, 67, 60, 224, + 57, 68, 167, 116, 52, 132, + 26, 150, 9, 56, 212, 153, + 92, 66, 1, 0, 0, 0, + 228, 13, 0, 0, 5, 0, 0, 0, 52, 0, 0, 0, - 224, 10, 0, 0, 20, 11, - 0, 0, 72, 11, 0, 0, - 132, 13, 0, 0, 82, 68, - 69, 70, 164, 10, 0, 0, + 164, 10, 0, 0, 216, 10, + 0, 0, 12, 11, 0, 0, + 72, 13, 0, 0, 82, 68, + 69, 70, 104, 10, 0, 0, 1, 0, 0, 0, 120, 0, 0, 0, 1, 0, 0, 0, 60, 0, 0, 0, 1, 5, 254, 255, 0, 5, 4, 0, - 122, 10, 0, 0, 19, 19, + 62, 10, 0, 0, 19, 19, 68, 37, 60, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, @@ -127,389 +126,379 @@ const BYTE tessellation_indexed_vs[] = 95, 115, 121, 115, 116, 101, 109, 95, 99, 98, 117, 102, 102, 101, 114, 0, 171, 171, - 100, 0, 0, 0, 33, 0, + 100, 0, 0, 0, 32, 0, 0, 0, 144, 0, 0, 0, 224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 184, 5, 0, 0, 0, 0, + 144, 5, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 200, 5, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 236, 5, + 0, 0, 0, 0, 196, 5, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 52, 6, 0, 0, + 0, 0, 12, 6, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 79, 6, 0, 0, 16, 0, + 39, 6, 0, 0, 16, 0, 0, 0, 4, 0, 0, 0, - 2, 0, 0, 0, 200, 5, + 2, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 102, 6, + 0, 0, 0, 0, 62, 6, 0, 0, 20, 0, 0, 0, 4, 0, 0, 0, 2, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 125, 6, 0, 0, + 0, 0, 85, 6, 0, 0, 24, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, - 156, 6, 0, 0, 0, 0, + 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 192, 6, 0, 0, 32, 0, + 152, 6, 0, 0, 32, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 0, 220, 6, + 0, 0, 0, 0, 180, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 216, 6, 0, 0, 128, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 0, 20, 7, 0, 0, + 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 56, 7, 0, 0, + 0, 0, 16, 7, 0, 0, 140, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 80, 7, 0, 0, 0, 0, + 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 116, 7, 0, 0, 144, 0, + 76, 7, 0, 0, 144, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 20, 7, + 0, 0, 0, 0, 236, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 130, 7, + 0, 0, 0, 0, 90, 7, 0, 0, 156, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 80, 7, 0, 0, + 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 146, 7, 0, 0, + 0, 0, 106, 7, 0, 0, 160, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 168, 7, 0, 0, 168, 0, + 128, 7, 0, 0, 168, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 0, 0, 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 191, 7, + 0, 0, 0, 0, 151, 7, 0, 0, 176, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 224, 7, 0, 0, + 0, 0, 184, 7, 0, 0, 180, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 240, 7, 0, 0, 184, 0, + 200, 7, 0, 0, 184, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 156, 6, + 0, 0, 0, 0, 116, 6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 5, 8, + 0, 0, 0, 0, 221, 7, 0, 0, 192, 0, 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 40, 8, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 76, 8, 0, 0, + 0, 0, 36, 8, 0, 0, 224, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 97, 8, 0, 0, 228, 0, + 57, 8, 0, 0, 228, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 80, 7, + 0, 0, 0, 0, 40, 7, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 121, 8, + 0, 0, 0, 0, 81, 8, 0, 0, 232, 0, 0, 0, 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 138, 8, 0, 0, + 0, 0, 98, 8, 0, 0, 236, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 200, 5, 0, 0, 0, 0, + 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 159, 8, 0, 0, 240, 0, + 119, 8, 0, 0, 240, 0, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 180, 8, + 0, 0, 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 216, 8, + 0, 0, 0, 0, 176, 8, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 16, 6, 0, 0, + 0, 0, 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 237, 8, 0, 0, + 0, 0, 203, 8, 0, 0, 8, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 16, 6, 0, 0, 0, 0, + 232, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 8, 9, 0, 0, 16, 1, - 0, 0, 8, 0, 0, 0, - 0, 0, 0, 0, 16, 6, + 229, 8, 0, 0, 16, 1, + 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 34, 9, - 0, 0, 24, 1, 0, 0, - 4, 0, 0, 0, 0, 0, - 0, 0, 200, 5, 0, 0, + 0, 0, 0, 0, 0, 9, + 0, 0, 32, 1, 0, 0, + 32, 0, 0, 0, 0, 0, + 0, 0, 20, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 61, 9, 0, 0, - 32, 1, 0, 0, 32, 0, + 0, 0, 56, 9, 0, 0, + 64, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, - 80, 9, 0, 0, 0, 0, + 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 116, 9, 0, 0, 64, 1, + 124, 9, 0, 0, 80, 1, 0, 0, 16, 0, 0, 0, - 0, 0, 0, 0, 148, 9, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 184, 9, - 0, 0, 80, 1, 0, 0, - 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 0, 0, 149, 9, + 0, 0, 96, 1, 0, 0, + 64, 0, 0, 0, 0, 0, + 0, 0, 168, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 209, 9, 0, 0, - 96, 1, 0, 0, 64, 0, + 0, 0, 204, 9, 0, 0, + 160, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 228, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, - 8, 10, 0, 0, 160, 1, - 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 32, 10, + 8, 10, 0, 0, 192, 1, + 0, 0, 16, 0, 0, 0, + 0, 0, 0, 0, 88, 9, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 68, 10, - 0, 0, 192, 1, 0, 0, + 0, 0, 0, 0, 38, 10, + 0, 0, 208, 1, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 148, 9, 0, 0, + 0, 0, 140, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, - 0, 0, 98, 10, 0, 0, - 208, 1, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, - 180, 8, 0, 0, 0, 0, - 0, 0, 255, 255, 255, 255, - 0, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 120, 101, 95, 102, 108, 97, - 103, 115, 0, 100, 119, 111, - 114, 100, 0, 171, 0, 0, - 19, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 193, 5, 0, 0, 120, 101, - 95, 116, 101, 115, 115, 101, - 108, 108, 97, 116, 105, 111, - 110, 95, 102, 97, 99, 116, - 111, 114, 95, 114, 97, 110, - 103, 101, 0, 102, 108, 111, - 97, 116, 50, 0, 1, 0, - 3, 0, 1, 0, 2, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 9, 6, 0, 0, 120, 101, - 95, 108, 105, 110, 101, 95, - 108, 111, 111, 112, 95, 99, - 108, 111, 115, 105, 110, 103, - 95, 105, 110, 100, 101, 120, - 0, 120, 101, 95, 118, 101, - 114, 116, 101, 120, 95, 105, - 110, 100, 101, 120, 95, 101, - 110, 100, 105, 97, 110, 0, - 120, 101, 95, 118, 101, 114, - 116, 101, 120, 95, 105, 110, - 100, 101, 120, 95, 111, 102, - 102, 115, 101, 116, 0, 120, - 101, 95, 118, 101, 114, 116, - 101, 120, 95, 105, 110, 100, - 101, 120, 95, 109, 105, 110, - 95, 109, 97, 120, 0, 117, - 105, 110, 116, 50, 0, 171, - 1, 0, 19, 0, 1, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 149, 6, 0, 0, - 120, 101, 95, 117, 115, 101, - 114, 95, 99, 108, 105, 112, - 95, 112, 108, 97, 110, 101, - 115, 0, 102, 108, 111, 97, - 116, 52, 0, 171, 1, 0, - 3, 0, 1, 0, 4, 0, - 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 212, 6, 0, 0, 120, 101, - 95, 110, 100, 99, 95, 115, - 99, 97, 108, 101, 0, 102, - 108, 111, 97, 116, 51, 0, - 1, 0, 3, 0, 1, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 13, 7, 0, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 120, 0, 102, 108, - 111, 97, 116, 0, 171, 171, - 0, 0, 3, 0, 1, 0, + 0, 0, 120, 101, 95, 102, + 108, 97, 103, 115, 0, 100, + 119, 111, 114, 100, 0, 171, + 0, 0, 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 72, 7, 0, 0, + 0, 0, 153, 5, 0, 0, + 120, 101, 95, 116, 101, 115, + 115, 101, 108, 108, 97, 116, + 105, 111, 110, 95, 102, 97, + 99, 116, 111, 114, 95, 114, + 97, 110, 103, 101, 0, 102, + 108, 111, 97, 116, 50, 0, + 1, 0, 3, 0, 1, 0, + 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 225, 5, 0, 0, + 120, 101, 95, 108, 105, 110, + 101, 95, 108, 111, 111, 112, + 95, 99, 108, 111, 115, 105, + 110, 103, 95, 105, 110, 100, + 101, 120, 0, 120, 101, 95, + 118, 101, 114, 116, 101, 120, + 95, 105, 110, 100, 101, 120, + 95, 101, 110, 100, 105, 97, + 110, 0, 120, 101, 95, 118, + 101, 114, 116, 101, 120, 95, + 105, 110, 100, 101, 120, 95, + 111, 102, 102, 115, 101, 116, + 0, 120, 101, 95, 118, 101, + 114, 116, 101, 120, 95, 105, + 110, 100, 101, 120, 95, 109, + 105, 110, 95, 109, 97, 120, + 0, 117, 105, 110, 116, 50, + 0, 171, 1, 0, 19, 0, + 1, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 6, + 0, 0, 120, 101, 95, 117, + 115, 101, 114, 95, 99, 108, + 105, 112, 95, 112, 108, 97, + 110, 101, 115, 0, 102, 108, + 111, 97, 116, 52, 0, 171, + 1, 0, 3, 0, 1, 0, + 4, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 172, 6, 0, 0, 120, 101, 95, 110, 100, 99, - 95, 111, 102, 102, 115, 101, - 116, 0, 120, 101, 95, 112, + 95, 115, 99, 97, 108, 101, + 0, 102, 108, 111, 97, 116, + 51, 0, 1, 0, 3, 0, + 1, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 6, + 0, 0, 120, 101, 95, 112, 111, 105, 110, 116, 95, 115, - 105, 122, 101, 95, 121, 0, - 120, 101, 95, 112, 111, 105, - 110, 116, 95, 115, 105, 122, - 101, 95, 109, 105, 110, 95, - 109, 97, 120, 0, 120, 101, + 105, 122, 101, 95, 120, 0, + 102, 108, 111, 97, 116, 0, + 171, 171, 0, 0, 3, 0, + 1, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 7, + 0, 0, 120, 101, 95, 110, + 100, 99, 95, 111, 102, 102, + 115, 101, 116, 0, 120, 101, 95, 112, 111, 105, 110, 116, - 95, 115, 99, 114, 101, 101, - 110, 95, 116, 111, 95, 110, - 100, 99, 0, 120, 101, 95, - 105, 110, 116, 101, 114, 112, - 111, 108, 97, 116, 111, 114, - 95, 115, 97, 109, 112, 108, - 105, 110, 103, 95, 112, 97, - 116, 116, 101, 114, 110, 0, - 120, 101, 95, 112, 115, 95, - 112, 97, 114, 97, 109, 95, - 103, 101, 110, 0, 120, 101, - 95, 115, 97, 109, 112, 108, - 101, 95, 99, 111, 117, 110, - 116, 95, 108, 111, 103, 50, - 0, 120, 101, 95, 116, 101, - 120, 116, 117, 114, 101, 95, - 115, 119, 105, 122, 122, 108, - 101, 100, 95, 115, 105, 103, - 110, 115, 0, 117, 105, 110, - 116, 52, 0, 171, 171, 171, - 1, 0, 19, 0, 1, 0, - 4, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, - 120, 101, 95, 116, 101, 120, - 116, 117, 114, 101, 115, 95, - 114, 101, 115, 111, 108, 118, - 101, 100, 0, 120, 101, 95, - 97, 108, 112, 104, 97, 95, - 116, 101, 115, 116, 95, 114, - 101, 102, 101, 114, 101, 110, - 99, 101, 0, 120, 101, 95, - 97, 108, 112, 104, 97, 95, - 116, 111, 95, 109, 97, 115, - 107, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 105, 116, 99, 104, 95, 116, - 105, 108, 101, 115, 0, 120, - 101, 95, 99, 111, 108, 111, - 114, 95, 101, 120, 112, 95, - 98, 105, 97, 115, 0, 171, - 171, 171, 1, 0, 3, 0, - 1, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 212, 6, - 0, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 100, - 101, 112, 116, 104, 95, 114, - 97, 110, 103, 101, 0, 120, - 101, 95, 101, 100, 114, 97, - 109, 95, 112, 111, 108, 121, - 95, 111, 102, 102, 115, 101, - 116, 95, 102, 114, 111, 110, - 116, 0, 120, 101, 95, 101, - 100, 114, 97, 109, 95, 112, - 111, 108, 121, 95, 111, 102, - 102, 115, 101, 116, 95, 98, - 97, 99, 107, 0, 120, 101, - 95, 101, 100, 114, 97, 109, - 95, 100, 101, 112, 116, 104, - 95, 98, 97, 115, 101, 95, - 100, 119, 111, 114, 100, 115, - 0, 120, 101, 95, 101, 100, - 114, 97, 109, 95, 115, 116, - 101, 110, 99, 105, 108, 0, + 95, 115, 105, 122, 101, 95, + 121, 0, 120, 101, 95, 112, + 111, 105, 110, 116, 95, 115, + 105, 122, 101, 95, 109, 105, + 110, 95, 109, 97, 120, 0, + 120, 101, 95, 112, 111, 105, + 110, 116, 95, 115, 99, 114, + 101, 101, 110, 95, 116, 111, + 95, 110, 100, 99, 0, 120, + 101, 95, 105, 110, 116, 101, + 114, 112, 111, 108, 97, 116, + 111, 114, 95, 115, 97, 109, + 112, 108, 105, 110, 103, 95, + 112, 97, 116, 116, 101, 114, + 110, 0, 120, 101, 95, 112, + 115, 95, 112, 97, 114, 97, + 109, 95, 103, 101, 110, 0, + 120, 101, 95, 115, 97, 109, + 112, 108, 101, 95, 99, 111, + 117, 110, 116, 95, 108, 111, + 103, 50, 0, 120, 101, 95, + 116, 101, 120, 116, 117, 114, + 101, 95, 115, 119, 105, 122, + 122, 108, 101, 100, 95, 115, + 105, 103, 110, 115, 0, 117, + 105, 110, 116, 52, 0, 171, 171, 171, 1, 0, 19, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 8, + 0, 0, 0, 0, 247, 7, + 0, 0, 120, 101, 95, 116, + 101, 120, 116, 117, 114, 101, + 115, 95, 114, 101, 115, 111, + 108, 118, 101, 100, 0, 120, + 101, 95, 97, 108, 112, 104, + 97, 95, 116, 101, 115, 116, + 95, 114, 101, 102, 101, 114, + 101, 110, 99, 101, 0, 120, + 101, 95, 97, 108, 112, 104, + 97, 95, 116, 111, 95, 109, + 97, 115, 107, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 105, 116, 99, 104, + 95, 116, 105, 108, 101, 115, + 0, 120, 101, 95, 99, 111, + 108, 111, 114, 95, 101, 120, + 112, 95, 98, 105, 97, 115, + 0, 171, 171, 171, 1, 0, + 3, 0, 1, 0, 4, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 172, 6, 0, 0, 120, 101, + 95, 101, 100, 114, 97, 109, + 95, 112, 111, 108, 121, 95, + 111, 102, 102, 115, 101, 116, + 95, 102, 114, 111, 110, 116, + 0, 120, 101, 95, 101, 100, + 114, 97, 109, 95, 112, 111, + 108, 121, 95, 111, 102, 102, + 115, 101, 116, 95, 98, 97, + 99, 107, 0, 120, 101, 95, + 101, 100, 114, 97, 109, 95, + 100, 101, 112, 116, 104, 95, + 98, 97, 115, 101, 95, 100, + 119, 111, 114, 100, 115, 0, + 120, 101, 95, 101, 100, 114, + 97, 109, 95, 115, 116, 101, + 110, 99, 105, 108, 0, 171, + 171, 171, 1, 0, 19, 0, + 1, 0, 4, 0, 2, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 97, 115, 101, @@ -521,7 +510,7 @@ const BYTE tessellation_indexed_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 31, 8, 0, 0, 120, 101, + 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 102, 111, 114, 109, 97, 116, 95, 102, @@ -534,7 +523,7 @@ const BYTE tessellation_indexed_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 212, 6, 0, 0, + 0, 0, 172, 6, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 107, 101, 101, 112, 95, 109, @@ -544,7 +533,7 @@ const BYTE tessellation_indexed_vs[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 8, 0, 0, + 0, 0, 247, 7, 0, 0, 120, 101, 95, 101, 100, 114, 97, 109, 95, 114, 116, 95, 98, 108, 101, 110, 100, 95, diff --git a/src/xenia/gpu/shaders/primitive_point_list.gs.hlsl b/src/xenia/gpu/shaders/primitive_point_list.gs.hlsl index 2d4ff7f95..18afd2a7f 100644 --- a/src/xenia/gpu/shaders/primitive_point_list.gs.hlsl +++ b/src/xenia/gpu/shaders/primitive_point_list.gs.hlsl @@ -12,7 +12,6 @@ void main(point XeVertexPreGS xe_in[1], XeVertexPostGS xe_out; xe_out.pre_ps.interpolators = xe_in[0].post_gs.pre_ps.interpolators; xe_out.pre_ps.point_params.z = xe_in[0].post_gs.pre_ps.point_params.z; - xe_out.pre_ps.clip_space_zw = xe_in[0].post_gs.pre_ps.clip_space_zw; xe_out.position.zw = xe_in[0].post_gs.position.zw; xe_out.clip_distance_0123 = xe_in[0].post_gs.clip_distance_0123; xe_out.clip_distance_45 = xe_in[0].post_gs.clip_distance_45; diff --git a/src/xenia/gpu/shaders/primitive_rectangle_list.gs.hlsl b/src/xenia/gpu/shaders/primitive_rectangle_list.gs.hlsl index 45b7b05e5..13d16d60d 100644 --- a/src/xenia/gpu/shaders/primitive_rectangle_list.gs.hlsl +++ b/src/xenia/gpu/shaders/primitive_rectangle_list.gs.hlsl @@ -89,10 +89,6 @@ void main(triangle XeVertexPreGS xe_in[3], v3_signs.x * xe_in[0].post_gs.pre_ps.point_params + v3_signs.y * xe_in[1].post_gs.pre_ps.point_params + v3_signs.z * xe_in[2].post_gs.pre_ps.point_params; - xe_out.pre_ps.clip_space_zw = - v3_signs.x * xe_in[0].post_gs.pre_ps.clip_space_zw + - v3_signs.y * xe_in[1].post_gs.pre_ps.clip_space_zw + - v3_signs.z * xe_in[2].post_gs.pre_ps.clip_space_zw; xe_out.position = v3_signs.x * xe_in[0].post_gs.position + v3_signs.y * xe_in[1].post_gs.position + v3_signs.z * xe_in[2].post_gs.position; diff --git a/src/xenia/gpu/shaders/xenos_draw.hlsli b/src/xenia/gpu/shaders/xenos_draw.hlsli index e2a45cd39..a222eac9a 100644 --- a/src/xenia/gpu/shaders/xenos_draw.hlsli +++ b/src/xenia/gpu/shaders/xenos_draw.hlsli @@ -34,10 +34,9 @@ cbuffer xe_system_cbuffer : register(b0) { float4 xe_color_exp_bias; - float2 xe_edram_depth_range; float2 xe_edram_poly_offset_front; - float2 xe_edram_poly_offset_back; + uint xe_edram_depth_base_dwords; uint4 xe_edram_stencil[2]; @@ -72,7 +71,6 @@ struct XeHSControlPointOutput { struct XeVertexPrePS { float4 interpolators[16] : TEXCOORD0; float3 point_params : TEXCOORD16; - float2 clip_space_zw : TEXCOORD17; }; struct XeVertexPostGS {