Commit 0273ea3f by Shahbaz Youssefi Committed by Commit Bot

Vulkan: Use RGBA16_FLOAT for buffer format fallback

... instead of RGBA32_FLOAT. VK_FORMAT_R16G16B16A16_SFLOAT has mandatory support for vertex buffers. Bug: b/184163871 Change-Id: I7ef2933cd15e46bb984e6fd1b020d2ec15b9c60e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2807780 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarIan Elliott <ianelliott@google.com> Reviewed-by: 's avatarTim Van Patten <timvp@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent b17a9317
......@@ -4,7 +4,7 @@
"src/libANGLE/renderer/Format_table_autogen.cpp":
"969f821f7241fbc3df16864daeafa68e",
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/angle_format_data.json":
"4b3b5d4beef95c282ba4f20fdc2b20ed",
"src/libANGLE/renderer/angle_format_map.json":
......
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/gen_load_functions_table.py":
"bbc2f2cbce34313d7c06a3511eff5a1f",
"src/libANGLE/renderer/load_functions_data.json":
......
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/d3d/d3d11/gen_texture_format_table.py":
"8ad208de51aafef78452ae7f6cf8b340",
"src/libANGLE/renderer/d3d/d3d11/texture_format_data.json":
......
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/angle_format_map.json":
"46b589fc0fc306b2f7c97ee7bb08baee",
"src/libANGLE/renderer/dxgi_format_data.json":
......
......@@ -6,5 +6,5 @@
"src/libANGLE/gen_copy_conversion_table.py":
"52b879061499e456a3469da3d452f6c5",
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c"
"e5ac2fcfbc930ac2e3f3d54effeafed9"
}
\ No newline at end of file
......@@ -8,5 +8,5 @@
"src/libANGLE/gen_format_map.py":
"4062c6247b9c81ab3e8e6422fbd55349",
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c"
"e5ac2fcfbc930ac2e3f3d54effeafed9"
}
\ No newline at end of file
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/angle_format_map.json":
"46b589fc0fc306b2f7c97ee7bb08baee",
"src/libANGLE/renderer/gen_angle_format_table.py":
......@@ -24,7 +24,7 @@
"src/libANGLE/renderer/metal/shaders/gen_mtl_internal_shaders.py":
"af7a98ffaa3f3885b1e3cc7160c8549b",
"src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc":
"47961cdeb7bed0367b74d2bf0f99a1c6",
"94260983944013d7b094aaab74f37a17",
"src/libANGLE/renderer/metal/shaders/visibility.metal":
"b82aa740cf4b0aed606aacef1024beea"
}
\ No newline at end of file
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/angle_format_map.json":
"46b589fc0fc306b2f7c97ee7bb08baee",
"src/libANGLE/renderer/metal/gen_mtl_format_table.py":
"ee0b5db245a6672b86b122426a16d395",
"50165403832b36233870f612e60530da",
"src/libANGLE/renderer/metal/mtl_format_map.json":
"848c1e2f6d76115e3d0499346b5684d5",
"src/libANGLE/renderer/metal/mtl_format_table_autogen.mm":
"7765df9be304bf08d1c1c510c7b171ac"
"1972cdd31eff1fddaa965e2027710fa0"
}
\ No newline at end of file
......@@ -2,7 +2,7 @@
"scripts/gl.xml":
"2a73a58a7e26d8676a2c0af6d528cae6",
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp":
"54a5c8b87d54114ee61a4c535931ea48",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.h":
......
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/angle_format_map.json":
"46b589fc0fc306b2f7c97ee7bb08baee",
"src/libANGLE/renderer/vulkan/gen_vk_format_table.py":
"0bc8a6deefd856387da0bccf3817dde7",
"bcd28f46d41727b93943129edfeda12d",
"src/libANGLE/renderer/vulkan/vk_format_map.json":
"5aa1df6574944082788c0dadccf4f136",
"3b4563c98576280cbe4bcb9af4aafdde",
"src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp":
"57594ef67cdb88f9940b786ba1bb04ac"
"c5e18754528e417628eb72186b8465ce"
}
\ No newline at end of file
......@@ -78,19 +78,17 @@
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc":
"858bfa39d98b609277d72a0e02a2f0ba",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc":
"362b1ae836678351d0632b87befa3dd0",
"3373498b3c5fcfdc8990f79be64ede79",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000003.inc":
"0e77edb045b64490a312a9a3c650b36b",
"cb850a123abdf8eb3019ec1b0a16c7f8",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000004.inc":
"535352811ea6f55a6673d1bfcb71f0cf",
"7c6d728712eb398b70ba1364bc41b0db",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc":
"42cf2a739179a016d5586c177dda82f7",
"07505469598a4af919473b29f47458c3",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc":
"23d8451e0453ec3c7334f474927b5213",
"394896c467e258e14ee90d6a01c6993a",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc":
"a9e306149eb75a0b3cc5df0fda37a59c",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc":
"50f7e62c77fb7258de6133c1ae32ba04",
"2488e829762327084cce0825a65b826b",
"src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc":
"c12bc017be0826f1d9b9d7f25a2e3127",
"src/libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000000.inc":
......@@ -300,9 +298,9 @@
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp.json":
"c2c79c40b0fbcb4876637aa06e8aa919",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
"d656da7733a59771d91b0511643cf9f7",
"22e382bf289af71b22862bd7685ed613",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp.json":
"f2abd98463e46c0af45e8a1a5e5af88f",
"e4a95aae7f216780946e7332d22aa74e",
"src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
"fd6d015b20709364c90ff41fb687ed0f",
"src/libANGLE/renderer/vulkan/shaders/src/GenerateMipmap.comp":
......@@ -326,9 +324,9 @@
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp.json":
"af79e5153c99cdb1e6b551b11bbf7f6b",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"cb9819e35a326118b075b55b6a57ee3f",
"16b75d27a845f71dfc99ab8543ce3f9a",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"8ccd01e9e29c88da308998a81030bf6b",
"3a56299974fc0519704bbc14a80f5e85",
"tools/glslang/glslang_validator.exe.sha1":
"17e862cc6f462fecbf50b24ed6544a27",
"tools/glslang/glslang_validator.sha1":
......
{
"src/libANGLE/renderer/angle_format.py":
"32ba71942c0fd00e6807104f1bb80a3c",
"e5ac2fcfbc930ac2e3f3d54effeafed9",
"src/libANGLE/renderer/vulkan/gen_vk_mandatory_format_support_table.py":
"3e2b8cd80373275e862bb7c8ba20a745",
"src/libANGLE/renderer/vulkan/vk_format_map.json":
"5aa1df6574944082788c0dadccf4f136",
"3b4563c98576280cbe4bcb9af4aafdde",
"src/libANGLE/renderer/vulkan/vk_mandatory_format_support_data.json":
"fa2bd54c1bb0ab2cf1d386061a4bc5c5",
"src/libANGLE/renderer/vulkan/vk_mandatory_format_support_table_autogen.cpp":
......
......@@ -252,9 +252,9 @@ def get_vertex_copy_function(src_format, dst_format):
is_signed = 'true' if 'SINT' in src_format or 'SNORM' in src_format or 'SSCALED' in src_format else 'false'
is_normal = 'true' if 'NORM' in src_format else 'false'
if 'A2' in src_format:
return 'CopyW2XYZ10ToXYZW32FVertexData<%s, %s>' % (is_signed, is_normal)
return 'CopyW2XYZ10ToXYZWFloatVertexData<%s, %s, true>' % (is_signed, is_normal)
else:
return 'CopyXYZ10ToXYZW32FVertexData<%s, %s>' % (is_signed, is_normal)
return 'CopyXYZ10ToXYZWFloatVertexData<%s, %s, true>' % (is_signed, is_normal)
if 'FIXED' in src_format:
assert 'FLOAT' in dst_format, (
......@@ -275,5 +275,6 @@ def get_vertex_copy_function(src_format, dst_format):
'get_vertex_copy_function: can only convert to float,' + ' not to ' + dst_format)
normalized = 'true' if 'NORM' in src_format else 'false'
return "CopyTo32FVertexData<%s, %d, %d, %s>" % (src_gl_type, num_channel, num_channel,
normalized)
dst_is_half = 'true' if dst_gl_type == 'GLhalf' else 'false'
return "CopyToFloatVertexData<%s, %d, %d, %s, %s>" % (src_gl_type, num_channel, num_channel,
normalized, dst_is_half)
......@@ -41,8 +41,12 @@ void Copy8SnormTo16SnormVertexData(const uint8_t *input,
template <size_t inputComponentCount, size_t outputComponentCount>
void Copy32FixedTo32FVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
template <typename T, size_t inputComponentCount, size_t outputComponentCount, bool normalized>
void CopyTo32FVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
template <typename T,
size_t inputComponentCount,
size_t outputComponentCount,
bool normalized,
bool toHalf>
void CopyToFloatVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
template <size_t inputComponentCount, size_t outputComponentCount>
void Copy32FTo16FVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
......@@ -51,24 +55,24 @@ void CopyXYZ32FToXYZ9E5(const uint8_t *input, size_t stride, size_t count, uint8
void CopyXYZ32FToX11Y11B10F(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
template <bool isSigned, bool normalized, bool toFloat>
void CopyXYZ10W2ToXYZW32FVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output);
template <bool isSigned, bool normalized>
void CopyXYZ10ToXYZW32FVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output);
template <bool isSigned, bool normalized, bool toFloat, bool toHalf>
void CopyXYZ10W2ToXYZWFloatVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output);
template <bool isSigned, bool normalized>
void CopyW2XYZ10ToXYZW32FVertexData(const uint8_t *input,
template <bool isSigned, bool normalized, bool toHalf>
void CopyXYZ10ToXYZWFloatVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output);
template <bool isSigned, bool normalized, bool toHalf>
void CopyW2XYZ10ToXYZWFloatVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output);
} // namespace rx
#include "copyvertex.inc.h"
......
......@@ -177,33 +177,53 @@ inline void Copy32FixedTo32FVertexData(const uint8_t *input,
}
}
template <typename T, size_t inputComponentCount, size_t outputComponentCount, bool normalized>
inline void CopyTo32FVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output)
template <typename T,
size_t inputComponentCount,
size_t outputComponentCount,
bool normalized,
bool toHalf>
inline void CopyToFloatVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output)
{
typedef std::numeric_limits<T> NL;
typedef typename std::conditional<toHalf, GLhalf, float>::type outputType;
for (size_t i = 0; i < count; i++)
{
const T *offsetInput = reinterpret_cast<const T *>(input + (stride * i));
float *offsetOutput = reinterpret_cast<float *>(output) + i * outputComponentCount;
outputType *offsetOutput =
reinterpret_cast<outputType *>(output) + i * outputComponentCount;
for (size_t j = 0; j < inputComponentCount; j++)
{
float result = 0;
if (normalized)
{
if (NL::is_signed)
{
offsetOutput[j] = static_cast<float>(offsetInput[j]) / NL::max();
offsetOutput[j] = (offsetOutput[j] >= -1.0f) ? (offsetOutput[j]) : (-1.0f);
result = static_cast<float>(offsetInput[j]) / NL::max();
result = result >= -1.0f ? result : -1.0f;
}
else
{
offsetOutput[j] = static_cast<float>(offsetInput[j]) / NL::max();
result = static_cast<float>(offsetInput[j]) / NL::max();
}
}
else
{
offsetOutput[j] = static_cast<float>(offsetInput[j]);
result = static_cast<float>(offsetInput[j]);
}
if (toHalf)
{
offsetOutput[j] = gl::float32ToFloat16(result);
}
else
{
offsetOutput[j] = static_cast<outputType>(result);
}
}
......@@ -214,7 +234,7 @@ inline void CopyTo32FVertexData(const uint8_t *input, size_t stride, size_t coun
for (size_t j = inputComponentCount; j < outputComponentCount; j++)
{
offsetOutput[j] = 0.0f;
offsetOutput[j] = 0;
}
}
}
......@@ -273,27 +293,22 @@ inline void CopyXYZ32FToX11Y11B10F(const uint8_t *input,
namespace priv
{
template <bool isSigned, bool normalized, bool toFloat>
template <bool isSigned, bool normalized, bool toFloat, bool toHalf>
static inline void CopyPackedRGB(uint32_t data, uint8_t *output)
{
const uint32_t rgbSignMask = 0x200; // 1 set at the 9 bit
const uint32_t negativeMask = 0xFFFFFC00; // All bits from 10 to 31 set to 1
if (toFloat)
if (toFloat || toHalf)
{
GLfloat *floatOutput = reinterpret_cast<GLfloat *>(output);
GLfloat finalValue = static_cast<GLfloat>(data);
if (isSigned)
{
GLfloat finalValue = 0;
if (data & rgbSignMask)
{
int negativeNumber = data | negativeMask;
finalValue = static_cast<GLfloat>(negativeNumber);
}
else
{
finalValue = static_cast<GLfloat>(data);
}
if (normalized)
{
......@@ -309,11 +324,7 @@ static inline void CopyPackedRGB(uint32_t data, uint8_t *output)
}
const int32_t halfRange = (maxValue - minValue) >> 1;
*floatOutput = ((finalValue - minValue) / halfRange) - 1.0f;
}
else
{
*floatOutput = finalValue;
finalValue = ((finalValue - minValue) / halfRange) - 1.0f;
}
}
else
......@@ -321,13 +332,18 @@ static inline void CopyPackedRGB(uint32_t data, uint8_t *output)
if (normalized)
{
const uint32_t maxValue = 0x3FF; // 1 set in bits 0 through 9
*floatOutput = static_cast<GLfloat>(data) / static_cast<GLfloat>(maxValue);
}
else
{
*floatOutput = static_cast<GLfloat>(data);
finalValue /= static_cast<GLfloat>(maxValue);
}
}
if (toHalf)
{
*reinterpret_cast<GLhalf *>(output) = gl::float32ToFloat16(finalValue);
}
else
{
*reinterpret_cast<GLfloat *>(output) = finalValue;
}
}
else
{
......@@ -352,12 +368,14 @@ static inline void CopyPackedRGB(uint32_t data, uint8_t *output)
}
}
template <bool isSigned, bool normalized, bool toFloat>
template <bool isSigned, bool normalized, bool toFloat, bool toHalf>
inline void CopyPackedAlpha(uint32_t data, uint8_t *output)
{
if (toFloat)
ASSERT(data >= 0 && data <= 3);
if (toFloat || toHalf)
{
GLfloat *floatOutput = reinterpret_cast<GLfloat *>(output);
GLfloat finalValue = 0;
if (isSigned)
{
if (normalized)
......@@ -365,16 +383,16 @@ inline void CopyPackedAlpha(uint32_t data, uint8_t *output)
switch (data)
{
case 0x0:
*floatOutput = 0.0f;
finalValue = 0.0f;
break;
case 0x1:
*floatOutput = 1.0f;
finalValue = 1.0f;
break;
case 0x2:
*floatOutput = -1.0f;
finalValue = -1.0f;
break;
case 0x3:
*floatOutput = -1.0f;
finalValue = -1.0f;
break;
default:
UNREACHABLE();
......@@ -385,16 +403,16 @@ inline void CopyPackedAlpha(uint32_t data, uint8_t *output)
switch (data)
{
case 0x0:
*floatOutput = 0.0f;
finalValue = 0.0f;
break;
case 0x1:
*floatOutput = 1.0f;
finalValue = 1.0f;
break;
case 0x2:
*floatOutput = -2.0f;
finalValue = -2.0f;
break;
case 0x3:
*floatOutput = -1.0f;
finalValue = -1.0f;
break;
default:
UNREACHABLE();
......@@ -405,45 +423,22 @@ inline void CopyPackedAlpha(uint32_t data, uint8_t *output)
{
if (normalized)
{
switch (data)
{
case 0x0:
*floatOutput = 0.0f / 3.0f;
break;
case 0x1:
*floatOutput = 1.0f / 3.0f;
break;
case 0x2:
*floatOutput = 2.0f / 3.0f;
break;
case 0x3:
*floatOutput = 3.0f / 3.0f;
break;
default:
UNREACHABLE();
}
finalValue = data / 3.0f;
}
else
{
switch (data)
{
case 0x0:
*floatOutput = 0.0f;
break;
case 0x1:
*floatOutput = 1.0f;
break;
case 0x2:
*floatOutput = 2.0f;
break;
case 0x3:
*floatOutput = 3.0f;
break;
default:
UNREACHABLE();
}
finalValue = static_cast<float>(data);
}
}
if (toHalf)
{
*reinterpret_cast<GLhalf *>(output) = gl::float32ToFloat16(finalValue);
}
else
{
*reinterpret_cast<GLfloat *>(output) = finalValue;
}
}
else
{
......@@ -470,37 +465,20 @@ inline void CopyPackedAlpha(uint32_t data, uint8_t *output)
}
else
{
GLushort *uintOutput = reinterpret_cast<GLushort *>(output);
switch (data)
{
case 0x0:
*uintOutput = 0;
break;
case 0x1:
*uintOutput = 1;
break;
case 0x2:
*uintOutput = 2;
break;
case 0x3:
*uintOutput = 3;
break;
default:
UNREACHABLE();
}
*reinterpret_cast<GLushort *>(output) = static_cast<GLushort>(data);
}
}
}
} // namespace priv
template <bool isSigned, bool normalized, bool toFloat>
inline void CopyXYZ10W2ToXYZW32FVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output)
template <bool isSigned, bool normalized, bool toFloat, bool toHalf>
inline void CopyXYZ10W2ToXYZWFloatVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output)
{
const size_t outputComponentSize = toFloat ? 4 : 2;
const size_t outputComponentSize = toFloat && !toHalf ? 4 : 2;
const size_t componentCount = 4;
const uint32_t rgbMask = 0x3FF; // 1 set in bits 0 through 9
......@@ -516,24 +494,24 @@ inline void CopyXYZ10W2ToXYZW32FVertexData(const uint8_t *input,
GLuint packedValue = *reinterpret_cast<const GLuint *>(input + (i * stride));
uint8_t *offsetOutput = output + (i * outputComponentSize * componentCount);
priv::CopyPackedRGB<isSigned, normalized, toFloat>(
priv::CopyPackedRGB<isSigned, normalized, toFloat, toHalf>(
(packedValue >> redShift) & rgbMask, offsetOutput + (0 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, toFloat>(
priv::CopyPackedRGB<isSigned, normalized, toFloat, toHalf>(
(packedValue >> greenShift) & rgbMask, offsetOutput + (1 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, toFloat>(
priv::CopyPackedRGB<isSigned, normalized, toFloat, toHalf>(
(packedValue >> blueShift) & rgbMask, offsetOutput + (2 * outputComponentSize));
priv::CopyPackedAlpha<isSigned, normalized, toFloat>(
priv::CopyPackedAlpha<isSigned, normalized, toFloat, toHalf>(
(packedValue >> alphaShift) & alphaMask, offsetOutput + (3 * outputComponentSize));
}
}
template <bool isSigned, bool normalized>
inline void CopyXYZ10ToXYZW32FVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output)
template <bool isSigned, bool normalized, bool toHalf>
inline void CopyXYZ10ToXYZWFloatVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output)
{
const size_t outputComponentSize = 4;
const size_t outputComponentSize = toHalf ? 2 : 4;
const size_t componentCount = 4;
const uint32_t rgbMask = 0x3FF; // 1 set in bits 0 through 9
......@@ -548,24 +526,24 @@ inline void CopyXYZ10ToXYZW32FVertexData(const uint8_t *input,
GLuint packedValue = *reinterpret_cast<const GLuint *>(input + (i * stride));
uint8_t *offsetOutput = output + (i * outputComponentSize * componentCount);
priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> redShift) & rgbMask,
offsetOutput + (0 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> greenShift) & rgbMask,
offsetOutput + (1 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> blueShift) & rgbMask,
offsetOutput + (2 * outputComponentSize));
priv::CopyPackedAlpha<isSigned, normalized, true>(alphaDefaultValueBits,
offsetOutput + (3 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true, toHalf>(
(packedValue >> redShift) & rgbMask, offsetOutput + (0 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true, toHalf>(
(packedValue >> greenShift) & rgbMask, offsetOutput + (1 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true, toHalf>(
(packedValue >> blueShift) & rgbMask, offsetOutput + (2 * outputComponentSize));
priv::CopyPackedAlpha<isSigned, normalized, true, toHalf>(
alphaDefaultValueBits, offsetOutput + (3 * outputComponentSize));
}
}
template <bool isSigned, bool normalized>
inline void CopyW2XYZ10ToXYZW32FVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output)
template <bool isSigned, bool normalized, bool toHalf>
inline void CopyW2XYZ10ToXYZWFloatVertexData(const uint8_t *input,
size_t stride,
size_t count,
uint8_t *output)
{
const size_t outputComponentSize = 4;
const size_t outputComponentSize = toHalf ? 2 : 4;
const size_t componentCount = 4;
const uint32_t rgbMask = 0x3FF; // 1 set in bits 0 through 9
......@@ -581,14 +559,14 @@ inline void CopyW2XYZ10ToXYZW32FVertexData(const uint8_t *input,
GLuint packedValue = *reinterpret_cast<const GLuint *>(input + (i * stride));
uint8_t *offsetOutput = output + (i * outputComponentSize * componentCount);
priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> redShift) & rgbMask,
offsetOutput + (0 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> greenShift) & rgbMask,
offsetOutput + (1 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true>((packedValue >> blueShift) & rgbMask,
offsetOutput + (2 * outputComponentSize));
priv::CopyPackedAlpha<isSigned, normalized, true>((packedValue >> alphaShift) & alphaMask,
offsetOutput + (3 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true, toHalf>(
(packedValue >> redShift) & rgbMask, offsetOutput + (0 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true, toHalf>(
(packedValue >> greenShift) & rgbMask, offsetOutput + (1 * outputComponentSize));
priv::CopyPackedRGB<isSigned, normalized, true, toHalf>(
(packedValue >> blueShift) & rgbMask, offsetOutput + (2 * outputComponentSize));
priv::CopyPackedAlpha<isSigned, normalized, true, toHalf>(
(packedValue >> alphaShift) & alphaMask, offsetOutput + (3 * outputComponentSize));
}
}
} // namespace rx
......@@ -322,26 +322,30 @@ const VertexFormat *GetVertexFormatInfo_FL_9_3(angle::FormatID vertexFormatID)
// GL_UNSIGNED_SHORT -- un-normalized
case angle::FormatID::R16_USCALED:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyTo32FVertexData<GLushort, 1, 2, false>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyToFloatVertexData<GLushort, 1, 2, false, false>);
return &info;
}
case angle::FormatID::R16G16_USCALED:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyTo32FVertexData<GLushort, 2, 2, false>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyToFloatVertexData<GLushort, 2, 2, false, false>);
return &info;
}
case angle::FormatID::R16G16B16_USCALED:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32_FLOAT,
&CopyTo32FVertexData<GLushort, 3, 3, false>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32_FLOAT,
&CopyToFloatVertexData<GLushort, 3, 3, false, false>);
return &info;
}
case angle::FormatID::R16G16B16A16_USCALED:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyTo32FVertexData<GLushort, 4, 4, false>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyToFloatVertexData<GLushort, 4, 4, false, false>);
return &info;
}
......@@ -349,25 +353,25 @@ const VertexFormat *GetVertexFormatInfo_FL_9_3(angle::FormatID vertexFormatID)
case angle::FormatID::R16_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyTo32FVertexData<GLushort, 1, 2, true>);
&CopyToFloatVertexData<GLushort, 1, 2, true, false>);
return &info;
}
case angle::FormatID::R16G16_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyTo32FVertexData<GLushort, 2, 2, true>);
&CopyToFloatVertexData<GLushort, 2, 2, true, false>);
return &info;
}
case angle::FormatID::R16G16B16_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32_FLOAT,
&CopyTo32FVertexData<GLushort, 3, 3, true>);
&CopyToFloatVertexData<GLushort, 3, 3, true, false>);
return &info;
}
case angle::FormatID::R16G16B16A16_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyTo32FVertexData<GLushort, 4, 4, true>);
&CopyToFloatVertexData<GLushort, 4, 4, true, false>);
return &info;
}
......@@ -652,25 +656,25 @@ const VertexFormat &GetVertexFormatInfo(angle::FormatID vertexFormatID,
case angle::FormatID::R32_SNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32_FLOAT,
&CopyTo32FVertexData<GLint, 1, 1, true>);
&CopyToFloatVertexData<GLint, 1, 1, true, false>);
return info;
}
case angle::FormatID::R32G32_SNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyTo32FVertexData<GLint, 2, 2, true>);
&CopyToFloatVertexData<GLint, 2, 2, true, false>);
return info;
}
case angle::FormatID::R32G32B32_SNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32_FLOAT,
&CopyTo32FVertexData<GLint, 3, 3, true>);
&CopyToFloatVertexData<GLint, 3, 3, true, false>);
return info;
}
case angle::FormatID::R32G32B32A32_SNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyTo32FVertexData<GLint, 4, 4, true>);
&CopyToFloatVertexData<GLint, 4, 4, true, false>);
return info;
}
......@@ -704,25 +708,25 @@ const VertexFormat &GetVertexFormatInfo(angle::FormatID vertexFormatID,
case angle::FormatID::R32_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32_FLOAT,
&CopyTo32FVertexData<GLuint, 1, 1, true>);
&CopyToFloatVertexData<GLuint, 1, 1, true, false>);
return info;
}
case angle::FormatID::R32G32_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32_FLOAT,
&CopyTo32FVertexData<GLuint, 2, 2, true>);
&CopyToFloatVertexData<GLuint, 2, 2, true, false>);
return info;
}
case angle::FormatID::R32G32B32_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32_FLOAT,
&CopyTo32FVertexData<GLuint, 3, 3, true>);
&CopyToFloatVertexData<GLuint, 3, 3, true, false>);
return info;
}
case angle::FormatID::R32G32B32A32_UNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyTo32FVertexData<GLuint, 4, 4, true>);
&CopyToFloatVertexData<GLuint, 4, 4, true, false>);
return info;
}
......@@ -807,22 +811,25 @@ const VertexFormat &GetVertexFormatInfo(angle::FormatID vertexFormatID,
// GL_INT_2_10_10_10_REV
case angle::FormatID::R10G10B10A2_SSCALED:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyXYZ10W2ToXYZW32FVertexData<true, false, true>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyXYZ10W2ToXYZWFloatVertexData<true, false, true, false>);
return info;
}
case angle::FormatID::R10G10B10A2_SNORM:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyXYZ10W2ToXYZW32FVertexData<true, true, true>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyXYZ10W2ToXYZWFloatVertexData<true, true, true, false>);
return info;
}
// GL_UNSIGNED_INT_2_10_10_10_REV
case angle::FormatID::R10G10B10A2_USCALED:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyXYZ10W2ToXYZW32FVertexData<false, false, true>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R32G32B32A32_FLOAT,
&CopyXYZ10W2ToXYZWFloatVertexData<false, false, true, false>);
return info;
}
case angle::FormatID::R10G10B10A2_UNORM:
......@@ -995,8 +1002,9 @@ const VertexFormat &GetVertexFormatInfo(angle::FormatID vertexFormatID,
// GL_INT_2_10_10_10_REV
case angle::FormatID::R10G10B10A2_SINT:
{
static constexpr VertexFormat info(VERTEX_CONVERT_CPU, DXGI_FORMAT_R16G16B16A16_SINT,
&CopyXYZ10W2ToXYZW32FVertexData<true, true, false>);
static constexpr VertexFormat info(
VERTEX_CONVERT_CPU, DXGI_FORMAT_R16G16B16A16_SINT,
&CopyXYZ10W2ToXYZWFloatVertexData<true, true, false, false>);
return info;
}
......
......@@ -205,7 +205,8 @@ def get_vertex_copy_function_and_default_alpha(src_format, dst_format):
' not to ' + dst_format)
is_signed = 'true' if 'SINT' in src_format or 'SNORM' in src_format or 'SSCALED' in src_format else 'false'
is_normal = 'true' if 'NORM' in src_format else 'false'
return 'CopyXYZ10W2ToXYZW32FVertexData<%s, %s, true>' % (is_signed, is_normal), 0, "false"
return 'CopyXYZ10W2ToXYZWFloatVertexData<%s, %s, true, false>' % (is_signed,
is_normal), 0, "false"
return angle_format_utils.get_vertex_copy_function(src_format, dst_format), 0, "false"
......@@ -287,8 +288,8 @@ def gen_image_map_switch_mac_case(angle_format, actual_angle_format_info, angle_
mtl_format_fallback=angle_to_mtl_map[actual_angle_format_fallback],
init_function_fallback=angle_format_utils.get_internal_format_initializer(
gl_format, actual_angle_format_fallback),
fallback_condition="metalDevice.depth24Stencil8PixelFormatSupported && \
!display->getFeatures().forceD24S8AsUnsupported.enabled")
fallback_condition=("metalDevice.depth24Stencil8PixelFormatSupported && " +
"!display->getFeatures().forceD24S8AsUnsupported.enabled"))
else:
# return ordinary block:
return image_format_assign_template1.format(
......
......@@ -2980,7 +2980,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R10G10B10A2_SINT:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyXYZ10W2ToXYZW32FVertexData<true, false, true>;
this->vertexLoadFunction = CopyXYZ10W2ToXYZWFloatVertexData<true, false, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -2988,7 +2988,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R10G10B10A2_SSCALED:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyXYZ10W2ToXYZW32FVertexData<true, false, true>;
this->vertexLoadFunction = CopyXYZ10W2ToXYZWFloatVertexData<true, false, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -2996,7 +2996,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R10G10B10A2_UINT:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyXYZ10W2ToXYZW32FVertexData<false, false, true>;
this->vertexLoadFunction = CopyXYZ10W2ToXYZWFloatVertexData<false, false, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3004,7 +3004,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R10G10B10A2_USCALED:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyXYZ10W2ToXYZW32FVertexData<false, false, true>;
this->vertexLoadFunction = CopyXYZ10W2ToXYZWFloatVertexData<false, false, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3020,7 +3020,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32A32_SNORM:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 4, 4, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 4, 4, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3028,7 +3028,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32A32_SSCALED:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 4, 4, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 4, 4, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3036,7 +3036,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32A32_UNORM:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 4, 4, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 4, 4, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3044,7 +3044,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32A32_USCALED:
this->metalFormat = MTLVertexFormatFloat4;
this->actualFormatId = angle::FormatID::R32G32B32A32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 4, 4, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 4, 4, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3060,7 +3060,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32_SNORM:
this->metalFormat = MTLVertexFormatFloat3;
this->actualFormatId = angle::FormatID::R32G32B32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 3, 3, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 3, 3, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3068,7 +3068,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32_SSCALED:
this->metalFormat = MTLVertexFormatFloat3;
this->actualFormatId = angle::FormatID::R32G32B32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 3, 3, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 3, 3, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3076,7 +3076,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32_UNORM:
this->metalFormat = MTLVertexFormatFloat3;
this->actualFormatId = angle::FormatID::R32G32B32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 3, 3, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 3, 3, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3084,7 +3084,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32B32_USCALED:
this->metalFormat = MTLVertexFormatFloat3;
this->actualFormatId = angle::FormatID::R32G32B32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 3, 3, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 3, 3, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3100,7 +3100,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32_SNORM:
this->metalFormat = MTLVertexFormatFloat2;
this->actualFormatId = angle::FormatID::R32G32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 2, 2, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 2, 2, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3108,7 +3108,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32_SSCALED:
this->metalFormat = MTLVertexFormatFloat2;
this->actualFormatId = angle::FormatID::R32G32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 2, 2, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 2, 2, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3116,7 +3116,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32_UNORM:
this->metalFormat = MTLVertexFormatFloat2;
this->actualFormatId = angle::FormatID::R32G32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 2, 2, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 2, 2, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3124,7 +3124,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32G32_USCALED:
this->metalFormat = MTLVertexFormatFloat2;
this->actualFormatId = angle::FormatID::R32G32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 2, 2, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 2, 2, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3140,7 +3140,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32_SNORM:
this->metalFormat = MTLVertexFormatFloat;
this->actualFormatId = angle::FormatID::R32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 1, 1, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 1, 1, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3148,7 +3148,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32_SSCALED:
this->metalFormat = MTLVertexFormatFloat;
this->actualFormatId = angle::FormatID::R32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLint, 1, 1, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLint, 1, 1, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3156,7 +3156,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32_UNORM:
this->metalFormat = MTLVertexFormatFloat;
this->actualFormatId = angle::FormatID::R32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 1, 1, true>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 1, 1, true, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......@@ -3164,7 +3164,7 @@ void VertexFormat::init(angle::FormatID angleFormatId, bool tightlyPacked)
case angle::FormatID::R32_USCALED:
this->metalFormat = MTLVertexFormatFloat;
this->actualFormatId = angle::FormatID::R32_FLOAT;
this->vertexLoadFunction = CopyTo32FVertexData<GLuint, 1, 1, false>;
this->vertexLoadFunction = CopyToFloatVertexData<GLuint, 1, 1, false, false>;
this->defaultAlpha = 0;
this->actualSameGLType = false;
break;
......
......@@ -14,7 +14,7 @@ static char gDefaultMetallibSrc[] = R"(
# 1 "temp_master_source.metal"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 367 "<built-in>" 3
# 384 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "temp_master_source.metal" 2
......
......@@ -115,10 +115,6 @@ uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
// Note that HalfFloat conversion uses the same shader as Uint.
flags = ConvertVertex_comp::kUintToUint;
}
else if (srcIsFloat && destIsHalfFloat)
{
flags = ConvertVertex_comp::kFloatToHalf;
}
else if (srcIsSint && destIsSint)
{
flags = ConvertVertex_comp::kSintToSint;
......@@ -1844,7 +1840,6 @@ angle::Result UtilsVk::convertVertexBuffer(ContextVk *contextVk,
shaderParams.srcEmulatedAlpha = 0x10000;
break;
case ConvertVertex_comp::kFloatToHalf:
case ConvertVertex_comp::kFloatToFloat:
ASSERT(ValidateFloatOneAsUint());
shaderParams.srcEmulatedAlpha = kFloatOneAsUint;
......
......@@ -147,7 +147,9 @@ def get_vertex_copy_function(src_format, dst_format, vk_format):
is_signed = 'false' if 'UINT' in src_format or 'UNORM' in src_format or 'USCALED' in src_format else 'true'
normalized = 'true' if 'NORM' in src_format else 'false'
to_float = 'false' if 'INT' in src_format else 'true'
return 'CopyXYZ10W2ToXYZW32FVertexData<%s, %s, %s>' % (is_signed, normalized, to_float)
to_half = to_float
return 'CopyXYZ10W2ToXYZWFloatVertexData<%s, %s, %s, %s>' % (is_signed, normalized,
to_float, to_half)
return angle_format.get_vertex_copy_function(src_format, dst_format)
......
......@@ -10,134 +10,145 @@
#pragma once
constexpr uint8_t kConvertVertex_comp_00000002[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x79,0x94,0x8f,0x65,
0x14,0xc7,0xdf,0x77,0x66,0xfc,0x66,0xcc,0x82,0xb1,0xcc,0xa0,0x09,0x63,0xec,0xc6,
0x18,0x6b,0x3a,0x9a,0x70,0x8e,0x90,0x28,0xa5,0x54,0xe6,0x90,0x42,0xa5,0x52,0x42,
0x9b,0x28,0x2a,0x24,0x65,0x09,0x59,0xda,0x37,0x64,0x24,0x6d,0xb2,0xb4,0x2a,0xa4,
0xa6,0xb4,0xa1,0x45,0x94,0x73,0xea,0x9c,0xb6,0x73,0x48,0x21,0x59,0x7a,0xee,0xfb,
0x7e,0x6e,0x73,0x3d,0xcd,0x5f,0xfd,0xce,0x79,0xce,0xef,0xbd,0xdf,0xbb,0xdf,0xe7,
0x3e,0xcb,0xfb,0x26,0x27,0x15,0xa4,0x06,0x41,0x18,0xa4,0x07,0x69,0x41,0xc7,0x30,
0x88,0x7e,0xd9,0x41,0x52,0x20,0x8f,0x19,0x41,0x22,0xfa,0xef,0xdd,0x6f,0x60,0xbf,
0xa2,0x71,0xe3,0x47,0x14,0x75,0xec,0x54,0x2c,0xfc,0x6a,0x41,0x72,0x24,0x27,0xbc,
0xea,0x4e,0xa6,0x8a,0xfb,0x4f,0x71,0x63,0xf4,0xe5,0xa3,0xae,0x17,0xfc,0xa0,0x1b,
0x35,0x1c,0x9e,0x12,0xd9,0x0a,0x82,0xee,0xc8,0xca,0xe8,0xe3,0xa4,0x9b,0xc7,0x6e,
0x82,0x02,0xfe,0x15,0x0b,0xc1,0x52,0x0c,0x96,0x04,0x96,0x66,0xb0,0x64,0xb0,0x4c,
0x83,0xa5,0x80,0xd5,0x30,0x58,0x15,0xb0,0xda,0x06,0x4b,0x80,0xd5,0x35,0x58,0x2a,
0x58,0x9e,0xc1,0xd2,0xc0,0x1a,0x19,0xac,0x2a,0x58,0x13,0x83,0xa5,0x83,0xb5,0x30,
0x58,0x06,0x58,0xa1,0xc1,0x32,0xc1,0x8a,0x0d,0x96,0x05,0xd6,0xd1,0x60,0xd5,0xc0,
0xba,0x48,0xdd,0x5d,0xa6,0x5a,0x83,0xde,0x2e,0xc3,0x11,0xc4,0xaf,0xf5,0x19,0xe9,
0xd5,0x51,0xe4,0x47,0x52,0x1f,0x91,0xbf,0xca,0xfd,0x37,0xfe,0x97,0x17,0xd3,0xf9,
0xd4,0x59,0xe8,0x7d,0x9e,0xbd,0xfd,0x95,0xd8,0xdb,0x6f,0xec,0x1d,0xf0,0xec,0x1d,
0xc0,0x9e,0xd2,0x07,0xc9,0x3d,0x0f,0xba,0x43,0x18,0xd3,0xf5,0xdc,0xa8,0xe5,0xb2,
0x48,0x8a,0xe4,0x93,0x23,0x7b,0xf2,0x5c,0xc7,0xc9,0x24,0xa8,0x71,0x10,0xfd,0xa7,
0x44,0x73,0x91,0x4a,0x5c,0xf9,0x2e,0xa6,0x34,0x9e,0x15,0x17,0x9d,0x6c,0x74,0xc2,
0x48,0x26,0x25,0xa8,0x49,0x9f,0xa5,0x62,0x23,0x87,0x67,0xc1,0x72,0x9c,0xb7,0x5c,
0xe4,0x45,0x56,0xe6,0x3d,0x37,0xc2,0x63,0xd9,0x3c,0x64,0x73,0xf1,0x77,0xaa,0xf1,
0x97,0x87,0x4e,0x63,0xe2,0x15,0xac,0x81,0xb3,0xaa,0x7d,0xf4,0x7f,0x87,0xf8,0x6d,
0x41,0x3f,0x89,0xad,0xae,0xd0,0x2d,0xc1,0x5a,0x93,0x63,0x2b,0x23,0xdf,0x1a,0x5e,
0xc2,0xf0,0x8b,0xe9,0x71,0xa5,0x3b,0x11,0x67,0x6b,0xea,0x5a,0xc2,0xdc,0x2a,0xdd,
0x8d,0xbe,0x56,0xf9,0x5e,0x1e,0x3d,0x00,0xf9,0xda,0xce,0xca,0x40,0xa3,0x37,0x88,
0x1e,0x50,0xb9,0x52,0xe6,0xeb,0x54,0x87,0x6a,0x4f,0x36,0xa0,0xf7,0x46,0x10,0xef,
0x95,0xc4,0x32,0x92,0xfc,0x84,0xbe,0x0a,0x4c,0xf8,0xd7,0xf0,0x6c,0xf3,0x19,0xcd,
0x9a,0x50,0xbf,0x63,0xf0,0xa3,0xfc,0x5b,0x58,0x6f,0x4a,0x4f,0xf2,0xe2,0xba,0xc3,
0x8d,0x13,0xc9,0x15,0xf4,0x14,0xd6,0x93,0xda,0xbb,0xd7,0xe8,0x0b,0x3d,0xcf,0xab,
0xd7,0x33,0xf4,0x89,0xea,0x3f,0x27,0xf6,0xdc,0x4f,0xe9,0x32,0x7a,0x4e,0xe9,0x0d,
0xac,0x6b,0xc9,0xe7,0x7d,0xfa,0xc3,0xd6,0xad,0x1c,0x79,0xa9,0xd3,0x3e,0x53,0x27,
0x59,0x53,0xfb,0xd0,0xfb,0x9d,0x18,0xf6,0x53,0x27,0xa1,0x0f,0x80,0xe5,0x3a,0xfa,
0x0f,0xf4,0x92,0x91,0xff,0x13,0x9b,0x7f,0x20,0xff,0x27,0xfb,0x6d,0x08,0xff,0x10,
0xcf,0x09,0x13,0x47,0xfb,0x30,0xde,0x83,0x0b,0x1d,0x25,0x7a,0xb2,0x2e,0x05,0x2b,
0x27,0xc6,0xce,0xae,0x8b,0x92,0x98,0xfb,0x00,0x5f,0x87,0x1d,0x52,0x05,0x1f,0x92,
0x57,0x5a,0x18,0xe7,0xa7,0x74,0x55,0x8f,0xce,0x36,0xb4,0xac,0xad,0x06,0x1e,0xbf,
0xa1,0xa1,0x65,0x5d,0x35,0xf6,0xe4,0x0b,0x3c,0xf9,0x66,0x9e,0x7c,0x0b,0x8f,0xdf,
0x16,0xba,0x87,0x8b,0xf2,0x10,0x87,0xd1,0x41,0x7a,0xa6,0x84,0xbc,0x43,0x0e,0x1d,
0x91,0x91,0xf5,0x93,0x14,0xc6,0x6b,0xac,0xd4,0xc8,0x24,0x87,0x31,0xbe,0xca,0xc9,
0xc8,0xdc,0xa5,0x84,0xb1,0x9e,0xe0,0x87,0x5c,0x25,0x12,0x9c,0x89,0x47,0x9c,0xbc,
0xf0,0xaa,0xb8,0x21,0x58,0x54,0x1f,0xf7,0x7f,0xcc,0x39,0x90,0x67,0xc1,0xce,0x74,
0xf2,0x52,0x27,0x89,0x41,0x9e,0xab,0xf2,0xfc,0x97,0xe3,0xa7,0xa3,0x93,0x1e,0xc5,
0x99,0x12,0x64,0xba,0xff,0x2c,0x6c,0x0b,0xbf,0x1a,0x7c,0xf9,0xd7,0xd8,0xaa,0x87,
0x71,0x9d,0x57,0x13,0x5b,0x8d,0x30,0xc6,0xca,0x89,0x47,0xe8,0x0c,0x37,0x32,0xd1,
0xcd,0x08,0x2b,0xea,0x51,0xb3,0x92,0x7a,0xd4,0x0a,0x63,0xfc,0x1e,0x27,0x23,0x74,
0xed,0x30,0xc6,0xca,0x8d,0x4c,0x1d,0x7c,0x4e,0x46,0x26,0x27,0x8c,0xe5,0xea,0x90,
0x9f,0xcc,0x73,0x8e,0x89,0x31,0x37,0x8c,0xe7,0x5e,0x6b,0x5c,0x97,0x1a,0x97,0x19,
0x9b,0xf5,0xc2,0x18,0xd7,0x1a,0xd7,0x0f,0x63,0xbd,0x7a,0xd4,0x38,0xcf,0xd4,0x58,
0x78,0xa7,0xb8,0x91,0x47,0x4e,0xf2,0x2c,0xf5,0xd1,0x1c,0xf3,0x8c,0xef,0x46,0xf8,
0x96,0xb8,0xa4,0xbf,0x84,0x3e,0xdd,0xf9,0x90,0xb5,0x99,0x1f,0xc6,0xe7,0x7e,0x43,
0xf8,0xd2,0x8f,0xf9,0xe8,0x0a,0xbf,0x49,0x18,0xf7,0xa8,0xf0,0xa4,0xf7,0x9a,0xa0,
0x2b,0xe7,0x40,0x53,0xf7,0x5c,0x9f,0x9e,0x14,0xbe,0xf4,0x6a,0x53,0xe3,0xb7,0xb9,
0xf1,0x2b,0x7d,0xda,0x1c,0x9e,0xe8,0xb6,0x0c,0xe3,0xde,0x16,0x9e,0xf4,0x6c,0xcb,
0xc8,0x6e,0x22,0xd2,0x6b,0x15,0xc6,0xfb,0x8b,0xe8,0xb4,0x30,0xf6,0x5a,0x87,0xf1,
0xfa,0xda,0x44,0xcd,0x0b,0xc3,0x18,0x6b,0x65,0x7a,0xaa,0x90,0x3a,0x64,0x51,0x87,
0x2c,0xa3,0xdf,0xc6,0x9b,0xb3,0xa2,0x30,0xc6,0xca,0x4c,0x1f,0x16,0x85,0x27,0xf7,
0x61,0xa6,0xd1,0x2f,0xc6,0xbf,0xc8,0xca,0xba,0x2a,0xa6,0x16,0xb2,0x27,0xb4,0x0b,
0xe3,0xfb,0x4e,0x5b,0x7a,0xbd,0x8b,0x1b,0x9d,0xf1,0x93,0xc1,0x7e,0x21,0x67,0xc8,
0x69,0x4e,0x37,0x95,0x33,0x4a,0x9f,0xd3,0xd9,0x47,0x32,0x4d,0x2f,0x34,0x43,0x46,
0xfb,0xa5,0x90,0x73,0xaf,0x95,0x91,0x69,0x03,0xae,0x7d,0x5a,0x84,0x5e,0x1b,0x23,
0xd3,0x16,0xfb,0x6a,0xa7,0x1d,0x76,0x8a,0x8d,0x4c,0x7b,0x70,0xb5,0xd3,0x01,0x3d,
0xc1,0xb5,0x56,0x1d,0xb1,0xdf,0xc1,0xd8,0xea,0x8c,0xad,0x4e,0xc6,0xd6,0x69,0xe0,
0xaa,0xd7,0x05,0x5d,0xc1,0x8f,0xbb,0x1c,0xbb,0x44,0x58,0x45,0x6d,0xaa,0x57,0x52,
0x9b,0x2c,0xf3,0x5c,0x8d,0xda,0xd4,0x30,0x7b,0x5a,0x57,0xce,0x10,0xf5,0x79,0x06,
0x3a,0x33,0xb0,0x79,0x26,0x58,0x89,0xc9,0xa9,0x3b,0x78,0x37,0xe6,0xba,0x2b,0x98,
0xda,0xe8,0x81,0x5d,0x89,0xb1,0x87,0x89,0x31,0x9b,0x7b,0xb1,0xfc,0x6a,0x9a,0xb8,
0x6a,0x11,0x57,0x1d,0x13,0x57,0xcf,0xe0,0xe4,0xbd,0xb7,0xaf,0x47,0x0f,0xf1,0xe8,
0xa1,0x1e,0x3d,0xcc,0xa3,0x87,0x7b,0xf4,0x78,0x8f,0x9e,0xe0,0xd1,0xd3,0x3d,0x7a,
0x96,0x47,0x2f,0xf1,0xe8,0x47,0x82,0x93,0xcf,0x96,0xa5,0x1e,0x7f,0xbd,0xa1,0xe5,
0xdc,0xde,0xea,0xf1,0x3f,0xf3,0xf4,0xbf,0xf0,0xe8,0x3d,0xde,0x3c,0x9d,0x45,0xdd,
0xb4,0x7f,0x7a,0xd3,0x3f,0xbd,0x8c,0x4c,0x1f,0xf0,0x69,0xcc,0xdb,0xd9,0xe8,0xf5,
0x61,0xde,0x7a,0x82,0xa9,0xfc,0x39,0x9e,0xcd,0x7e,0x95,0xd8,0xec,0x0f,0xae,0xfd,
0x71,0x2e,0x7a,0xfd,0xb1,0xd9,0x17,0x4c,0xe5,0xcf,0x63,0xee,0xd4,0xe6,0xf9,0xd8,
0x1c,0x60,0x64,0x2e,0x00,0xd7,0xbd,0xfa,0x42,0xf4,0x2e,0x30,0x32,0x17,0x61,0x47,
0xcf,0xa5,0x8b,0xc1,0xe4,0x9e,0xb8,0x0c,0xec,0x12,0x74,0x85,0x27,0x7b,0xfc,0xe0,
0xa0,0x62,0x8f,0x17,0xde,0xa5,0x6e,0x0c,0xa6,0xd7,0x2e,0xa5,0x3f,0x4b,0xa1,0x07,
0x1b,0x5f,0x97,0xd1,0x7f,0x92,0xcf,0x50,0x68,0xe5,0x5d,0x4e,0x1c,0xc2,0x1b,0x06,
0xad,0x7b,0xed,0x15,0xec,0x4f,0x43,0xe9,0x3f,0x91,0x19,0x02,0xae,0xfa,0x57,0xd3,
0xbb,0x3a,0x27,0xa3,0xc0,0x4a,0xa2,0x1a,0x25,0xa2,0x3b,0xea,0xb5,0xdc,0x5b,0x4b,
0xe1,0xab,0xee,0x75,0xf0,0xc4,0xee,0x70,0x68,0xad,0xeb,0xf5,0xd4,0x75,0xb4,0x91,
0xbf,0x01,0xbc,0x8c,0xfa,0xdc,0x08,0x36,0x86,0xfa,0x8c,0x33,0xf5,0x11,0xde,0x58,
0x37,0x16,0x53,0x8f,0xb1,0xc6,0xce,0x4d,0xe4,0xbc,0x02,0x3b,0x37,0x83,0x0d,0x8a,
0xee,0xab,0x89,0x68,0x5d,0xdf,0x0a,0xde,0x89,0x3b,0xf3,0x44,0x74,0x6f,0x83,0x27,
0x31,0x8f,0x87,0x56,0xbb,0xb7,0x7b,0x76,0x27,0x82,0x59,0xbb,0x77,0x82,0x4f,0xe2,
0xae,0xad,0x76,0x27,0xc3,0x13,0xbb,0x13,0xa0,0xb5,0x16,0x77,0x51,0x8b,0x29,0xc6,
0xd7,0xdd,0xe0,0x5a,0x8b,0x7b,0xc0,0xb4,0x16,0xd3,0x4c,0x2d,0x84,0x37,0xd5,0x8d,
0x99,0xd4,0x62,0xaa,0xb1,0x33,0x83,0x98,0x75,0x2f,0xbc,0x8f,0x3b,0xfe,0x0c,0x62,
0x99,0x0e,0x26,0xe7,0xde,0x34,0xf4,0x67,0x1a,0xfd,0xfb,0xbd,0x9c,0x1f,0x00,0x1b,
0x44,0x1c,0x73,0x4c,0x1c,0xc2,0x9b,0xed,0xc6,0x5c,0xec,0xcc,0xc6,0xc7,0xac,0xa0,
0xe2,0x8e,0x37,0x07,0xde,0x5c,0xe3,0xe3,0x41,0xf6,0x37,0xa5,0xe7,0xe3,0xf3,0x2e,
0x62,0x5e,0xc0,0x7b,0xc8,0x7c,0x93,0xc7,0x43,0xe8,0x2d,0x30,0xe7,0xcd,0x42,0xf0,
0x79,0xc6,0xef,0x42,0xcf,0xef,0x1c,0xe3,0x67,0x11,0xfb,0xa4,0xd6,0x61,0x91,0x57,
0x87,0x69,0xd0,0xe3,0xa0,0x17,0x1b,0xdd,0x87,0x59,0x17,0xa2,0xbb,0x04,0x5a,0xe7,
0xf3,0xd1,0x4a,0xce,0xd9,0xc7,0xc0,0x45,0xfe,0x11,0x68,0x5d,0x87,0x8f,0x73,0x16,
0x2e,0x61,0x5f,0xd6,0x78,0x1e,0x37,0x36,0x9f,0xa8,0xc4,0xe6,0x93,0xe0,0x5a,0x93,
0xa7,0xc0,0xba,0x99,0xfe,0x7d,0xca,0xc8,0x3f,0x4d,0x9d,0x75,0x2e,0x9f,0x05,0x7b,
0x86,0xb9,0x5c,0x6e,0xe6,0xf2,0xd9,0x68,0x9f,0x12,0xd9,0x38,0xf7,0x65,0xd8,0x5c,
0xca,0x3b,0x9f,0xd4,0x65,0x39,0xbc,0x15,0xc6,0xc7,0x4a,0x7c,0xbc,0xc7,0xf9,0xf9,
0x3c,0xf7,0xdc,0x95,0xcc,0x67,0x76,0xb4,0x6f,0x56,0xe0,0x6a,0x73,0x95,0x67,0x73,
0x79,0x50,0x71,0x0f,0x7d,0x81,0xf3,0x49,0xd7,0xd2,0x6a,0x30,0x5d,0x4b,0xab,0xbd,
0x79,0x1a,0x67,0xe2,0x79,0xd1,0xdb,0xcf,0x5f,0xaa,0x64,0x3f,0x7f,0x19,0x5c,0xf7,
0xf3,0x57,0xd0,0x7b,0xd9,0xc8,0xbc,0xea,0xad,0x83,0x35,0x60,0x76,0x3f,0x7f,0x0d,
0xdd,0x35,0xd4,0x73,0x9d,0xa9,0xa7,0xf0,0xd6,0xba,0xf1,0x26,0x31,0xae,0x35,0x31,
0xbd,0x4e,0x4c,0x1b,0x8c,0xbf,0x37,0xc0,0x25,0xc7,0xf5,0xd0,0x92,0xe3,0x3a,0xf4,
0xdf,0x34,0xb2,0x6f,0x71,0x5f,0x50,0xfa,0x6d,0xee,0x03,0x1b,0xe9,0x8b,0x77,0x90,
0x79,0xdb,0xc8,0x6c,0xe4,0x0e,0xb1,0x05,0x99,0x77,0x91,0xdb,0x68,0x7c,0xbe,0xeb,
0xf9,0x5c,0x67,0xf4,0xdf,0x63,0x9e,0xf5,0x7c,0xdb,0x04,0xa6,0xbd,0xb4,0xc5,0xe4,
0x2e,0xbc,0xcd,0x91,0xaf,0xd8,0xce,0x66,0x63,0xe7,0x03,0xee,0x1a,0x4a,0x7f,0x88,
0x5d,0x5d,0xfb,0x1f,0x81,0x95,0x9b,0x9e,0xfa,0x98,0xde,0xf9,0xc8,0xf4,0xc4,0x36,
0x70,0xcd,0xe7,0x13,0x6c,0x6f,0x33,0x7b,0xe8,0xa7,0xe0,0xfa,0xee,0xb9,0x15,0x4c,
0x7c,0x0b,0xff,0x73,0xee,0x39,0x12,0xff,0x0e,0x13,0xbf,0xe0,0xdb,0xdd,0xf8,0x8a,
0xf8,0xb7,0x9b,0x78,0x77,0x7a,0xfd,0xfe,0x25,0xeb,0x63,0x27,0x3e,0xbe,0x00,0x93,
0x3a,0xee,0x40,0xff,0x2b,0xc3,0x2b,0xf5,0x78,0x3b,0x4c,0xdf,0x7f,0xcd,0xbd,0x4a,
0x73,0xfc,0x06,0x4c,0x74,0x3f,0x83,0xd6,0x38,0x76,0x71,0x27,0x53,0xfa,0x5b,0xea,
0xaa,0xef,0x4b,0xbb,0xc1,0x76,0x99,0xf9,0xdd,0x8d,0x6f,0x9d,0x97,0x2d,0x46,0xff,
0x3b,0xf4,0x27,0x12,0xcb,0xf7,0x60,0xa2,0xbb,0x07,0x5a,0xe3,0xdc,0xcb,0x7d,0x4f,
0xee,0x27,0x7b,0xcd,0xfd,0x59,0xde,0xf5,0xea,0x53,0xc7,0xba,0xdc,0x9f,0x73,0xf8,
0xd6,0x19,0xbd,0xb7,0x1a,0x1b,0x3f,0x80,0xdf,0xc0,0x3b,0xe2,0x8f,0x60,0x62,0xf3,
0x47,0xef,0xbd,0xa1,0xd1,0xbf,0xdf,0xd6,0x2a,0xee,0xe4,0x0d,0x78,0x96,0xef,0x20,
0x0d,0xb1,0x9f,0x6f,0xee,0xab,0x3f,0x99,0xfb,0xa8,0xd8,0xff,0x19,0x39,0xcd,0xef,
0x17,0x30,0xad,0xf5,0xaf,0x60,0x92,0xef,0x4f,0xd0,0x5a,0x9b,0xdf,0xb0,0x27,0xb1,
0xfd,0x66,0x62,0x4b,0xe2,0xbb,0x77,0xc0,0x37,0x60,0x8d,0xad,0x80,0x78,0x9a,0x9a,
0x6f,0x31,0x87,0x83,0xff,0x7e,0x7b,0xf8,0x0b,0x5c,0xf7,0x85,0x23,0xec,0x0b,0x93,
0x8c,0xcc,0xdf,0xe0,0x7a,0x1f,0x3b,0x0a,0x56,0x62,0xce,0xc1,0x63,0xd8,0x3a,0x6a,
0xf4,0x8e,0x13,0x87,0xde,0xd9,0x4e,0xf0,0x0d,0xad,0x14,0x79,0xc9,0xf3,0x04,0x72,
0xfa,0x0e,0xfb,0x0f,0xe2,0x7e,0x48,0xa9,0xf8,0x18,0x00,0x00
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x99,0x77,0x70,0x57,0x45,
0x10,0xc7,0xdf,0x25,0x21,0x09,0x84,0x16,0x5a,0x50,0x21,0x12,0x10,0xa4,0x13,0x85,
0xc4,0x60,0x0c,0x01,0x45,0x08,0x08,0x88,0xa0,0xa8,0x64,0xc4,0x06,0x76,0x14,0x05,
0x3b,0x28,0x36,0x14,0x2b,0x8a,0x15,0x51,0xec,0x22,0x58,0xb0,0x21,0xd8,0x45,0x14,
0x0b,0x76,0x05,0xb1,0xeb,0x8c,0xce,0xd8,0xb0,0x23,0xd8,0xf0,0xf6,0xdd,0x67,0xf3,
0xdb,0x9c,0xf9,0xcb,0xcc,0xbc,0xf9,0xbd,0xfd,0xee,0xee,0x77,0xf7,0xf6,0xf6,0xee,
0xdd,0x7b,0xc9,0xce,0xea,0x92,0x97,0x24,0x2e,0x69,0x92,0xe4,0x27,0x63,0x5c,0x92,
0xfe,0x15,0x26,0x59,0x89,0xdc,0x16,0x24,0xb9,0xe9,0xef,0xf0,0x51,0xe3,0x47,0xf5,
0x9d,0x3e,0x63,0x72,0xdf,0x01,0x65,0xa5,0xa2,0x6f,0x9e,0x64,0xa7,0x76,0xa2,0x6b,
0xe1,0x6d,0x1a,0xf9,0xdf,0x1c,0x7f,0x4d,0x3d,0xf4,0xe8,0xe3,0x05,0x2f,0xf0,0x8a,
0x96,0x1e,0xcf,0x49,0xb9,0x92,0x64,0x30,0xb6,0x72,0xd5,0x78,0xeb,0x1d,0x43,0x98,
0xa4,0x0b,0xbf,0x8a,0x39,0xb0,0x1c,0x83,0x65,0x81,0xe5,0x1b,0x2c,0x1b,0xac,0xa9,
0xc1,0x72,0xc0,0x5a,0x1a,0xac,0x11,0x58,0x1b,0x83,0xe5,0x82,0xb5,0x37,0x58,0x1e,
0x58,0x07,0x83,0xe5,0x83,0x75,0x32,0x58,0x63,0xb0,0x1d,0x0c,0xd6,0x04,0xac,0xbb,
0xc1,0x0a,0xc0,0x7a,0x1b,0xac,0x29,0x58,0xa9,0xc1,0x9a,0x81,0x0d,0x30,0x58,0x73,
0xb0,0x0a,0xa9,0xbb,0x1f,0xa9,0xd6,0x60,0xb8,0x1f,0xe1,0x64,0xf2,0xd7,0xfa,0x4c,
0x89,0xea,0x28,0xf6,0x53,0xa8,0x8f,0xd8,0x1f,0xe9,0x7f,0x3b,0xd7,0xe9,0x82,0x5c,
0x42,0x9d,0x45,0x6e,0xe4,0xea,0xf3,0xe5,0xba,0xff,0xf2,0x09,0xa6,0x7c,0xf9,0xae,
0x3e,0x9f,0xc8,0x25,0x46,0x96,0x79,0x2f,0xa0,0x8e,0x22,0x8f,0x46,0xde,0xc6,0x5f,
0xad,0xfd,0x28,0xb2,0xd2,0xf8,0xd9,0x29,0x9f,0xdc,0xb7,0xf5,0x36,0xb9,0xd4,0x38,
0x49,0x7f,0x73,0xd2,0xb9,0xc8,0x63,0x9c,0x25,0x3e,0xa7,0x7c,0xee,0x15,0x17,0x9f,
0x42,0x7c,0x5c,0x6a,0x93,0x93,0xb4,0xa2,0xcf,0xf2,0xe0,0x68,0xc7,0xbd,0x60,0xed,
0x7c,0xb4,0x22,0xec,0xc5,0x56,0xe6,0xbd,0x28,0xc5,0x83,0x6d,0x07,0x6c,0x8b,0x88,
0xd7,0xd1,0xc4,0xeb,0x80,0x4f,0x67,0xf2,0x15,0xac,0xd8,0xb3,0x6a,0x1f,0xfd,0xdf,
0x4b,0xe2,0x76,0xa7,0x9f,0x84,0xab,0x12,0xb9,0x07,0x58,0x2f,0xc6,0xd8,0xd3,0xd8,
0xf7,0x42,0x97,0x6b,0xf4,0xa5,0xf4,0xb8,0xca,0x65,0xe4,0xd9,0x8b,0xba,0x56,0x31,
0xb7,0x2a,0x57,0xd3,0xd7,0x6a,0x3f,0x2c,0x92,0xc7,0x62,0xdf,0xc6,0xb3,0x8c,0x37,
0x7e,0x13,0xe8,0x29,0xb5,0xab,0x65,0xbe,0x3a,0x7a,0x54,0x7b,0xb2,0x98,0xde,0x9b,
0x4c,0xbe,0x47,0x90,0xcb,0x14,0xc6,0x27,0xf2,0x91,0x60,0xa2,0x3f,0x86,0x7b,0x3b,
0x9e,0xa9,0xac,0x09,0x8d,0x3b,0x8d,0x38,0xaa,0x3f,0x95,0xf5,0xa6,0xf2,0xac,0x28,
0xaf,0xb3,0xfc,0xb5,0x35,0x3b,0x23,0x9f,0xc3,0x7a,0x52,0xbe,0x8b,0x8c,0xbf,0xc8,
0xf3,0xa3,0x7a,0xdd,0x41,0x9f,0xa8,0xff,0x3d,0xc2,0xe7,0xff,0x54,0x5e,0x4a,0xcf,
0xa9,0xfc,0x04,0xeb,0x5a,0xc6,0xf3,0x12,0xfd,0x61,0xeb,0xb6,0x36,0xb2,0xff,0x3a,
0x9a,0xdf,0x5f,0xd8,0xaf,0x44,0x96,0xfe,0xdb,0xcc,0x78,0x8b,0xbc,0xbc,0x85,0x9e,
0xcc,0xa2,0xce,0xba,0x56,0x8b,0x59,0x93,0x22,0xa7,0xeb,0xc5,0x51,0x47,0x17,0xea,
0x2c,0x72,0x3e,0x98,0xf0,0x34,0xc6,0x2f,0x9b,0x3c,0x9b,0xb8,0x90,0x53,0x63,0xec,
0x45,0x2e,0x00,0x13,0x7d,0x53,0xee,0xed,0xbc,0x74,0x65,0x1d,0xeb,0xb8,0x46,0xb9,
0xb0,0xa7,0xf7,0xf6,0x92,0xf0,0xc8,0x3a,0x17,0x6c,0x2d,0x63,0x2e,0xf7,0x5d,0x99,
0x45,0x2f,0x25,0xc4,0xde,0xec,0x91,0x46,0xf4,0x82,0xd4,0xa9,0xa3,0x0b,0xf5,0x52,
0xb9,0x38,0x92,0x7b,0x18,0x59,0xd6,0x6a,0x45,0xa4,0x1f,0x68,0x64,0x59,0xa7,0xbb,
0x45,0xf6,0x55,0x91,0xfd,0xe0,0xc8,0x7e,0xf7,0x48,0x3f,0x02,0x79,0x88,0xcf,0x52,
0x6a,0xd0,0x96,0xba,0x4c,0x4b,0xd7,0x51,0x18,0x77,0x3b,0x70,0xb1,0x91,0xf5,0x58,
0xe4,0xc2,0x9a,0xad,0x35,0x36,0xed,0x5d,0xc0,0xef,0xf7,0x36,0xd2,0x0b,0xdb,0xb8,
0xe0,0x27,0xf8,0xef,0xbe,0x12,0xdb,0xb1,0xc7,0xfe,0xe1,0xed,0x45,0xb7,0xad,0xbf,
0x04,0x93,0xfa,0xc8,0xfd,0xdf,0xbe,0xfa,0x72,0x2f,0xd8,0x20,0x6f,0xdf,0x91,0x1c,
0xe4,0xbe,0x98,0xfb,0x2d,0x5e,0xbf,0x3d,0x3e,0xf2,0xbb,0xc9,0x73,0x95,0xc8,0xde,
0x0c,0xb7,0xe8,0xbb,0xa0,0x97,0x5f,0xcd,0x6d,0x07,0x17,0xea,0xac,0xf9,0x77,0x23,
0xff,0xae,0xc6,0x66,0x47,0x17,0xf0,0x65,0xe4,0xdf,0xdd,0x05,0x3f,0xc1,0x25,0x67,
0x91,0x3b,0xc9,0xbe,0x0f,0x7f,0x27,0x97,0xa9,0x59,0xcf,0x06,0x6a,0xd6,0x0b,0x5c,
0x63,0xf6,0x6e,0x20,0x66,0x1f,0x17,0xf0,0xf3,0xe5,0x19,0xe4,0xe5,0xbe,0x2e,0xf8,
0xf5,0x31,0x36,0xfd,0xc8,0x7d,0x36,0x36,0xa5,0x2e,0xd8,0xf5,0xa3,0x4e,0xd2,0x2f,
0xa5,0xc6,0x7e,0x27,0x17,0x7a,0x48,0xe3,0xee,0x4c,0xdc,0xa5,0x26,0xb7,0xfe,0x2e,
0xe0,0x3a,0x57,0x03,0x5c,0xf0,0xeb,0xcf,0x5c,0x95,0x9b,0xb9,0x12,0x5d,0x99,0xbf,
0xca,0x19,0xb7,0xdc,0x4b,0x9d,0xb5,0x0e,0xe5,0x26,0xf6,0xae,0xc4,0x96,0xbc,0xa4,
0x4f,0x45,0x1e,0xe8,0x63,0xc8,0x5a,0xaa,0x74,0xe1,0x3c,0x32,0x10,0xbd,0xf4,0x75,
0x25,0xbe,0xa2,0x1f,0xe4,0x42,0xaf,0x8b,0x4e,0x7a,0x78,0x10,0xbe,0xb2,0x17,0x54,
0x4b,0xbf,0xd0,0xdb,0xa2,0x97,0x9e,0xaf,0x36,0x71,0x87,0x98,0xb8,0xd2,0xef,0x43,
0xd0,0x89,0xef,0x1e,0x2e,0xac,0x11,0xd1,0x49,0xef,0xef,0x91,0xf2,0xe6,0xa6,0x7e,
0x43,0x5d,0xd8,0xf7,0xc4,0x67,0x77,0xc3,0xb7,0xa7,0x0b,0xeb,0xf4,0x05,0x6a,0x3e,
0xcc,0x05,0x6c,0xa8,0xe9,0xcd,0x61,0xd4,0xa1,0x33,0x75,0xe8,0x6c,0xfc,0x87,0x47,
0x73,0x56,0xe3,0x02,0xb6,0xd4,0xf4,0x73,0x8d,0xab,0xdf,0xcf,0x25,0xc6,0x7f,0x24,
0xf1,0xc5,0x56,0xd6,0xe7,0x48,0x6a,0x21,0x7b,0xcb,0x5e,0x2e,0x9c,0xc3,0x46,0xb0,
0x66,0x2a,0xfc,0x55,0x4e,0x9c,0x02,0xf6,0x1d,0x79,0xb6,0xed,0xe2,0x7d,0xf3,0xd8,
0x77,0xf5,0xbe,0x09,0xfb,0x51,0x53,0xd3,0x0b,0xdd,0xb0,0xa9,0xeb,0x53,0x9e,0xc7,
0x3d,0x8d,0x4d,0x1f,0xf0,0xba,0x3e,0xc5,0xaf,0x8f,0xb1,0xe9,0x07,0xbf,0xf2,0xec,
0x04,0x4f,0xa9,0xb1,0xd9,0x19,0x5c,0x79,0xfa,0xe3,0x27,0xb8,0xd6,0x6a,0x00,0xfc,
0xfd,0x0d,0x57,0x39,0x5c,0x65,0x86,0x6b,0x17,0x70,0xf5,0xab,0xc0,0x57,0xf0,0x7f,
0xfc,0x18,0x2b,0x52,0x2c,0x53,0x9b,0x16,0x0d,0xd4,0xa6,0x99,0xb9,0x6f,0x4e,0x6d,
0x5a,0x9a,0xbd,0xb1,0x92,0x67,0x9b,0xc6,0xdc,0x0d,0x9f,0xb9,0x70,0x0e,0x02,0xab,
0x32,0x63,0x1a,0x0c,0x5e,0xcd,0x5c,0x57,0x82,0xd5,0xf5,0x2a,0xbc,0x92,0xe3,0x10,
0x93,0x63,0x21,0xe7,0x75,0xf9,0x6b,0x65,0xf2,0x6a,0x4d,0x5e,0x6d,0x4d,0x5e,0x43,
0x93,0xfa,0x7b,0xf8,0xc8,0x48,0x3e,0x28,0x92,0x27,0x45,0xf2,0x21,0x91,0x7c,0x78,
0x24,0xcf,0x88,0xe4,0x33,0x22,0xf9,0xc2,0x48,0xbe,0x3c,0x92,0x17,0x44,0xf2,0xc2,
0xa4,0xfe,0x33,0xea,0xae,0x48,0xff,0xb8,0x91,0xe5,0x3c,0xf1,0x72,0xa4,0x7f,0x3b,
0xf2,0x7f,0x37,0x92,0x3f,0x8d,0xe6,0x69,0x4f,0xea,0xa6,0xfd,0x33,0x9c,0xfe,0x19,
0x66,0x6c,0x6a,0xc0,0xe7,0x30,0x6f,0x23,0xf0,0xab,0x61,0xde,0x86,0x82,0xa9,0xfd,
0x5e,0x11,0xe7,0xa8,0x06,0x38,0x47,0x83,0x6b,0x7f,0x8c,0xc1,0x6f,0x34,0x9c,0x23,
0xc1,0xd4,0x7e,0x6f,0xe6,0x4e,0x39,0xf7,0x81,0x73,0xac,0xb1,0x19,0x07,0xae,0x7b,
0xf5,0xbe,0xf8,0x8d,0x33,0x36,0xfb,0xc1,0xa3,0xcf,0xae,0xfd,0xc1,0xe4,0xfc,0x7a,
0x37,0xd8,0x01,0xf8,0x8a,0x4e,0xf6,0xf8,0x89,0x49,0x66,0x8f,0x17,0xdd,0x81,0xfe,
0x9a,0x48,0xaf,0x1d,0x48,0x7f,0xd6,0x22,0x4f,0x34,0xb1,0x0e,0xa6,0xff,0x64,0x3c,
0x93,0x90,0x55,0x77,0x28,0x79,0x88,0xee,0x10,0x64,0xdd,0x6b,0x0f,0x63,0x7f,0x9a,
0x44,0xff,0x89,0xcd,0x41,0xe0,0xea,0x7f,0x14,0xbd,0xab,0x73,0x72,0x34,0x58,0x55,
0x5a,0xa3,0xdc,0xf4,0xec,0x7c,0x2c,0xe7,0xe9,0x5a,0xf4,0xea,0x7b,0x1c,0x3a,0xe1,
0x3d,0x1c,0x59,0xeb,0x7a,0x3c,0x75,0x9d,0x6a,0xec,0x4f,0x00,0x5f,0x4a,0x7d,0x4e,
0x04,0x9b,0x46,0x7d,0xa6,0x9b,0xfa,0x88,0xee,0x24,0x7f,0xdd,0x40,0x3d,0x4e,0x32,
0x3c,0x27,0x33,0xe6,0x25,0xf0,0x9c,0x02,0x36,0x21,0x3d,0x47,0xe7,0xa6,0xeb,0xfa,
0x34,0xf0,0x32,0xce,0xf2,0x33,0xf1,0x3d,0x1d,0x9d,0xe4,0x3c,0x03,0x59,0x79,0xcf,
0x8c,0x78,0x67,0x82,0x59,0xde,0xb3,0xc1,0x67,0xf1,0x0e,0xa0,0xbc,0xb3,0xd1,0x09,
0xef,0x19,0xc8,0x5a,0x8b,0x73,0xa9,0xc5,0x39,0x26,0xd6,0x79,0xe0,0x5a,0x8b,0xf3,
0xc1,0xb4,0x16,0x73,0x4c,0x2d,0x44,0x77,0x81,0xbf,0x2e,0xa1,0x16,0x17,0x18,0x9e,
0xb9,0xe4,0xac,0x7b,0xe1,0xc5,0xbc,0x7b,0xcc,0x25,0x97,0x0b,0xc1,0xe4,0xb9,0x37,
0x07,0xff,0x4b,0x8c,0xff,0xa5,0xd1,0x98,0x2f,0x03,0x9b,0x40,0x1e,0xf3,0x4c,0x1e,
0xa2,0xbb,0xc2,0x5f,0x57,0xc2,0x73,0x05,0x31,0x2e,0x4f,0x32,0x67,0xc5,0x79,0xe8,
0xae,0x34,0x31,0xae,0x62,0x7f,0x53,0xf9,0x6a,0x62,0x9e,0x4b,0xce,0xd7,0xf0,0x7e,
0x74,0xb5,0x19,0xc7,0xb5,0xf8,0x5d,0x63,0x9e,0x37,0xd7,0x81,0xcf,0x37,0x71,0xaf,
0x8b,0xe2,0xce,0x33,0x71,0xae,0x67,0x9f,0xd4,0x3a,0x5c,0x1f,0xd5,0x61,0x0e,0xf2,
0x74,0xe4,0x1b,0x8c,0xef,0x8d,0xac,0x0b,0xf1,0x5d,0x80,0xac,0xf3,0x79,0x53,0x03,
0xcf,0xd9,0x9b,0xc1,0xc5,0x7e,0x21,0xb2,0xae,0xc3,0x45,0x3c,0x0b,0x17,0xb0,0x2f,
0x6b,0x3e,0x8b,0x0c,0xe7,0x2d,0x0d,0x70,0xde,0x0a,0xae,0x35,0xb9,0x0d,0xac,0xda,
0xf4,0xef,0x6d,0xc6,0xfe,0x76,0xea,0xac,0x73,0x79,0x27,0xd8,0x1d,0xcc,0xe5,0x62,
0x33,0x97,0x77,0xa6,0xfb,0x94,0xd8,0x86,0xb1,0xdf,0x0d,0xe7,0x5d,0xbc,0x8b,0x4a,
0x5d,0x16,0xa3,0x5b,0x62,0x62,0xdc,0x4b,0x8c,0xd5,0x3c,0x3f,0xef,0xe3,0x9c,0x7b,
0x2f,0xf3,0x59,0x98,0xee,0x9b,0x19,0x5c,0x39,0xef,0x8f,0x38,0x17,0x27,0x99,0x73,
0xe8,0x03,0x3c,0x9f,0x74,0x2d,0x2d,0x03,0xd3,0xb5,0xb4,0x2c,0x9a,0xa7,0xe9,0x26,
0x9f,0x07,0xa3,0xfd,0xfc,0xa1,0x06,0xf6,0xf3,0x87,0xc1,0x75,0x3f,0x7f,0x04,0xbf,
0x87,0x8d,0xcd,0xa3,0xd1,0x3a,0x58,0x0e,0x66,0xf7,0xf3,0xc7,0xf0,0x5d,0x4e,0x3d,
0x57,0x9a,0x7a,0x8a,0x6e,0x85,0xbf,0x9e,0x26,0xc7,0x15,0x26,0xa7,0x27,0xc9,0xe9,
0x09,0x13,0xef,0x29,0x70,0x19,0xe3,0xe3,0xc8,0x32,0xc6,0x95,0xf8,0x3f,0x6d,0x6c,
0x9f,0xe1,0xbc,0xa0,0xf2,0xb3,0x9c,0x07,0x56,0xd1,0x17,0xcf,0x61,0xf3,0xac,0xb1,
0x59,0xc5,0x19,0x62,0x0d,0x36,0xcf,0x63,0xb7,0xca,0xc4,0x7c,0x3e,0x8a,0xb9,0xd2,
0xf8,0xaf,0x66,0x9e,0xf5,0xf9,0xf6,0x02,0x98,0xf6,0xd2,0x1a,0x33,0x76,0xd1,0xbd,
0x98,0xc6,0x0a,0x3c,0x2f,0x1a,0x9e,0x57,0x38,0x6b,0xa8,0xfc,0x2a,0xbc,0xba,0xf6,
0x5f,0x03,0x5b,0x6b,0x7a,0xea,0x75,0x7a,0xe7,0x35,0xd3,0x13,0x6f,0x80,0xeb,0x78,
0xde,0x84,0xfb,0x0d,0xb3,0x87,0xbe,0x05,0xae,0xef,0xb0,0x2f,0x83,0x49,0x6c,0xd1,
0xbf,0xc3,0x39,0x47,0xf2,0x5f,0x67,0xf2,0x17,0xfc,0x3d,0x7f,0x6d,0x20,0xff,0xf7,
0x4c,0xbe,0xeb,0xa3,0x7e,0x7f,0x9f,0xf5,0xb1,0x9e,0x18,0xef,0x82,0x49,0x1d,0xd7,
0xe1,0xbf,0xc1,0xe8,0x6a,0x23,0xdd,0x3a,0xd3,0xf7,0x1f,0x70,0xae,0xd2,0x31,0x7e,
0x08,0x26,0xbe,0x6f,0x23,0x6b,0x1e,0x1f,0x71,0x26,0x53,0xf9,0x63,0xea,0xaa,0xef,
0x4b,0x9f,0x80,0x7d,0x64,0xe6,0xf7,0x13,0x62,0xeb,0xbc,0xac,0x31,0xfe,0x9f,0xe1,
0x3f,0x93,0x5c,0x3e,0x07,0x13,0xdf,0x4f,0x91,0x35,0xcf,0x2f,0x38,0xef,0xc9,0xf9,
0xe4,0x0b,0x73,0x7e,0x96,0x77,0xbd,0x6d,0xa9,0x63,0x7b,0xce,0xcf,0xed,0xf8,0x06,
0x9b,0x7e,0x57,0x30,0x1c,0x5f,0x82,0x9f,0xc0,0x3b,0xe2,0x57,0x60,0xc2,0xf9,0x55,
0xf4,0xde,0xd0,0xa9,0xee,0x9b,0x5f,0xe6,0x4c,0x5e,0xcc,0xbd,0x7c,0x4f,0xd9,0x1e,
0xfe,0x12,0x73,0x5e,0xfd,0x21,0x3a,0xbf,0x6e,0x4a,0x32,0xdf,0x58,0x64,0x0d,0x7e,
0xc3,0x1a,0xfc,0xda,0xd4,0xe0,0x5b,0x70,0x5d,0xf3,0xdf,0x81,0xcd,0xa7,0x47,0x36,
0x9a,0x1e,0x11,0xdd,0xf7,0x69,0xbe,0x21,0xf6,0xf7,0x86,0xe7,0x47,0xf2,0xd3,0xde,
0xfc,0x09,0x6c,0xad,0xe1,0xfe,0x19,0x7c,0x9a,0x39,0x4b,0xfc,0x0a,0x5e,0xcb,0xf7,
0x39,0xed,0x83,0xdf,0xd0,0xc9,0x5c,0xfc,0x80,0xac,0xef,0xd6,0xbf,0x33,0xfe,0xb1,
0x9e,0x77,0x4b,0x9a,0x5b,0xc0,0x36,0xa7,0xdf,0x07,0xc3,0xf3,0xe6,0x4f,0xbe,0x05,
0xee,0x8a,0x5e,0xf3,0xfc,0x8b,0x3a,0xad,0x26,0xcf,0xbf,0xb1,0xfd,0x8b,0x58,0x9b,
0xc0,0xa4,0x67,0x36,0x32,0xce,0x7f,0x4c,0xec,0xad,0xc4,0xd6,0x9e,0x91,0x20,0x5b,
0x4d,0xde,0x8e,0x7f,0xbc,0x28,0x97,0x73,0xf5,0xb9,0x36,0x9a,0x5c,0xb2,0x5c,0x98,
0x23,0x99,0x7f,0xb9,0xd7,0xf9,0xcf,0xe2,0x7f,0x1e,0x09,0xff,0x4f,0xd0,0xf9,0xef,
0x02,0x47,0x57,0xf3,0xdd,0xac,0x59,0x03,0xdf,0x80,0x9a,0x83,0xeb,0xbc,0xb7,0xe0,
0x5b,0xcc,0x2c,0x63,0xd3,0xd2,0x05,0x5c,0xcf,0xbc,0x85,0x2e,0x60,0x55,0xe6,0xac,
0xd1,0xca,0x05,0xae,0x42,0xf3,0x8d,0xa0,0xb5,0x0b,0x79,0xe8,0xb9,0xb8,0x0d,0xdf,
0x3f,0x6b,0xb1,0x97,0x71,0x0b,0xd6,0xda,0x7c,0x27,0xf8,0x17,0xfa,0x05,0x4b,0x20,
0xf4,0x1a,0x00,0x00
};
// Generated from:
......@@ -189,7 +200,7 @@ constexpr uint8_t kConvertVertex_comp_00000002[] = {
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Sd + component * 4 + params . destOffset;
// return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
......@@ -271,7 +282,18 @@ constexpr uint8_t kConvertVertex_comp_00000002[] = {
// uint makeDestinationComponent(uint cd, float value)
// {
//
// uint valueAsUint = floatBitsToInt(value);
// uint valueAsUint;
//
// if(params . Bd == 2)
// {
//
// uint shift =((cd & 1)== 0)? 0 : 16;
// valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
// }
// else
// {
// valueAsUint = floatBitsToInt(value);
// }
//
// return valueAsUint;
// }
......@@ -288,9 +310,9 @@ constexpr uint8_t kConvertVertex_comp_00000002[] = {
// return;
//
// uint valueOut = 0;
// for(uint i = 0;i < 1;++ i)
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * 1 + i;
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
// if(cd >= params . componentCount)
// {
// break;
......
......@@ -10,123 +10,133 @@
#pragma once
constexpr uint8_t kConvertVertex_comp_00000003[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x79,0x94,0x8f,0x65,
0x14,0xc7,0xdf,0x77,0x66,0xfc,0x8c,0x31,0xc6,0x36,0x63,0x4f,0x44,0x45,0x64,0x6b,
0x2c,0x21,0xe9,0x48,0x43,0x4d,0x49,0x22,0x1c,0x92,0x25,0x52,0x91,0xad,0x45,0x4d,
0x25,0x5b,0x28,0x4b,0xc8,0x92,0x52,0x22,0x84,0xa4,0x94,0x2c,0x25,0xd9,0x3a,0x39,
0x47,0xe5,0x1c,0xb2,0xb4,0x29,0xad,0x4e,0xd6,0x84,0x14,0x7a,0xee,0xfb,0x7e,0xae,
0xb9,0x9e,0x33,0x7f,0xf5,0x3b,0xe7,0x3d,0xbf,0xf7,0x7e,0xef,0xbd,0xdf,0x7b,0x9f,
0xfb,0xdc,0x67,0xf9,0xfd,0x92,0x93,0xaa,0x15,0x0e,0x82,0x30,0x48,0x0b,0x52,0x83,
0xf2,0x61,0x10,0x7d,0x4a,0x06,0x49,0x81,0xbc,0x16,0x0d,0x12,0xd1,0x77,0x4e,0x6e,
0x87,0xdc,0x3a,0x43,0x87,0xf5,0xa9,0x93,0xdd,0xb0,0x9e,0xe8,0x33,0x82,0xe4,0xc8,
0x4e,0x74,0xc5,0x9d,0x4d,0x21,0xf7,0x9d,0xe2,0x9e,0x01,0x3d,0xfb,0x0f,0x14,0x7c,
0x9f,0x7b,0x4a,0x38,0x3c,0x25,0xe2,0x0a,0x82,0x96,0xd8,0xca,0xd3,0xc6,0x59,0x5f,
0x1e,0x87,0x09,0xaa,0xf1,0xad,0x58,0x08,0x96,0x62,0xb0,0x24,0xb0,0x54,0x83,0x25,
0x83,0xa5,0x1b,0x2c,0x05,0xac,0x84,0xc1,0x0a,0x81,0x65,0x1a,0x2c,0x01,0x56,0xce,
0x60,0x85,0xc1,0x2a,0x19,0x2c,0x15,0xac,0x8a,0xc1,0x8a,0x80,0x55,0x37,0x58,0x1a,
0x58,0x0d,0x83,0x15,0x05,0xab,0x6d,0xb0,0x74,0xb0,0x7a,0x06,0x2b,0x06,0x96,0x6d,
0xb0,0x0c,0xb0,0x26,0x52,0x77,0x37,0x52,0xad,0x41,0x8e,0x1b,0x61,0x6f,0xf2,0xd7,
0xfa,0xf4,0xf1,0xea,0x28,0xf6,0x7d,0xa8,0x8f,0xd8,0xf7,0x75,0xdf,0x97,0x5d,0xd0,
0xc5,0x72,0x55,0xea,0x2c,0xf2,0x4e,0x8f,0x6f,0x57,0x01,0x7c,0xbb,0x0c,0xdf,0x6e,
0x8f,0x6f,0x37,0x7c,0x2a,0xef,0x63,0xec,0x95,0x90,0xcb,0x85,0xb1,0x5c,0xde,0x3d,
0xa5,0xdd,0x28,0x92,0x22,0xfb,0xe4,0x88,0x4f,0xde,0xb3,0x9c,0x4d,0x82,0x1a,0x07,
0xd1,0x77,0x4a,0x34,0x17,0x85,0xc9,0xab,0xaa,0xcb,0x29,0x95,0x77,0xc5,0xab,0x3a,
0x9b,0x92,0x06,0x2b,0xe3,0xd8,0xb2,0xe0,0x10,0x5d,0x99,0x88,0x37,0xd6,0x09,0x5f,
0x05,0xde,0xb3,0xe0,0xab,0x68,0x7c,0x2b,0xe0,0x53,0x85,0x7c,0x04,0xab,0xec,0xd8,
0xb5,0x4f,0xfe,0xef,0x23,0x71,0xaf,0xa0,0x5f,0x84,0xab,0x19,0xf2,0x95,0x60,0x32,
0xee,0x1a,0xe4,0x2c,0x73,0x51,0x0b,0xb9,0xa6,0xf1,0xbf,0x0a,0xdb,0x84,0xd1,0xd7,
0xa5,0xa7,0x55,0xce,0x26,0xef,0x5a,0xd4,0xb1,0x39,0x73,0xa9,0x72,0x0b,0xfa,0x58,
0xed,0x5b,0x7b,0x72,0x3b,0xec,0x33,0x1d,0xcb,0x1d,0xc6,0xaf,0x23,0x73,0xae,0x72,
0x57,0xe6,0xe7,0x12,0x87,0x6a,0x0f,0x56,0xa6,0xd7,0x7a,0x93,0xef,0xbd,0xe4,0xd2,
0x87,0xf1,0x8a,0xdc,0xd7,0xe4,0x27,0xf1,0xfa,0x99,0x79,0xbe,0x1f,0x9d,0x1d,0xdf,
0x00,0xd6,0x84,0xca,0x8f,0xb0,0xbe,0x54,0xce,0x33,0x79,0x89,0xfc,0xa4,0x7b,0xce,
0x27,0xe7,0xcb,0x23,0x58,0x3f,0x9a,0xf7,0xb3,0xc6,0x5f,0xe4,0xa9,0x5e,0xbd,0xe6,
0x33,0x07,0x92,0xcf,0x1b,0xcc,0x7f,0x0d,0xc3,0xff,0xa6,0xf0,0xbb,0x8f,0xca,0x4b,
0xbd,0xf9,0x5a,0xc7,0xba,0x96,0xba,0xec,0x34,0x75,0x91,0x35,0xb3,0x13,0xde,0xaf,
0x88,0xb9,0x8b,0xba,0x88,0xbc,0x1b,0xac,0xac,0x93,0xf7,0xe0,0x97,0x8c,0xfd,0x5e,
0x62,0xec,0xc1,0x7e,0x2f,0xfb,0x69,0x88,0xfe,0x6b,0xde,0x13,0x66,0x1c,0x27,0x4c,
0x5e,0x22,0x97,0x0d,0xe3,0x3d,0xb7,0xb6,0x93,0x84,0x47,0xd6,0xa1,0x60,0x27,0xb0,
0x6d,0xe4,0xba,0x28,0x89,0xb9,0x0f,0x88,0x7d,0xda,0x21,0x85,0x88,0x29,0x75,0xf8,
0x83,0x7a,0xa8,0x7c,0xc8,0x93,0x4f,0x7a,0x72,0x72,0x78,0xb1,0x9c,0x62,0xe4,0x68,
0x0d,0x7a,0xfa,0x54,0x4f,0x2e,0xea,0xd9,0x17,0xf3,0xf4,0x99,0xc8,0x37,0xb8,0x2c,
0xa5,0x06,0x3f,0x51,0x17,0xe9,0xcd,0xeb,0x18,0xf7,0xcf,0xe0,0x62,0x23,0xeb,0xe7,
0x17,0xd6,0x5c,0x3f,0x63,0xf3,0x2b,0xf8,0x72,0x67,0x23,0x3d,0xff,0x1b,0x7e,0x82,
0x9f,0x72,0x95,0x38,0x48,0x4d,0xce,0x38,0x7b,0xd1,0xfd,0xee,0x9e,0x83,0xd4,0x47,
0xde,0xcf,0xba,0x4a,0xcb,0xfb,0xc1,0x68,0x7d,0x25,0x47,0x75,0xea,0xca,0xfb,0x21,
0xde,0xff,0x76,0xfa,0xc3,0xf8,0x1c,0x8e,0x6a,0x95,0x12,0x1c,0x75,0xdf,0xc7,0xe0,
0x16,0xfd,0x71,0xf4,0xc7,0x4d,0x6e,0x7f,0x52,0xe7,0x15,0xe4,0xf6,0x17,0xd8,0x09,
0xf2,0x11,0xf9,0x88,0x7b,0x8e,0xe2,0x7b,0xc4,0xd4,0xe3,0x54,0x01,0xf5,0x38,0x0d,
0x3e,0xda,0xd9,0x24,0xa2,0xb8,0x31,0x76,0xc2,0xd8,0x9c,0x21,0xe6,0x08,0x6c,0xfe,
0xc1,0xee,0x0c,0x63,0x3a,0x09,0xa6,0xf6,0xff,0x32,0xf7,0x5a,0xe3,0xb3,0xd4,0x78,
0xa9,0xb1,0x39,0x07,0xae,0x35,0x3e,0x8f,0xdf,0x39,0x6a,0x1c,0x86,0xf9,0x35,0x3e,
0xcf,0x45,0x42,0x30,0x19,0x93,0xbc,0x4b,0x7d,0x74,0x8c,0x82,0x2b,0x6f,0xa1,0x30,
0x8e,0x2d,0x79,0x49,0x7f,0x89,0x7c,0x2d,0x79,0x27,0x42,0x39,0x63,0xe2,0xbe,0x13,
0xbd,0xf4,0x63,0xc2,0xf8,0x16,0x09,0xe3,0x1e,0x15,0x9d,0xf4,0x5e,0x11,0x7c,0xe5,
0x5c,0x48,0x0b,0xe3,0xfb,0x40,0x2a,0x7a,0xe9,0xd5,0x34,0xe3,0x9b,0x6e,0xe2,0x4a,
0x9f,0xa6,0xa3,0x13,0xdf,0x8c,0x30,0xee,0x6d,0xd1,0x49,0xcf,0x66,0x44,0xbc,0x89,
0xc8,0xaf,0x78,0x28,0xfb,0x41,0xdc,0xdb,0xc5,0x0c,0x5f,0x89,0x30,0x5e,0x5f,0x5b,
0xc8,0xbd,0x64,0x18,0x63,0xc5,0xc3,0xfc,0x9e,0x2a,0x49,0x1d,0x8e,0x51,0x87,0x63,
0xa6,0xbe,0xa5,0xc2,0x8b,0xe7,0xac,0x74,0x18,0x63,0x4b,0x4d,0x1f,0x96,0x0e,0x2f,
0xee,0xc3,0xa3,0xc6,0x3f,0x8b,0xf8,0x62,0x2b,0xeb,0x2a,0x8b,0x5a,0xc8,0x9e,0x50,
0x26,0x8c,0xcf,0x78,0xc1,0xa5,0xd7,0x9b,0xb8,0xa7,0x11,0x71,0x8a,0xd2,0xbf,0x72,
0x86,0x34,0x96,0x3a,0x71,0x46,0xe9,0x7b,0x1a,0xb1,0xd2,0x4d,0xac,0xea,0xd8,0x68,
0xbf,0xd4,0xa2,0x5f,0x6a,0x1a,0x9b,0xda,0xe0,0xda,0xa7,0x57,0xe3,0x57,0xdb,0xd8,
0xd4,0x81,0x5f,0x79,0xea,0xc1,0x53,0xd7,0xd8,0xd4,0x07,0x57,0x9e,0x06,0xf8,0xd5,
0x37,0xb5,0xba,0x06,0xfe,0x06,0x86,0xab,0x21,0x5c,0xd9,0x86,0xab,0x11,0xb8,0xfa,
0x35,0xc6,0xb7,0x51,0xd4,0xc7,0x49,0x91,0x6c,0x6b,0x53,0xbc,0x80,0xda,0x14,0x33,
0xef,0x19,0xd4,0xa6,0x84,0xd9,0xd3,0x9a,0xb2,0x87,0x6a,0xcc,0x66,0xf8,0x8c,0x87,
0xf3,0x3a,0xb0,0xe6,0x66,0x4c,0xd7,0x83,0xb7,0x60,0xfe,0x9a,0x5e,0xc0,0x62,0x8e,
0x96,0xf0,0x4a,0x8e,0x2d,0xbd,0x1c,0x4b,0x07,0x7a,0xbf,0xcf,0xcf,0xab,0x14,0x79,
0x65,0x9a,0xbc,0x5a,0x79,0x7b,0x7b,0x5b,0x4f,0xee,0xe6,0xc9,0xdd,0x3d,0xb9,0x87,
0x27,0xf7,0xf2,0xe4,0xa1,0x9e,0x3c,0xdc,0x93,0xc7,0x7a,0xf2,0x44,0x4f,0x9e,0xed,
0xc9,0x73,0x8c,0x2c,0xe7,0xf8,0x42,0x4f,0xbf,0xd6,0x93,0x37,0x7b,0x75,0xbf,0x91,
0x3a,0x68,0x3f,0xdc,0x44,0x3f,0xb4,0x36,0x36,0x39,0xe0,0x63,0xa9,0x65,0x1b,0xfc,
0x72,0x98,0x87,0x56,0x60,0x6a,0x7f,0xb3,0xc7,0x79,0x4b,0x01,0x9c,0xb9,0xe0,0x3a,
0xdf,0xb7,0xe2,0x97,0x0b,0x67,0x5b,0x30,0xb5,0xbf,0x8d,0xb9,0x50,0xce,0xdb,0xe1,
0x6c,0x67,0x6c,0xda,0x83,0xeb,0xde,0xdb,0x01,0xbf,0xf6,0xc6,0xe6,0x4e,0x78,0xf4,
0x9c,0xe9,0x04,0x26,0xf7,0xbe,0x45,0x60,0x77,0xe1,0xdb,0x89,0x3d,0xbb,0x8b,0x39,
0x17,0x45,0xd7,0xd9,0x3d,0x5d,0xe8,0x9d,0xce,0xf4,0x5b,0x57,0xe4,0x2e,0x26,0xd6,
0xdd,0xf4,0x93,0x8c,0xa7,0x3b,0xb2,0xea,0xee,0x21,0x0f,0xd1,0xf5,0x40,0xd6,0xbd,
0xb3,0x27,0xfb,0x4d,0x77,0xfa,0x49,0x6c,0xba,0x81,0xab,0xff,0x7d,0xf4,0xa2,0xce,
0x49,0x7f,0xb0,0xe6,0x51,0x8d,0x12,0xd1,0x1d,0xf3,0x01,0xee,0xa1,0xfd,0xd0,0xab,
0xef,0x83,0xe8,0x84,0xb7,0x17,0xb2,0xd6,0x75,0x20,0x75,0x1d,0x60,0xec,0x1f,0x02,
0x5f,0x4a,0x7d,0x06,0x81,0x75,0xa5,0x3e,0x43,0x4c,0x7d,0x44,0x37,0xd8,0x3d,0xb3,
0xa8,0xc7,0x60,0xc3,0x33,0x8c,0x31,0x2f,0x81,0xe7,0x61,0xb0,0x8e,0xd1,0x7d,0x33,
0x11,0xdd,0x2b,0x1f,0x05,0xcf,0xe6,0x0e,0x9c,0x87,0xef,0x63,0xe8,0x24,0xe7,0xa1,
0xc8,0xca,0xfb,0xb8,0xc7,0xfb,0x04,0x98,0xe5,0x7d,0x0a,0x3c,0x8f,0xbb,0xb3,0xf2,
0x3e,0x8d,0x4e,0x78,0x87,0x23,0x6b,0x2d,0x9e,0xa1,0x16,0x23,0x4c,0xac,0x91,0xe0,
0x5a,0x8b,0x51,0x60,0x5a,0x8b,0x31,0xa6,0x16,0xa3,0xa2,0xbd,0x2b,0x08,0x26,0x50,
0x8b,0xd1,0x86,0x67,0x1c,0x39,0xeb,0xde,0x36,0x9e,0x3b,0xfb,0x38,0x72,0x19,0x0b,
0x26,0xe7,0xd8,0x18,0xfc,0x27,0x18,0xff,0xe7,0xbc,0x31,0x3f,0x0f,0xd6,0x91,0x3c,
0x26,0x9b,0x3c,0x44,0x37,0xc9,0x3d,0x53,0xe0,0x99,0x44,0x8c,0x89,0xe6,0xce,0x36,
0x19,0xdd,0x14,0x13,0xe3,0x05,0xf6,0x2b,0x95,0xa7,0x11,0x73,0x24,0x39,0x4f,0xe7,
0x77,0xc5,0x34,0x33,0x8e,0x17,0xf1,0x9b,0x6e,0xce,0x8f,0x19,0xe0,0x53,0x4d,0xdc,
0x19,0x5e,0xdc,0xc9,0x26,0xce,0x4c,0xf6,0x3d,0xad,0xc3,0x4c,0xaf,0x0e,0x63,0x90,
0x87,0x20,0xcf,0x32,0xbe,0x2f,0xb1,0x2e,0xc4,0x77,0x36,0xb2,0xce,0xe7,0xcb,0x05,
0x9c,0x9b,0xaf,0x80,0x8b,0xfd,0x1c,0x64,0x5d,0x87,0x73,0x39,0xdb,0x66,0xb3,0xcf,
0x6a,0x3e,0x73,0x0d,0xe7,0xab,0x05,0x70,0xbe,0x06,0xae,0x35,0x99,0x07,0xd6,0xc2,
0xf4,0xef,0x3c,0x63,0xff,0x3a,0x75,0xd6,0xb9,0x5c,0x00,0x36,0x9f,0xb9,0x5c,0x6c,
0xe6,0x72,0x41,0xb4,0x4f,0x89,0x6d,0x3c,0xf6,0x45,0x70,0x2e,0xe4,0x37,0x9b,0xd4,
0x65,0x31,0xba,0x25,0x26,0xc6,0x32,0x62,0x6c,0x76,0x31,0x64,0x3d,0xbc,0xc5,0xbd,
0x75,0x19,0xf3,0x59,0x23,0xda,0x37,0xf3,0x71,0xe5,0x5c,0xee,0x71,0x2e,0x86,0x53,
0xec,0xdf,0xe6,0xbc,0xd1,0xb5,0xb4,0x02,0x4c,0xd7,0xd2,0x0a,0x6f,0x9e,0x86,0x98,
0x7c,0xde,0xf1,0xf6,0xf3,0x77,0x0b,0xd8,0xcf,0x57,0x82,0xeb,0x7e,0xfe,0x1e,0x7e,
0x2b,0x8d,0xcd,0xfb,0xde,0x3a,0x58,0x05,0x66,0xf7,0xf3,0x0f,0xf0,0x5d,0x45,0x3d,
0xd7,0x98,0x7a,0x8a,0x6e,0xb5,0x7b,0xd6,0x93,0xe3,0x6a,0x93,0xd3,0x87,0xe4,0xb4,
0xce,0xc4,0xfb,0x08,0x5c,0xc6,0xb8,0x16,0x59,0xc6,0xb8,0x06,0xff,0xf5,0xc6,0xf6,
0x63,0xce,0x7f,0x95,0x37,0x70,0xbe,0x6f,0xa4,0x2f,0x3e,0xc1,0x66,0x83,0xb1,0xd9,
0xc8,0x9d,0xe0,0x53,0x6c,0x36,0x61,0xb7,0xd1,0xc4,0xdc,0xe4,0xc5,0x5c,0x63,0xfc,
0xb7,0x70,0xe6,0x8b,0xed,0x66,0x64,0xd5,0x6d,0xe5,0xfc,0x97,0xf3,0x6a,0xab,0xb9,
0x1f,0x65,0xf1,0x9f,0x60,0x10,0xfd,0xa7,0x94,0x7f,0x3f,0x2a,0x0b,0x7f,0x79,0xc3,
0xf1,0x19,0xf8,0x20,0x7e,0x03,0x6c,0x03,0x13,0xce,0x6d,0xde,0x9d,0xab,0x32,0x9c,
0x15,0x0d,0x67,0x25,0xde,0x2b,0x44,0xff,0x1d,0xc4,0xfc,0x97,0x9a,0xfb,0xc9,0x76,
0x73,0x3f,0x11,0xfe,0xcf,0xb1,0xcb,0xa3,0xe7,0xbe,0x00,0xd3,0x9e,0xfb,0x12,0x4c,
0xc6,0xbb,0x1d,0x59,0x73,0xdd,0x01,0x9f,0xe4,0xb6,0xc3,0xe4,0x96,0x64,0xfe,0xcb,
0xab,0x62,0x72,0xab,0x4a,0x3e,0xd5,0xcc,0x6f,0xcb,0x6f,0x0a,0xf8,0x6d,0xf9,0x2d,
0xb8,0xf6,0xc9,0x77,0xf4,0x49,0x9e,0xb1,0xf9,0x1e,0x5c,0xcf,0xe7,0xfd,0x60,0xcd,
0xcd,0xbe,0xf8,0x03,0x5c,0xfb,0x8d,0xdf,0x8f,0xe4,0xa1,0x67,0xf8,0x01,0xfe,0x33,
0xe9,0x87,0xbd,0x8c,0xf3,0x00,0x76,0xfa,0x1b,0xe5,0x3f,0x7c,0x96,0x24,0x0b,0xc8,
0x16,0x00,0x00
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x77,0x70,0x55,0x55,
0x10,0xc6,0xef,0x7d,0x49,0x5e,0x42,0xe8,0x90,0xd0,0x82,0x18,0x08,0x25,0x90,0x50,
0x0d,0x45,0x40,0xc4,0xb1,0x60,0x41,0x51,0x11,0x85,0x8c,0x88,0x0a,0x1a,0x51,0x41,
0x29,0x16,0x34,0x2a,0xd2,0x04,0x54,0x40,0x6c,0x20,0x8a,0x05,0x14,0x04,0x54,0x14,
0x0b,0x45,0x11,0x11,0x70,0x64,0xc6,0x02,0x88,0x1d,0x15,0x0b,0xcc,0x80,0x14,0x1b,
0x82,0x0d,0xcf,0xde,0xfb,0x5b,0xde,0x72,0xcc,0x5f,0x66,0xe6,0x4e,0xee,0x7e,0xbb,
0xfb,0x9d,0x3d,0xbb,0x7b,0xca,0xbb,0x69,0x89,0x82,0xcc,0x20,0x08,0x83,0xec,0x20,
0x2b,0x38,0x2e,0x0c,0xa2,0xbf,0x9a,0x41,0x22,0x90,0xd7,0xca,0x41,0x32,0xfa,0xdf,
0xab,0x77,0xdf,0xde,0x6d,0x46,0x8d,0x1e,0xd2,0xa6,0xa4,0x63,0x3b,0xd1,0x57,0x0b,
0xd2,0x22,0x3b,0xd1,0x55,0x77,0x36,0x19,0xee,0x7f,0xba,0x7b,0x86,0x5d,0x36,0x74,
0xb8,0xe0,0xfb,0xdd,0x53,0xc3,0xe1,0xe9,0x11,0x57,0x10,0xf4,0xc4,0x56,0x9e,0xd3,
0x9d,0x75,0xb3,0x78,0x98,0xa0,0x80,0xff,0x8a,0x85,0x60,0xe9,0x06,0x4b,0x80,0x65,
0x19,0x2c,0x0d,0xac,0x8a,0xc1,0xd2,0xc1,0x6a,0x18,0x2c,0x03,0x2c,0xc7,0x60,0x49,
0xb0,0x7a,0x06,0xcb,0x04,0x6b,0x68,0xb0,0x2c,0xb0,0x7c,0x83,0x55,0x02,0x6b,0x6a,
0xb0,0x6c,0xb0,0x42,0x83,0x55,0x06,0x2b,0x36,0x58,0x15,0xb0,0x76,0x06,0xab,0x0a,
0x56,0x62,0xb0,0x6a,0x60,0x5d,0x24,0xef,0x6e,0xa6,0x9a,0x83,0x5e,0x6e,0x86,0x83,
0x89,0x5f,0xf3,0x33,0xc4,0xcb,0xa3,0xd8,0x0f,0x21,0x3f,0x62,0x7f,0xa5,0xfb,0xdf,
0xe4,0x88,0x2e,0x96,0x1b,0x93,0x67,0x91,0x77,0x79,0x7c,0xbb,0x2b,0xe0,0xdb,0x6d,
0xf8,0xf6,0x78,0x7c,0x7b,0xe0,0x53,0x79,0x3f,0x73,0x6f,0x88,0xdc,0x21,0x8c,0xe5,
0xfa,0xee,0xa9,0xed,0x66,0x91,0x88,0xec,0xd3,0x22,0x3e,0x79,0xcf,0x75,0x36,0x49,
0x72,0x1c,0x44,0xff,0xd3,0xa3,0x5a,0x64,0x12,0x57,0x63,0x17,0x53,0x16,0xef,0x8a,
0x37,0x76,0x36,0x35,0x0d,0x56,0xc7,0xb1,0xe5,0xc2,0x21,0xba,0x3a,0x11,0x6f,0xac,
0x13,0xbe,0x06,0xbc,0xe7,0xc2,0x97,0x67,0x7c,0x1b,0xe0,0x93,0x4f,0x3c,0x82,0x35,
0x72,0xec,0xda,0x27,0xff,0xf7,0x91,0x71,0x9b,0xd3,0x2f,0xc2,0xd5,0x0d,0xb9,0x05,
0x98,0xcc,0xbb,0x90,0x98,0xa5,0x16,0x45,0xc8,0x2d,0x8d,0x7f,0x2b,0x6c,0x93,0x46,
0xdf,0x96,0x9e,0x56,0xb9,0x84,0xb8,0x8b,0xc8,0x63,0x77,0x6a,0xa9,0x72,0x0f,0xfa,
0x58,0xed,0x4f,0xf5,0xe4,0x3e,0xd8,0xe7,0x38,0x96,0xf3,0x8d,0x5f,0x3f,0x6a,0xae,
0x72,0x29,0xf5,0x39,0xc6,0xa1,0xda,0x83,0x8d,0xe8,0xb5,0xc1,0xc4,0x7b,0x05,0xb1,
0x0c,0x61,0xbe,0x22,0x5f,0x69,0xe2,0x93,0xf1,0xca,0x4c,0x9d,0xaf,0x46,0x67,0xe7,
0x37,0x8c,0x35,0xa1,0xf2,0x8d,0xac,0x2f,0x95,0xcb,0x4d,0x5c,0x22,0xdf,0xe6,0x9e,
0xc3,0x69,0x29,0x79,0x2c,0xeb,0x47,0xe3,0xbe,0xcb,0xf8,0x8b,0x3c,0xd3,0xcb,0xd7,
0x3c,0x6a,0x20,0xf1,0x3c,0x4d,0xfd,0x0b,0x0d,0xff,0xb3,0xc2,0xef,0xfe,0x54,0x5e,
0xec,0xd5,0x6b,0x15,0xeb,0x5a,0xe5,0xf7,0xa8,0x99,0xf2,0x6f,0xf5,0xec,0x3f,0x65,
0x7f,0x12,0x59,0xfa,0x71,0x1b,0xf9,0xa8,0xeb,0xe4,0xaf,0xe8,0xd1,0x04,0x79,0xde,
0x65,0xf2,0x2c,0x6b,0x70,0x17,0x71,0xfe,0x88,0xcd,0x6e,0xf2,0x2c,0xf2,0x1e,0x30,
0xe1,0xd9,0x8b,0x5f,0x1a,0xf6,0xfb,0x88,0x61,0x2f,0xf6,0xfb,0xd8,0x9f,0x43,0xf4,
0x3f,0xf1,0x6e,0xeb,0x90,0xcd,0xba,0xd5,0x79,0xb4,0x0f,0xe3,0x3d,0xbc,0xd8,0x49,
0xc2,0x23,0xeb,0x5a,0xb0,0xad,0xcc,0xb1,0x93,0xeb,0xca,0x04,0xbd,0x14,0x30,0xf6,
0x41,0x87,0x64,0x30,0xa6,0xe4,0x35,0x11,0xc6,0xf9,0x55,0x39,0xcd,0x93,0xab,0x79,
0xf2,0x31,0x9e,0xdc,0xc8,0xc8,0xd1,0xba,0xf5,0xf4,0x4d,0x3c,0xb9,0x99,0x67,0xdf,
0xc2,0xd3,0xb7,0x41,0x3e,0xc9,0x45,0x29,0x39,0xf8,0x83,0xbc,0x48,0xaf,0x9f,0xc0,
0xbc,0xff,0x04,0x17,0x1b,0x59,0x8f,0x7f,0xb1,0x86,0xcb,0x8c,0xcd,0xdf,0xe0,0xcf,
0x3b,0x1b,0x59,0x43,0xff,0xe0,0x27,0xf8,0xef,0x92,0x09,0xce,0xd4,0x3f,0x9c,0xbd,
0xe8,0x0e,0x73,0x70,0x4a,0x7e,0x0e,0x47,0x76,0x61,0xf4,0x2e,0x58,0x0f,0x67,0x2f,
0x79,0x2a,0x0d,0xe2,0xf7,0x34,0xde,0x0f,0x39,0x7d,0x3a,0x3e,0xf2,0xff,0x80,0x8c,
0x2d,0xf1,0xc3,0x2d,0xfa,0x2c,0xf4,0xf2,0x5f,0x63,0xab,0x14,0xc6,0x79,0xd6,0xf8,
0x2b,0x87,0x71,0xfc,0xd9,0xc6,0xa6,0x4a,0x18,0xe3,0x4b,0x89,0xbf,0x6a,0x18,0xfb,
0x09,0x2e,0x31,0x8b,0x9c,0xe1,0x9e,0x24,0xfc,0x19,0x61,0x2a,0x67,0xd5,0xc3,0xff,
0xe6,0xac,0x46,0x18,0xe3,0x3a,0x66,0xcd,0x0a,0xc6,0xac,0x15,0xc6,0xf8,0x04,0x67,
0x23,0x72,0xed,0x30,0xf6,0xab,0x65,0x6c,0x72,0x88,0x7d,0x2c,0x36,0xb9,0x61,0x6c,
0x97,0x43,0x9e,0xa4,0x5f,0x72,0x8d,0x7d,0x9d,0x30,0xee,0x21,0x1d,0xb7,0x2e,0xe3,
0x2e,0x36,0xb1,0xd5,0x0b,0x63,0x5c,0x6b,0x55,0x3f,0x8c,0xfd,0x04,0x97,0x5a,0xe5,
0x99,0x5a,0x89,0xae,0x81,0x7b,0xf2,0x98,0xb7,0xbc,0x4b,0x9e,0x35,0x0f,0x79,0x66,
0xec,0x63,0x19,0x5b,0xe2,0x92,0x3e,0x15,0xf9,0x78,0xe2,0xce,0x97,0xb8,0xe9,0x5f,
0xd1,0x4b,0x5f,0xe7,0x1b,0xdf,0x82,0x30,0xee,0x75,0xd1,0x49,0x0f,0x17,0xe0,0x2b,
0x7b,0x41,0xd3,0x30,0xbe,0xa7,0x34,0x41,0x2f,0x3d,0xdf,0xd4,0xf8,0x36,0x37,0xe3,
0x4a,0xbf,0x37,0x47,0x27,0xbe,0x85,0x61,0xbc,0x46,0x44,0x27,0xbd,0x5f,0x18,0xf1,
0x26,0x23,0xbf,0x96,0xa1,0xec,0x2b,0xf1,0x1a,0x69,0x61,0xf8,0x5a,0x85,0xf1,0x3a,
0x5d,0x4f,0xec,0x45,0x61,0x8c,0xb5,0x34,0xbd,0x59,0x44,0x1e,0x32,0xc9,0x43,0xa6,
0xf1,0x2f,0xf6,0x6a,0xd6,0x3a,0x8c,0xb1,0xc5,0xa6,0x9f,0x5b,0x87,0x47,0xf7,0x73,
0xd2,0xf8,0xb7,0x65,0x7c,0xb1,0x95,0xf5,0xd9,0x96,0x5c,0xc8,0xde,0xd2,0x2e,0x8c,
0xef,0x1e,0x82,0xcb,0x9a,0xe9,0xe2,0x9e,0x4e,0x8c,0x53,0x99,0x7d,0x47,0xce,0xb6,
0xce,0xce,0x37,0x93,0x7d,0x58,0xdf,0xb3,0xd9,0x8f,0xaa,0x98,0x5e,0x68,0x8a,0x8d,
0xf6,0x4b,0x11,0x6b,0xbb,0xa5,0xb1,0x29,0x06,0xd7,0x3e,0x6d,0x8d,0x5f,0xb1,0xb1,
0x69,0x03,0xbf,0xf2,0xb4,0x83,0xa7,0xad,0xb1,0x69,0x0f,0xae,0x3c,0x1d,0xf0,0x6b,
0x1f,0xa4,0x72,0x75,0x1c,0xfc,0x1d,0x0c,0x57,0x47,0xb8,0x4a,0x0c,0x57,0x27,0x70,
0xf5,0xeb,0x8c,0x6f,0xa7,0x68,0xef,0x49,0x44,0xb2,0xcd,0x4d,0xf5,0x0a,0x72,0x53,
0xd5,0xbc,0x57,0x23,0x37,0x35,0xcc,0xde,0xd8,0x95,0xb3,0x50,0xc7,0xec,0x86,0xcf,
0x14,0x38,0x4f,0x00,0xeb,0x6e,0xe6,0x74,0x22,0x78,0x0f,0x6a,0xdd,0xf5,0x08,0x16,
0x73,0xf4,0x84,0x57,0x62,0xec,0xe9,0xc5,0x58,0x3b,0xd0,0xdf,0x1d,0xa9,0xb8,0x6a,
0x11,0x57,0x8e,0x89,0xeb,0xe4,0xe0,0xe8,0x3d,0xfc,0x0c,0x4f,0xbe,0xd8,0x93,0x07,
0x7a,0xf2,0x20,0x4f,0xbe,0xdc,0x93,0x47,0x79,0xf2,0x18,0x4f,0x9e,0xe4,0xc9,0xf7,
0x7a,0xf2,0x6c,0x4f,0x9e,0x63,0x64,0xb9,0x5f,0x3c,0xe3,0xe9,0x57,0x7a,0xf2,0x3a,
0x2f,0xef,0xa7,0x90,0x07,0xed,0x87,0xd3,0xe8,0x87,0x53,0x8d,0x4d,0x2f,0xf0,0x49,
0xe4,0xf2,0x74,0xfc,0x7a,0x51,0x87,0x93,0xc1,0xd4,0xfe,0x4c,0x8f,0xf3,0xac,0x0a,
0x38,0x7b,0x83,0x6b,0xbd,0xcf,0xc6,0xaf,0x37,0x9c,0x67,0x80,0xa9,0xfd,0x39,0xd4,
0x42,0x39,0xcf,0x85,0xb3,0x8f,0xb1,0x39,0x0f,0x5c,0xf7,0xde,0xbe,0xf8,0x9d,0x67,
0x6c,0x2e,0x80,0x47,0xcf,0xa2,0x0b,0xc1,0xe4,0x3e,0xba,0x00,0xec,0x22,0x7c,0x2f,
0xe4,0x7c,0x1d,0x10,0xa4,0xf6,0x6c,0xd1,0xf5,0x77,0xcf,0x00,0x7a,0xa7,0x3f,0xfd,
0x56,0x8a,0x3c,0xc0,0x8c,0x75,0x09,0xfd,0x24,0xf3,0x19,0x88,0xac,0xba,0x4b,0x89,
0x43,0x74,0x83,0x90,0x75,0xef,0xbc,0x8c,0xfd,0x66,0x20,0xfd,0x24,0x36,0x17,0x83,
0xab,0xff,0x55,0xf4,0xa2,0xd6,0x64,0x28,0x58,0xf7,0x28,0x47,0xc9,0xe8,0xee,0x7b,
0x0d,0xf7,0xe3,0x32,0xf4,0xea,0x7b,0x2d,0x3a,0xe1,0xbd,0x1c,0x59,0xf3,0x3a,0x9c,
0xbc,0x0e,0x33,0xf6,0xd7,0x81,0x2f,0x26,0x3f,0xd7,0x83,0x95,0x92,0x9f,0x91,0x26,
0x3f,0xa2,0x1b,0xe1,0x9e,0x59,0xe4,0x63,0x84,0xe1,0x19,0xcd,0x9c,0x17,0xc1,0x73,
0x03,0x58,0xbf,0xe8,0x1e,0x9c,0x8c,0xee,0x85,0x37,0x81,0x97,0x70,0x37,0x2f,0xc7,
0xf7,0x66,0x74,0x12,0xf3,0x28,0x64,0xe5,0xbd,0xc5,0xe3,0xbd,0x15,0xcc,0xf2,0xde,
0x0e,0x5e,0xce,0x9d,0x5e,0x79,0xef,0x40,0x27,0xbc,0x63,0x90,0x35,0x17,0x77,0x92,
0x8b,0xb1,0x66,0xac,0x71,0xe0,0x9a,0x8b,0xf1,0x60,0x9a,0x8b,0x89,0x26,0x17,0xe3,
0xa3,0xbd,0x2b,0x08,0xa6,0x92,0x8b,0x09,0x86,0x67,0x32,0x31,0xeb,0xde,0x36,0x85,
0xdf,0x12,0x93,0x89,0x65,0x12,0x98,0x9c,0x63,0x13,0xf1,0x9f,0x6a,0xfc,0xef,0xf6,
0xe6,0x7c,0x0f,0x58,0x3f,0xe2,0x98,0x6e,0xe2,0x10,0xdd,0x34,0xf7,0xcc,0x80,0x67,
0x1a,0x63,0xdc,0x1b,0xa4,0xee,0x7e,0xd3,0xd1,0xcd,0x30,0x63,0xdc,0xc7,0x7e,0xa5,
0xf2,0xfd,0x8c,0x39,0x8e,0x98,0x1f,0xe0,0xf7,0xce,0xfd,0x66,0x1e,0x0f,0xe2,0xf7,
0x80,0x39,0x3f,0x1e,0x02,0x9f,0x69,0xc6,0x7d,0xc8,0x1b,0x77,0xba,0x19,0xe7,0x61,
0xf6,0x3d,0xcd,0xc3,0xc3,0x5e,0x1e,0x26,0x22,0x8f,0x44,0x9e,0x65,0x7c,0x1f,0x61,
0x5d,0x88,0xef,0x6c,0x64,0xad,0xe7,0xa3,0x15,0x9c,0x9b,0x8f,0x81,0x8b,0xfd,0x1c,
0x64,0x5d,0x87,0x73,0x39,0xdb,0x66,0xb3,0xcf,0x6a,0x3c,0x73,0x0d,0xe7,0xe3,0x15,
0x70,0x3e,0x01,0xae,0x39,0x79,0x12,0xac,0x87,0xe9,0xdf,0x27,0x8d,0xfd,0x53,0xe4,
0x59,0x6b,0x39,0x1f,0x6c,0x1e,0xb5,0x5c,0x68,0x6a,0x39,0x3f,0xda,0xa7,0xc4,0x36,
0x9e,0xfb,0x02,0x38,0x9f,0xe1,0xb7,0xa4,0xe4,0x65,0x21,0xba,0x45,0x66,0x8c,0x25,
0x8c,0xb1,0xce,0x8d,0x21,0xeb,0xe1,0x39,0xee,0xad,0x4b,0xa8,0x67,0x61,0xb4,0x6f,
0xa6,0x70,0xe5,0x7c,0xde,0xe3,0x5c,0x08,0xa7,0xd8,0xbf,0xc0,0x79,0xa3,0x6b,0x69,
0x29,0x98,0xae,0xa5,0xa5,0x5e,0x9d,0x46,0x9a,0x78,0x5e,0xf4,0xf6,0xf3,0x97,0x2a,
0xd8,0xcf,0x97,0x81,0xeb,0x7e,0xfe,0x32,0x7e,0xcb,0x8c,0xcd,0x2b,0xde,0x3a,0x78,
0x15,0xcc,0xee,0xe7,0xaf,0xe1,0xfb,0x2a,0xf9,0x5c,0x61,0xf2,0x29,0xba,0xe5,0xee,
0x59,0x4d,0x8c,0xcb,0x4d,0x4c,0xaf,0x13,0xd3,0x2a,0x33,0xde,0x1b,0xe0,0x32,0xc7,
0x95,0xc8,0x32,0xc7,0x15,0xf8,0xaf,0x36,0xb6,0x6f,0x72,0xfe,0xab,0xbc,0x86,0xf3,
0x7d,0x2d,0x7d,0xf1,0x16,0x36,0x6b,0x8c,0xcd,0x5a,0xee,0x04,0xef,0x60,0xf3,0x36,
0x76,0x6b,0xcd,0x98,0x6f,0x7b,0x63,0xae,0x30,0xfe,0xeb,0x39,0xf3,0xc5,0x76,0x1d,
0xb2,0xea,0x36,0x70,0xfe,0xcb,0x79,0xb5,0xc1,0xdc,0x8f,0x72,0xf9,0x56,0x19,0x44,
0xdf,0xba,0x52,0xf7,0xa3,0xba,0xf0,0xd7,0x37,0x1c,0xef,0x82,0x5f,0xcf,0x6f,0x80,
0x8d,0x60,0xc2,0xb9,0xd1,0xbb,0x73,0x35,0x82,0x33,0xcf,0x70,0x36,0xe4,0xbd,0x41,
0xf4,0x0d,0x22,0xe6,0x3f,0xd6,0xdc,0x4f,0xb6,0x78,0xf7,0x95,0x2f,0x82,0xd4,0x6f,
0x68,0xa9,0xc9,0xfb,0xd4,0xe4,0x3d,0x13,0xd3,0x07,0xe0,0xda,0x03,0x1f,0x82,0xcd,
0xa4,0xde,0x9b,0x4d,0xbd,0x45,0xb7,0xc9,0x3d,0xdf,0x31,0xf6,0x26,0xc3,0xf3,0x11,
0xf1,0x69,0xee,0x3f,0x06,0xdb,0x6a,0xb8,0x3f,0x01,0x2f,0x35,0x67,0xcb,0x67,0xe0,
0x65,0x7c,0x7f,0xd1,0xf5,0xf0,0x39,0x3a,0xa9,0xc5,0x16,0x64,0xfd,0xed,0xf4,0x25,
0xf3,0x3f,0xd7,0xf1,0xca,0x77,0x99,0xaf,0xc1,0xb6,0x45,0xdf,0x7b,0xe2,0xfd,0xe7,
0x1b,0xbe,0x9b,0x74,0x45,0xaf,0x71,0x6e,0x27,0x4f,0xeb,0x88,0xf3,0x5b,0x6c,0xb7,
0x33,0xd6,0x17,0x60,0xd2,0x23,0x9b,0x99,0xe7,0x77,0x66,0xec,0xef,0x19,0xbb,0x9c,
0x75,0xfc,0x03,0x98,0xc6,0xbd,0x03,0x4c,0xb9,0x76,0x78,0x5c,0x9b,0x4d,0x2c,0x3b,
0xa9,0x91,0xd4,0x7f,0xa7,0xa9,0x7f,0xc2,0x7c,0xc7,0xcd,0x37,0xf5,0x6f,0x0c,0x47,
0x81,0xf9,0x2e,0xf2,0x73,0x05,0xdf,0x45,0x7e,0x01,0xd7,0xba,0xff,0x4a,0xdd,0xcb,
0x8d,0xcd,0x6f,0xe0,0x7a,0x07,0x3a,0x00,0xd6,0xdd,0x9c,0x3d,0xbf,0xc3,0x75,0xc0,
0xf8,0x1d,0x24,0x0e,0xbd,0x27,0x1d,0xe2,0xfb,0x56,0x19,0xf6,0x32,0xef,0x43,0xd8,
0xe9,0xef,0xc0,0x7f,0x01,0x2a,0xd3,0x2c,0x03,0xc4,0x18,0x00,0x00
};
// Generated from:
......@@ -178,7 +188,7 @@ constexpr uint8_t kConvertVertex_comp_00000003[] = {
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Sd + component * 4 + params . destOffset;
// return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
......@@ -253,7 +263,18 @@ constexpr uint8_t kConvertVertex_comp_00000003[] = {
// uint makeDestinationComponent(uint cd, float value)
// {
//
// uint valueAsUint = floatBitsToInt(value);
// uint valueAsUint;
//
// if(params . Bd == 2)
// {
//
// uint shift =((cd & 1)== 0)? 0 : 16;
// valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
// }
// else
// {
// valueAsUint = floatBitsToInt(value);
// }
//
// return valueAsUint;
// }
......@@ -270,9 +291,9 @@ constexpr uint8_t kConvertVertex_comp_00000003[] = {
// return;
//
// uint valueOut = 0;
// for(uint i = 0;i < 1;++ i)
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * 1 + i;
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
// if(cd >= params . componentCount)
// {
// break;
......
......@@ -10,138 +10,148 @@
#pragma once
constexpr uint8_t kConvertVertex_comp_00000004[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x77,0x70,0x57,0x45,
0x10,0xc7,0xdf,0x25,0xe1,0x97,0x48,0x42,0x87,0x04,0xa4,0x25,0x04,0x31,0x98,0x10,
0x5a,0x08,0x3d,0xe2,0x28,0x62,0xc1,0x8a,0x28,0x30,0x22,0x16,0x34,0xa2,0x62,0x03,
0x3b,0x28,0x58,0xa2,0x88,0x22,0x76,0xc5,0xde,0x69,0x16,0x14,0x0b,0x45,0xb1,0xa0,
0x60,0x09,0x62,0xc5,0xde,0x7b,0x99,0x71,0xc6,0x82,0x82,0x88,0xb7,0xef,0x3e,0x2b,
0xcb,0x4d,0xfe,0x32,0x33,0x6f,0x7e,0x6f,0xbf,0xbb,0xfb,0xdd,0xbd,0xbd,0xbd,0xf2,
0x92,0x9d,0x55,0x9a,0x9b,0x24,0x2e,0x69,0x9c,0xe4,0x25,0x35,0x2e,0x49,0xff,0x5a,
0x24,0x59,0x89,0xbc,0xe6,0x27,0x99,0xf4,0x77,0xc4,0xc8,0x51,0x23,0x2b,0xa7,0x4c,
0x9d,0x58,0x59,0xd5,0xaf,0x97,0xe8,0x9b,0x26,0xd9,0xa9,0x9d,0xe8,0x9a,0x79,0x9b,
0x46,0xfe,0x37,0xc7,0x3f,0x93,0x8f,0x9a,0x74,0xb2,0x2a,0x9a,0x7b,0x3c,0x27,0xe5,
0x4a,0x92,0x61,0xd8,0xca,0xb3,0x97,0xb7,0xde,0x29,0x84,0x49,0x4a,0xf9,0x55,0xcc,
0x81,0xe5,0x18,0x2c,0x0b,0x2c,0xcf,0x60,0xd9,0x60,0x05,0x06,0xcb,0x01,0x6b,0x6e,
0xb0,0x46,0x60,0xad,0x0d,0x96,0x01,0x6b,0x6b,0xb0,0x5c,0xb0,0x0e,0x06,0xcb,0x03,
0x2b,0x36,0xd8,0x0e,0x60,0x5d,0x0d,0xd6,0x18,0xac,0xcc,0x60,0xf9,0x60,0x15,0x06,
0x2b,0x00,0xeb,0x65,0xb0,0x26,0x60,0x55,0x06,0x6b,0x0a,0x36,0x40,0xea,0xee,0x47,
0xaa,0x35,0x18,0xe1,0x47,0x78,0x0c,0xf9,0x6b,0x7d,0x26,0x46,0x75,0x14,0xfb,0x89,
0xd4,0x47,0xec,0x8f,0xf3,0xbf,0x5d,0xfe,0xd3,0x05,0xb9,0x84,0x3a,0x8b,0xbc,0x29,
0xe2,0xdb,0xdc,0x00,0xdf,0x66,0xc3,0xb7,0x25,0xe2,0xdb,0x02,0x9f,0xca,0x42,0x9c,
0x4f,0x1d,0x45,0x1e,0x8a,0xdc,0xce,0x3f,0xad,0xfc,0x28,0xb2,0x52,0xfb,0xec,0x94,
0x4f,0xde,0xdb,0x78,0x9b,0x0c,0x35,0x4e,0xd2,0xdf,0x9c,0x74,0x2e,0x72,0xc9,0xab,
0xc4,0xe7,0x94,0xc7,0xbb,0xe2,0x85,0xde,0xbb,0x05,0x3e,0x25,0xde,0xbe,0x25,0x3d,
0x96,0x8b,0x7f,0x21,0xef,0x2d,0xd0,0x17,0xf1,0x5e,0x08,0x5f,0x7b,0xc3,0x57,0x88,
0x4d,0x31,0xf9,0x08,0xd6,0xc9,0x5b,0x6b,0x9f,0xfc,0xdf,0x47,0xf2,0xe8,0x46,0xbf,
0x08,0xd7,0x60,0xe4,0x9d,0xc1,0x64,0xdc,0x65,0x8c,0x41,0xe6,0xa2,0x1c,0xb9,0xbb,
0xf1,0xdf,0x05,0xdb,0x8c,0xd1,0xf7,0xa4,0xa7,0x55,0xae,0x22,0xef,0x72,0xea,0x38,
0x84,0xb9,0x54,0xb9,0x86,0x3e,0x56,0xfb,0xe1,0x91,0x7c,0x00,0xf6,0xad,0x3d,0xcb,
0xc1,0xc6,0x6f,0x34,0x73,0x2e,0xb2,0xd4,0x6e,0x1c,0xf3,0xd3,0xd1,0xa3,0xda,0x83,
0x9d,0xe8,0xb5,0x63,0xc8,0xf7,0x58,0x72,0x99,0xc8,0x78,0x45,0x3e,0xce,0xe4,0x27,
0xf1,0x6a,0xcd,0x3c,0x9f,0x80,0xce,0x8e,0x6f,0x32,0x6b,0x42,0xf3,0x38,0x15,0x7b,
0xd5,0x9f,0xc5,0x7a,0x53,0x79,0xba,0xc9,0x53,0xe4,0xf3,0xfd,0xb3,0x35,0x7b,0x9b,
0x3c,0x93,0xf5,0xa4,0x7c,0x97,0x19,0x7f,0x91,0xaf,0x8d,0xea,0x77,0x2f,0x73,0x22,
0xf9,0xdd,0x4f,0x3f,0x94,0x19,0xfe,0x85,0xc2,0xef,0xff,0x54,0x5e,0x1c,0xcd,0xdf,
0x4a,0xd6,0xb9,0xf8,0xbf,0x8c,0xbf,0xad,0x6b,0xbd,0xb1,0x97,0xba,0xfe,0x98,0x8e,
0x6e,0xc6,0x2a,0xa9,0xeb,0x26,0x53,0x57,0x59,0x73,0x9b,0xe0,0xf9,0x9b,0x1c,0x37,
0x53,0x57,0x91,0xb7,0x80,0x15,0x79,0xf9,0x1f,0xfc,0xb2,0xb1,0xdf,0x4a,0x8c,0x7f,
0xb0,0xdf,0xca,0x7e,0xec,0xd0,0x3b,0xde,0x33,0xb6,0x6f,0x5c,0xd8,0xa3,0x2b,0xbc,
0x24,0x7e,0xb2,0x6e,0x05,0xab,0x27,0xe7,0x6a,0xdf,0x75,0x59,0xf4,0x4a,0x42,0xac,
0x3f,0x3d,0xd2,0x88,0x18,0x32,0xce,0x96,0x2e,0x8c,0x57,0xe5,0x56,0x91,0xdc,0xde,
0xc8,0xb2,0xee,0xca,0x22,0x7d,0xf7,0x48,0x5f,0x11,0xc9,0x3d,0x22,0xfb,0x5e,0x91,
0xbe,0x4f,0xa4,0x1f,0x88,0xbc,0x9b,0xcf,0x52,0xc6,0xdc,0x98,0x03,0x48,0x7a,0x6a,
0x28,0xe3,0xce,0x07,0x17,0x1b,0x59,0x6f,0x05,0x2e,0xac,0xd1,0x5a,0x63,0xd3,0xc4,
0x05,0xfc,0x21,0x6f,0x23,0x73,0xd9,0xd4,0x05,0x3f,0xc1,0x37,0xfa,0x4a,0x34,0xe7,
0xcc,0xdc,0xe4,0xed,0x45,0xd7,0x4c,0xce,0x3e,0x17,0xea,0x23,0xef,0x5b,0x7c,0x50,
0x79,0x17,0xac,0xc6,0xdb,0xb7,0x24,0x07,0x79,0x6f,0xc5,0xfb,0x5f,0x5e,0xdf,0x1a,
0x1f,0xf9,0xfd,0x43,0xc6,0xe4,0x7f,0x8b,0xe0,0x16,0x7d,0x5b,0xf4,0xf2,0xab,0xb9,
0xb5,0x73,0xa1,0xce,0x8f,0x90,0xdb,0x8e,0x2e,0x60,0xf5,0xe4,0x23,0x72,0x1b,0xff,
0x14,0xe2,0xdb,0xc6,0x6d,0xab,0x47,0x87,0x06,0xea,0xd1,0x11,0xfc,0x62,0x6f,0x93,
0xf6,0xa2,0x0b,0x58,0xbd,0xb1,0xe9,0x4c,0xcc,0x19,0xd8,0x14,0xbb,0x60,0xd7,0x99,
0xf1,0xc9,0x3c,0x17,0x9b,0x1c,0x4b,0x5c,0x98,0x7b,0xad,0x71,0x17,0x6a,0xbc,0xd8,
0x70,0x96,0xba,0x80,0x6b,0x8d,0xbb,0xba,0xe0,0x57,0x4a,0x8d,0xbb,0x99,0x1a,0x8b,
0x6e,0x27,0xff,0x74,0x63,0x4c,0xf2,0x2e,0xf5,0xd1,0x31,0x76,0x33,0xb1,0x77,0x21,
0xb6,0xe4,0x25,0xfd,0x25,0xf2,0x40,0x1f,0x43,0xd6,0x5e,0xb9,0x0b,0xf7,0x82,0xee,
0xe8,0xa5,0x1f,0xcb,0xf1,0x15,0x7d,0xa5,0x0b,0x3d,0x2a,0x3a,0xe9,0xbd,0x4a,0xe3,
0xdb,0xd3,0x85,0x33,0xad,0x07,0x7a,0xe9,0xd5,0x9e,0x26,0x6e,0x6f,0x13,0x57,0xfa,
0xb4,0xb7,0xe1,0xed,0xeb,0x42,0x6f,0x8b,0x4e,0x7a,0xb6,0x6f,0xca,0x9b,0x49,0xfd,
0xaa,0xa4,0x96,0xf4,0x76,0x1f,0xc3,0xd7,0xcf,0x85,0xf5,0xf5,0x22,0x35,0xaf,0x76,
0x01,0xab,0x32,0x3d,0x55,0x4d,0x1d,0x8a,0xa8,0x43,0x91,0xf1,0xef,0x1f,0xcd,0xd9,
0x00,0x17,0xb0,0xc5,0xa6,0x0f,0x07,0xb8,0xed,0xfb,0xb0,0xd0,0xf8,0x0f,0x22,0xbe,
0xd8,0xca,0xba,0x1a,0x44,0x2d,0x64,0x4f,0x18,0xec,0xc2,0x9d,0x60,0x20,0xbd,0x3e,
0xc0,0x3f,0xd5,0xc4,0xc9,0x67,0xbf,0x90,0x33,0xa7,0xbf,0xf7,0xcd,0xe5,0x4c,0xd3,
0xf7,0xc6,0xec,0x23,0x05,0xa6,0x17,0xba,0x62,0xa3,0xfd,0x52,0xce,0xb9,0xd9,0xdd,
0xd8,0x54,0x80,0x6b,0x9f,0xf6,0xc0,0xaf,0xc2,0xd8,0x54,0xc2,0xaf,0x3c,0xbd,0xe0,
0xe9,0x69,0x6c,0x7a,0x83,0x2b,0x4f,0x1f,0xfc,0x04,0xd7,0x5a,0xf5,0x85,0xbf,0x8f,
0xe1,0xea,0x07,0x57,0x95,0xe1,0xaa,0x06,0x57,0xbf,0xfe,0xf8,0x56,0xa7,0x7b,0x71,
0x56,0x2a,0xdb,0xda,0x34,0x6b,0xa0,0x36,0x4d,0xcc,0x7b,0x53,0x6a,0xd3,0xdc,0xec,
0x69,0x83,0x38,0x53,0x34,0xe6,0x60,0x7c,0x66,0xc1,0x39,0x14,0x6c,0x88,0x19,0xd3,
0xae,0xe0,0x35,0xcc,0xf5,0xa0,0xff,0xb0,0xc0,0x31,0x0c,0x5e,0xc9,0x71,0x98,0xc9,
0xb1,0x05,0xf7,0x66,0xf9,0x6b,0x69,0xf2,0x6a,0x45,0x5e,0x6d,0x4c,0x5e,0xbb,0x27,
0xdb,0xef,0xbd,0x7b,0x47,0xf2,0xe1,0x91,0x3c,0x3e,0x92,0x27,0x44,0xf2,0xd1,0x91,
0x3c,0x35,0x92,0xcf,0x8d,0xe4,0x4b,0x23,0x79,0x4e,0x24,0xcf,0x8b,0xe4,0x5b,0x8d,
0x2c,0xe7,0xfc,0x03,0x91,0x7e,0x85,0x91,0xe5,0x1c,0x7f,0x25,0xd2,0xbf,0x15,0xf9,
0xbf,0x13,0xc9,0x9f,0x25,0xdb,0x9f,0x4d,0x5f,0x46,0xf3,0xb6,0x07,0x75,0xd4,0x7e,
0xda,0x93,0x7e,0x1a,0x6e,0x6c,0x46,0x80,0xd7,0x31,0x8f,0x7b,0xe1,0x37,0x82,0x79,
0xdc,0x1d,0x4c,0xed,0xf7,0x89,0x38,0xf7,0x6d,0x80,0x73,0x24,0xb8,0xf6,0xcb,0x7e,
0xf8,0x8d,0x84,0x73,0x6f,0x30,0xb5,0xdf,0x9f,0xb9,0x54,0xce,0x03,0xe1,0x3c,0xc0,
0xd8,0x1c,0x04,0xae,0x7b,0xf7,0x28,0xfc,0x0e,0x32,0x36,0x87,0xc0,0xa3,0xe7,0xd4,
0xa1,0x60,0xa3,0xd3,0xda,0x07,0xec,0x30,0x7c,0x45,0x27,0x7b,0xfe,0xd8,0x64,0xdb,
0x9e,0x2f,0xba,0x31,0xfe,0x19,0x4b,0xef,0x8d,0xa1,0x5f,0xc7,0x21,0x8f,0x35,0xb1,
0x8e,0xa0,0x1f,0x65,0x3c,0xe3,0x91,0x55,0x77,0x24,0x79,0x88,0x6e,0x02,0xb2,0xee,
0xbd,0x47,0xb1,0x5f,0x8d,0xa7,0x1f,0xc5,0xe6,0x70,0x70,0xf5,0x3f,0x9e,0x5e,0xd6,
0x39,0x99,0x04,0x36,0x24,0xad,0x51,0x26,0xbd,0xd3,0x9e,0xc8,0xbd,0xb7,0x16,0xbd,
0xfa,0x9e,0x84,0x4e,0x78,0x8f,0x46,0xd6,0xba,0x9e,0x4c,0x5d,0x27,0x1b,0xfb,0x53,
0xc0,0x17,0x51,0x9f,0xd3,0xc0,0x4e,0xa5,0x3e,0x53,0x4c,0x7d,0x44,0x77,0xba,0x7f,
0x6e,0xa6,0x1e,0xa7,0x1b,0x9e,0x33,0x18,0xf3,0x42,0x78,0xce,0x04,0x93,0xda,0x2f,
0xf0,0x16,0x72,0x6f,0x3d,0x1b,0xbc,0x8a,0x3b,0xf6,0x34,0x7c,0xcf,0x41,0x27,0x39,
0x4f,0x45,0x56,0xde,0xf3,0x22,0xde,0x69,0x60,0x96,0xf7,0x02,0xf0,0xe9,0xdc,0xcd,
0x95,0x77,0x06,0x3a,0xe1,0x3d,0x17,0x59,0x6b,0x71,0x21,0xb5,0x98,0x69,0x62,0x5d,
0x04,0xae,0xb5,0xb8,0x18,0x4c,0x6b,0x51,0x67,0x6a,0x21,0xba,0x4b,0xfc,0x33,0x9b,
0x5a,0x5c,0x62,0x78,0x66,0x91,0xb3,0xee,0x8d,0x97,0xf3,0x4d,0x30,0x8b,0x5c,0x2e,
0x05,0x93,0x73,0xb0,0x0e,0xff,0xd9,0xc6,0xff,0x8a,0x68,0xcc,0x57,0x82,0x8d,0x26,
0x8f,0xb9,0x26,0x0f,0xd1,0x5d,0xe5,0x9f,0xab,0xe1,0xb9,0x8a,0x18,0x73,0x92,0x6d,
0x77,0xbe,0xb9,0xe8,0xae,0x36,0x31,0xae,0x61,0xbf,0x53,0xf9,0x3a,0x62,0x5e,0x48,
0xce,0xd7,0xf3,0xdd,0x72,0x9d,0x19,0xc7,0x0d,0xf8,0x5d,0x6f,0xce,0x9f,0x1b,0xc1,
0xaf,0x35,0x71,0x6f,0x8c,0xe2,0xce,0x35,0x71,0x6e,0x62,0xdf,0xd4,0x3a,0xdc,0x14,
0xd5,0xa1,0x0e,0x79,0x0a,0xf2,0xcd,0xc6,0xf7,0x16,0xd6,0x85,0xf8,0xce,0x43,0xd6,
0xf9,0xbc,0xad,0x81,0x73,0xf7,0x76,0x70,0xb1,0xbf,0x15,0x59,0xd7,0xe1,0x1d,0x9c,
0x8d,0xf3,0xd8,0xa7,0x35,0x9f,0x3b,0x0c,0xe7,0x9d,0x0d,0x70,0xde,0x05,0xae,0x35,
0xb9,0x1b,0xac,0xc6,0xf4,0xef,0xdd,0xc6,0xfe,0x1e,0xea,0xac,0x73,0x79,0x1f,0xd8,
0xbd,0xcc,0xe5,0x02,0x33,0x97,0xa2,0x9b,0x9f,0xf6,0x5f,0x18,0xfb,0x7c,0x38,0x1f,
0xe0,0x9b,0x50,0xea,0xb2,0x00,0xdd,0x22,0x13,0xe3,0x41,0x62,0xac,0xf6,0x31,0xca,
0xd2,0x3d,0x32,0xdc,0xb9,0x1e,0x64,0x3e,0x05,0x7b,0xd8,0xe0,0xca,0xf9,0x70,0xc4,
0xb9,0x00,0xce,0xb2,0x74,0x0f,0x0d,0xe7,0x95,0xae,0xa5,0x25,0x60,0xba,0x96,0x96,
0x44,0xf3,0x34,0xc5,0xe4,0xf3,0x68,0xb4,0x9f,0x3f,0xd6,0xc0,0x7e,0xbe,0x14,0x5c,
0xf7,0xf3,0xc7,0xf1,0x5b,0x6a,0x6c,0x9e,0x88,0xd6,0xc1,0x93,0x60,0x76,0x3f,0x7f,
0x0a,0xdf,0x27,0xa9,0xe7,0x72,0x53,0x4f,0xd1,0x2d,0xf3,0xcf,0x2a,0x72,0x5c,0x66,
0x72,0x7a,0x9a,0x9c,0x56,0x9a,0x78,0xcf,0x80,0xcb,0x18,0x57,0x20,0xcb,0x18,0x97,
0xe3,0xbf,0xca,0xd8,0x3e,0xcb,0xfd,0x41,0xe5,0xe7,0xb8,0x1f,0x3c,0x4f,0x5f,0x3c,
0x8f,0xcd,0x73,0xc6,0xe6,0x05,0xee,0x14,0x6b,0xb0,0x59,0x8d,0xdd,0x0b,0x26,0xe6,
0xea,0x28,0xe6,0x72,0xe3,0xff,0x22,0xf3,0xac,0xe7,0xdb,0x4b,0x60,0xda,0x4b,0x6b,
0xcd,0xd8,0x5f,0x4a,0xe3,0x24,0x29,0x26,0x3c,0x6b,0x0c,0xcf,0xab,0xdc,0x3d,0x54,
0x7e,0x0d,0x5e,0x5d,0xfb,0xeb,0xc0,0xea,0x4d,0x4f,0xbd,0x4e,0xef,0xac,0x33,0x3d,
0xb1,0x1e,0x5c,0xc7,0xf3,0x06,0xdc,0xeb,0xcd,0x1e,0xfa,0x26,0xb8,0x7e,0x8b,0xbe,
0x02,0x26,0xb1,0x45,0xff,0x36,0xf7,0x1e,0xc9,0x7f,0x83,0xc9,0x5f,0xf0,0x77,0xfd,
0xf3,0x01,0xf9,0xbf,0x6b,0xf2,0x7d,0x2f,0xea,0xf7,0xf7,0x59,0x1f,0xef,0x11,0xe3,
0x1d,0x30,0xa9,0xe3,0x06,0xfc,0x3f,0x30,0xba,0xda,0x48,0xb7,0xc1,0xf4,0xfd,0x87,
0xdc,0xb3,0x74,0x8c,0x1f,0x81,0x89,0xef,0x5b,0xc8,0x9a,0xc7,0xc7,0xdc,0xd1,0x54,
0xfe,0x84,0xba,0xea,0xf7,0xd3,0xa7,0x60,0x1f,0x9b,0xf9,0xfd,0x94,0xd8,0x3a,0x2f,
0x6b,0x8d,0xff,0xe7,0xf8,0x4f,0x23,0x97,0x2f,0xc0,0xc4,0xf7,0x33,0x64,0xcd,0xf3,
0x2b,0xee,0x7f,0xa7,0xf0,0xbd,0xf7,0x35,0x98,0x72,0x7d,0x43,0xaf,0x69,0x3f,0x7e,
0x0b,0xb6,0x38,0x9d,0x8b,0xe0,0xf3,0x1d,0xf8,0x65,0xdc,0xc3,0xbf,0x87,0xe7,0x3b,
0x62,0x7e,0x09,0xa6,0xdf,0x94,0x3f,0x70,0xc7,0x2c,0xf0,0xb7,0x4c,0x91,0x7f,0xe2,
0x7f,0x40,0x65,0xe8,0x7e,0x34,0x7e,0x3f,0x19,0xbf,0x9f,0xf1,0x93,0xbb,0xd4,0xcf,
0xd1,0xdd,0xbf,0x1d,0x73,0x5e,0xc4,0xdd,0xbf,0x90,0xff,0x99,0x4b,0x6d,0x76,0x34,
0x1c,0xbf,0x80,0x0b,0xc7,0x2f,0xd1,0x37,0x4e,0x27,0x38,0xda,0x9b,0xef,0x87,0x0e,
0x86,0xaf,0x23,0x7c,0x9d,0xcd,0xdd,0xfa,0x57,0x73,0x57,0x16,0xfe,0xdf,0xb0,0xd3,
0xda,0xff,0x0e,0xa6,0x7d,0xf0,0x07,0x98,0x8c,0xef,0x57,0x64,0xad,0xf5,0x46,0xf8,
0x24,0xb7,0x8d,0x26,0xb7,0x2c,0xf3,0x7f,0xec,0x62,0x93,0x5b,0x09,0xf9,0x94,0x9a,
0xff,0x1b,0x65,0x35,0xf0,0x7f,0x92,0x6c,0x70,0xdd,0xb3,0x72,0xf8,0x9f,0xc6,0x74,
0x63,0xd3,0xc8,0x05,0x5c,0xef,0x8a,0x19,0x17,0xb0,0x21,0xe6,0x8c,0xce,0x75,0x81,
0x2b,0x63,0xbe,0xb5,0xf3,0x5c,0xc8,0x43,0xef,0x93,0x3b,0xb8,0xf0,0xff,0xbe,0x5a,
0xec,0x65,0x9c,0x82,0xe5,0x99,0xef,0xed,0x7f,0x01,0x53,0x20,0xca,0x0a,0xc4,0x19,
0x00,0x00
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x99,0x77,0x70,0x57,0x45,
0x10,0xc7,0xdf,0xa5,0x9b,0x20,0x10,0x4a,0x90,0x16,0x89,0x20,0x04,0x12,0x03,0x62,
0x08,0x2d,0x04,0xa4,0x05,0x25,0x48,0x13,0x15,0x46,0xac,0x68,0x6c,0x28,0x0a,0x76,
0x50,0x40,0x05,0xb1,0xa2,0x58,0xb1,0x77,0x51,0xec,0x1d,0x0b,0x16,0xec,0x62,0x57,
0xec,0xbd,0x97,0x19,0x67,0x54,0x04,0x0b,0x78,0xfb,0xee,0xb3,0xc9,0x72,0xe6,0x2f,
0x33,0xf3,0xe6,0xf7,0xf6,0xbb,0xbb,0xdf,0xdd,0xdb,0xdb,0xbb,0x77,0xef,0x25,0x33,
0xa3,0x6b,0x6e,0x92,0xb8,0x24,0x3f,0xc9,0x4b,0xf6,0x74,0x49,0xfa,0x57,0x98,0x64,
0x24,0x72,0x5b,0x90,0xe4,0xa4,0xbf,0xb5,0x75,0x93,0xeb,0x2a,0x66,0xcf,0x99,0x51,
0x51,0xd9,0xaf,0x8f,0xe8,0x9b,0x27,0x99,0xa9,0x9d,0xe8,0x5a,0x78,0x9b,0x6c,0xff,
0x9b,0xe5,0xaf,0x99,0xfb,0x1f,0x7a,0xa4,0xe0,0x6d,0xbc,0xa2,0xa5,0xc7,0xb3,0x52,
0xae,0x24,0x19,0x86,0xad,0x5c,0x63,0xbc,0xf5,0xf6,0x21,0x4c,0xd2,0x95,0x5f,0xc5,
0x1c,0x58,0x96,0xc1,0x32,0xc0,0xf2,0x0c,0x96,0x09,0xd6,0xcc,0x60,0x59,0x60,0x2d,
0x0d,0x96,0x0d,0xd6,0xc6,0x60,0x39,0x60,0xdb,0x18,0x2c,0x17,0xac,0x93,0xc1,0xf2,
0xc0,0xba,0x18,0x6c,0x2b,0xb0,0x6e,0x06,0xcb,0x07,0x2b,0x35,0x58,0x01,0x58,0xb9,
0xc1,0x9a,0x81,0xf5,0x31,0xd8,0xd6,0x60,0x95,0x06,0x6b,0x0e,0x36,0x40,0xea,0xee,
0x47,0xaa,0x35,0xa8,0xf5,0x23,0x3c,0x90,0xfc,0xb5,0x3e,0x33,0xa2,0x3a,0x8a,0xfd,
0x0c,0xea,0x23,0xf6,0x07,0xfb,0xdf,0xed,0x1a,0x74,0x41,0x2e,0xa1,0xce,0x22,0x37,
0x77,0x5b,0xf2,0xb5,0x70,0xff,0xe5,0x13,0x4c,0xf9,0x0a,0xdd,0x96,0x7c,0x22,0x97,
0x18,0x59,0xe6,0xbd,0x80,0x3a,0x8a,0xbc,0x07,0x72,0x7b,0x7f,0xb5,0xf6,0xa3,0xc8,
0x48,0xe3,0x67,0xa6,0x7c,0x72,0xdf,0xd6,0xdb,0xe4,0x50,0xe3,0x24,0xfd,0xcd,0x4a,
0xe7,0x22,0x97,0x71,0x96,0xf8,0x9c,0xf2,0xb8,0x57,0xbc,0xc8,0x7b,0x17,0xe2,0x53,
0xe2,0xed,0x5b,0xd1,0x63,0xb9,0xf8,0x17,0x71,0x5f,0x88,0xbe,0x1d,0xf7,0x45,0xf0,
0x75,0x34,0x7c,0x45,0xd8,0x74,0x21,0x1f,0xc1,0x8a,0xbd,0xb5,0xf6,0xc9,0xff,0xbd,
0x24,0x8f,0xee,0xf4,0x8b,0x70,0x0d,0x46,0xee,0x01,0x26,0xe3,0x2e,0x65,0x0c,0x52,
0xf2,0x32,0xe4,0x9e,0xc6,0xbf,0x17,0xb6,0x39,0x46,0xdf,0x9b,0x9e,0x56,0xb9,0x92,
0xbc,0xcb,0xa8,0x63,0x35,0x73,0xa9,0x72,0x0d,0x7d,0xac,0xf6,0xa3,0x22,0x79,0x3c,
0xf6,0x6d,0x3c,0xcb,0x24,0xe3,0x37,0x85,0x1e,0x12,0x59,0x6a,0x37,0x8d,0xf9,0xe9,
0xec,0x51,0xed,0xc1,0x62,0x7a,0xed,0x40,0xf2,0x3d,0x88,0x5c,0x66,0x30,0x5e,0x91,
0x0f,0x36,0xf9,0x49,0xbc,0x7a,0x33,0xcf,0x87,0xa1,0xb3,0xe3,0x9b,0xc9,0x9a,0xd0,
0x3c,0x66,0x61,0xaf,0xfa,0xe3,0x59,0x6f,0x2a,0xcf,0x33,0x79,0x8a,0x7c,0x8a,0xbf,
0x36,0x67,0x36,0xca,0x0b,0x58,0x4f,0xca,0x77,0xa6,0xf1,0x17,0x79,0x59,0x54,0xbf,
0x1b,0x99,0x13,0xc9,0xef,0x66,0xfa,0xa1,0xd4,0xf0,0xdf,0x26,0xfc,0xfe,0x4f,0xe5,
0x95,0xd1,0xfc,0x3d,0xc6,0x3a,0x17,0xff,0x17,0xf1,0xb7,0x75,0x5d,0x6b,0xec,0xa5,
0xae,0x3f,0xa6,0xa3,0x9b,0xbf,0x5a,0xfd,0x7f,0x65,0xce,0x55,0xfe,0x87,0xfd,0xac,
0x9d,0x97,0x33,0x5c,0xe8,0xe3,0x0c,0xe6,0x41,0xd7,0x6e,0x31,0x6b,0x54,0x64,0x89,
0xdb,0xd2,0x05,0x1b,0xc1,0x06,0x23,0x17,0x82,0x09,0x4f,0x2b,0xfc,0x32,0xc9,0xb3,
0xb5,0x0b,0x39,0xb5,0xc2,0x5e,0xe4,0x36,0x60,0xa2,0x6f,0xcb,0xbd,0x9d,0xa7,0x0a,
0xd6,0x75,0x43,0xbf,0xb8,0xb0,0xc7,0x97,0x7b,0x49,0x78,0x64,0xdd,0x0b,0xb6,0x96,
0x31,0x57,0xf9,0xae,0xcd,0xa0,0xd7,0x12,0x62,0x6f,0xf0,0x48,0x36,0xbd,0x22,0x75,
0xea,0xee,0x42,0xbd,0x54,0xee,0x11,0xc9,0x7d,0x8d,0x2c,0xeb,0x76,0xe7,0x48,0x3f,
0x3c,0xd2,0x8f,0x8a,0xe4,0xd1,0x91,0xfd,0x2e,0x91,0x7e,0x6c,0xa4,0x9f,0x84,0xbc,
0xb3,0xcf,0x52,0x6a,0x50,0x4c,0x5d,0xa4,0x27,0x87,0x30,0xee,0x6d,0xc1,0xc5,0x46,
0xd6,0x6b,0x17,0x17,0xd6,0x78,0xbd,0xb1,0x29,0x71,0x01,0xbf,0xd3,0xdb,0x48,0x2f,
0x6c,0xe7,0x82,0x9f,0xe0,0x7f,0xf8,0x4a,0x74,0x63,0xcf,0xfd,0xd3,0xdb,0x8b,0xae,
0xab,0xbf,0x04,0x93,0xfa,0xc8,0xfd,0x3f,0xbe,0xfa,0x72,0x2f,0x58,0x8d,0xb7,0xef,
0x4e,0x0e,0x72,0xdf,0x83,0xfb,0x8d,0x5e,0x5f,0x8a,0x8f,0xfc,0xae,0x97,0xfd,0xc3,
0xff,0x96,0xc1,0x2d,0xfa,0x72,0xf4,0xf2,0xab,0xb9,0xed,0xe0,0x42,0x9d,0x35,0xff,
0xde,0xe4,0x5f,0x61,0x6c,0xfa,0xb8,0x80,0xdf,0x4d,0xfe,0x3b,0xba,0xe0,0x27,0xb8,
0xe4,0x2c,0x72,0x4f,0x7f,0xf5,0x82,0xbf,0xa7,0x6b,0xac,0xd9,0x4e,0x4d,0xd4,0xac,
0x12,0x5c,0x63,0xf6,0x6b,0x22,0x66,0x95,0x0b,0xf8,0xe9,0xde,0x46,0xe4,0xfe,0x2e,
0xf8,0x55,0x19,0x9b,0x01,0xe4,0x3e,0x1f,0x9b,0x81,0x2e,0xd8,0x0d,0xa0,0x4e,0xd2,
0x2f,0x03,0x8d,0xfd,0x20,0x17,0x7a,0x48,0xe3,0x0e,0x26,0xee,0x4a,0x93,0x5b,0xb5,
0x0b,0xb8,0xce,0xd5,0x10,0x17,0xfc,0xaa,0x99,0xab,0xa1,0x66,0xae,0x44,0x57,0xe3,
0xaf,0xa1,0x8c,0x5b,0xee,0xa5,0xce,0x5a,0x87,0xa1,0x26,0xf6,0x08,0x62,0x4b,0x5e,
0xd2,0xa7,0x22,0x0f,0xf4,0x31,0x64,0x3d,0x8f,0x74,0xe1,0x7c,0x32,0x1c,0xbd,0xf4,
0xf5,0x48,0x7c,0x45,0x5f,0xeb,0x42,0xaf,0x8b,0x4e,0x7a,0xb8,0xd6,0xf8,0x8e,0x71,
0xe1,0xd9,0x3a,0x1a,0xbd,0xf4,0xfc,0x18,0x13,0x77,0x57,0x13,0x57,0xfa,0x7d,0x57,
0xc3,0x5b,0xe7,0xc2,0x1a,0x11,0x9d,0xf4,0x7e,0x5d,0xca,0x9b,0x93,0xfa,0x8d,0x93,
0xbe,0x66,0x8d,0x8c,0x35,0x7c,0xbb,0xb9,0xb0,0x4e,0x9f,0xa5,0xe6,0xe3,0x5d,0xc0,
0xc6,0x99,0xde,0x1c,0x4f,0x1d,0xca,0xa8,0x43,0x99,0xf1,0x9f,0x10,0xcd,0xd9,0x44,
0x17,0xb0,0x95,0xa6,0x9f,0x27,0xba,0x2d,0xfb,0xb9,0x97,0xf1,0x9f,0x4c,0x7c,0xb1,
0x95,0xf5,0x39,0x99,0x5a,0xc8,0xde,0xb2,0x3b,0x67,0x93,0x49,0xac,0x99,0x01,0xfe,
0xaa,0x22,0x4e,0x01,0xfb,0x8e,0x3c,0xfb,0xfa,0x7b,0xdf,0x5c,0xf6,0x59,0xbd,0xcf,
0x67,0x3f,0x6a,0x66,0x7a,0xa1,0x1b,0x36,0xda,0x2f,0x65,0x3c,0xbf,0x7b,0x1a,0x9b,
0x72,0x70,0xed,0xd3,0x1d,0xf0,0x2b,0x37,0x36,0x15,0xf0,0x2b,0x4f,0x1f,0x78,0x7a,
0x1b,0x9b,0x1d,0xc1,0x95,0xa7,0x2f,0x7e,0x82,0x6b,0xad,0x76,0x82,0xbf,0xaf,0xe1,
0xea,0x07,0x57,0xa5,0xe1,0xaa,0x02,0x57,0xbf,0xfe,0xf8,0x0a,0xbe,0xc9,0x8f,0xb1,
0x7f,0x7a,0xb6,0x6c,0xac,0x4d,0x8b,0x26,0x6a,0xb3,0xb5,0xb9,0x6f,0x4e,0x6d,0x5a,
0x9a,0xbd,0x71,0x10,0xcf,0x36,0x8d,0x39,0x18,0x9f,0x25,0x70,0x0e,0x01,0xab,0x36,
0x63,0x1a,0x0a,0x5e,0xc3,0x5c,0x0f,0x6a,0xc0,0x02,0xc7,0x30,0x78,0x25,0xc7,0x61,
0x26,0xc7,0x42,0xce,0xef,0xf2,0xd7,0xca,0xe4,0xd5,0x9a,0xbc,0xda,0x9a,0xbc,0x46,
0x24,0xd1,0x1e,0x1f,0xc9,0x7b,0x47,0xf2,0xf4,0x48,0xde,0x37,0x92,0x0f,0x88,0xe4,
0x39,0x91,0x7c,0x52,0x24,0x2f,0x8e,0xe4,0xf3,0x22,0x79,0x79,0x24,0x5f,0x69,0x64,
0x39,0x6f,0xdc,0x12,0xe9,0x1f,0x35,0xb2,0x9c,0x27,0x5e,0x8a,0xf4,0x6f,0x45,0xfe,
0xef,0x44,0xf2,0x67,0xc9,0x96,0xcf,0xb8,0x2f,0xa3,0x79,0x1b,0x49,0x1d,0xb5,0x9f,
0x46,0xd3,0x4f,0xa3,0x8c,0x4d,0x2d,0xf8,0x22,0xe6,0x71,0x0c,0x7e,0xb5,0xcc,0xe3,
0x08,0xb0,0x86,0x3d,0x27,0xe2,0x1c,0xdb,0x04,0x67,0x1d,0xb8,0xf6,0xcb,0x38,0xfc,
0xea,0xe0,0xdc,0x05,0xac,0x61,0xdf,0x61,0x2e,0x95,0x73,0x02,0x9c,0xe3,0x8d,0xcd,
0x44,0x70,0xdd,0xbb,0x27,0xe3,0x37,0xd1,0xd8,0xec,0x0e,0x8f,0x3e,0xcb,0xf6,0x00,
0x9b,0x92,0xd6,0x3e,0x60,0x7b,0xe2,0x2b,0x3a,0xd9,0xf3,0xa7,0x26,0x8d,0x7b,0xbe,
0xe8,0xf6,0xf2,0xd7,0x54,0x7a,0x6f,0x2f,0xfa,0x75,0x1a,0xf2,0x54,0x13,0x6b,0x1f,
0xfa,0x51,0xc6,0x33,0x1d,0x59,0x75,0xfb,0x91,0x87,0xe8,0xf6,0x45,0xd6,0xbd,0x77,
0x7f,0xf6,0xab,0xe9,0xf4,0xa3,0xd8,0xec,0x0d,0xae,0xfe,0x87,0xd0,0xcb,0x3a,0x27,
0x87,0x82,0x55,0xa7,0x35,0xca,0x49,0xcf,0xd6,0x87,0x73,0xfe,0xae,0x47,0xaf,0xbe,
0x47,0xa0,0x13,0xde,0x03,0x90,0xb5,0xae,0x47,0x52,0xd7,0x99,0xc6,0xfe,0x28,0xf0,
0xdb,0xa9,0xcf,0xd1,0x60,0xb3,0xa8,0xcf,0x6c,0x53,0x1f,0xd1,0x1d,0xe3,0xaf,0xcb,
0xa9,0xc7,0x31,0x86,0xe7,0x58,0xc6,0x7c,0x1b,0x3c,0xc7,0x81,0x49,0xed,0x57,0x78,
0x0b,0x39,0x57,0x9e,0x00,0x5e,0xc9,0x59,0x7f,0x2e,0xbe,0x27,0xa2,0x93,0x9c,0xe7,
0x20,0x2b,0xef,0xc9,0x11,0xef,0x5c,0x30,0xcb,0x7b,0x2a,0xf8,0x3c,0xde,0x11,0x94,
0x77,0x3e,0x3a,0xe1,0x3d,0x09,0x59,0x6b,0xb1,0x90,0x5a,0x2c,0x30,0xb1,0x4e,0x03,
0xd7,0x5a,0x9c,0x0e,0xa6,0xb5,0x58,0x64,0x6a,0x21,0xba,0x33,0xfc,0x75,0x36,0xb5,
0x38,0xc3,0xf0,0x2c,0x21,0x67,0xdd,0x1b,0xcf,0xe2,0xdd,0x64,0x09,0xb9,0x2c,0x06,
0x93,0xe7,0xe0,0x22,0xfc,0xcf,0x36,0xfe,0xe7,0x44,0x63,0x3e,0x17,0x6c,0x0a,0x79,
0x2c,0x35,0x79,0x88,0xee,0x7c,0x7f,0x5d,0x00,0xcf,0xf9,0xc4,0x38,0x2f,0x69,0x3c,
0x3b,0x2e,0x45,0x77,0x81,0x89,0x71,0x21,0xfb,0x9d,0xca,0x17,0x11,0x73,0x21,0x39,
0x5f,0xcc,0xfb,0xd3,0x45,0x66,0x1c,0x97,0xe0,0x77,0xb1,0x79,0xfe,0x5c,0x0a,0xbe,
0xcc,0xc4,0xbd,0x34,0x8a,0xbb,0xd4,0xc4,0xb9,0x8c,0x7d,0x53,0xeb,0x70,0x59,0x54,
0x87,0x45,0xc8,0xb3,0x91,0x2f,0x37,0xbe,0x57,0xb0,0x2e,0xc4,0x77,0x39,0xb2,0xce,
0xe7,0x55,0x4d,0x3c,0x77,0xaf,0x06,0x17,0xfb,0x2b,0x91,0x75,0x1d,0x5e,0xc3,0xb3,
0x71,0x39,0xfb,0xb4,0xe6,0x73,0x8d,0xe1,0xbc,0xb6,0x09,0xce,0xeb,0xc0,0xb5,0x26,
0xd7,0x83,0xd5,0x98,0xfe,0xbd,0xde,0xd8,0xdf,0x40,0x9d,0x75,0x2e,0x6f,0x02,0xbb,
0x91,0xb9,0x5c,0x61,0xe6,0x52,0x74,0xb7,0xa6,0xfd,0x17,0xc6,0x7e,0x2b,0x9c,0xb7,
0xf0,0x6e,0x2a,0x75,0x59,0x81,0xee,0x76,0x13,0xe3,0x0e,0x62,0xac,0xf1,0x31,0x4a,
0xd3,0x3d,0x32,0x9c,0xb9,0xee,0x60,0x3e,0x05,0xbb,0xcb,0xe0,0xca,0x79,0x57,0xc4,
0xb9,0x02,0xce,0xd2,0x74,0x0f,0x0d,0xcf,0x2b,0x5d,0x4b,0xf7,0x80,0xe9,0x5a,0xba,
0x27,0x9a,0xa7,0xd9,0x26,0x9f,0x7b,0xa3,0xfd,0xfc,0xbe,0x26,0xf6,0xf3,0xfb,0xc1,
0x75,0x3f,0x7f,0x00,0xbf,0xfb,0x8d,0xcd,0x83,0xd1,0x3a,0x78,0x08,0xcc,0xee,0xe7,
0x0f,0xe3,0xfb,0x10,0xf5,0x5c,0x65,0xea,0x29,0xba,0x47,0xfc,0xb5,0x9a,0x1c,0x1f,
0x31,0x39,0x3d,0x4e,0x4e,0x8f,0x99,0x78,0x4f,0x80,0xcb,0x18,0x1f,0x45,0x96,0x31,
0xae,0xc2,0x7f,0xb5,0xb1,0x7d,0x92,0xf3,0x83,0xca,0x4f,0x71,0x3e,0x78,0x9a,0xbe,
0x78,0x1a,0x9b,0xa7,0x8c,0xcd,0x33,0x9c,0x29,0x9e,0xc7,0x66,0x0d,0x76,0xcf,0x98,
0x98,0x6b,0xa2,0x98,0xab,0x8c,0xff,0xb3,0xcc,0xb3,0x3e,0xdf,0x9e,0x03,0xd3,0x5e,
0x7a,0xc1,0x8c,0xfd,0xb9,0x34,0x4e,0x92,0x62,0xc2,0xf3,0xbc,0xe1,0x79,0x99,0xb3,
0x87,0xca,0xaf,0xc0,0xab,0x6b,0xff,0x55,0xb0,0xb5,0xa6,0xa7,0x5e,0xa3,0x77,0x5e,
0x35,0x3d,0xf1,0x3a,0xb8,0x8e,0xe7,0x0d,0xb8,0x5f,0x37,0x7b,0xe8,0x9b,0xe0,0xfa,
0x4e,0xfb,0x12,0x98,0xc4,0x16,0xfd,0xdb,0x9c,0x7b,0x24,0xff,0x75,0x26,0x7f,0xc1,
0xdf,0xf5,0xd7,0x07,0xe4,0xff,0xae,0xc9,0xf7,0xbd,0xa8,0xdf,0xdf,0x67,0x7d,0xbc,
0x47,0x8c,0x77,0xc0,0xa4,0x8e,0xeb,0xf0,0xff,0xc0,0xe8,0xea,0x23,0xdd,0x3a,0xd3,
0xf7,0x1f,0x72,0xce,0xd2,0x31,0x7e,0x04,0x26,0xbe,0x6f,0x21,0x6b,0x1e,0x1f,0x73,
0x46,0x53,0xf9,0x13,0xea,0xaa,0xef,0x4f,0x9f,0x82,0x7d,0x6c,0xe6,0xf7,0x53,0x62,
0xeb,0xbc,0xbc,0x60,0xfc,0x3f,0xc7,0x7f,0x2e,0xb9,0x7c,0x01,0x26,0xbe,0x9f,0x21,
0x6b,0x9e,0x5f,0x71,0xfe,0x3b,0x8a,0xf7,0xbd,0xaf,0xc1,0x94,0xeb,0x1b,0x7a,0x4d,
0xfb,0xf1,0x5b,0xb0,0x95,0xe9,0x5c,0x04,0x9f,0xef,0xc0,0xcf,0xe4,0x1c,0xfe,0x3d,
0x3c,0xdf,0x11,0xf3,0x4b,0x30,0x7d,0xa7,0xfc,0x81,0x33,0x66,0x33,0x7f,0xca,0x14,
0xf9,0x27,0xbe,0x77,0x95,0xa2,0xfb,0xd1,0xf8,0xfd,0x64,0xfc,0x7e,0xc6,0x4f,0xce,
0x52,0x3f,0x47,0x67,0xff,0xf6,0xcc,0x79,0x3b,0xce,0xfe,0x45,0x7c,0xbb,0x97,0xda,
0x74,0x30,0x1c,0xbf,0x80,0x0b,0xc7,0x2f,0xd1,0x3b,0x4e,0x31,0x1c,0x1d,0xcd,0xfb,
0x43,0x27,0xc3,0xd7,0x19,0xbe,0x6d,0xcd,0xd9,0x7a,0x63,0x74,0xd6,0x4e,0xcc,0xf7,
0x20,0xd9,0x1f,0x7e,0x63,0x7f,0xf8,0xd5,0xd4,0xf4,0x77,0x70,0xdd,0x8f,0xd6,0x83,
0x2d,0xa3,0x7f,0x37,0x98,0xfe,0x5d,0x9f,0x62,0x9e,0x93,0xf7,0xdc,0x3f,0x0c,0xcf,
0x9f,0xe4,0xa7,0xeb,0xe6,0x2f,0xb0,0xb5,0x86,0xfb,0x6f,0xf0,0x59,0xe6,0x9c,0xb3,
0x09,0xbc,0x9e,0x6f,0x87,0xda,0xa3,0x9b,0xd1,0x49,0xed,0x37,0x22,0x6b,0xdd,0x9c,
0x0b,0xe3,0x9f,0x20,0xef,0xd1,0xf2,0xad,0xdf,0x05,0x6c,0x5a,0x3a,0x8f,0xe1,0x59,
0x98,0xc5,0x37,0x40,0x79,0x3f,0xcb,0x34,0xef,0xe3,0xd9,0x2e,0xd4,0x69,0x0d,0x79,
0xe6,0xb8,0x60,0x9b,0xcd,0x3b,0xba,0x38,0xe5,0xf0,0x3e,0xbf,0x81,0x1a,0xe7,0x9a,
0x6f,0x10,0x79,0xc4,0xd6,0x7e,0xde,0xca,0x05,0x4c,0xf3,0xce,0x77,0x01,0x53,0xae,
0xfc,0x88,0x6b,0x83,0xa9,0x59,0x01,0xff,0x60,0x92,0xf9,0x97,0x7b,0x9d,0xff,0x0c,
0xf3,0x3f,0x90,0x2e,0x66,0xfe,0x4b,0xe0,0xe8,0x6a,0xbe,0xf1,0x15,0x35,0xf1,0xbd,
0xaa,0x1d,0xb8,0xce,0xfb,0x36,0x7c,0x37,0x9a,0x67,0x6c,0xda,0xbb,0x80,0xeb,0x79,
0xbc,0x83,0x0b,0x58,0xb5,0x39,0x07,0x75,0x74,0x81,0xab,0x83,0xa9,0x5f,0x27,0xfe,
0x7f,0xa2,0x67,0xf6,0xce,0x7c,0xab,0xad,0xc7,0x5e,0xc6,0x2d,0x58,0x27,0xf3,0x4d,
0xe3,0x5f,0x7d,0xdf,0x14,0x6b,0xb0,0x1b,0x00,0x00
};
// Generated from:
......@@ -193,7 +203,7 @@ constexpr uint8_t kConvertVertex_comp_00000004[] = {
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Sd + component * 4 + params . destOffset;
// return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
......@@ -276,7 +286,18 @@ constexpr uint8_t kConvertVertex_comp_00000004[] = {
// uint makeDestinationComponent(uint cd, float value)
// {
//
// uint valueAsUint = floatBitsToInt(value);
// uint valueAsUint;
//
// if(params . Bd == 2)
// {
//
// uint shift =((cd & 1)== 0)? 0 : 16;
// valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
// }
// else
// {
// valueAsUint = floatBitsToInt(value);
// }
//
// return valueAsUint;
// }
......@@ -293,9 +314,9 @@ constexpr uint8_t kConvertVertex_comp_00000004[] = {
// return;
//
// uint valueOut = 0;
// for(uint i = 0;i < 1;++ i)
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * 1 + i;
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
// if(cd >= params . componentCount)
// {
// break;
......
......@@ -10,125 +10,135 @@
#pragma once
constexpr uint8_t kConvertVertex_comp_00000005[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x79,0x94,0x8f,0x65,
0x14,0xc7,0x7f,0xef,0xcc,0x98,0x19,0x63,0x8c,0x19,0xcb,0x8c,0x65,0x6c,0x51,0x8d,
0xc8,0xd6,0x58,0xb2,0xa5,0x23,0xa1,0x94,0x24,0xc2,0x21,0x61,0x32,0xa9,0x48,0x68,
0x13,0x85,0x18,0xa4,0x2c,0x21,0x4b,0x4a,0x49,0xd9,0x93,0x52,0xb2,0x94,0x6c,0x51,
0x72,0x8e,0x73,0x54,0xce,0x21,0x4b,0x9b,0xd2,0xea,0x24,0xdb,0x44,0x7a,0xee,0xfb,
0x7e,0x2e,0xd7,0x73,0xe6,0xaf,0x7e,0xe7,0xbc,0xe7,0xf7,0xde,0xef,0xbd,0xf7,0x7b,
0xef,0x73,0x9f,0xfb,0x2c,0xbf,0x5f,0x7c,0x5c,0x8d,0xa4,0x58,0x2c,0x88,0xa5,0xc4,
0x92,0x63,0x55,0x83,0x58,0xf8,0xc9,0x88,0xc5,0xc5,0xe4,0xb5,0x44,0x2c,0x31,0xfc,
0x6e,0xd7,0xb1,0x4b,0xc7,0xba,0xc3,0x86,0xe7,0xd5,0xcd,0x6d,0x54,0x5f,0xf4,0x69,
0xb1,0xf8,0xd0,0x4e,0x74,0xa5,0x9c,0x4d,0x31,0xf7,0x9d,0xe0,0x9e,0x41,0x7d,0x07,
0x0e,0x16,0xfc,0x88,0x7b,0xd2,0x1d,0x9e,0x10,0x72,0xc5,0x62,0xad,0xb1,0x95,0xa7,
0xbd,0xb3,0xbe,0x32,0x0a,0x13,0xab,0xc1,0xb7,0x62,0x01,0x58,0x82,0xc1,0xe2,0xc0,
0x92,0x0d,0x16,0x0f,0x96,0x6a,0xb0,0x04,0xb0,0x74,0x83,0x15,0x03,0x2b,0x6b,0xb0,
0x44,0xb0,0xf2,0x06,0x4b,0x02,0xcb,0x36,0x58,0x32,0x58,0x35,0x83,0x15,0x07,0xab,
0x69,0xb0,0x14,0xb0,0x1c,0x83,0x95,0x00,0xab,0x63,0xb0,0x54,0xb0,0xfa,0x06,0x2b,
0x09,0x96,0x6b,0xb0,0x34,0xb0,0xa6,0x52,0x77,0x37,0x52,0xad,0x41,0x3b,0x37,0xc2,
0xfe,0xe4,0xaf,0xf5,0xc9,0xf3,0xea,0x28,0xf6,0x79,0xd4,0x47,0xec,0x07,0xb8,0xef,
0x2b,0x2e,0xea,0x22,0xb9,0x3a,0x75,0x16,0x79,0xbf,0xc7,0x77,0xa0,0x08,0xbe,0x03,
0x86,0xef,0xa0,0xc7,0x77,0x10,0x3e,0x95,0x8f,0x30,0xf6,0x6c,0xe4,0x2a,0x41,0x24,
0x57,0x70,0x4f,0x19,0x37,0x8a,0xb8,0xd0,0x3e,0x3e,0xe4,0x93,0xf7,0x72,0xce,0x26,
0x91,0x1a,0xc7,0xc2,0xef,0x84,0x70,0x2e,0x92,0xc8,0xab,0xba,0xcb,0x29,0x99,0x77,
0xc5,0x33,0x9d,0x77,0x06,0x3e,0xd5,0x9d,0x7d,0x69,0x7a,0x2c,0x09,0xff,0x4c,0xde,
0x33,0xd0,0x67,0xf1,0x9e,0x09,0x5f,0x25,0xc3,0x97,0x89,0x4d,0x35,0xf2,0x11,0xac,
0x8a,0xb3,0xd6,0x3e,0xf9,0xbf,0x8f,0xe4,0x71,0x15,0xfd,0x22,0x5c,0xcd,0x91,0xaf,
0x06,0x93,0x71,0xe7,0x30,0x06,0x99,0x8b,0xda,0xc8,0xb5,0x8c,0xff,0x35,0xd8,0x26,
0x1a,0x7d,0x3d,0x7a,0x5a,0xe5,0x5c,0xf2,0xae,0x4d,0x1d,0x5b,0x30,0x97,0x2a,0xb7,
0xa2,0x8f,0xd5,0xbe,0xad,0x27,0x77,0xc2,0xbe,0xac,0x63,0xb9,0xd3,0xf8,0x75,0x65,
0xce,0x45,0x96,0xda,0xf5,0x64,0x7e,0x2a,0x3b,0x54,0x7b,0xb0,0x0a,0xbd,0xd6,0x9f,
0x7c,0xef,0x23,0x97,0x3c,0xc6,0x2b,0xf2,0x00,0x93,0x9f,0xc4,0xcb,0x37,0xf3,0xfc,
0x00,0x3a,0x3b,0xbe,0x41,0xac,0x09,0xcd,0x63,0x08,0xf6,0xaa,0x7f,0x9c,0xf5,0xa6,
0xf2,0x28,0x93,0xa7,0xc8,0x4f,0xbb,0xe7,0x42,0xfc,0x25,0x79,0x0c,0xeb,0x49,0xf9,
0x26,0x1a,0x7f,0x91,0x67,0x78,0xf5,0x5b,0xc4,0x9c,0x48,0x7e,0x6f,0xd1,0x0f,0x39,
0x86,0x7f,0x99,0xf0,0xbb,0x8f,0xca,0x2b,0xbc,0xf9,0xdb,0xc8,0x3a,0x97,0x3a,0xed,
0x37,0x75,0x92,0x35,0xb4,0x1f,0xde,0x6f,0x88,0x79,0x80,0x3a,0x89,0x7c,0x10,0x2c,
0xcb,0xc9,0x87,0xf0,0x8b,0xc7,0xfe,0x30,0x31,0x0e,0x61,0x7f,0x98,0xfd,0x35,0x40,
0xff,0x2d,0xef,0x89,0x66,0x1c,0x85,0x26,0x2f,0x91,0x2b,0x07,0xd1,0x1e,0x5c,0xc7,
0x49,0xc2,0x23,0xeb,0x52,0xb0,0x42,0x6c,0x1b,0xbb,0xae,0x8a,0xa3,0x17,0x62,0xc4,
0x3e,0xe3,0x90,0x62,0xc4,0x94,0x3a,0xfc,0x45,0x3d,0x54,0x3e,0xe1,0xc9,0xe7,0x8c,
0x2c,0xeb,0xaa,0x78,0x70,0xb9,0x3e,0x25,0xb8,0x5c,0x5f,0xd2,0x93,0xd3,0x3c,0xfb,
0x0c,0x4f,0x5f,0xc6,0xd3,0x57,0x44,0xbe,0xd1,0x65,0x29,0x35,0xf8,0x85,0xba,0x48,
0xcf,0xb4,0x64,0xdc,0xbf,0x82,0x8b,0x8d,0xac,0xa7,0xdf,0x58,0x83,0xf9,0xc6,0xe6,
0x77,0xf0,0xb7,0x9d,0x8d,0xac,0x81,0x3f,0xf0,0x13,0xfc,0xb4,0xab,0xc4,0x71,0x6a,
0x52,0xe8,0xec,0x45,0xf7,0xa7,0x7b,0x8e,0x53,0x1f,0x79,0x3f,0xef,0x2a,0x2d,0xef,
0xc7,0xc3,0xf5,0x16,0x1f,0xd6,0x69,0x08,0xef,0x27,0x78,0x3f,0xeb,0xf4,0x7f,0xe3,
0x23,0xdf,0xa7,0x1c,0xd7,0xa9,0x90,0x3f,0xfa,0x88,0xfe,0x0c,0xfa,0x33,0x26,0xb7,
0xb3,0xd4,0xf9,0x1d,0x72,0xfb,0x07,0xac,0x90,0x7c,0x44,0x3e,0x19,0xf2,0x45,0xbe,
0x27,0x4d,0x3d,0xce,0x17,0x51,0x8f,0x7f,0xc1,0xc7,0x39,0x1b,0x91,0x2f,0x80,0x15,
0x1a,0x1b,0x69,0x1c,0x89,0x39,0x1a,0x9b,0x20,0x88,0xec,0x04,0x97,0x31,0x9d,0x03,
0x53,0xfb,0xb8,0x20,0x9a,0x7b,0xad,0x71,0x7c,0x10,0xd5,0x78,0x85,0xe1,0x4c,0x08,
0x22,0x5c,0x6b,0x5c,0x2c,0x88,0xfc,0x04,0x97,0x1a,0x27,0x05,0x97,0x6a,0x2c,0xba,
0x44,0x99,0xdb,0x20,0x1a,0x93,0xbc,0x4b,0x7d,0x74,0x8c,0x49,0x26,0x76,0x09,0x62,
0x4b,0x5e,0xd2,0x5f,0x22,0x5f,0xef,0x62,0xc8,0x9e,0x95,0x1a,0x44,0xe7,0x7e,0x0a,
0x79,0x4b,0x3f,0xa6,0xe2,0x2b,0xfa,0x52,0x41,0xd4,0xa3,0xa2,0x93,0xde,0x2b,0x65,
0x7c,0xd3,0x83,0xe8,0xcc,0x4a,0x43,0x2f,0xbd,0x9a,0x6e,0xe2,0x96,0x36,0x71,0xa5,
0x4f,0x4b,0x1b,0xde,0xb2,0x41,0xd4,0xdb,0xa2,0x93,0x9e,0x2d,0x1b,0xf2,0x26,0x86,
0x7e,0xe5,0x02,0xd9,0x0f,0xa2,0xde,0x2e,0x63,0xf8,0x32,0x83,0x68,0x7d,0x6d,0xa7,
0xe6,0x59,0x41,0x84,0x95,0x0b,0x2e,0xf5,0x54,0x16,0x75,0x38,0x4d,0x1d,0x4e,0x9b,
0xfa,0x96,0xf7,0xe6,0xac,0x42,0x10,0x61,0x2b,0x4c,0x1f,0x56,0x08,0x2e,0xef,0xc3,
0x53,0xc6,0xbf,0x12,0xf1,0xc5,0x56,0xd6,0x55,0x25,0x6a,0x21,0x7b,0x42,0x76,0x10,
0x9d,0xf9,0x82,0x4b,0xaf,0x37,0x75,0x4f,0x63,0xe2,0x94,0xa0,0x7f,0xe5,0x4c,0x69,
0x22,0xf3,0xc8,0x99,0xa5,0xef,0x29,0xc4,0x4a,0x35,0xb1,0x6a,0x62,0xa3,0xfd,0x52,
0x9b,0x35,0x59,0xcb,0xd8,0xd4,0x01,0xd7,0x3e,0xbd,0x16,0xbf,0x3a,0xc6,0xa6,0x2e,
0xfc,0xca,0x53,0x1f,0x9e,0x7a,0xc6,0xa6,0x01,0xb8,0xf2,0x34,0xc4,0xaf,0x81,0xa9,
0xd5,0x75,0xf0,0x37,0x34,0x5c,0x8d,0xe0,0xca,0x35,0x5c,0x8d,0xc1,0xd5,0xaf,0x09,
0xbe,0x8d,0xc3,0x35,0x14,0x17,0xca,0xb6,0x36,0xa5,0x8a,0xa8,0x4d,0x49,0xf3,0x9e,
0x46,0x6d,0xd2,0xcd,0x9e,0xd6,0x8c,0x3d,0x54,0x63,0x36,0xc7,0x67,0x12,0x9c,0x2d,
0xc1,0x5a,0x98,0x31,0xdd,0x00,0xde,0x8a,0xf9,0x6b,0x76,0x11,0x8b,0x38,0x5a,0xc3,
0x2b,0x39,0xb6,0x36,0x39,0x66,0x70,0x2f,0x96,0x4f,0x69,0x93,0x57,0x19,0xf2,0x2a,
0x67,0xf2,0x6a,0xe3,0xed,0xf5,0x1d,0x3c,0xb9,0x97,0x27,0xf7,0xf6,0xe4,0x3e,0x9e,
0xdc,0xcf,0x93,0x87,0x7b,0xf2,0x08,0x4f,0x9e,0xe0,0xc9,0x53,0x3c,0x79,0x9e,0x27,
0xcf,0x37,0xb2,0x9c,0xe3,0x8b,0x3d,0xfd,0x06,0xef,0xac,0xda,0xee,0xc9,0x3b,0xbd,
0x79,0xb8,0x89,0xba,0x68,0x7f,0xdc,0x4c,0x7f,0xb4,0x35,0x36,0xed,0xc0,0x0b,0x98,
0x97,0xf6,0xf8,0xb5,0x63,0x5e,0xda,0x80,0xa9,0xfd,0x2d,0x1e,0xe7,0xad,0x45,0x70,
0x76,0x04,0xd7,0xf9,0xbf,0x0d,0xbf,0x8e,0x70,0x76,0x00,0x53,0xfb,0xdb,0x99,0x1b,
0xe5,0xbc,0x03,0xce,0x4e,0xc6,0xa6,0x33,0xb8,0xee,0xc5,0x5d,0xf0,0xeb,0x6c,0x6c,
0xee,0x82,0x47,0xcf,0x9d,0x6e,0x60,0x5d,0xc3,0x5a,0x46,0xd8,0xdd,0xf8,0x76,0xe3,
0x9c,0xec,0x61,0xce,0x49,0xd1,0x75,0x77,0x4f,0x0f,0x7a,0xa9,0x3b,0xfd,0xd7,0x13,
0xb9,0x87,0x89,0x75,0x0f,0xfd,0x25,0xe3,0xe9,0x8d,0xac,0xba,0x7b,0xc9,0x43,0x74,
0x7d,0x90,0x75,0x2f,0xed,0xcb,0xfe,0xd3,0x9b,0xfe,0x12,0x9b,0x5e,0xe0,0xea,0x7f,
0x3f,0xbd,0xa9,0x73,0x32,0x10,0xac,0x45,0x58,0xa3,0xc4,0xf0,0x0e,0xfa,0x20,0xf7,
0xd4,0x7c,0xf4,0xea,0xfb,0x10,0x3a,0xe1,0xed,0x87,0xac,0x75,0x1d,0x4c,0x5d,0x07,
0x19,0xfb,0x87,0xc1,0x97,0x53,0x9f,0x47,0xc0,0x86,0x50,0x9f,0x61,0xa6,0x3e,0xa2,
0x1b,0xea,0x9e,0xb9,0xd4,0x63,0xa8,0xe1,0x79,0x94,0x31,0x2f,0x83,0xe7,0x31,0x30,
0xa9,0xfd,0x52,0x67,0x21,0xf7,0xcc,0x27,0xc0,0x73,0xb9,0x13,0x8f,0xc4,0xf7,0x49,
0x74,0x92,0xf3,0x70,0x64,0xe5,0x7d,0xca,0xe3,0x1d,0x09,0x66,0x79,0x9f,0x01,0x1f,
0xc5,0x5d,0x5a,0x79,0x47,0xa3,0x13,0xde,0x11,0xc8,0x5a,0x8b,0xb1,0xd4,0x62,0x8c,
0x89,0xf5,0x2c,0xb8,0xd6,0x62,0x1c,0x98,0xd6,0xa2,0xc0,0xd4,0x42,0x74,0xe3,0xdd,
0x33,0x99,0x5a,0x8c,0x37,0x3c,0x93,0xc8,0x59,0xf7,0xba,0xe7,0xb8,0xc3,0x4f,0x22,
0x97,0x09,0x60,0x72,0xae,0x15,0xe0,0x3f,0xd9,0xf8,0x3f,0xef,0x8d,0xf9,0x05,0xb0,
0xae,0xe4,0x31,0xcd,0xe4,0x21,0xba,0xa9,0xee,0x99,0x0e,0xcf,0x54,0x62,0x4c,0x31,
0x77,0xb8,0x69,0xe8,0xa6,0x9b,0x18,0x2f,0xb2,0x7f,0xa9,0x3c,0x93,0x98,0x63,0xc9,
0x79,0x16,0xbf,0x33,0x66,0x9a,0x71,0xbc,0x84,0xdf,0x2c,0x73,0x9e,0xcc,0x06,0x9f,
0x61,0xe2,0xce,0xf6,0xe2,0x4e,0x33,0x71,0xe6,0xb0,0x0f,0x6a,0x1d,0xe6,0x78,0x75,
0x28,0x40,0x1e,0x86,0x3c,0xd7,0xf8,0xbe,0xcc,0xba,0x10,0xdf,0x79,0xc8,0x3a,0x9f,
0xaf,0x14,0x71,0x8e,0xbe,0x0a,0x2e,0xf6,0xf3,0x91,0x75,0x1d,0x2e,0xe0,0xac,0x9b,
0xc7,0xbe,0xab,0xf9,0x2c,0x30,0x9c,0xaf,0x15,0xc1,0xf9,0x3a,0xb8,0xd6,0x64,0x21,
0x58,0x2b,0xd3,0xbf,0x0b,0x8d,0xfd,0x1b,0xd4,0x59,0xe7,0xf2,0x4d,0xb0,0x45,0xcc,
0xe5,0x52,0x33,0x97,0xa2,0x5b,0x12,0xf6,0x5f,0x34,0xf6,0x25,0x70,0x2e,0xe6,0x37,
0x9c,0xd4,0x65,0x29,0xba,0xe5,0x26,0xc6,0x4a,0x62,0x6c,0x73,0x31,0x72,0xc2,0x3d,
0x32,0xba,0x43,0xad,0x64,0x3e,0x05,0x5b,0x65,0x70,0xe5,0x5c,0xe5,0x71,0x2e,0x85,
0x33,0x27,0xdc,0x43,0xa3,0xf3,0x47,0xd7,0xd2,0x6a,0x30,0x5d,0x4b,0xab,0xbd,0x79,
0x1a,0x66,0xf2,0x79,0xd7,0xdb,0xcf,0xdf,0x2b,0x62,0x3f,0x5f,0x03,0xae,0xfb,0xf9,
0xfb,0xf8,0xad,0x31,0x36,0x1f,0x78,0xeb,0x60,0x2d,0x98,0xdd,0xcf,0x3f,0xc4,0x77,
0x2d,0xf5,0x5c,0x6f,0xea,0x29,0xba,0x75,0xee,0xd9,0x44,0x8e,0xeb,0x4c,0x4e,0x1f,
0x91,0xd3,0x46,0x13,0xef,0x63,0x70,0x19,0xe3,0x06,0x64,0x19,0xe3,0x7a,0xfc,0x37,
0x19,0xdb,0x4f,0xb8,0x0f,0xa8,0xbc,0x99,0xf3,0x7e,0x0b,0x7d,0xb1,0x05,0x9b,0xcd,
0xc6,0x66,0x2b,0x77,0x84,0x1d,0xd8,0x6c,0xc3,0x6e,0xab,0x89,0xb9,0xcd,0x8b,0xb9,
0xde,0xf8,0x7f,0x8a,0xff,0x10,0xee,0xec,0x3b,0xc0,0xc4,0x77,0x3b,0xb2,0xda,0x7e,
0xc6,0x7d,0x41,0x6d,0x3f,0x07,0xd3,0xfb,0xfe,0x2e,0xee,0x0f,0x13,0xb9,0x53,0x7d,
0x81,0xcd,0x2e,0xf8,0x76,0x82,0xa9,0xfd,0x6e,0xee,0x17,0x72,0x1e,0xee,0xf6,0xee,
0x63,0x15,0xa8,0x79,0x16,0xf7,0xb1,0x4c,0xfe,0xa7,0x94,0xfc,0x2b,0x1a,0x8e,0x3d,
0xe0,0xc2,0xb1,0xc7,0xbb,0x77,0x56,0x81,0xa3,0x92,0xb9,0xd3,0x65,0x1b,0xbe,0xca,
0xf0,0x55,0x35,0xf7,0xa1,0xbd,0xe6,0xbe,0x23,0xfc,0x5f,0x62,0x37,0x92,0x1e,0xfe,
0x0a,0x4c,0x7b,0xf8,0x6b,0x30,0x19,0xdf,0x5e,0x64,0xad,0xd7,0x3e,0xf8,0x24,0xb7,
0x7d,0x26,0xb7,0x38,0xf3,0xdf,0x61,0x35,0x93,0x5b,0x75,0xf2,0xa9,0x61,0x7e,0xbb,
0x7e,0x57,0xc4,0x6f,0xd7,0xef,0xc1,0xb5,0xef,0x7e,0xa0,0xef,0x46,0x19,0x9b,0x1f,
0xc1,0xf5,0xbc,0x3f,0x0a,0xd6,0xc2,0xec,0xb3,0x3f,0xc1,0x75,0xd4,0xf8,0xfd,0x4c,
0x1e,0x7a,0x27,0x38,0xc6,0x7f,0x32,0xf9,0xd8,0xcb,0x38,0x8f,0x61,0xa7,0xbf,0x81,
0xfe,0x03,0x96,0x3c,0x99,0xa0,0x38,0x17,0x00,0x00
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x77,0x70,0x57,0x45,
0x10,0xc7,0xdf,0x25,0x21,0xc4,0x24,0x94,0x50,0x12,0xba,0xc1,0x80,0x04,0x12,0x42,
0x84,0x50,0x44,0x44,0x1c,0x44,0x2c,0xd8,0x45,0x81,0x11,0x1b,0x68,0x6c,0x68,0x14,
0x6c,0x08,0x2a,0x2a,0x4d,0x2c,0x28,0x2a,0x45,0xec,0x15,0xc5,0x82,0xa2,0x28,0x16,
0x44,0x41,0x50,0x64,0x86,0x19,0x2c,0x28,0xf6,0xae,0x30,0x03,0x62,0x05,0x15,0xbc,
0x7d,0xf7,0x59,0xb3,0x9c,0xf9,0xcb,0xcc,0xbc,0xf9,0xbd,0xfd,0xee,0xee,0xf7,0xf6,
0x76,0xf7,0x4a,0x5e,0x66,0x46,0x49,0xfd,0x24,0x71,0x49,0x6e,0x92,0x93,0xf4,0x71,
0x49,0xfa,0x57,0x90,0x64,0x24,0xf2,0x9a,0x97,0x64,0xa7,0xbf,0x83,0x87,0x1c,0x37,
0xa4,0x62,0xec,0xb8,0xd1,0x15,0x55,0x3d,0x2b,0x45,0xdf,0x30,0xc9,0x4c,0xed,0x44,
0xd7,0xc8,0xdb,0xd4,0xf3,0xbf,0x59,0xfe,0x19,0x73,0xda,0xd9,0xe7,0x0b,0xfe,0xab,
0x7f,0x1a,0x7b,0x3c,0x2b,0xe5,0x4a,0x92,0x01,0xd8,0xca,0x73,0x88,0xb7,0xee,0x18,
0x86,0x49,0x4a,0xf8,0x55,0xcc,0x81,0x65,0x19,0x2c,0x03,0x2c,0xc7,0x60,0x99,0x60,
0xf9,0x06,0xcb,0x02,0x6b,0x6c,0xb0,0x7a,0x60,0xcd,0x0c,0x96,0x0d,0xd6,0xc2,0x60,
0xf5,0xc1,0xda,0x18,0x2c,0x07,0xac,0xd8,0x60,0x7b,0x80,0x75,0x30,0x58,0x2e,0x58,
0xa9,0xc1,0xf2,0xc0,0xca,0x0d,0x96,0x0f,0x56,0x69,0xb0,0x06,0x60,0x55,0x06,0x6b,
0x08,0xd6,0x47,0xf2,0xee,0x67,0xaa,0x39,0x18,0xec,0x67,0x38,0x8a,0xf8,0x35,0x3f,
0xa3,0xa3,0x3c,0x8a,0xfd,0x68,0xf2,0x23,0xf6,0x67,0xfa,0xdf,0xbd,0xfe,0xd5,0x05,
0xb9,0x3d,0x79,0x16,0x79,0x4b,0xc4,0xb7,0xb5,0x0e,0xbe,0xad,0x86,0x6f,0x5b,0xc4,
0xb7,0x0d,0x3e,0x95,0x7f,0x65,0xee,0x6d,0x90,0x7b,0xbb,0x20,0xb7,0xf4,0x4f,0x53,
0x3f,0x8b,0x8c,0xd4,0x3e,0x33,0xe5,0x93,0xf7,0xe6,0xde,0x26,0x9b,0x1c,0x27,0xe9,
0x6f,0x56,0x5a,0x8b,0xfa,0xc4,0xd5,0xde,0xc7,0x94,0xc3,0xbb,0xe2,0x85,0xde,0xbb,
0x00,0x9f,0xf6,0xde,0xbe,0x09,0x3d,0x56,0x1f,0xff,0x42,0xde,0x0b,0xd0,0x17,0xf1,
0x5e,0x08,0x5f,0x6b,0xc3,0x57,0x88,0x4d,0x31,0xf1,0x08,0xd6,0xce,0x5b,0x6b,0x9f,
0xfc,0xdf,0x47,0xe2,0xd8,0x9b,0x7e,0x11,0xae,0xfd,0x90,0x3b,0x81,0xc9,0xbc,0x4b,
0x99,0x83,0xd4,0xa2,0x0c,0xb9,0xb3,0xf1,0xef,0x82,0x6d,0xb6,0xd1,0x77,0xa3,0xa7,
0x55,0xae,0x22,0xee,0x32,0xf2,0xd8,0x8f,0x5a,0xaa,0xdc,0x9f,0x3e,0x56,0xfb,0x41,
0x91,0x7c,0x14,0xf6,0xcd,0x3c,0xcb,0xb1,0xc6,0x6f,0x28,0x35,0x17,0x59,0x72,0x37,
0x82,0xfa,0xb4,0xf5,0xa8,0xf6,0x60,0x3b,0x7a,0x6d,0x14,0xf1,0x9e,0x41,0x2c,0xa3,
0x99,0xaf,0xc8,0x67,0x9a,0xf8,0x64,0xbc,0x6a,0x53,0xe7,0x73,0xd0,0xd9,0xf9,0x8d,
0x61,0x4d,0x68,0x1c,0x35,0xd8,0xab,0xfe,0x52,0xd6,0x9b,0xca,0x13,0x4d,0x9c,0x22,
0x5f,0xe9,0x9f,0x5d,0x99,0xb5,0xf2,0x24,0xd6,0x93,0xf2,0x4d,0x33,0xfe,0x22,0xcf,
0x8a,0xf2,0xf7,0x20,0x35,0x91,0xf8,0x1e,0xa6,0x1f,0x4a,0x0d,0xff,0x63,0xc2,0xef,
0xff,0x54,0x5e,0x18,0xd5,0xef,0x65,0xd6,0xb9,0xca,0xeb,0xa9,0xa1,0xf2,0x6f,0x8c,
0xec,0x3f,0x65,0xbf,0x2a,0xf2,0xf2,0x57,0xf4,0x69,0x06,0x79,0xde,0x62,0xf2,0x2c,
0x6b,0x70,0x0b,0x71,0xfd,0x84,0xcd,0x56,0xf2,0x2c,0xf2,0x36,0x30,0xe1,0xf9,0x19,
0xbf,0x4c,0xec,0x7f,0x61,0xcc,0x9f,0xb1,0xff,0x85,0xfd,0xd9,0xa1,0xff,0x8d,0x77,
0x5b,0x87,0x46,0xac,0x5b,0x8d,0xbb,0x97,0x0b,0x7b,0x78,0xb9,0x97,0x84,0x47,0xd6,
0xb5,0x60,0x1b,0x99,0x53,0x2f,0xdf,0x95,0x19,0xf4,0x52,0xc2,0xd8,0x7f,0x78,0xa4,
0x1e,0x63,0xa6,0x6b,0xd7,0x85,0x7c,0xaa,0x9c,0x13,0xc9,0x4d,0x8d,0x2c,0xeb,0x72,
0xaf,0x48,0x5f,0x12,0xe9,0xf7,0x8e,0xe4,0x4e,0x91,0x7d,0x97,0x48,0x5f,0x1e,0xe9,
0x7b,0x20,0x1f,0xe8,0xa3,0x94,0x1c,0xec,0x22,0x2f,0xd2,0x73,0xfb,0x33,0x6f,0x49,
0xcc,0x2e,0x6c,0x64,0x3d,0x3a,0x17,0xd6,0x70,0xb5,0xb1,0xc9,0x70,0x01,0x7f,0xd2,
0xdb,0xc8,0x1a,0xca,0xe4,0xa0,0x13,0xfc,0x77,0x9f,0x89,0x7a,0x9c,0xa9,0x3b,0xbc,
0xbd,0xe8,0xb2,0xfc,0x23,0x98,0xe4,0x47,0xde,0xff,0xf6,0xc6,0x69,0xae,0x9c,0xac,
0xd7,0xcc,0x34,0x4f,0x35,0x49,0x78,0xcf,0xe1,0x7d,0xbb,0xd7,0xef,0x81,0x8f,0xfc,
0xfe,0xe6,0xb9,0xf2,0xfc,0x6f,0x3e,0xdc,0xa2,0x6f,0x80,0x5e,0x7e,0x35,0xb6,0x86,
0x2e,0xe4,0x59,0xe3,0x6f,0x4c,0xfc,0x8d,0x8c,0x4d,0x81,0x0b,0xf8,0xd3,0xc4,0xdf,
0xc4,0x05,0x3f,0xc1,0x25,0x66,0x91,0x73,0xa5,0x1f,0xe0,0xcf,0x75,0xb5,0x39,0x6b,
0xe6,0xfe,0x9b,0xb3,0xe6,0x2e,0xe0,0x3a,0x66,0x61,0x1d,0x63,0x16,0xb9,0x80,0x5f,
0xe7,0x6d,0x44,0x6e,0xe1,0x82,0x5f,0x91,0xb1,0x69,0x49,0xec,0x57,0x63,0xd3,0xca,
0x05,0xbb,0x96,0xe4,0x49,0xfa,0xa5,0x95,0xb1,0x6f,0xed,0x42,0x0f,0xe9,0xb8,0x6d,
0x18,0x77,0xa1,0x89,0xad,0xad,0x0b,0xb8,0xd6,0xaa,0x9d,0x0b,0x7e,0x6d,0xa9,0x55,
0xb1,0xa9,0x95,0xe8,0xf6,0xf4,0x4f,0x31,0xf3,0x96,0x77,0xc9,0xb3,0xe6,0xa1,0xd8,
0x8c,0xdd,0x81,0xb1,0x25,0x2e,0xe9,0x53,0x91,0xf7,0xf5,0x63,0xc8,0x7a,0xee,0xe8,
0xc2,0xfd,0xa3,0x04,0xbd,0xf4,0x75,0x47,0x7c,0x45,0x5f,0xea,0x42,0xaf,0x8b,0x4e,
0x7a,0xb8,0xd4,0xf8,0x76,0x76,0xe1,0xec,0xec,0x84,0x5e,0x7a,0xbe,0xb3,0x19,0xb7,
0xcc,0x8c,0x2b,0xfd,0x5e,0x66,0x78,0xbb,0xba,0xb0,0x46,0x44,0x27,0xbd,0xdf,0x35,
0xe5,0xcd,0x4e,0xfd,0x2a,0x9c,0xec,0x2b,0x61,0x8d,0x94,0x1b,0xbe,0x6e,0x2e,0xac,
0xd3,0x95,0xe4,0xbc,0xd2,0x05,0xac,0xc2,0xf4,0x66,0x25,0x79,0xc8,0x27,0x0f,0xf9,
0xc6,0x7f,0x9f,0xa8,0x66,0xdd,0x5d,0xc0,0x16,0x9a,0x7e,0xee,0xee,0x76,0xef,0xe7,
0x3c,0xe3,0x5f,0xc5,0xf8,0x62,0x2b,0xeb,0xb3,0x8a,0x5c,0xc8,0xde,0xd2,0xd3,0x85,
0xbb,0x47,0x0f,0xd6,0x4c,0x1f,0xff,0xf4,0x62,0x9c,0x3c,0xf6,0x1d,0x39,0xdb,0x7a,
0x4b,0x9c,0xec,0xbb,0xfa,0x9e,0xcb,0x7e,0x94,0x6f,0x7a,0xa1,0x03,0x36,0xda,0x2f,
0x65,0x9c,0xcf,0x9d,0x8d,0x4d,0x39,0xb8,0xf6,0x69,0x57,0xfc,0xca,0x8d,0x4d,0x05,
0xfc,0xca,0x53,0x09,0x4f,0x37,0x63,0xb3,0x0f,0xb8,0xf2,0x74,0xc7,0x4f,0x70,0xcd,
0x55,0x0f,0xf8,0xbb,0x1b,0xae,0x9e,0x70,0x55,0x19,0xae,0x5e,0xe0,0xea,0xd7,0x1b,
0x5f,0xc1,0x77,0xfa,0x39,0xf6,0x4e,0xef,0x8e,0xb5,0xb9,0x69,0x54,0x47,0x6e,0x1a,
0x98,0xf7,0x86,0xe4,0xa6,0xb1,0xd9,0x1b,0xfb,0x72,0xf6,0xe9,0x98,0xfb,0xe1,0x33,
0x1d,0xce,0xfd,0xc1,0xfa,0x99,0x39,0x1d,0x00,0xde,0x9f,0x5a,0xf7,0xfd,0x17,0x0b,
0x1c,0x03,0xe0,0x95,0x18,0x07,0x98,0x18,0x0b,0xb8,0x9f,0xcb,0x5f,0x13,0x13,0x57,
0x53,0xe2,0x6a,0x6e,0xe2,0x1a,0x98,0xec,0xbe,0x87,0x1f,0x1a,0xc9,0x27,0x45,0xf2,
0xc8,0x48,0x3e,0x25,0x92,0x4f,0x8f,0xe4,0x71,0x91,0x3c,0x3e,0x92,0xa7,0x46,0xf2,
0x4d,0x91,0x3c,0x2f,0x92,0xe7,0x1b,0x59,0xee,0x13,0x8f,0x44,0xfa,0x97,0x92,0xdd,
0xcf,0xa8,0x95,0x91,0xbc,0x3a,0xaa,0xc3,0x41,0xe4,0x45,0xfb,0xe3,0x60,0xfa,0x63,
0x90,0xb1,0x19,0x0c,0x3e,0x85,0xba,0x1c,0x82,0xdf,0x60,0xea,0x32,0x10,0x4c,0xed,
0x0f,0x8b,0x38,0x0f,0xaf,0x83,0x73,0x08,0xb8,0xd6,0xff,0x08,0xfc,0x86,0xc0,0x79,
0x28,0x98,0xda,0x1f,0x49,0x6d,0x94,0xf3,0x68,0x38,0x8f,0x32,0x36,0xc7,0x80,0xeb,
0x5e,0x7c,0x1c,0x7e,0xc7,0x18,0x9b,0xe3,0xe1,0xd1,0xb3,0xe9,0x04,0xb0,0xa1,0x69,
0x2e,0x03,0x76,0x22,0xbe,0xa2,0x93,0x3d,0x7c,0x78,0x52,0xbb,0x87,0x8b,0x6e,0x98,
0x7f,0x86,0xd3,0x4b,0xc3,0xe8,0xbf,0x11,0xc8,0xc3,0xcd,0x58,0x27,0xd3,0x5f,0x32,
0x9f,0x91,0xc8,0xaa,0x3b,0x95,0x38,0x44,0x77,0x0a,0xb2,0xee,0xa5,0xa7,0xb1,0xff,
0x8c,0xa4,0xbf,0xc4,0xe6,0x24,0x70,0xf5,0x3f,0x8b,0xde,0xd4,0x9a,0x9c,0x0d,0xd6,
0x2f,0xcd,0x51,0x76,0x7a,0x17,0x3e,0x97,0xfb,0x72,0x35,0x7a,0xf5,0x3d,0x0f,0x9d,
0xf0,0x9e,0x8e,0xac,0x79,0x3d,0x9f,0xbc,0x8e,0x31,0xf6,0x17,0x80,0x3f,0x4e,0x7e,
0x2e,0x04,0xab,0x21,0x3f,0x63,0x4d,0x7e,0x44,0x77,0x91,0x7f,0xe6,0x92,0x8f,0x8b,
0x0c,0xcf,0xc5,0xcc,0xf9,0x31,0x78,0x2e,0x01,0x93,0xdc,0x2f,0xf0,0x16,0x72,0x4f,
0xbc,0x0c,0xbc,0x8a,0xbb,0xf9,0x04,0x7c,0x2f,0x47,0x27,0x31,0x8f,0x43,0x56,0xde,
0x2b,0x22,0xde,0x09,0x60,0x96,0xf7,0x2a,0xf0,0x89,0xdc,0xe9,0x95,0xf7,0x6a,0x74,
0xc2,0x3b,0x1e,0x59,0x73,0x71,0x0d,0xb9,0x98,0x64,0xc6,0xba,0x16,0x5c,0x73,0x71,
0x1d,0x98,0xe6,0x62,0x8a,0xc9,0x85,0xe8,0x26,0xfb,0x67,0x06,0xb9,0x98,0x6c,0x78,
0xa6,0x13,0xb3,0xee,0x75,0xd7,0xf3,0xbf,0xc4,0x74,0x62,0x99,0x0a,0x26,0xe7,0xda,
0x14,0xfc,0x67,0x18,0xff,0x1b,0xa2,0x39,0xdf,0x08,0x36,0x94,0x38,0x66,0x9a,0x38,
0x44,0x77,0xb3,0x7f,0x6e,0x81,0xe7,0x66,0xc6,0xb8,0x29,0xa9,0xbd,0x0b,0xce,0x44,
0x77,0x8b,0x19,0xe3,0x56,0xf6,0x2f,0x95,0x6f,0x63,0xcc,0x6b,0x88,0xf9,0x76,0xfe,
0xdf,0xb9,0xcd,0xcc,0xe3,0x0e,0xfc,0x6e,0x37,0xe7,0xc9,0x6c,0xf0,0x59,0x66,0xdc,
0xd9,0xd1,0xb8,0x33,0xcd,0x38,0x73,0xd8,0x07,0x35,0x0f,0x73,0xa2,0x3c,0x4c,0x41,
0x1e,0x8b,0x3c,0xd7,0xf8,0xde,0xc9,0xba,0x10,0xdf,0x79,0xc8,0x5a,0xcf,0xbb,0xea,
0x38,0x47,0xef,0x06,0x17,0xfb,0xf9,0xc8,0xba,0x0e,0xef,0xe1,0xac,0x9b,0xc7,0xbe,
0xab,0xf1,0xdc,0x63,0x38,0xef,0xad,0x83,0xf3,0x3e,0x70,0xcd,0xc9,0xfd,0x60,0xfd,
0x4d,0xff,0xde,0x6f,0xec,0x1f,0x20,0xcf,0x5a,0xcb,0x87,0xc0,0x1e,0xa4,0x96,0x0b,
0x4c,0x2d,0x45,0xf7,0x68,0xda,0x7f,0x61,0xee,0x8f,0xc2,0xf9,0x08,0xff,0x4b,0x4a,
0x5e,0x16,0xa0,0x7b,0xdc,0x8c,0xf1,0x04,0x63,0xac,0xf0,0x63,0x94,0xa6,0x7b,0x64,
0xb8,0x43,0x3d,0x41,0x3d,0x05,0x7b,0xca,0xe0,0xca,0xf9,0x54,0xc4,0xb9,0x00,0xce,
0xd2,0x74,0x0f,0x0d,0xe7,0x8f,0xae,0xa5,0x45,0x60,0xba,0x96,0x16,0x45,0x75,0x1a,
0x6b,0xe2,0x79,0x26,0xda,0xcf,0x9f,0xad,0x63,0x3f,0x5f,0x0c,0xae,0xfb,0xf9,0x73,
0xf8,0x2d,0x36,0x36,0xcf,0x47,0xeb,0x60,0x09,0x98,0xdd,0xcf,0x5f,0xc0,0x77,0x09,
0xf9,0x5c,0x6a,0xf2,0x29,0xba,0x17,0xfd,0xb3,0x8c,0x18,0x5f,0x34,0x31,0xbd,0x42,
0x4c,0x2f,0x9b,0xf1,0x5e,0x05,0x97,0x39,0xbe,0x84,0x2c,0x73,0x5c,0x8a,0xff,0x32,
0x63,0xfb,0x1a,0xf7,0x01,0x95,0x97,0x73,0xde,0xbf,0x4e,0x5f,0xbc,0x8e,0xcd,0x72,
0x63,0xf3,0x06,0x77,0x84,0x55,0xd8,0xac,0xc0,0xee,0x0d,0x33,0xe6,0x8a,0x68,0xcc,
0xa5,0xc6,0xff,0x4d,0xfc,0x6b,0xb8,0xb3,0xaf,0x02,0x13,0xdf,0x95,0xc8,0x6a,0xfb,
0x16,0xf7,0x05,0xb5,0x7d,0x1b,0x4c,0xef,0xfb,0x6b,0xb8,0x3f,0x4c,0xe3,0x4e,0xf5,
0x0e,0x36,0x6b,0xe0,0x5b,0x0d,0xa6,0xf6,0x6b,0xb9,0x5f,0xc8,0x79,0xb8,0x36,0xba,
0x8f,0xb5,0x24,0xe7,0x45,0xdc,0xc7,0x0a,0xf9,0x5e,0x2a,0xf1,0xb7,0x32,0x1c,0xeb,
0xc0,0x85,0x63,0x5d,0x74,0xef,0x6c,0x07,0x47,0x6b,0x73,0xa7,0x6b,0x63,0xf8,0xda,
0xc2,0xb7,0xa7,0xb9,0x0f,0x7d,0x18,0xdd,0x8f,0xbe,0x48,0x6a,0xff,0x47,0x97,0x1a,
0xbf,0x4b,0x8d,0xd7,0x9b,0xbc,0xbc,0x07,0xae,0x3d,0xf5,0x3e,0xd8,0x2c,0xfa,0x67,
0x83,0xe9,0x1f,0xd1,0x7d,0xe0,0x9f,0xef,0x19,0xfb,0x03,0xc3,0xf3,0x11,0xf1,0x69,
0x2d,0x3f,0x06,0xdb,0x68,0xb8,0x3f,0x01,0xaf,0x31,0x67,0xd5,0x67,0xe0,0xd5,0x7c,
0xcf,0xd1,0xf5,0xf5,0x39,0x3a,0xc9,0xfd,0x87,0xc8,0x9a,0xb7,0x2f,0x99,0xff,0xd1,
0x9e,0x57,0xbe,0xfb,0x7c,0x0d,0x36,0x22,0xfd,0x7e,0x14,0xf6,0xb3,0x6f,0xf8,0x2e,
0xd3,0x17,0xbd,0xc6,0xf9,0x2d,0x79,0x5a,0x41,0x9c,0xdf,0x61,0xfb,0x2d,0x63,0x7d,
0x01,0x26,0x3d,0xb7,0x81,0x79,0x7e,0x6f,0xc6,0xfe,0x81,0xb1,0x27,0xb0,0x2f,0xfc,
0x08,0xa6,0x71,0x6f,0x02,0x53,0xae,0x4d,0x11,0xd7,0x06,0x13,0xcb,0x66,0x6a,0x24,
0xf5,0xdf,0x6c,0xea,0x9f,0x61,0xbe,0x13,0x17,0x9b,0xfa,0xb7,0x87,0xa3,0xc4,0x7c,
0x77,0xf9,0xbd,0x8e,0xef,0x2e,0x7f,0x80,0x6b,0xdd,0xb7,0x53,0xf7,0x89,0xc6,0x66,
0x07,0xb8,0xde,0xa9,0xfe,0x04,0xeb,0x67,0xce,0xb2,0xbf,0xe0,0xfa,0xd3,0xf8,0xfd,
0x4d,0x1c,0x7a,0xef,0xda,0xc9,0xf7,0xb3,0x6a,0xec,0x65,0xde,0x3b,0xb1,0xd3,0xff,
0x33,0xff,0x01,0x35,0x79,0xaa,0xd4,0x24,0x19,0x00,0x00
};
// Generated from:
......@@ -180,7 +190,7 @@ constexpr uint8_t kConvertVertex_comp_00000005[] = {
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Sd + component * 4 + params . destOffset;
// return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
......@@ -257,7 +267,18 @@ constexpr uint8_t kConvertVertex_comp_00000005[] = {
// uint makeDestinationComponent(uint cd, float value)
// {
//
// uint valueAsUint = floatBitsToInt(value);
// uint valueAsUint;
//
// if(params . Bd == 2)
// {
//
// uint shift =((cd & 1)== 0)? 0 : 16;
// valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
// }
// else
// {
// valueAsUint = floatBitsToInt(value);
// }
//
// return valueAsUint;
// }
......@@ -274,9 +295,9 @@ constexpr uint8_t kConvertVertex_comp_00000005[] = {
// return;
//
// uint valueOut = 0;
// for(uint i = 0;i < 1;++ i)
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * 1 + i;
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
// if(cd >= params . componentCount)
// {
// break;
......
......@@ -11,121 +11,132 @@
#pragma once
constexpr uint8_t kConvertVertex_comp_00000006[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x79,0x94,0x8f,0x65,
0x14,0xc7,0x7f,0xef,0x6f,0x66,0x7e,0x33,0x66,0xc6,0x98,0x31,0x8c,0x64,0xc9,0x44,
0x45,0x84,0x64,0x4d,0xd3,0x41,0xb2,0x94,0x54,0x84,0x43,0x0a,0x99,0x16,0xca,0x16,
0xa5,0x24,0xc9,0x16,0x59,0x42,0x96,0x50,0x21,0x24,0x4b,0xf6,0x92,0x90,0xb2,0x9c,
0x9c,0xa3,0x72,0x0e,0x59,0xda,0x94,0x56,0x87,0x2c,0x49,0x42,0x96,0x9e,0xfb,0xfe,
0x3e,0xb7,0xb9,0x9e,0x33,0x7f,0x35,0xe7,0xbc,0xe7,0x7d,0xef,0xf7,0xae,0xcf,0xf7,
0xb9,0xcf,0xf2,0x9b,0x84,0x68,0xc5,0xe4,0x48,0x24,0x88,0xa4,0x46,0x52,0x22,0xa5,
0x82,0x48,0xf8,0x97,0x15,0x89,0x46,0xe4,0x33,0x2d,0x12,0x0b,0xdf,0xcd,0x5b,0xb5,
0x6d,0x55,0xbd,0xff,0x80,0xfc,0xea,0xb5,0xeb,0xd4,0x14,0x7d,0x46,0x24,0x21,0xb4,
0x13,0x5d,0x31,0x67,0x93,0xe4,0xde,0x89,0xee,0xe9,0xd5,0xad,0x47,0x6f,0xc1,0xf7,
0xbb,0x27,0xd3,0xe1,0x89,0x61,0xac,0x48,0xa4,0x11,0xb6,0xf2,0xb4,0x70,0xd6,0xd7,
0xc4,0xd3,0x44,0x2a,0xf2,0x56,0x2c,0x00,0x4b,0x34,0x58,0x14,0x2c,0xc5,0x60,0x09,
0x60,0xe9,0x06,0x4b,0x04,0xcb,0x34,0x58,0x12,0x58,0x09,0x83,0xc5,0xc0,0xae,0x30,
0x58,0x32,0x58,0x59,0x83,0xa5,0x80,0x55,0x30,0x58,0x11,0xb0,0x4a,0x06,0x4b,0x05,
0xab,0x6c,0xb0,0x34,0xb0,0x6a,0x06,0x4b,0x07,0xab,0x69,0xb0,0xa2,0x60,0xb5,0x0d,
0x96,0x01,0x56,0x5f,0x78,0x77,0x23,0x55,0x0e,0x9a,0xbb,0x11,0x76,0xa5,0x7e,0xe5,
0xa7,0x9b,0xc7,0xa3,0xd8,0x77,0x83,0x1f,0xb1,0xef,0xee,0xde,0x57,0xff,0xa7,0x8b,
0xcb,0xb9,0xf0,0x2c,0xf2,0x2e,0x2f,0xde,0xee,0x42,0xe2,0xed,0x36,0xf1,0xf6,0x78,
0xf1,0xf6,0x10,0x4f,0xe5,0xfd,0x8c,0xbd,0x2c,0x72,0x4e,0x10,0x97,0x4b,0xbb,0x27,
0xdb,0x8d,0x22,0x1a,0xda,0x27,0x84,0xf1,0xe4,0xbb,0xa4,0xb3,0x89,0xc1,0x71,0x24,
0x7c,0x27,0x86,0x73,0x91,0x4c,0x5d,0xb9,0xae,0xa6,0x14,0xbe,0x15,0xcf,0x71,0xde,
0x59,0xf8,0xe4,0x3a,0xfb,0xe2,0xf4,0x58,0x32,0xfe,0x39,0x7c,0x67,0xa1,0x2f,0xc5,
0x77,0x0e,0xf1,0xca,0x98,0x78,0x39,0xd8,0x54,0xa0,0x1e,0xc1,0xca,0x3b,0x6b,0xed,
0x93,0xff,0xfb,0x48,0x1d,0xd7,0xd2,0x2f,0x12,0xab,0x21,0xf2,0x75,0x60,0x32,0xee,
0xca,0x8c,0x41,0xe6,0xa2,0x2a,0x72,0x15,0xe3,0x7f,0x3d,0xb6,0x31,0xf4,0xf2,0xae,
0xc1,0x5c,0xa9,0x7d,0x2d,0xea,0x56,0x7d,0x43,0xfa,0x56,0xf5,0x4d,0x3c,0xb9,0x15,
0xfe,0x25,0x9c,0xd7,0xdd,0xc6,0xaf,0x0d,0x73,0x2c,0xb2,0x70,0xd5,0x81,0xf9,0x28,
0xe7,0x50,0xed,0xb9,0xf2,0xf4,0x56,0x57,0xea,0x7b,0x88,0xdc,0xdd,0x18,0x9f,0xc8,
0xdd,0x4d,0x3d,0x92,0x2f,0xdf,0xcc,0xeb,0xa3,0xe8,0x62,0x46,0xdf,0x93,0x35,0xa0,
0x75,0xf4,0xc2,0x5e,0xf5,0x03,0x58,0x5f,0x2a,0x0f,0x32,0x75,0x8a,0xfc,0x9c,0x7b,
0x2e,0x25,0x14,0xc8,0x43,0x58,0x3f,0x1a,0x6f,0xa4,0xf1,0x17,0x79,0xa2,0xc7,0xd7,
0x2c,0xe6,0x40,0xea,0x7b,0x93,0xf9,0xaf,0x6c,0xe2,0xbf,0x25,0xf1,0xdd,0x9f,0xca,
0xf3,0xbd,0xf9,0x5a,0xc3,0xba,0x56,0xde,0x3e,0x0a,0xab,0x1f,0x5a,0x4f,0x78,0xdb,
0x65,0x78,0x93,0x35,0xb4,0x8b,0x3c,0x5f,0x52,0xc3,0x6e,0x78,0x13,0x79,0x0f,0x58,
0x29,0x27,0xef,0xc5,0x2f,0x01,0xfb,0x7d,0xe4,0xdc,0x8b,0xfd,0x3e,0xf6,0xd7,0x00,
0xfd,0x57,0x7c,0xdb,0x3e,0x39,0x69,0xea,0x14,0xb9,0x64,0x10,0xdf,0x83,0xab,0x39,
0x49,0xe2,0xc8,0xba,0x14,0xec,0x24,0xb6,0x75,0xdd,0xba,0x88,0xd2,0x1b,0x11,0x72,
0x9f,0x71,0x48,0x12,0x39,0x85,0x97,0xc3,0xf0,0xa3,0xf2,0x11,0x4f,0x3e,0x65,0x64,
0x59,0x57,0x41,0x70,0xb9,0x3e,0x1a,0x5c,0xae,0x4f,0xf2,0xe4,0x98,0x67,0x5f,0xc4,
0xd3,0xa7,0x79,0xfa,0xe2,0xc8,0x8d,0x5d,0x95,0xc2,0xc1,0x8f,0xf0,0x22,0x3d,0x94,
0xc7,0xb8,0x7f,0x02,0x17,0x1b,0x59,0x4f,0x3f,0xb3,0x06,0xf3,0x8d,0xcd,0x2f,0xe0,
0xcb,0x9c,0x8d,0xac,0x89,0x5f,0xf1,0x13,0xfc,0x6f,0xc7,0xc4,0x21,0x38,0x39,0xe7,
0xec,0x45,0xf7,0x9b,0x7b,0x0e,0xc1,0x8f,0x7c,0x5f,0x70,0x4c,0xcb,0xb7,0x60,0xb7,
0x3a,0xfb,0xc3,0xd4,0x20,0xdf,0x47,0xf8,0x3e,0xeb,0xf4,0xbf,0xe3,0x23,0xef,0xd3,
0x2e,0xd6,0x31,0xf7,0x3e,0x4e,0x6c,0xd1,0x9f,0x40,0x7f,0xc2,0xd4,0xf6,0x07,0x3c,
0xaf,0xa0,0xb6,0x3f,0xc1,0x4e,0x52,0x8f,0xc8,0x47,0xdd,0x73,0x0c,0xdf,0xa3,0x86,
0x8f,0xbf,0x0a,0xe1,0xe3,0x34,0xf8,0x08,0x67,0x13,0x0b,0xc7,0x17,0xc7,0x4e,0x1a,
0x9b,0x33,0xe4,0x1c,0x8a,0xcd,0x59,0xec,0xce,0x30,0xa6,0x53,0x60,0x6a,0x7f,0x8e,
0xb9,0x57,0x8e,0xff,0x81,0xe3,0xf9,0xc6,0xe6,0x3c,0xb8,0x72,0x7c,0x01,0xbf,0xf3,
0x70,0x7c,0xc9,0x70,0x2c,0xba,0x8b,0xb2,0xee,0x18,0xd3,0x45,0xf8,0xd1,0x31,0x5e,
0x32,0x71,0x13,0x82,0x78,0x6e,0xa9,0x4b,0xfa,0x4b,0xe4,0x06,0x2e,0x87,0xac,0xc5,
0xc4,0x20,0x7e,0xee,0x0b,0x2e,0x7a,0xe9,0x47,0xc1,0xf2,0x58,0xab,0xc9,0x41,0xbc,
0x47,0x45,0x17,0xf6,0x9e,0xf1,0x4d,0x09,0xe2,0x67,0x56,0x0c,0xbd,0xf4,0x6a,0x4a,
0x50,0x90,0x37,0xd5,0xe4,0x95,0x3e,0x4d,0x35,0x71,0xd3,0x83,0x78,0x6f,0x8b,0x4e,
0x7a,0x36,0x3d,0x8c,0x1b,0x0b,0xfd,0x8a,0x06,0xb2,0x1f,0xc4,0x7b,0x3b,0xcd,0xc4,
0xcb,0x08,0xe2,0xeb,0x6b,0x1b,0x9c,0x17,0x0b,0xe2,0x58,0xd1,0xa0,0xa0,0xa7,0x04,
0x13,0x1e,0x8e,0xc3,0xc3,0x71,0xc3,0x43,0x66,0x70,0xf9,0x9c,0x65,0x05,0x71,0x6c,
0xbe,0xe9,0xc3,0xac,0xe0,0xf2,0x3e,0x3c,0x66,0xfc,0xb3,0xc9,0x2f,0xb6,0xb2,0xae,
0xb2,0xe1,0x42,0xf6,0x84,0x12,0x41,0xfc,0xcc,0x17,0x5c,0x7a,0xbd,0xbe,0x7b,0xea,
0x92,0x27,0x8d,0x79,0x93,0x33,0xa6,0x9e,0xf3,0x4d,0xe6,0xcc,0xd2,0xef,0x54,0x72,
0xa5,0x9b,0x5c,0x95,0xb0,0xd1,0x7e,0xa9,0x4a,0xbf,0x54,0x31,0x36,0xd5,0xc0,0xb5,
0x4f,0x6f,0xc0,0xaf,0x9a,0xb1,0xa9,0x4e,0x7c,0xb5,0xa9,0x09,0x56,0xc3,0xf0,0x70,
0x23,0xbe,0x35,0x4d,0xbe,0x9b,0xc8,0x57,0xcb,0xc4,0xaa,0x0d,0xae,0x7e,0x75,0xf0,
0xad,0x1d,0xf6,0x62,0x34,0x94,0xed,0xb8,0x8b,0x15,0x32,0xee,0xa2,0xe6,0x3b,0x83,
0x71,0x67,0x9a,0xfd,0xaa,0x3e,0xfb,0xa3,0xe6,0x6c,0x80,0xcf,0x18,0x62,0xde,0x0c,
0x56,0xc3,0x8c,0xe9,0x16,0xf0,0x86,0xcc,0x4d,0x7d,0x30,0x8d,0x91,0x47,0x5c,0xa9,
0x31,0xcf,0xd4,0x98,0xc5,0x9d,0x57,0xfe,0x8a,0x9b,0xba,0xb2,0xa9,0xab,0xa4,0xa9,
0xab,0x91,0xb7,0x8f,0x37,0xf3,0xe4,0x8e,0x9e,0xdc,0xc9,0x93,0x3b,0x7b,0x72,0x17,
0x4f,0xee,0xe7,0xc9,0x03,0x3d,0x79,0x84,0x27,0x8f,0xf5,0xe4,0xe9,0x9e,0x3c,0xc3,
0xc8,0x72,0x66,0xcf,0xf6,0xf4,0xab,0xbd,0x73,0x68,0xa3,0x27,0x6f,0xf2,0xe6,0xa1,
0x31,0xbc,0x68,0x7f,0xdc,0x46,0x7f,0x34,0x31,0x36,0x4d,0xc1,0x47,0x31,0x2f,0xb7,
0xe3,0xd7,0x94,0x79,0x69,0x04,0xa6,0xf6,0xcd,0xbd,0x98,0x2d,0x0a,0x89,0xd9,0x12,
0x5c,0xe7,0xff,0x0e,0xfc,0x5a,0x12,0xb3,0x19,0x98,0xda,0xdf,0xc9,0xdc,0x68,0xcc,
0xbb,0x88,0xd9,0xca,0xd8,0xb4,0x06,0xd7,0x7d,0xf6,0x1e,0xfc,0x5a,0x1b,0x9b,0x7b,
0x89,0xa3,0x67,0x4a,0x5b,0x30,0xb9,0x03,0x2e,0x04,0xbb,0x0f,0xdf,0xb6,0xec,0xcf,
0xed,0xcd,0xfe,0x2c,0xba,0x76,0xee,0x69,0x4f,0x2f,0xb5,0xa3,0xff,0x3a,0x20,0xb7,
0x37,0xb9,0xee,0xa7,0xbf,0x64,0x3c,0x9d,0x90,0x55,0xf7,0x00,0x75,0x88,0xae,0x33,
0xb2,0xee,0x93,0x0f,0xb2,0xb7,0x74,0xa2,0xbf,0xc4,0xa6,0x23,0xb8,0xfa,0x3f,0x4c,
0x6f,0xea,0x9c,0x3c,0x02,0x56,0x23,0xe4,0x28,0x16,0xde,0x37,0x1f,0xe3,0x4e,0x9a,
0x8f,0x5e,0x7d,0x7b,0xa0,0x93,0xb8,0x5d,0x90,0x95,0xd7,0xc7,0xe1,0xb5,0xa7,0xb1,
0x7f,0x02,0x7c,0x09,0xfc,0xf4,0x06,0xeb,0x05,0x3f,0x7d,0x0d,0x3f,0xa2,0xeb,0xe3,
0x9e,0x69,0xf0,0xd1,0xc7,0xc4,0x79,0x92,0x31,0x2f,0x26,0x4e,0x7f,0x30,0xe1,0x7e,
0x91,0xb3,0x90,0x3b,0xe5,0x53,0xe0,0xb5,0xb8,0xff,0x0e,0xc6,0xf7,0x69,0x74,0x52,
0x73,0x3f,0x64,0x8d,0xfb,0x8c,0x17,0xf7,0x59,0x30,0x1b,0x77,0x30,0xf8,0x20,0xee,
0xcd,0x1a,0xf7,0x79,0x74,0x12,0x77,0x20,0xb2,0x72,0xf1,0x02,0x5c,0x0c,0x31,0xb9,
0x86,0x82,0x2b,0x17,0x2f,0x82,0x29,0x17,0xc3,0x0d,0x17,0xa2,0x1b,0xe6,0x9e,0xd1,
0x70,0x31,0xcc,0xc4,0x19,0x45,0xcd,0xba,0xd7,0xbd,0xc4,0x7d,0x7d,0x14,0xb5,0x8c,
0x00,0x93,0x33,0x6b,0x38,0xfe,0xa3,0x8d,0xff,0x18,0x6f,0xcc,0x2f,0x83,0xb5,0xa1,
0x8e,0xf1,0xa6,0x0e,0xd1,0x8d,0x73,0xcf,0x04,0xe2,0x8c,0x23,0xc7,0x58,0x73,0x3f,
0x1b,0x8f,0x6e,0x82,0xc9,0xf1,0x0a,0xfb,0x97,0xca,0x93,0xc8,0x39,0x8c,0x9a,0x27,
0xf3,0x9b,0x62,0x92,0x19,0xc7,0xab,0xf8,0x4d,0x36,0xe7,0xc9,0x14,0xf0,0x89,0x26,
0xef,0x14,0x2f,0xef,0x78,0x93,0x67,0x2a,0xfb,0xa0,0xf2,0x30,0xd5,0xe3,0x61,0x38,
0x72,0x5f,0xe4,0x69,0xc6,0xf7,0x35,0xd6,0x85,0xf8,0x4e,0x47,0x96,0xef,0x19,0xac,
0x0d,0x5d,0x63,0x33,0x39,0xc7,0xa6,0xb3,0xa7,0x6a,0xae,0x99,0xa6,0xc7,0x66,0x99,
0xb8,0xaf,0xc3,0x85,0xf2,0xfd,0x06,0xd8,0x2c,0xf8,0x9e,0x6b,0xf8,0x16,0xdd,0x1c,
0xf7,0xcc,0xa3,0xbe,0x39,0xc4,0x9c,0xcd,0x6f,0x2a,0xa9,0x7d,0x2e,0xba,0x79,0x26,
0xc7,0x02,0x72,0x6c,0x75,0x39,0xa4,0x67,0xdf,0xe6,0x1e,0xb9,0x00,0xce,0x2b,0x87,
0x7b,0x54,0x01,0xae,0x31,0x17,0x7a,0x31,0xe7,0x12,0x53,0xec,0xdf,0xe1,0x8c,0xd0,
0x7e,0x5f,0x04,0xa6,0xfd,0xbe,0xc8,0xe3,0xb2,0xaf,0xa9,0x67,0xb1,0xb7,0xe7,0x2e,
0x29,0x64,0xcf,0x5d,0x0a,0xae,0x7b,0xee,0xbb,0xf8,0x2d,0x35,0x36,0xcb,0xbc,0x5e,
0x5d,0x0e,0x66,0xf7,0xdc,0x15,0xf8,0x2e,0x87,0xcf,0x55,0x86,0x4f,0xd1,0xad,0x74,
0xcf,0x5a,0x6a,0x5c,0x69,0x6a,0x7a,0x8f,0x9a,0xd6,0x98,0x7c,0xef,0x83,0xcb,0x18,
0x57,0x23,0xcb,0x18,0x57,0xe1,0xbf,0xd6,0xd8,0x7e,0xc0,0x99,0xad,0xf2,0x3a,0xce,
0xe4,0xcd,0xf4,0xee,0x87,0xd8,0xac,0x33,0x36,0xeb,0x39,0xc7,0x3f,0xc5,0x66,0x03,
0x76,0xeb,0x4d,0xce,0x0d,0x5e,0xce,0x55,0xe8,0x36,0xf2,0x3b,0x59,0x63,0x7d,0xcc,
0x99,0x3d,0x98,0xf9,0xfa,0x04,0xac,0x0f,0xf7,0xe9,0xcd,0x60,0x7a,0xbf,0xde,0xc2,
0x99,0x3e,0x92,0x7b,0xce,0x56,0x6c,0xb6,0x10,0x7f,0x13,0x98,0xda,0x6f,0xe3,0xcc,
0x97,0x33,0x6a,0x9b,0x77,0x47,0x2a,0x0d,0xc7,0xa5,0xb8,0x23,0xe5,0xf0,0x7f,0x41,
0xa9,0xf7,0x4a,0x13,0x63,0x3b,0xb8,0xc4,0xd8,0xee,0xdd,0x05,0xcb,0x13,0xa3,0x8c,
0xb9,0x67,0x95,0x35,0xf1,0xca,0x11,0xef,0x2a,0x73,0x47,0xd9,0x61,0xee,0x20,0x12,
0xff,0x33,0xec,0x94,0x83,0xcf,0xc1,0xb4,0x67,0xbf,0x00,0x93,0xf1,0xed,0x40,0x56,
0xfe,0x76,0x12,0x4f,0x6a,0xdb,0x69,0x6a,0x8b,0x9a,0xff,0xd5,0x55,0x30,0xb5,0xe5,
0x52,0x4f,0x45,0xf3,0x5b,0xf1,0xeb,0x42,0x7e,0x2b,0x7e,0x03,0xae,0x7d,0xf6,0x2d,
0x7d,0x36,0xc8,0xd8,0x7c,0x07,0xae,0x67,0xf0,0x01,0x30,0x7b,0x07,0xff,0x9e,0x58,
0x07,0x8c,0xdf,0x0f,0xd4,0xa1,0xe7,0xf4,0x41,0xfe,0x07,0x92,0x8f,0xbd,0x8c,0xf3,
0x20,0x76,0xfa,0x9b,0xe3,0x5f,0xbf,0x03,0x7d,0xd4,0xa8,0x16,0x00,0x00
0x14,0xc7,0xdf,0xf7,0xf7,0x1b,0x33,0x63,0x37,0x96,0x41,0x63,0x9b,0x66,0x68,0x30,
0x98,0x84,0x2c,0xe9,0x20,0x59,0x4a,0xa5,0x84,0x43,0x8b,0xa6,0xa6,0xbd,0x89,0xa2,
0x94,0x24,0xd9,0x22,0x4b,0x2a,0x4b,0x68,0xa1,0x94,0x2c,0xd9,0x4b,0x85,0xb4,0x70,
0x72,0x8e,0x0a,0x69,0xd3,0x5e,0x3a,0x87,0x2c,0x6d,0x4a,0x52,0xd2,0x73,0xdf,0xf7,
0x73,0x9b,0xeb,0x69,0xfe,0xea,0x77,0xce,0x73,0xde,0xf7,0x7e,0xef,0xfa,0xdc,0x7b,
0x9f,0xe5,0xf7,0x26,0x13,0x39,0x69,0x41,0x10,0x06,0xe5,0x82,0xf4,0xa0,0x20,0x0c,
0xa2,0x5f,0x46,0x90,0x08,0xe4,0xb5,0x7c,0x90,0x1a,0x3d,0xbb,0xf7,0xea,0xd3,0xab,
0xf9,0xd0,0x61,0x45,0xcd,0x5b,0xb5,0x2e,0x10,0x7e,0xa5,0x20,0x19,0xc9,0x09,0xaf,
0xb2,0x93,0x29,0xe3,0x9e,0x29,0x6e,0x14,0x17,0xde,0x78,0xab,0xe0,0x87,0xdc,0xa8,
0xe2,0xf0,0x94,0xc8,0x56,0x10,0x74,0x42,0x56,0x46,0x0f,0x27,0xdd,0x30,0x76,0x13,
0xe4,0xf0,0x54,0x2c,0x04,0x4b,0x31,0x58,0x02,0x2c,0xdd,0x60,0x49,0xb0,0x0a,0x06,
0x4b,0x01,0xab,0x62,0xb0,0x32,0x60,0xd5,0x0d,0x96,0x0a,0x56,0xcb,0x60,0x69,0x60,
0x75,0x0c,0x96,0x0e,0xd6,0xc0,0x60,0x65,0xc1,0x72,0x0d,0x56,0x0e,0x2c,0xcf,0x60,
0xe5,0xc1,0xf2,0x0d,0x56,0x01,0xac,0xc0,0x60,0x15,0xc1,0x5a,0x19,0xac,0x12,0x58,
0x5b,0xc9,0xbb,0x9b,0xa9,0xe6,0xa0,0xbb,0x9b,0xe1,0x55,0xc4,0xaf,0xf9,0x29,0xf4,
0xf2,0x28,0xf2,0x85,0xe4,0x47,0xe4,0xaf,0x71,0xcf,0x53,0xff,0xe5,0xc5,0x74,0x36,
0x79,0x16,0x7a,0xaf,0x67,0x6f,0x5f,0x29,0xf6,0xf6,0x19,0x7b,0xfb,0x3d,0x7b,0xfb,
0xb1,0xa7,0xf4,0x21,0xe6,0x5e,0x07,0xba,0x45,0x18,0xd3,0xb5,0xdd,0xa8,0xe6,0x66,
0x91,0x88,0xe4,0x93,0x91,0x3d,0x79,0xaf,0xe1,0x64,0x52,0xc9,0x71,0x10,0x3d,0x53,
0xa2,0x5a,0xa4,0x11,0x57,0xb6,0x8b,0x29,0x9d,0x77,0xc5,0x33,0x9d,0x76,0x06,0x3a,
0xd9,0x4e,0xbe,0x2a,0x3d,0x96,0x86,0x7e,0x26,0xef,0x19,0xf0,0x6b,0xf2,0x9e,0x89,
0xbd,0x2c,0x63,0x2f,0x13,0x99,0x06,0xc4,0x23,0x58,0x3d,0x27,0xad,0x7d,0xf2,0x7f,
0x87,0xc4,0xd1,0x88,0x7e,0x11,0x5b,0x1d,0xa0,0x4f,0x03,0x93,0x79,0xe7,0x31,0x07,
0xa9,0x45,0x53,0xe8,0xc6,0x46,0xbf,0x09,0xb2,0xa9,0xf0,0xe5,0xd9,0x82,0x5a,0xa9,
0x7c,0x4b,0xe2,0x56,0x7e,0x07,0xfa,0x56,0xf9,0x5d,0x3c,0xba,0x17,0xfa,0xd5,0x9d,
0xd6,0x45,0x46,0xef,0x12,0x6a,0x2c,0xb4,0xe4,0xaa,0x3f,0xf5,0xa8,0xeb,0x50,0xed,
0xb9,0x7a,0xf4,0xd6,0x55,0xc4,0x77,0x35,0xbe,0x0b,0x99,0x9f,0xd0,0xd7,0x98,0x78,
0xc4,0x5f,0x91,0xa9,0xeb,0xf5,0xf0,0x52,0x0d,0xff,0x26,0xd6,0x80,0xc6,0x51,0x8c,
0xbc,0xf2,0x87,0xb1,0xbe,0x94,0x1e,0x61,0xe2,0x14,0xfa,0x1e,0x37,0x4e,0x24,0x4b,
0xe8,0x51,0xac,0x1f,0xb5,0x37,0xde,0xe8,0x0b,0x3d,0xdd,0xcb,0xd7,0x3c,0x6a,0x20,
0xf1,0x3d,0x49,0xfd,0xf3,0x8c,0xfd,0xa7,0xc5,0xbe,0xfb,0x29,0xbd,0xd0,0xab,0xd7,
0x5a,0xd6,0xb5,0xe6,0xed,0xb5,0x28,0xfa,0xd1,0x67,0x2a,0x7f,0x1b,0x35,0x54,0x7f,
0xbb,0x3c,0xfd,0x8f,0xd8,0xaf,0x6a,0x3a,0xfa,0x33,0xfa,0x34,0x41,0xde,0xf7,0x9a,
0xbc,0xcb,0x1a,0xdc,0x4b,0x9c,0xdf,0x23,0xb3,0x8f,0xbc,0x0b,0xbd,0x1f,0x4c,0xec,
0x1c,0x40,0x2f,0x89,0xfc,0x41,0x7c,0x1e,0x40,0xfe,0x20,0xfb,0x73,0x08,0xff,0x07,
0xde,0x6d,0x5d,0xd2,0x58,0xb7,0x1a,0x77,0xf3,0x30,0xde,0xc3,0xf3,0x1d,0x25,0x76,
0x64,0x5d,0x0b,0xb6,0x8b,0x39,0xb5,0x71,0xeb,0x2a,0x41,0x6f,0x05,0xf8,0x3e,0xea,
0x90,0x32,0xf8,0x94,0xbc,0x9e,0x20,0xbf,0x4a,0x8b,0x53,0x4b,0x97,0x37,0xb4,0xac,
0xcb,0x53,0x3c,0x7e,0x96,0xc7,0xaf,0xe7,0xd1,0xf5,0x3d,0xf9,0x53,0x3d,0x7e,0xae,
0xc7,0x6f,0x0a,0xdd,0xd9,0x45,0x29,0x39,0xf8,0x9d,0xbc,0x48,0x0f,0x76,0x64,0xde,
0x47,0xc1,0x45,0x46,0xd6,0xe3,0x1f,0xac,0xe1,0x22,0x23,0x73,0x0c,0x7c,0xb9,0x93,
0x91,0x35,0xf5,0x27,0x7a,0xc7,0x22,0xdd,0x64,0x70,0x9c,0x9c,0x1c,0x73,0xf2,0xc2,
0xfb,0xcb,0x8d,0xe3,0xe4,0x27,0x7e,0x0f,0xa3,0x77,0xc1,0xce,0x76,0xf2,0x27,0x88,
0x41,0xde,0x25,0x47,0xc5,0x91,0x7d,0x77,0x1e,0x87,0xb1,0x8e,0x3c,0x8f,0x38,0x5b,
0x49,0xf7,0x4c,0xe1,0xbc,0x16,0x7e,0x19,0xf8,0xf2,0xd4,0xd8,0x52,0x39,0x74,0x35,
0xfe,0xf4,0x30,0x8e,0x3f,0xcd,0xc8,0x94,0x0d,0x63,0x7c,0x25,0xf1,0x97,0x0b,0x63,
0x3d,0xc1,0x25,0x66,0xa1,0x13,0x6e,0x24,0xb1,0x9f,0x08,0x4b,0x72,0x56,0x21,0xfc,
0x6f,0xce,0x2a,0x86,0x31,0xae,0x3e,0x2b,0x95,0xe2,0xb3,0x72,0x18,0xe3,0xe3,0x9c,
0x8c,0xd0,0x55,0xc2,0x58,0xaf,0xb2,0x91,0xc9,0x20,0xf6,0xd1,0xc8,0x54,0x0d,0x63,
0x39,0xc1,0x25,0x37,0xd2,0x2f,0x55,0x8d,0x7c,0xb5,0x30,0xee,0x21,0xf5,0x5b,0x1d,
0xbf,0x0b,0x4d,0x6c,0x35,0xc2,0x18,0xd7,0x5a,0x65,0x86,0xb1,0x9e,0xe0,0x52,0xab,
0x5a,0x61,0x49,0xad,0x84,0x57,0xd3,0x8d,0x5a,0xcc,0x5b,0xde,0x25,0xcf,0x9a,0x87,
0x5a,0xc6,0x77,0x1d,0x7c,0x4b,0x5c,0xd2,0xa7,0x42,0xb7,0x73,0x3e,0x64,0x3d,0xd7,
0x0d,0xe3,0xfb,0x47,0x16,0x7c,0xe9,0xeb,0xba,0xe8,0x46,0xe7,0x58,0x18,0xf7,0xba,
0xf0,0xa4,0x87,0x1b,0x18,0xdd,0xec,0x30,0x3e,0x3b,0xeb,0xc3,0x97,0x9e,0xcf,0x36,
0x7e,0x73,0x8c,0x5f,0xe9,0xf7,0x1c,0x63,0xb7,0x61,0x18,0xaf,0x11,0xe1,0x49,0xef,
0x37,0x8c,0xec,0xa6,0x46,0x7a,0x8d,0x84,0xc7,0x1a,0xc9,0x35,0xf6,0x4e,0x0b,0xe3,
0x75,0xba,0x85,0x9c,0xe7,0x85,0x31,0xd6,0x28,0x2c,0xe9,0xcd,0x3c,0xf2,0x90,0x42,
0x1e,0x52,0x8c,0x7e,0x63,0xaf,0x66,0x4d,0xc2,0x18,0x5b,0x68,0xfa,0xb9,0x49,0x78,
0x72,0x3f,0x27,0x8d,0x7e,0x3e,0xfe,0x45,0x56,0xd6,0x67,0x3e,0xb9,0x90,0xbd,0xa5,
0x59,0x18,0xdf,0x3d,0x04,0x97,0x35,0xd3,0xd6,0x8d,0x36,0xf8,0x29,0xcf,0x1a,0x93,
0xb3,0xee,0x4c,0xa7,0x9b,0xc6,0xbe,0xab,0xef,0xe5,0x58,0x6f,0x15,0x4c,0x2f,0xe4,
0x22,0xa3,0xfd,0xd2,0x94,0xb5,0xdd,0xd8,0xc8,0xe4,0x83,0x6b,0x9f,0x36,0x43,0x2f,
0xdf,0xc8,0x34,0xc7,0xbe,0xca,0x14,0x80,0xc9,0x59,0xad,0x79,0x38,0x1d,0xdd,0x02,
0xe3,0xef,0x0c,0xfc,0xb5,0x34,0xb6,0x5a,0x81,0xab,0x5e,0x6b,0x74,0x05,0xff,0xdb,
0xc5,0xdf,0x3a,0xba,0x17,0x96,0xcc,0xbb,0x72,0x29,0xf3,0xae,0x68,0xde,0x2b,0x31,
0xef,0x2a,0x66,0xdf,0x6b,0xcb,0x3e,0xac,0x3e,0xdb,0xa1,0x33,0x09,0x9b,0xed,0xc1,
0x5a,0x98,0x39,0x9d,0x05,0xde,0x81,0xda,0xb4,0x05,0x53,0x1b,0x1d,0xb1,0x2b,0x31,
0x76,0x34,0x31,0x66,0x70,0xf7,0x96,0x5f,0x55,0x13,0x57,0x35,0xe2,0xaa,0x61,0xe2,
0xea,0xe4,0x9d,0x0f,0xdd,0x3c,0x7a,0x80,0x47,0x0f,0xf4,0xe8,0xcb,0x3d,0x7a,0x90,
0x47,0xdf,0xe6,0xd1,0xc3,0x3d,0x7a,0x9c,0x47,0x4f,0xf6,0xe8,0xd9,0x1e,0x3d,0xc7,
0xd0,0x72,0x77,0x78,0xca,0xe3,0xaf,0x09,0x4e,0x3e,0x7f,0x36,0x7a,0xf4,0x26,0xaf,
0x0e,0x9d,0xc9,0x8b,0xf6,0xc7,0x39,0xf4,0x47,0x17,0x23,0xd3,0x15,0x7c,0x02,0x75,
0x39,0x17,0xbd,0xae,0xd4,0xa5,0x13,0x98,0xca,0x77,0xf7,0x6c,0xf6,0x28,0xc5,0x66,
0x4f,0x70,0xad,0xff,0x79,0xe8,0xf5,0xc4,0x66,0x37,0x30,0x95,0x3f,0x9f,0xda,0xa8,
0xcd,0x0b,0xb0,0xd9,0xcb,0xc8,0x5c,0x08,0xae,0xfb,0x6c,0x6f,0xf4,0x2e,0x34,0x32,
0x17,0x63,0x47,0xcf,0x9d,0x3e,0x60,0x72,0x17,0x5d,0x04,0x76,0x29,0xba,0x7d,0x38,
0x4b,0xfb,0x99,0xb3,0x54,0x78,0x7d,0xdd,0xe8,0x47,0x2f,0xf5,0xa5,0xff,0xfa,0x43,
0xf7,0x33,0xbe,0x2e,0xa3,0xbf,0x64,0x3e,0x03,0xa1,0x95,0x77,0x05,0x71,0x08,0xef,
0x72,0x68,0xdd,0x27,0xaf,0x64,0x6f,0x19,0x48,0x7f,0x89,0xcc,0x00,0x70,0xd5,0xbf,
0x96,0xde,0xd4,0x9a,0x5c,0x07,0xd6,0x22,0xca,0x51,0x6a,0x74,0xef,0xbd,0x81,0xbb,
0x71,0x11,0x7c,0xd5,0xbd,0x11,0x9e,0xd8,0x1d,0x04,0xad,0x79,0xbd,0x99,0xbc,0xde,
0x64,0xe4,0x6f,0x01,0x5f,0x4a,0x7e,0x6e,0x05,0x2b,0x26,0x3f,0x43,0x4c,0x7e,0x84,
0x37,0xd8,0x8d,0x59,0xe4,0x63,0xb0,0xb1,0x73,0x3b,0x73,0x5e,0x82,0x9d,0xa1,0x60,
0x92,0xfb,0xc5,0x4e,0x42,0xee,0x80,0x77,0x80,0xb7,0xe4,0x1e,0x3e,0x12,0xdd,0x3b,
0xe1,0x49,0xcc,0xb7,0x41,0xab,0xdd,0xbb,0x3c,0xbb,0x77,0x83,0x59,0xbb,0x23,0xc1,
0x47,0x70,0x7f,0x57,0xbb,0xf7,0xc2,0x13,0xbb,0xc3,0xa1,0x35,0x17,0xf7,0x91,0x8b,
0x51,0xc6,0xd7,0x68,0x70,0xcd,0xc5,0xfd,0x60,0x9a,0x8b,0xb1,0x26,0x17,0xc2,0x1b,
0xe3,0xc6,0x44,0x72,0x31,0xc6,0xd8,0x99,0x40,0xcc,0xba,0xd7,0x3d,0xc0,0xff,0x86,
0x09,0xc4,0x32,0x0e,0x4c,0xce,0xac,0xb1,0xe8,0x4f,0x34,0xfa,0x93,0xbc,0x39,0x3f,
0x08,0x76,0x09,0x71,0x4c,0x35,0x71,0x08,0x6f,0x8a,0x1b,0xd3,0xb0,0x33,0x05,0x1f,
0x93,0x83,0x92,0x7b,0xde,0x54,0x78,0xd3,0x8c,0x8f,0x87,0xd8,0xbf,0x94,0x7e,0x18,
0x9f,0x63,0x88,0xf9,0x11,0xfe,0xdb,0x3c,0x6c,0xe6,0xf1,0x28,0x7a,0x8f,0x98,0xf3,
0x64,0x06,0xf8,0x74,0xe3,0x77,0x86,0xe7,0x77,0xaa,0xf1,0x33,0x93,0x7d,0x50,0xf3,
0x30,0xd3,0xcb,0xc3,0x58,0xe8,0x21,0xd0,0xb3,0x8c,0xee,0x63,0xac,0x0b,0xd1,0x9d,
0x0d,0x2d,0xef,0x73,0x58,0x1b,0xba,0xc6,0xe6,0x72,0x8e,0xcd,0x66,0x4f,0x55,0x5f,
0x73,0x4d,0x8f,0xcd,0x33,0x76,0x1f,0x27,0x17,0x9a,0xef,0x27,0xc0,0xe6,0x91,0xef,
0x05,0x26,0xdf,0xc2,0x9b,0xef,0xc6,0x33,0xc4,0x37,0x1f,0x9b,0x4f,0xf1,0xdf,0x4e,
0x62,0x5f,0x00,0xef,0x19,0xe3,0xe3,0x59,0x7c,0x6c,0x76,0x3e,0xa4,0x67,0x9f,0xe3,
0x1e,0xf9,0x2c,0x39,0xcf,0x8b,0xf6,0xa8,0x12,0x5c,0x6d,0x2e,0xf2,0x6c,0x2e,0xc0,
0xa6,0xc8,0x3f,0xcf,0x19,0xa1,0xfd,0xbe,0x18,0x4c,0xfb,0x7d,0xb1,0x97,0xcb,0x21,
0x26,0x9e,0x25,0xde,0x9e,0xbb,0xb4,0x94,0x3d,0x77,0x19,0xb8,0xee,0xb9,0x2f,0xa0,
0xb7,0xcc,0xc8,0x2c,0xf7,0x7a,0x75,0x05,0x98,0xdd,0x73,0x57,0xa2,0xbb,0x82,0x7c,
0xae,0x36,0xf9,0x14,0xde,0x2a,0x37,0xd6,0x11,0xe3,0x2a,0x13,0xd3,0x8b,0xc4,0xb4,
0xd6,0xf8,0x7b,0x09,0x5c,0xe6,0xb8,0x06,0x5a,0xe6,0xb8,0x1a,0xfd,0x75,0x46,0xf6,
0x65,0xce,0x6c,0xa5,0x5f,0xe1,0x4c,0x7e,0x93,0xde,0x7d,0x15,0x99,0x57,0x8c,0xcc,
0x7a,0xce,0xf1,0xb7,0x91,0xd9,0x80,0xdc,0x7a,0xe3,0x73,0x83,0xe7,0x73,0x35,0xbc,
0x8d,0xfc,0x5f,0x57,0x5b,0xaf,0x73,0x66,0x8f,0xa4,0x5e,0x6f,0x80,0x0d,0xe6,0x3e,
0xfd,0x26,0x98,0xde,0xaf,0xdf,0xe2,0x4c,0x1f,0xcf,0x3d,0x67,0x33,0x32,0x6f,0x61,
0x7f,0x13,0x98,0xca,0x6f,0xe1,0xcc,0x97,0x33,0x6a,0x8b,0x77,0x47,0xaa,0x4d,0x8e,
0x6b,0x72,0x47,0xca,0xe4,0xfb,0xa4,0xc4,0x7b,0x8a,0xb1,0xb1,0x15,0x5c,0x6c,0x6c,
0xf5,0xee,0x82,0xf5,0xb0,0x91,0x65,0xee,0x59,0x75,0x8c,0xbd,0xba,0xd8,0xab,0x6f,
0xee,0x28,0x3b,0xbd,0x3b,0xcb,0xee,0xa0,0xe4,0x3f,0xb1,0xd4,0xf4,0x1d,0x6a,0xba,
0xcd,0xe4,0xe9,0x5d,0x70,0xed,0xa1,0xf7,0xc0,0xa6,0xd3,0x2f,0x3b,0x4c,0xbf,0x08,
0x6f,0xbb,0x1b,0x5f,0xe3,0x7b,0xbb,0xb1,0xf3,0x3e,0xf1,0x69,0xed,0x3e,0x00,0xdb,
0x65,0x6c,0x7f,0x08,0x5e,0x6c,0xce,0x8f,0x8f,0xc1,0x8b,0xf8,0x7e,0xa2,0xeb,0xe9,
0x13,0x78,0x92,0xfb,0x9d,0xd0,0x9a,0xb7,0x4f,0x99,0x7f,0x6f,0x67,0x57,0xbe,0xb3,
0x7c,0x0e,0xd6,0x3f,0xfa,0x7e,0x13,0xef,0x43,0x5f,0xf0,0x1d,0xa4,0x3d,0x7c,0x8d,
0xf3,0x4b,0xf2,0xb4,0x99,0x38,0xbf,0x42,0xf6,0x4b,0x7c,0xed,0x06,0x93,0x1e,0xdb,
0xc1,0x3c,0xbf,0x36,0xbe,0xbf,0xc1,0xb7,0xf6,0xd5,0xb7,0x60,0x1a,0xf7,0x1e,0x30,
0xb5,0xb5,0xc7,0xb3,0xb5,0xc3,0xc4,0xf2,0x1d,0x35,0x92,0xfa,0x7f,0x67,0xea,0x9f,
0x30,0xdf,0x65,0x1b,0x98,0xfa,0x67,0x63,0x23,0xc7,0x7c,0xe7,0xf8,0xb1,0x94,0xef,
0x1c,0x3f,0x81,0x6b,0xdd,0x7f,0xa6,0xee,0x23,0x8c,0xcc,0x2f,0xe0,0x7a,0xcf,0x39,
0x0c,0x66,0xff,0xe7,0xfc,0x8a,0xad,0xc3,0x46,0xef,0x37,0xe2,0xd0,0xbb,0xd0,0x11,
0xbe,0x57,0x15,0x21,0x2f,0xf3,0x3e,0x82,0x9c,0xfe,0xaf,0xfb,0x07,0xe4,0xc2,0x94,
0x3e,0x94,0x18,0x00,0x00
};
// Generated from:
......@@ -177,7 +188,7 @@ constexpr uint8_t kConvertVertex_comp_00000006[] = {
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Sd + component * 4 + params . destOffset;
// return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
......@@ -253,7 +264,18 @@ constexpr uint8_t kConvertVertex_comp_00000006[] = {
// uint makeDestinationComponent(uint cd, float value)
// {
//
// uint valueAsUint = floatBitsToInt(value);
// uint valueAsUint;
//
// if(params . Bd == 2)
// {
//
// uint shift =((cd & 1)== 0)? 0 : 16;
// valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
// }
// else
// {
// valueAsUint = floatBitsToInt(value);
// }
//
// return valueAsUint;
// }
......@@ -270,9 +292,9 @@ constexpr uint8_t kConvertVertex_comp_00000006[] = {
// return;
//
// uint valueOut = 0;
// for(uint i = 0;i < 1;++ i)
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * 1 + i;
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
// if(cd >= params . componentCount)
// {
// break;
......
......@@ -11,119 +11,130 @@
#pragma once
constexpr uint8_t kConvertVertex_comp_00000007[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x79,0x94,0x8f,0x65,
0x14,0xc7,0xdf,0x77,0x96,0xdf,0x8c,0x99,0x31,0x66,0x2c,0x23,0x59,0x22,0xaa,0x11,
0x19,0x09,0x91,0x74,0x90,0x2c,0x35,0xa9,0x08,0x87,0x14,0x32,0x2d,0x94,0x2d,0x4a,
0x49,0x2a,0x24,0xb2,0x84,0x2c,0xa1,0x42,0x48,0x96,0xec,0x25,0xa1,0x9c,0x94,0xca,
0x39,0x64,0x69,0x53,0xda,0x38,0x64,0x49,0x2a,0x65,0x3b,0xa4,0xe7,0xbe,0xbf,0xcf,
0x6d,0xae,0xe7,0xcc,0x5f,0xcd,0x39,0xef,0x79,0xdf,0xfb,0xbd,0xeb,0xf3,0x7d,0xee,
0xb3,0xfc,0x26,0x31,0xa1,0x6a,0x4a,0x10,0x84,0x41,0x5a,0x90,0x1a,0x94,0x0c,0x83,
0xe8,0x2f,0x3b,0x48,0x08,0xe4,0x33,0x3d,0x88,0x45,0xef,0x96,0xf9,0xed,0xf2,0x6b,
0x0d,0x18,0x58,0x50,0xab,0x6e,0xbd,0xda,0xa2,0xcf,0x0c,0x12,0x23,0x3b,0xd1,0x95,
0x70,0x36,0xc9,0xee,0x9d,0xe4,0x9e,0xde,0xdd,0x7b,0xf6,0x11,0x7c,0x97,0x7b,0xb2,
0x1c,0x9e,0x14,0xc5,0x0a,0x82,0x26,0xd8,0xca,0xd3,0xca,0x59,0x5f,0x16,0x4f,0x13,
0x54,0xe5,0xad,0x58,0x08,0x96,0x64,0xb0,0x04,0xb0,0x54,0x83,0x25,0x82,0x65,0x18,
0x2c,0x09,0x2c,0xcb,0x60,0xc9,0x60,0xa5,0x0d,0x16,0x03,0xbb,0xc8,0x60,0x29,0x60,
0x15,0x0c,0x96,0x0a,0x56,0xd9,0x60,0xc5,0xc0,0xaa,0x19,0x2c,0x0d,0x2c,0xd7,0x60,
0xe9,0x60,0x35,0x0d,0x96,0x01,0x56,0xdb,0x60,0xc5,0xc1,0xea,0x1a,0x2c,0x13,0xac,
0x81,0xf0,0xee,0x46,0xaa,0x1c,0xb4,0x74,0x23,0xec,0x46,0xfd,0xca,0x4f,0x77,0x8f,
0x47,0xb1,0xef,0x0e,0x3f,0x62,0xdf,0xc3,0xbd,0x2f,0xfd,0x4f,0x17,0x97,0xab,0xc0,
0xb3,0xc8,0x5b,0xbd,0x78,0xdb,0x8a,0x88,0xb7,0xcd,0xc4,0xdb,0xee,0xc5,0xdb,0x4e,
0x3c,0x95,0x77,0x31,0xf6,0x0a,0xc8,0xd9,0x61,0x5c,0x2e,0xe7,0x9e,0x52,0x6e,0x14,
0x09,0x91,0x7d,0x62,0x14,0x4f,0xbe,0xcb,0x38,0x9b,0x18,0x1c,0x07,0xd1,0x3b,0x29,
0x9a,0x8b,0x14,0xea,0xaa,0xe2,0x6a,0x4a,0xe5,0x5b,0xf1,0x1c,0xe7,0x9d,0x8d,0x4f,
0x15,0x67,0x5f,0x92,0x1e,0x4b,0xc1,0x3f,0x87,0xef,0x6c,0xf4,0x65,0xf9,0xce,0x21,
0x5e,0x79,0x13,0x2f,0x07,0x9b,0xca,0xd4,0x23,0x58,0x25,0x67,0xad,0x7d,0xf2,0x7f,
0x1f,0xa9,0xe3,0x72,0xfa,0x45,0x62,0x35,0x42,0xbe,0x02,0x4c,0xc6,0x9d,0xcb,0x18,
0x64,0x2e,0x6a,0x20,0x57,0x37,0xfe,0x57,0x62,0x1b,0x43,0x2f,0xef,0x3c,0xe6,0x4a,
0xed,0xeb,0x50,0xb7,0xea,0x1b,0xd1,0xb7,0xaa,0x6f,0xe6,0xc9,0xf9,0xf8,0x97,0x76,
0x5e,0xb7,0x19,0xbf,0xb6,0xcc,0xb1,0xc8,0xc2,0x55,0x47,0xe6,0xa3,0xa2,0x43,0xb5,
0xe7,0x2a,0xd1,0x5b,0xdd,0xa8,0xef,0x5e,0x72,0x77,0x67,0x7c,0x22,0xf7,0x30,0xf5,
0x48,0xbe,0x02,0x33,0xaf,0x0f,0xa0,0x8b,0x19,0x7d,0x2f,0xd6,0x80,0xd6,0xd1,0x1b,
0x7b,0xd5,0x0f,0x64,0x7d,0xa9,0x3c,0xd8,0xd4,0x29,0xf2,0x93,0xee,0x39,0x9f,0x58,
0x28,0x0f,0x65,0xfd,0x68,0xbc,0xe7,0x8c,0xbf,0xc8,0x13,0x3c,0xbe,0x66,0x32,0x07,
0x52,0xdf,0x6b,0xcc,0x7f,0xae,0x89,0xff,0xba,0xc4,0x77,0x7f,0x2a,0xcf,0xf3,0xe6,
0x6b,0x35,0xeb,0x5a,0x78,0xda,0x6a,0x78,0x92,0x35,0xb3,0x95,0xb8,0x9f,0x93,0x73,
0x1b,0x3c,0x89,0xbc,0x1d,0xac,0xac,0x93,0x77,0xe0,0x97,0x88,0xfd,0x4e,0x72,0xec,
0xc0,0x7e,0x27,0xfb,0x69,0x88,0xfe,0x0b,0xbe,0x6d,0x5f,0x1c,0x35,0x75,0x89,0x9c,
0x15,0xc6,0xf7,0xdc,0x9a,0x4e,0x92,0x38,0xb2,0x0e,0x05,0x3b,0x8a,0x6d,0x7d,0xb7,
0x0e,0x12,0xe8,0x85,0x80,0xdc,0xa7,0x1c,0x92,0x4c,0x4e,0xe1,0x61,0x3f,0x7c,0xa8,
0x7c,0xc0,0x93,0x8f,0x19,0x59,0xd6,0xd1,0x59,0x4f,0x7f,0xce,0xd3,0x4b,0x81,0x56,
0x0e,0xc3,0x0b,0xed,0x93,0x3c,0x7d,0xcc,0xd3,0x17,0x47,0x6e,0xea,0xaa,0x14,0x0e,
0xbe,0x87,0x17,0xe9,0x99,0xc6,0x8c,0xfb,0x07,0x70,0xb1,0x91,0xf5,0xf3,0x23,0x6b,
0xae,0xc0,0xd8,0xfc,0x04,0xbe,0xd4,0xd9,0xc8,0x1a,0xf8,0x19,0x3f,0xc1,0x4f,0x3a,
0x26,0xf6,0xc1,0xc9,0x19,0x67,0x2f,0xba,0xbd,0xee,0xd9,0x07,0x3f,0x7b,0xa3,0x71,
0x85,0xd1,0xb7,0x60,0x37,0x38,0xfb,0xfd,0xd4,0x20,0xdf,0x07,0xf8,0x3e,0xed,0xf4,
0xbf,0xe0,0x23,0xef,0x13,0x2e,0xd6,0x21,0xf7,0x3e,0x4c,0x6c,0xd1,0x1f,0x41,0x7f,
0xc4,0xd4,0xf6,0x2b,0x3c,0x2f,0xa7,0xb6,0xdf,0xc0,0x8e,0x52,0x8f,0xc8,0x07,0xdd,
0x73,0x08,0xdf,0x83,0x86,0x8f,0xdf,0x8b,0xe0,0xe3,0x0f,0xf0,0x11,0xce,0x46,0xe4,
0x3f,0xc1,0x8e,0x1a,0x9b,0xe3,0xe4,0x7c,0x06,0x9b,0xbf,0xb0,0x3b,0xce,0x98,0x8e,
0x81,0xa9,0xfd,0xdf,0xcc,0xbd,0x72,0x7c,0x02,0x8e,0xe7,0x19,0x9b,0x93,0xe0,0xca,
0xf1,0x29,0xfc,0x4e,0xc2,0xf1,0x19,0xc3,0xf1,0xa9,0x88,0x8f,0x20,0xc2,0x64,0x4c,
0xa7,0xe1,0x47,0xc7,0x78,0xc6,0xc4,0xfd,0x87,0xdc,0x52,0xd7,0x39,0xe4,0x86,0x2e,
0x87,0xec,0x59,0xe7,0x39,0xe7,0xcf,0xa1,0x3f,0x0b,0xd6,0x98,0x3d,0x2d,0x21,0x8c,
0xf7,0xa8,0xe8,0xa4,0xf7,0x44,0x56,0xdf,0xc4,0x30,0x7e,0x46,0x09,0x2e,0x7a,0xe9,
0x55,0xc1,0x34,0x6f,0x72,0x58,0x98,0x57,0xfa,0x34,0x39,0x2c,0x8c,0x9b,0xc2,0xc5,
0x46,0x74,0x51,0xcf,0x46,0x71,0x63,0x91,0x5f,0x6a,0x28,0xfb,0x41,0xbc,0xb7,0x63,
0x26,0x5e,0xb1,0x30,0xbe,0xbe,0x3e,0x86,0xf3,0xb4,0x30,0x8e,0xa5,0x86,0x85,0x3d,
0x25,0x98,0xf0,0x70,0x18,0x1e,0x0e,0x1b,0x1e,0xd2,0xc3,0x0b,0xe7,0x2c,0x23,0x8c,
0x63,0xf3,0x4c,0x1f,0x66,0x84,0x17,0xf6,0xe1,0x21,0xe3,0x9f,0x49,0x7e,0xb1,0x95,
0x75,0x95,0x09,0x17,0xb2,0x27,0x94,0x08,0xe3,0x67,0xbc,0xe0,0xd2,0xeb,0x0d,0xdc,
0x53,0x9f,0x3c,0xe9,0xcc,0x9b,0x9c,0x29,0xd7,0x3a,0xdf,0x14,0xce,0x28,0xfd,0x4e,
0x23,0x57,0x86,0xc9,0x55,0x0d,0x1b,0xed,0x97,0x1a,0xf4,0x4b,0x75,0x63,0x53,0x13,
0x5c,0xfb,0xf4,0x2a,0xfc,0x6a,0x1a,0x9b,0x5a,0xc4,0x57,0x9b,0xda,0x60,0x79,0x86,
0x87,0xab,0xf1,0xad,0x6d,0xf2,0x5d,0x43,0xbe,0x3a,0x26,0x56,0x5d,0x70,0xf5,0xab,
0x87,0x6f,0xdd,0xa8,0xa7,0x12,0x22,0xd9,0x8e,0xbb,0x44,0x11,0xe3,0x2e,0x6e,0xbe,
0x33,0x19,0x77,0x96,0xd9,0xaf,0x1a,0xb0,0xff,0x69,0xce,0x86,0xf8,0x8c,0x26,0xe6,
0x75,0x60,0x79,0x66,0x4c,0xd7,0x83,0x37,0x62,0x6e,0x1a,0x80,0x69,0x8c,0xc6,0xc4,
0x95,0x1a,0x1b,0x9b,0x1a,0xb3,0xe9,0x7d,0xf9,0x2b,0x69,0xea,0x2a,0x45,0x5d,0x65,
0x4c,0x5d,0x4d,0xbc,0x7d,0xba,0x85,0x27,0x77,0xf2,0xe4,0xce,0x9e,0xdc,0xc5,0x93,
0xbb,0x7a,0x72,0x7f,0x4f,0x1e,0xe4,0xc9,0x23,0x3c,0x79,0x8c,0x27,0x4f,0xf3,0xe4,
0xe9,0x46,0x96,0x33,0x7a,0x96,0xa7,0x5f,0xe5,0x9d,0x33,0x1b,0x3c,0xde,0x9b,0xc2,
0x83,0xf6,0xc3,0x8d,0xf4,0x43,0x33,0x63,0xd3,0x1c,0x7c,0x24,0xf3,0x70,0x13,0x7e,
0xcd,0x99,0x87,0x26,0x60,0x6a,0xdf,0xd2,0x8b,0xd9,0xaa,0x88,0x98,0xad,0xc1,0x75,
0xbe,0x6f,0xc6,0xaf,0x35,0x31,0x5b,0x80,0xa9,0xfd,0x2d,0xcc,0x85,0xc6,0xbc,0x95,
0x98,0xf9,0xc6,0xa6,0x0d,0xb8,0xee,0xab,0xb7,0xe3,0xd7,0xc6,0xd8,0xdc,0x41,0x1c,
0x3d,0x43,0xda,0x81,0xc9,0x1d,0x6f,0x01,0xd8,0x9d,0xf8,0xb6,0x63,0x3f,0xee,0x60,
0xf6,0x63,0xd1,0xb5,0x77,0x4f,0x07,0x7a,0xa7,0x3d,0xfd,0xd6,0x11,0xb9,0x83,0xc9,
0x75,0x17,0xfd,0x24,0xe3,0xe9,0x8c,0xac,0xba,0xbb,0xa9,0x43,0x74,0x5d,0x90,0x75,
0x5f,0xbc,0x87,0xbd,0xa4,0x33,0xfd,0x24,0x36,0x9d,0xc0,0xd5,0xff,0x3e,0x7a,0x51,
0xe7,0xe4,0x7e,0xb0,0xbc,0x88,0xa3,0x58,0x74,0x9f,0x7c,0x90,0x3b,0x67,0x01,0x7a,
0xf5,0xed,0x89,0x4e,0xe2,0x76,0x45,0x56,0x5e,0x1f,0x82,0xd7,0x5e,0xc6,0xfe,0x61,
0xf0,0xc5,0xf0,0xd3,0x07,0xac,0x37,0xfc,0xf4,0x33,0xfc,0x88,0xae,0xaf,0x7b,0xa6,
0xc2,0x47,0x5f,0x13,0xe7,0x11,0xc6,0xbc,0x88,0x38,0x03,0xc0,0x84,0xfb,0x85,0xce,
0x42,0xee,0x8c,0x8f,0x82,0xd7,0xe1,0x7e,0x3b,0x04,0xdf,0xc7,0xd0,0x49,0xcd,0xfd,
0x91,0x35,0xee,0xe3,0x5e,0xdc,0x27,0xc0,0x6c,0xdc,0x21,0xe0,0x83,0xb9,0x17,0x6b,
0xdc,0xa7,0xd0,0x49,0xdc,0x41,0xc8,0xca,0xc5,0xd3,0x70,0x31,0xd4,0xe4,0x7a,0x06,
0x5c,0xb9,0x78,0x16,0x4c,0xb9,0x18,0x6e,0xb8,0x10,0xdd,0x30,0xf7,0x8c,0x82,0x8b,
0x61,0x26,0xce,0x48,0x6a,0xd6,0xbd,0xed,0x79,0xee,0xe3,0x23,0xa9,0x65,0x04,0x98,
0x9c,0x51,0xc3,0xf1,0x1f,0x65,0xfc,0x47,0x7b,0x63,0x7e,0x01,0xac,0x2d,0x75,0x8c,
0x33,0x75,0x88,0x6e,0xac,0x7b,0xc6,0x13,0x67,0x2c,0x39,0xc6,0x98,0xfb,0xd8,0x38,
0x74,0xe3,0x4d,0x8e,0x17,0xd9,0xaf,0x54,0x9e,0x48,0xce,0x61,0xd4,0x3c,0x89,0xdf,
0x0c,0x13,0xcd,0x38,0x5e,0xc2,0x6f,0x92,0x39,0x3f,0x26,0x83,0x4f,0x30,0x79,0x27,
0x7b,0x79,0xc7,0x99,0x3c,0x53,0xd8,0xf7,0x94,0x87,0x29,0x1e,0x0f,0xc3,0x91,0xfb,
0x21,0x4f,0x35,0xbe,0x2f,0xb3,0x2e,0xc4,0x77,0x1a,0xb2,0x7c,0x4f,0x67,0x6d,0xe8,
0x1a,0x9b,0xc1,0xb9,0x35,0x8d,0x3d,0x54,0x73,0xcd,0x30,0x3d,0x36,0xd3,0xc4,0x7d,
0x05,0x2e,0x94,0xef,0x57,0xc1,0x66,0xc2,0xf7,0x1c,0xc3,0xb7,0xe8,0x66,0xbb,0x67,
0x2e,0xf5,0xcd,0x26,0xe6,0x2c,0x7e,0x33,0x49,0xed,0x73,0xd0,0xcd,0x35,0x39,0xe6,
0x93,0xe3,0x23,0x97,0x43,0x7a,0xf6,0x0d,0xee,0x8d,0xf3,0xe1,0x3c,0x37,0xda,0xa3,
0x0a,0x71,0x8d,0xb9,0xc0,0x8b,0x39,0x87,0x98,0x62,0xff,0x26,0x67,0x82,0xf6,0xfb,
0x42,0x30,0xed,0xf7,0x85,0x1e,0x97,0xfd,0x4c,0x3d,0x8b,0xbc,0x3d,0x77,0x71,0x11,
0x7b,0xee,0x12,0x70,0xdd,0x73,0xdf,0xc2,0x6f,0x89,0xb1,0x59,0xea,0xf5,0xea,0x32,
0x30,0xbb,0xe7,0x2e,0xc7,0x77,0x19,0x7c,0xae,0x34,0x7c,0x8a,0x6e,0x85,0x7b,0xd6,
0x50,0xe3,0x0a,0x53,0xd3,0xdb,0xd4,0xb4,0xda,0xe4,0x7b,0x07,0x5c,0xc6,0xb8,0x0a,
0x59,0xc6,0xb8,0x12,0xff,0x35,0xc6,0xf6,0x5d,0xce,0x68,0x95,0xd7,0x72,0x06,0x7f,
0x48,0xef,0xbe,0x87,0xcd,0x5a,0x63,0xb3,0x8e,0x73,0xfb,0x13,0x6c,0xd6,0x63,0xb7,
0xce,0xe4,0x5c,0xef,0xe5,0x5c,0x69,0xfc,0xdf,0xe7,0x5c,0x1e,0xc2,0x1d,0xf9,0x03,
0x30,0xf1,0xdd,0x80,0xac,0xf7,0xe7,0x8d,0x9c,0xd9,0x72,0xc6,0x6c,0xf4,0xee,0x34,
0xe5,0xe0,0xa8,0x2c,0x77,0x9a,0x1c,0xfe,0x6f,0x27,0xf9,0x2e,0x36,0x31,0x36,0x81,
0x4b,0x8c,0x4d,0xde,0xdd,0xad,0x12,0x31,0xca,0x9b,0x7b,0x51,0x05,0x13,0xaf,0x22,
0xf1,0x2e,0x31,0x77,0x8a,0xcd,0xe6,0x0e,0x91,0x1d,0xf1,0x10,0xb7,0x1b,0x42,0xcf,
0x7d,0x0a,0xa6,0x3d,0xf7,0x19,0x98,0x8c,0x6f,0x33,0xb2,0x72,0xb1,0x85,0x78,0x52,
0xdb,0x16,0x53,0x5b,0x82,0xf9,0x5f,0x5a,0x65,0x53,0x5b,0x15,0xea,0xa9,0x6a,0x7e,
0xdb,0x7d,0x59,0xc4,0x6f,0xbb,0xaf,0xc0,0xb5,0x4f,0xbe,0xa6,0x4f,0x06,0x1b,0x9b,
0x6f,0xc0,0xf5,0x0c,0xdd,0x0d,0x66,0xef,0xcc,0xdf,0x12,0x6b,0xb7,0xf1,0xfb,0x8e,
0x3a,0xf4,0x9c,0xdd,0xc3,0xff,0x2c,0x0a,0xb0,0x97,0x71,0xee,0xc1,0x4e,0x7f,0x23,
0xfc,0x0b,0x37,0xe8,0x11,0x57,0x48,0x16,0x00,0x00
0x14,0xc7,0xdf,0xe7,0x37,0x63,0x66,0x8c,0x75,0x0c,0x63,0x1b,0x63,0xa6,0x09,0x63,
0x09,0x49,0x65,0x49,0x07,0x89,0x94,0x54,0x84,0x93,0x16,0x64,0x5a,0x28,0xa5,0xbd,
0x24,0x09,0x89,0x2c,0xa9,0x2c,0x45,0x85,0x22,0x59,0x2a,0xa1,0x7d,0x3d,0x25,0x15,
0xd2,0xa6,0x45,0x5a,0xce,0x21,0xd1,0xa6,0x5d,0x52,0xe8,0xb9,0xef,0xfb,0xb9,0xcd,
0xf5,0x34,0x7f,0xf5,0x3b,0xe7,0x3d,0xbf,0xf7,0x7e,0xef,0xfa,0x7c,0x9f,0xfb,0x2c,
0xbf,0x5f,0x5a,0xaa,0x38,0x33,0x8a,0x5c,0x94,0x1d,0x65,0x45,0xcd,0x5d,0x14,0x7f,
0x72,0xa2,0x54,0x24,0xaf,0x95,0xa2,0x8c,0xf8,0xbb,0x47,0xaf,0xbe,0xbd,0x5a,0x5e,
0x75,0x75,0x69,0xcb,0xb6,0x47,0xb7,0x16,0x7d,0xd5,0x28,0x2d,0xb6,0x13,0x5d,0x35,
0x6f,0x53,0xc1,0x7f,0xa7,0xfb,0x67,0xc4,0x90,0x61,0x97,0x09,0xbe,0xcb,0x3f,0xd5,
0x3d,0x9e,0x1e,0xc7,0x8a,0xa2,0xce,0xd8,0xca,0x73,0x92,0xb7,0x6e,0x94,0xa4,0x89,
0x8a,0xf9,0x56,0xcc,0x81,0xa5,0x1b,0x2c,0x05,0x96,0x65,0xb0,0x34,0xb0,0xca,0x06,
0x4b,0x07,0xab,0x6e,0xb0,0x0a,0x60,0x35,0x0d,0x96,0x01,0x56,0xc7,0x60,0x99,0x60,
0xf9,0x06,0xcb,0x02,0x2b,0x34,0x58,0x45,0xb0,0xc3,0x0d,0x96,0x0d,0x56,0x62,0xb0,
0x4a,0x60,0x2d,0x0c,0x56,0x19,0xac,0xb5,0xc1,0xaa,0x80,0xb5,0x35,0x58,0x55,0xb0,
0x76,0xc2,0xbb,0x1f,0xa9,0x72,0xd0,0xc3,0x8f,0x70,0x30,0xf5,0x2b,0x3f,0x43,0x02,
0x1e,0xc5,0x7e,0x08,0xfc,0x88,0xfd,0x50,0xff,0x7d,0xd8,0xbf,0xba,0x44,0x2e,0x82,
0x67,0x91,0xb7,0x05,0xf1,0xb6,0x97,0x13,0x6f,0xbb,0x89,0xb7,0x23,0x88,0xb7,0x83,
0x78,0x2a,0xef,0x62,0xec,0xf9,0xc8,0xcd,0x5c,0x22,0xd7,0xf5,0x4f,0xae,0x1f,0x45,
0x2a,0xb6,0x4f,0x8b,0xe3,0xc9,0x7b,0x2d,0x6f,0x93,0x01,0xc7,0x51,0xfc,0x9d,0x1e,
0xcf,0x45,0x26,0x75,0x15,0xf9,0x9a,0xb2,0x78,0x57,0x3c,0xcf,0x7b,0xe7,0xe0,0x53,
0xe4,0xed,0x6b,0xd0,0x63,0x99,0xf8,0xe7,0xf1,0x9e,0x83,0xbe,0x36,0xef,0x79,0xc4,
0xab,0x6f,0xe2,0xe5,0x61,0x53,0x48,0x3d,0x82,0x15,0x78,0x6b,0xed,0x93,0xff,0xfb,
0x48,0x1d,0x8d,0xe9,0x17,0x89,0xd5,0x11,0xb9,0x09,0x98,0x8c,0xbb,0x84,0x31,0xc8,
0x5c,0x34,0x47,0x6e,0x6a,0xfc,0x9b,0x61,0x9b,0x81,0x5e,0xbe,0x5b,0x31,0x57,0x6a,
0xdf,0x86,0xba,0x55,0xdf,0x91,0xbe,0x55,0x7d,0xd7,0x40,0xee,0x85,0x7f,0x4d,0xef,
0x75,0x9a,0xf1,0xeb,0xc3,0x1c,0x8b,0x2c,0x5c,0x0d,0x60,0x3e,0x1a,0x78,0x54,0x7b,
0xae,0x80,0xde,0x1a,0x4c,0x7d,0xe7,0x93,0x7b,0x08,0xe3,0x13,0x79,0xa8,0xa9,0x47,
0xf2,0x95,0x9a,0x79,0xbd,0x08,0x5d,0x86,0xd1,0x0f,0x67,0x0d,0x68,0x1d,0x23,0xb0,
0x57,0xfd,0xd5,0xac,0x2f,0x95,0x47,0x99,0x3a,0x45,0xbe,0xd1,0x3f,0x07,0xd3,0xca,
0xe4,0x31,0xac,0x1f,0x8d,0x77,0xab,0xf1,0x17,0x79,0x46,0xc0,0xd7,0x3c,0xe6,0x40,
0xea,0x7b,0x80,0xf9,0x2f,0x31,0xf1,0x1f,0x94,0xf8,0xfe,0xa3,0xf2,0xa2,0x60,0xbe,
0xd6,0xb0,0xae,0x55,0x5e,0xc7,0x9c,0x69,0xfc,0x4d,0x81,0xfd,0x7b,0xec,0x4f,0xb5,
0xbd,0xfc,0x11,0x7d,0x99,0x82,0xe7,0x6d,0x86,0x67,0x59,0x73,0xdb,0xa8,0xeb,0x2b,
0x6c,0xb6,0xc3,0xb3,0xc8,0x3b,0xc0,0x24,0xce,0xd7,0xf8,0xa5,0x61,0xbf,0x93,0x9c,
0x5f,0x63,0xbf,0x93,0xfd,0xd8,0xa1,0xff,0x86,0x77,0x3b,0x0f,0x29,0xd6,0xa9,0xd6,
0xdd,0xd4,0x25,0x7b,0x76,0x0b,0x2f,0x49,0x1c,0x59,0xc7,0x82,0x6d,0x62,0x4c,0xc7,
0xf8,0x75,0x94,0xa2,0x97,0x22,0x72,0xef,0xf5,0x48,0x05,0x72,0x0a,0x8f,0xfb,0xe0,
0x53,0xe5,0xbf,0x02,0x39,0xc3,0x95,0xc9,0xb2,0x0e,0x6b,0xb9,0x43,0xf5,0x79,0x81,
0xbe,0x6e,0x20,0xd7,0x0b,0xec,0x1b,0x04,0xfa,0x86,0x81,0xbe,0x31,0x72,0x17,0x5f,
0xa5,0x70,0xf0,0x0b,0xbc,0x48,0xcf,0x75,0x62,0xdc,0xbf,0x82,0x8b,0x8d,0xac,0xbf,
0xdf,0x58,0xb3,0xa5,0xc6,0xe6,0x77,0xf0,0xc7,0xbc,0x8d,0xac,0xa1,0x3d,0xf8,0x09,
0xfe,0x87,0x67,0x62,0x2f,0x9c,0xec,0xf3,0xf6,0x7b,0x62,0x2c,0x8a,0x31,0xe1,0x47,
0xde,0xf7,0x7b,0xf6,0xe5,0x5d,0xb0,0xe3,0xbd,0xfd,0x3e,0x6a,0x90,0xf7,0xbf,0x78,
0xff,0xd3,0xeb,0xff,0xc6,0xe7,0xef,0x38,0x47,0x7a,0x74,0x40,0x7a,0x91,0xd8,0xa2,
0x97,0x49,0xdc,0xcb,0xb7,0xd6,0xe6,0x5c,0xc2,0xb3,0xd6,0x9f,0xe6,0x92,0xfa,0x53,
0xc6,0x26,0xdd,0x25,0xf8,0x4a,0xea,0xaf,0xe0,0x12,0x3f,0xc1,0xa5,0x66,0x91,0xf7,
0x7b,0xfc,0x00,0xf9,0xf7,0x1b,0xce,0x32,0xdd,0x7f,0x39,0xcb,0x72,0x09,0xae,0x39,
0x2b,0x96,0x93,0x33,0xdb,0x25,0xf8,0x04,0x6f,0x23,0x72,0x25,0x97,0xf8,0x65,0x1b,
0x9b,0xca,0xd4,0x3e,0x16,0x9b,0x2a,0x2e,0xb1,0x13,0x5c,0xb8,0x91,0x7e,0xa9,0x62,
0xec,0xab,0xba,0xa4,0x87,0x34,0x6f,0x35,0xf2,0x2e,0x32,0xb5,0x55,0x77,0x09,0xae,
0x73,0x95,0xe3,0x12,0x3f,0xc1,0x65,0xae,0x72,0x5d,0xd9,0x5c,0x89,0xae,0x86,0x7f,
0x72,0xe1,0x55,0xde,0x85,0x67,0xe5,0x21,0xd7,0xe4,0xae,0x4d,0x6e,0xa9,0x4b,0xfa,
0x54,0xe4,0xf6,0x3e,0x87,0xac,0xe7,0x3a,0x2e,0xb9,0x6f,0xe4,0xa1,0x97,0xbe,0xae,
0x83,0xaf,0xe8,0xeb,0xbb,0xa4,0xd7,0x45,0x27,0x3d,0x5c,0xdf,0xf8,0xe6,0xbb,0xe4,
0xac,0xac,0x87,0x5e,0x7a,0x3e,0xdf,0xe4,0x2d,0x30,0x79,0xa5,0xdf,0x0b,0x4c,0xdc,
0x42,0x97,0xac,0x11,0xd1,0x49,0xef,0x17,0xc6,0x71,0x33,0x92,0x73,0x54,0x6c,0x59,
0x23,0x0d,0x4d,0xbc,0xc3,0x5c,0xb2,0x4e,0x5f,0x87,0xf3,0x62,0x97,0x60,0x45,0xae,
0xac,0x37,0x8b,0xe1,0xe1,0x20,0x3c,0x1c,0x34,0xfc,0x1e,0x1e,0xcc,0x59,0x23,0x97,
0x60,0x8b,0x4c,0x3f,0x37,0x72,0x87,0xf6,0xf3,0x01,0xe3,0xdf,0x84,0xfc,0x62,0x2b,
0xeb,0xb3,0x09,0x5c,0xc8,0xde,0x52,0xe2,0x92,0xbb,0x46,0x63,0x97,0xac,0x99,0x76,
0xfe,0x39,0x46,0xfb,0x87,0x75,0x20,0x67,0xdb,0xb1,0xde,0x37,0x93,0x7d,0x57,0xdf,
0xb3,0xc9,0x55,0xd9,0xd6,0x8a,0x8d,0xf6,0x4b,0x73,0xd6,0x76,0x53,0x63,0xd3,0x02,
0x5c,0xfb,0xf4,0x08,0xfc,0x5a,0x18,0x9b,0x96,0xc4,0x57,0x9b,0xd6,0x60,0xad,0x0c,
0x0f,0x47,0xe2,0xdb,0xda,0xe4,0x3b,0x8a,0x7c,0x6d,0x4c,0xac,0xb6,0xe0,0xea,0x77,
0x34,0xbe,0x6d,0xe3,0xf5,0x97,0x8a,0x65,0x3b,0xee,0x6a,0xe5,0x8c,0xbb,0x8a,0x79,
0xaf,0xca,0xb8,0xab,0x9b,0x7d,0xaf,0x1d,0xfb,0xae,0xe6,0x6c,0x8f,0xcf,0x64,0x62,
0x76,0x00,0x6b,0x65,0xc6,0x74,0x1c,0x78,0x47,0xe6,0xa6,0x1d,0x98,0xc6,0xe8,0x44,
0x5c,0xa9,0xb1,0x93,0xa9,0x31,0x87,0xbb,0xb6,0x7c,0x6a,0x98,0xba,0x72,0xa9,0xab,
0x96,0xa9,0xab,0x73,0x70,0x1e,0x74,0x0f,0xe4,0xb3,0x02,0x79,0x60,0x20,0x9f,0x13,
0xc8,0x83,0x02,0xf9,0x8a,0x40,0xbe,0x2e,0x90,0x27,0x04,0xf2,0x94,0x40,0x9e,0x13,
0xc8,0xf7,0x1a,0x59,0xee,0x0a,0xf3,0x03,0xfd,0xea,0xe8,0xd0,0xf3,0xe7,0xc5,0x80,
0xf7,0x2e,0xf0,0xa0,0xfd,0x70,0x02,0xfd,0xd0,0xd5,0xd8,0x74,0x03,0x9f,0xc8,0x3c,
0x9c,0x88,0x5f,0x37,0xe6,0xa1,0x33,0x98,0xda,0xf7,0x08,0x62,0x9e,0x54,0x4e,0xcc,
0x9e,0xe0,0x3a,0xdf,0x27,0xe3,0xd7,0x93,0x98,0xdd,0xc1,0xd4,0xfe,0x14,0xe6,0x42,
0x63,0x9e,0x4a,0xcc,0x5e,0xc6,0xa6,0x37,0xb8,0xee,0xab,0xa7,0xe3,0xd7,0xdb,0xd8,
0x9c,0x41,0x1c,0x3d,0x67,0xfa,0x82,0xc9,0x5d,0x73,0x09,0xd8,0x99,0xf8,0xf6,0xe5,
0xec,0xec,0x6f,0xce,0x4e,0xd1,0xf5,0xf3,0x4f,0x7f,0x7a,0xa7,0x1f,0xfd,0x36,0x00,
0xb9,0xbf,0xc9,0x75,0x36,0xfd,0x24,0xe3,0x19,0x88,0xac,0xba,0x73,0xa9,0x43,0x74,
0xe7,0x20,0xeb,0xbe,0x78,0x1e,0x7b,0xc9,0x40,0xfa,0x49,0x6c,0xce,0x02,0x57,0xff,
0x0b,0xe8,0x45,0x9d,0x93,0x0b,0xc1,0x5a,0xc5,0x1c,0x65,0xc4,0xf7,0xda,0x8b,0xb9,
0xfb,0x96,0xa2,0x57,0xdf,0x61,0xe8,0x24,0xee,0x20,0x64,0xe5,0xf5,0x12,0x78,0x1d,
0x6e,0xec,0x2f,0x05,0x5f,0x0e,0x3f,0x97,0x81,0x8d,0x80,0x9f,0x91,0x86,0x1f,0xd1,
0x5d,0xee,0x9f,0xd9,0xf0,0x71,0xb9,0x89,0x73,0x25,0x63,0x5e,0x46,0x9c,0xab,0xc0,
0x84,0xfb,0xa5,0xde,0x42,0xee,0x7c,0xd7,0x80,0xb7,0xe1,0x9e,0x3d,0x1a,0xdf,0x6b,
0xd1,0x49,0xcd,0x57,0x20,0x6b,0xdc,0xeb,0x83,0xb8,0x37,0x80,0xd9,0xb8,0xa3,0xc1,
0x47,0x71,0x3f,0xd7,0xb8,0x37,0xa1,0x93,0xb8,0xd7,0x21,0x2b,0x17,0x37,0xc3,0xc5,
0x18,0x93,0x6b,0x2c,0xb8,0x72,0x71,0x0b,0x98,0x72,0x31,0xde,0x70,0x21,0xba,0x71,
0xfe,0x99,0x04,0x17,0xe3,0x4c,0x9c,0x89,0xd4,0xac,0x7b,0xdb,0x6d,0xfc,0x2e,0x98,
0x48,0x2d,0x13,0xc0,0xe4,0x8c,0x1a,0x8f,0xff,0x24,0xe3,0x3f,0x39,0x18,0xf3,0xed,
0x60,0x7d,0xa8,0x63,0x9a,0xa9,0x43,0x74,0x53,0xfd,0x33,0x9d,0x38,0x53,0xc9,0x31,
0xc5,0xdc,0xeb,0xa6,0xa1,0x9b,0x6e,0x72,0xdc,0xc1,0x7e,0xa5,0xf2,0x9d,0xe4,0x1c,
0x47,0xcd,0x77,0xf1,0xdb,0xe5,0x4e,0x33,0x8e,0xbb,0xf1,0xbb,0xcb,0x9c,0x1f,0x33,
0xc1,0x67,0x98,0xbc,0x33,0x83,0xbc,0xd3,0x4c,0x9e,0x59,0xec,0x7b,0xca,0xc3,0xac,
0x80,0x87,0xf1,0xc8,0x23,0x91,0x67,0x1b,0xdf,0x7b,0x58,0x17,0xe2,0x3b,0x07,0x59,
0xde,0xef,0x65,0x6d,0xe8,0x1a,0x9b,0xcb,0xb9,0x35,0x87,0x3d,0x54,0x73,0xcd,0x35,
0x3d,0x36,0xcf,0xc4,0xbd,0x0f,0x2e,0x94,0xef,0xfb,0xc1,0xe6,0xc1,0xf7,0x42,0xc3,
0xb7,0xe8,0x16,0xf8,0xe7,0x21,0xea,0x5b,0x40,0xcc,0xf9,0xfc,0x76,0x93,0xda,0x17,
0xa2,0x7b,0xc8,0xe4,0x58,0x4c,0x8e,0xb5,0x3e,0x87,0xf4,0xec,0xc3,0xdc,0x1b,0x17,
0xc3,0x79,0x49,0xbc,0x47,0x95,0xe1,0x1a,0x73,0x49,0x10,0x73,0x21,0x31,0xc5,0xfe,
0x11,0xce,0x04,0xed,0xf7,0xa5,0x60,0xda,0xef,0x4b,0x03,0x2e,0x47,0x9a,0x7a,0x96,
0x05,0x7b,0xee,0xf2,0x72,0xf6,0xdc,0x15,0xe0,0xba,0xe7,0x3e,0x8a,0xdf,0x0a,0x63,
0xf3,0x58,0xd0,0xab,0x8f,0x83,0xd9,0x3d,0x77,0x25,0xbe,0x8f,0xc3,0xe7,0x2a,0xc3,
0xa7,0xe8,0x9e,0xf0,0xcf,0xd3,0xd4,0xf8,0x84,0xa9,0xe9,0x49,0x6a,0x5a,0x63,0xf2,
0x3d,0x05,0x2e,0x63,0x5c,0x8d,0x2c,0x63,0x5c,0x85,0xff,0xd3,0xc6,0xf6,0x19,0xce,
0x68,0x95,0x9f,0xe5,0x0c,0x7e,0x95,0xde,0x7d,0x0e,0x9b,0x67,0x8d,0xcd,0xf3,0x9c,
0xdb,0x6f,0x60,0xf3,0x02,0x76,0xcf,0x9b,0x9c,0x2f,0x04,0x39,0x57,0x19,0xff,0x97,
0x38,0x97,0x47,0x73,0x47,0x7e,0x19,0x4c,0x7c,0x5f,0x44,0xd6,0xfb,0xf3,0x2b,0x9c,
0xd9,0x72,0xc6,0xbc,0x12,0xdc,0x69,0xea,0xc2,0x51,0x6d,0xee,0x34,0x79,0xfc,0x7f,
0x28,0xf9,0xea,0x99,0x18,0xaf,0x81,0x4b,0x8c,0xd7,0x82,0xbb,0x5b,0x01,0x31,0xea,
0x9b,0x7b,0x51,0xbe,0x89,0xd7,0x80,0x78,0x0d,0xcd,0x9d,0x62,0x63,0x70,0xc7,0xd8,
0x1c,0x95,0xfd,0x86,0x6d,0x16,0xf3,0x92,0xcc,0xc9,0x3a,0x33,0xe6,0x37,0xc1,0xb5,
0x07,0xde,0x02,0x9b,0xc1,0x7c,0x6f,0x30,0xf3,0x2d,0xba,0xf5,0xfe,0xd9,0x4a,0xee,
0xf5,0x26,0xce,0xdb,0xd4,0xa7,0xdc,0xbf,0x03,0xb6,0xc9,0xc4,0x7e,0x17,0x7c,0x84,
0xd9,0xff,0xdf,0x07,0x2f,0xe5,0xff,0x0e,0x5d,0x0f,0x1f,0xa0,0x13,0xee,0x37,0x22,
0x2b,0x6f,0x1f,0x32,0xfe,0xd3,0x7d,0x5c,0xf9,0x5f,0xe4,0x63,0xb0,0x01,0xf1,0xff,
0x2b,0xc9,0x3e,0xf2,0x09,0xff,0x5b,0x74,0x40,0xaf,0x75,0x6e,0x81,0xa7,0xb5,0xd4,
0xf9,0x29,0xb6,0x5b,0xc8,0xb5,0x19,0x4c,0x7a,0x64,0x03,0xe3,0xdc,0x6a,0x72,0x7f,
0x46,0xee,0xd1,0xac,0xe3,0xcf,0xc1,0xb4,0xee,0x2f,0xc0,0x34,0xd6,0x17,0x41,0xac,
0x0d,0xa6,0x96,0x2f,0x99,0x23,0x99,0xff,0x2f,0xcd,0xfc,0xa7,0xcc,0xff,0xa6,0x85,
0x66,0xfe,0x8b,0x88,0x51,0x6c,0x7e,0x63,0x7f,0x5b,0xce,0xff,0x12,0xdf,0x81,0xeb,
0xbc,0x7f,0xcf,0xbc,0x8f,0x32,0x36,0x3f,0x80,0xeb,0x3d,0x65,0x37,0x98,0xfd,0x5d,
0xf2,0x23,0xb1,0x76,0x1b,0xbf,0x9f,0xa8,0x43,0xef,0x32,0x3f,0xf3,0xff,0x52,0x29,
0xf6,0x32,0xee,0x9f,0xb1,0xd3,0xdf,0x61,0xff,0x00,0x8b,0x79,0xa8,0xaa,0x34,0x18,
0x00,0x00
};
// Generated from:
......@@ -175,7 +186,7 @@ constexpr uint8_t kConvertVertex_comp_00000007[] = {
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Sd + component * 4 + params . destOffset;
// return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
......@@ -250,7 +261,18 @@ constexpr uint8_t kConvertVertex_comp_00000007[] = {
// uint makeDestinationComponent(uint cd, float value)
// {
//
// uint valueAsUint = floatBitsToInt(value);
// uint valueAsUint;
//
// if(params . Bd == 2)
// {
//
// uint shift =((cd & 1)== 0)? 0 : 16;
// valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
// }
// else
// {
// valueAsUint = floatBitsToInt(value);
// }
//
// return valueAsUint;
// }
......@@ -267,9 +289,9 @@ constexpr uint8_t kConvertVertex_comp_00000007[] = {
// return;
//
// uint valueOut = 0;
// for(uint i = 0;i < 1;++ i)
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * 1 + i;
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
// if(cd >= params . componentCount)
// {
// break;
......
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_vk_internal_shaders.py.
//
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// shaders/gen/ConvertVertex.comp.00000008.inc:
// Pre-generated shader for the ANGLE Vulkan back-end.
#pragma once
constexpr uint8_t kConvertVertex_comp_00000008[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x9d,0x98,0x79,0x94,0x8f,0x65,
0x14,0xc7,0xdf,0x67,0x76,0xfb,0x4c,0x18,0xdb,0x18,0xc6,0x58,0x46,0x64,0x6b,0x42,
0xb6,0x74,0x24,0x2d,0x0a,0x15,0xc5,0x21,0x91,0x4c,0x2a,0xa5,0x68,0x13,0x85,0x2c,
0x49,0x8b,0xa2,0x4d,0xbb,0x94,0x6c,0x69,0x51,0xb2,0x94,0x6c,0xe5,0x1c,0xe7,0x48,
0x9b,0x16,0x39,0x87,0xd0,0x5e,0x5a,0x95,0xbd,0xe7,0xbe,0xef,0xe7,0x36,0xd7,0xd3,
0xfc,0xd5,0xef,0x9c,0xf7,0xfc,0xde,0xfb,0xbd,0xeb,0xf3,0x7d,0xee,0xb3,0xfc,0x7e,
0xa9,0x29,0x85,0x99,0x51,0xe4,0xa2,0xf2,0x51,0x56,0xd4,0xd4,0x45,0xf1,0x27,0x27,
0x4a,0x89,0xe4,0xb5,0x42,0x94,0x11,0x7f,0xf7,0xe8,0x79,0x61,0xcf,0x16,0xa3,0xc7,
0x0c,0x6b,0x51,0x7c,0x4a,0x2b,0xd1,0x57,0x8e,0x52,0x63,0x3b,0xd1,0x55,0xf1,0x36,
0xe9,0xfe,0x3b,0xcd,0x3f,0x23,0x87,0x8c,0xb8,0x56,0xf0,0xaf,0xfd,0x93,0xed,0xf1,
0xb4,0x38,0x56,0x14,0x75,0xc5,0x56,0x9e,0xb3,0xbc,0x75,0xa3,0x24,0x4d,0x54,0xc8,
0xb7,0x62,0x0e,0x2c,0xcd,0x60,0x29,0x60,0x59,0x06,0x4b,0x05,0xab,0x68,0xb0,0x34,
0xb0,0x6c,0x83,0xa5,0x83,0x55,0x33,0x58,0x06,0x58,0x4d,0x83,0x65,0x82,0xe5,0x19,
0x2c,0x0b,0xac,0xbe,0xc1,0xca,0x81,0x35,0x34,0x58,0x79,0xb0,0x22,0x83,0x55,0x00,
0x6b,0x6e,0xb0,0x8a,0x60,0xad,0x0c,0x56,0x09,0xac,0xd8,0x60,0x95,0xc1,0xda,0x0b,
0xef,0x7e,0xa4,0xca,0x41,0x0f,0x3f,0xc2,0xcb,0xa9,0x5f,0xf9,0x19,0x16,0xf0,0x28,
0xf6,0xc3,0xe0,0x47,0xec,0x87,0xfb,0xef,0x06,0xff,0xea,0x12,0xb9,0x00,0x9e,0x45,
0xde,0x19,0xc4,0xdb,0x55,0x46,0xbc,0x5d,0x26,0xde,0xee,0x20,0xde,0x6e,0xe2,0xa9,
0xfc,0x35,0x63,0xcf,0x43,0x2e,0x72,0x89,0x5c,0xcb,0x3f,0x55,0xfd,0x28,0x52,0x62,
0xfb,0xd4,0x38,0x9e,0xbc,0x57,0xf7,0x36,0x19,0x70,0x1c,0xc5,0xdf,0x69,0xf1,0x5c,
0x64,0x52,0x57,0x81,0xaf,0x29,0x8b,0x77,0xc5,0x73,0xbd,0x77,0x0e,0x3e,0x05,0xde,
0xfe,0x04,0x7a,0x2c,0x13,0xff,0x5c,0xde,0x73,0xd0,0xd7,0xe0,0x3d,0x97,0x78,0x75,
0x4c,0xbc,0x5c,0x6c,0xea,0x53,0x8f,0x60,0xf9,0xde,0x5a,0xfb,0xe4,0xff,0x3e,0x52,
0x47,0x63,0xfa,0x45,0x62,0x75,0x44,0x6e,0x02,0x26,0xe3,0x2e,0x62,0x0c,0x32,0x17,
0xcd,0x90,0x9b,0x1a,0xff,0x13,0xb1,0xcd,0x30,0xfa,0x96,0xf4,0xb4,0xca,0xc5,0xd4,
0xdd,0x0c,0x1e,0x3b,0x31,0x97,0x2a,0x77,0xa1,0x8f,0xd5,0xbe,0x7b,0x20,0xf7,0xc2,
0xbe,0x9a,0x8f,0x72,0x81,0xf1,0xeb,0xcb,0x9c,0x8b,0x2c,0xdc,0x0d,0x60,0x7e,0xea,
0x7a,0x54,0x7b,0x30,0x9f,0x5e,0xbb,0x9c,0x7a,0xaf,0xa0,0x96,0x61,0x8c,0x57,0xe4,
0xe1,0xa6,0x3e,0xc9,0x57,0x62,0xe6,0xf9,0x2a,0x74,0x76,0x7c,0x23,0x59,0x13,0x5a,
0xc7,0x28,0xec,0x55,0x7f,0x33,0xeb,0x4d,0xe5,0xf1,0xa6,0x4e,0x91,0x6f,0xf7,0xcf,
0xb1,0xd4,0x52,0x79,0x22,0xeb,0x49,0xe3,0xdd,0x65,0xfc,0x45,0x9e,0x15,0xf0,0x37,
0x8f,0x39,0x91,0xfa,0x5e,0xa0,0x1f,0x8a,0x4c,0xfc,0x85,0x12,0xdf,0x7f,0x54,0x5e,
0x1c,0xcc,0xdf,0x6a,0xd6,0xb9,0xc6,0xdb,0x1a,0xe8,0x3f,0x62,0x7f,0xaa,0xe1,0xe5,
0xcf,0xe8,0xcb,0x14,0x78,0xdd,0x69,0x78,0x95,0x35,0xb7,0x93,0x3a,0xbe,0xc2,0x66,
0x17,0xbc,0x8a,0xbc,0x1b,0x4c,0xe2,0xec,0xc1,0x2f,0x15,0xfb,0xbd,0xe4,0xdc,0x83,
0xfd,0x5e,0xf6,0x63,0x87,0xfe,0x1b,0xde,0x2d,0xef,0x11,0xeb,0x54,0xeb,0x6e,0xe2,
0x92,0x3d,0xbb,0xb9,0x97,0x24,0x8e,0xac,0x63,0xc1,0xb6,0x32,0xa6,0xb6,0xbe,0x0b,
0x53,0xe8,0x9d,0x88,0xdc,0x7f,0x7b,0x24,0x9d,0x9c,0x99,0xb1,0x9c,0xf0,0xa7,0xf2,
0x81,0x40,0x4e,0x73,0xa5,0xb2,0xac,0xc3,0xaa,0xee,0x78,0x7d,0xb5,0x40,0x5f,0x23,
0x90,0x6b,0x06,0xf6,0x75,0x02,0x7d,0xdd,0x40,0xdf,0x10,0xf9,0x74,0x5f,0xa5,0x70,
0xf0,0x0b,0xbc,0x48,0x8f,0x75,0x66,0xdc,0xbf,0x82,0x8b,0x8d,0xac,0xbf,0xdf,0x58,
0xb3,0x25,0xc6,0xe6,0x77,0xf0,0x97,0xbc,0x8d,0xac,0x99,0x3f,0xf0,0x13,0xfc,0x2f,
0xcf,0xc4,0x7e,0x38,0x39,0xe8,0xed,0x45,0xf7,0xa7,0x7f,0xf6,0xc3,0x8f,0xbc,0x1f,
0xf1,0x64,0xcb,0xfb,0xfe,0x78,0x7d,0xa6,0xc6,0x3c,0x8d,0xe2,0xfd,0x00,0xef,0x07,
0xbc,0xfe,0x20,0x3e,0x07,0x63,0xff,0xb4,0xe8,0x70,0xec,0x9b,0x7c,0x44,0x7f,0x14,
0xfd,0x51,0x53,0xdb,0x31,0x78,0xd6,0xfa,0x9d,0x4b,0xea,0x97,0xf9,0x55,0x9b,0x14,
0x97,0xe0,0x2f,0x53,0x7f,0xaa,0x4b,0xfc,0x04,0x97,0x9a,0x45,0x3e,0xe4,0xe5,0xc3,
0xc4,0x3f,0x64,0x38,0x4b,0x77,0xff,0xe5,0x2c,0xc3,0x25,0xb8,0xe6,0xcc,0x2c,0x23,
0x67,0x96,0x4b,0xf0,0xc9,0xde,0x46,0xe4,0x72,0x2e,0xf1,0xcb,0x32,0x36,0xe5,0x5d,
0x52,0xfb,0x04,0x6c,0x2a,0xb8,0xc4,0x4e,0x70,0xe1,0x46,0xfa,0xa5,0x82,0xb1,0xaf,
0xe8,0x92,0x1e,0xd2,0xbc,0x95,0xc8,0xbb,0xd8,0xd4,0x56,0xd9,0x25,0xb8,0xce,0x55,
0x15,0x97,0xf8,0x09,0x2e,0x73,0x95,0xe3,0x4a,0xe7,0x4a,0x74,0xd9,0xfe,0x11,0x4c,
0xc6,0x9d,0xed,0x12,0x9e,0x95,0x87,0x1c,0x93,0xbb,0x3a,0xb9,0xa5,0x2e,0xe9,0x53,
0x91,0x4f,0xf5,0x39,0xe2,0x73,0xc6,0x25,0xf7,0x8d,0x6a,0xe8,0xa5,0xaf,0x73,0xf1,
0x15,0x7d,0x2d,0x97,0xf4,0xba,0xe8,0xa4,0x87,0x6b,0x19,0xdf,0xda,0x2e,0x39,0x2b,
0x6b,0xa2,0x97,0x9e,0xaf,0x6d,0xf2,0xe6,0x99,0xbc,0xd2,0xef,0x79,0x26,0x6e,0xbe,
0x4b,0xd6,0x88,0xe8,0xa4,0xf7,0xf3,0xe3,0xb8,0x19,0xb1,0x5f,0x3d,0x91,0x59,0x23,
0x75,0x4d,0xbc,0xfa,0x2e,0x59,0xa7,0x1b,0xe1,0xbc,0xc0,0x25,0x58,0x3d,0x57,0xda,
0x9b,0x05,0xf0,0x70,0x04,0x1e,0x8e,0x18,0x7e,0x1b,0x04,0x73,0x56,0xe8,0x12,0x6c,
0xb1,0xe9,0xe7,0x42,0x77,0x7c,0x3f,0x1f,0x36,0xfe,0x8d,0xc8,0x2f,0xb6,0xb2,0x3e,
0x1b,0xc1,0x85,0xec,0x2d,0x8d,0x5d,0x72,0xd7,0x10,0x5c,0xd6,0x4c,0x7b,0xff,0xb4,
0xd5,0xde,0x60,0x1d,0xc8,0x59,0xd6,0xce,0xfb,0x66,0x72,0x56,0xea,0x7b,0x79,0x72,
0x55,0x34,0xb9,0x1a,0x62,0xa3,0xfd,0xd2,0x8c,0xb5,0xdd,0xd4,0xd8,0x34,0x07,0xd7,
0x3e,0x3d,0x09,0xbf,0xe6,0xc6,0xa6,0x05,0xf1,0x35,0x4e,0x2b,0xe2,0xb4,0x34,0x36,
0xad,0xc1,0x35,0x4e,0x1b,0xfc,0x5a,0x1b,0xae,0x4e,0x26,0x7e,0x1b,0x13,0xeb,0x14,
0x62,0x15,0x9b,0x58,0x6d,0xc1,0xd5,0xaf,0x1d,0xbe,0x82,0x1f,0xf5,0x63,0x6c,0x17,
0xdf,0x15,0x4b,0xb9,0xa9,0x52,0x06,0x37,0x95,0xcc,0x7b,0x65,0xb8,0xc9,0x36,0x7b,
0x63,0x07,0xf6,0x66,0xcd,0xd9,0x11,0x9f,0xe9,0xc4,0xec,0x0c,0xd6,0xc9,0x8c,0xe9,
0x34,0xf0,0x2e,0xcc,0x5f,0x87,0x7f,0xb1,0x24,0x46,0x57,0xe2,0x4a,0x8d,0x5d,0x4d,
0x8d,0x39,0xdc,0xc7,0xe5,0x73,0x82,0xa9,0xab,0x2a,0x75,0x55,0x37,0x75,0x75,0x0b,
0xce,0x8c,0xb3,0x03,0x79,0x60,0x20,0x0f,0x0a,0xe4,0xc1,0x81,0x3c,0x34,0x90,0xc7,
0x04,0xf2,0xd8,0x40,0x9e,0x16,0xc8,0xf7,0x05,0xf2,0x9c,0x40,0x7e,0xc2,0xc8,0x72,
0x7f,0x98,0x1f,0xe8,0x57,0x45,0xc7,0x9f,0x51,0x1b,0x03,0xde,0xcf,0x80,0x07,0xed,
0x87,0x33,0xe9,0x87,0xee,0xc6,0xa6,0x07,0xf8,0x54,0xe6,0xe1,0x2c,0xfc,0x7a,0x30,
0x0f,0xdd,0xc0,0xd4,0xfe,0x9c,0x20,0xe6,0xb9,0x65,0xc4,0xec,0x09,0xae,0xf3,0x7d,
0x1e,0x7e,0x3d,0x89,0x79,0x36,0x98,0xda,0x9f,0xcf,0x5c,0x68,0xcc,0xde,0xc4,0xec,
0x65,0x6c,0xfa,0x80,0xeb,0xde,0x7b,0x21,0x7e,0x7d,0x8c,0xcd,0x45,0xc4,0xd1,0xb3,
0xa8,0x1f,0x58,0xdf,0x98,0xbb,0x04,0xbb,0x18,0xdf,0x7e,0x9c,0xaf,0xfd,0xcd,0xf9,
0x2a,0xba,0x4b,0xfc,0xd3,0x9f,0xde,0xb9,0x84,0x7e,0x1b,0x80,0xdc,0xdf,0xe4,0xba,
0x94,0x7e,0x92,0xf1,0x0c,0x42,0x56,0xdd,0x65,0xd4,0x21,0xba,0xc1,0xc8,0xba,0x77,
0x0e,0x61,0xbf,0x19,0x44,0x3f,0x89,0xcd,0x40,0x70,0xf5,0xbf,0x92,0x5e,0xd4,0x39,
0x19,0x01,0xd6,0x29,0xe6,0x28,0x23,0xbe,0xeb,0x5e,0xcd,0x7d,0xb8,0x04,0xbd,0xfa,
0x5e,0x83,0x4e,0xe2,0x0e,0x45,0x56,0x5e,0xaf,0x85,0xd7,0x91,0xc6,0xfe,0x3a,0xf0,
0x45,0xf0,0x73,0x3d,0xd8,0x28,0xf8,0x19,0x6d,0xf8,0x11,0xdd,0x0d,0xfe,0x79,0x0c,
0x3e,0x6e,0x30,0x71,0x6e,0x64,0xcc,0x0b,0x89,0x73,0x13,0x98,0x70,0xbf,0xc0,0x5b,
0xc8,0xbd,0xf0,0x16,0xf0,0x62,0xee,0xde,0xe3,0xf0,0xbd,0x15,0x9d,0xd4,0x3c,0x06,
0x59,0xe3,0xde,0x16,0xc4,0x1d,0x07,0x66,0xe3,0xde,0x01,0x3e,0x9e,0x3b,0xbb,0xc6,
0x9d,0x80,0x4e,0xe2,0x8e,0x45,0x56,0x2e,0x26,0xc1,0xc5,0x44,0x93,0xeb,0x4e,0x70,
0xe5,0x62,0x32,0x98,0x72,0x31,0xd5,0x70,0x21,0xba,0x29,0xfe,0x99,0x01,0x17,0x53,
0x4c,0x9c,0xe9,0xd4,0xac,0x7b,0xdb,0xdd,0xfc,0x56,0x98,0x4e,0x2d,0xd3,0xc0,0xe4,
0x1c,0x9b,0x8a,0xff,0x0c,0xe3,0x7f,0x4f,0x30,0xe6,0x7b,0xc1,0xfa,0x52,0xc7,0x4c,
0x53,0x87,0xe8,0xee,0xf7,0xcf,0x03,0xc4,0xb9,0x9f,0x1c,0xf7,0x99,0xbb,0xdf,0x4c,
0x74,0x0f,0x98,0x1c,0x0f,0xb2,0x5f,0xa9,0x3c,0x9b,0x9c,0x93,0xa8,0xf9,0x21,0x7e,
0xcf,0xcc,0x36,0xe3,0x78,0x18,0xbf,0x87,0xcc,0xf9,0xf1,0x08,0xf8,0x2c,0x93,0xf7,
0x91,0x20,0xef,0x4c,0x93,0xe7,0x51,0xf6,0x3d,0xe5,0xe1,0xd1,0x80,0x87,0xa9,0xc8,
0xa3,0x91,0x1f,0x33,0xbe,0x8f,0xb3,0x2e,0xc4,0x77,0x0e,0xb2,0xce,0xe7,0x93,0x65,
0x9c,0x9b,0x4f,0x81,0x8b,0xfd,0x13,0xc8,0xba,0x0e,0x9f,0xe6,0x6c,0x9b,0xc3,0x3e,
0xab,0xf5,0x3c,0x6d,0x62,0x3e,0x53,0x46,0xcc,0x67,0xc1,0x95,0x93,0xb9,0x60,0x5d,
0x4c,0xff,0xce,0x35,0xf6,0xcf,0xc1,0xb3,0xce,0xe5,0xf3,0x60,0xf3,0x98,0xcb,0x05,
0x66,0x2e,0x45,0xf7,0x62,0xdc,0x7f,0xc9,0xd8,0x5f,0x24,0xe6,0x7c,0x7e,0x2b,0x0a,
0x2f,0x0b,0xd0,0x2d,0x32,0x39,0x96,0x90,0x63,0x83,0xcf,0x51,0x14,0xef,0x91,0xc9,
0x9d,0x69,0x09,0xf3,0x29,0xd8,0x52,0x83,0x6b,0xcc,0xa5,0x41,0xcc,0x05,0xc4,0x2c,
0x8a,0xf7,0xd0,0xe4,0xbc,0xd1,0xb5,0xf4,0x0a,0x98,0xae,0xa5,0x57,0x82,0x79,0x1a,
0x6d,0xea,0x79,0x35,0xd8,0xcf,0x5f,0x2b,0x63,0x3f,0x5f,0x06,0xae,0xfb,0xf9,0xeb,
0xf8,0x2d,0x33,0x36,0x6f,0x04,0xeb,0x60,0x39,0x98,0xdd,0xcf,0xdf,0xc4,0x77,0x39,
0x7c,0xae,0x34,0x7c,0x8a,0x6e,0x85,0x7f,0xd6,0x50,0xe3,0x0a,0x53,0xd3,0x5b,0xd4,
0xb4,0xda,0xe4,0x7b,0x1b,0x5c,0xc6,0xb8,0x0a,0x59,0xc6,0xb8,0x12,0xff,0x35,0xc6,
0xf6,0x1d,0xce,0x7f,0x95,0xd7,0x72,0xbe,0xaf,0xa3,0x2f,0xd6,0x61,0xb3,0xd6,0xd8,
0xac,0xe7,0x4e,0xf0,0x1e,0x36,0x1b,0xb0,0x5b,0x6f,0x72,0x6e,0x08,0x72,0xae,0x34,
0xfe,0xef,0x72,0xe6,0x8f,0xe3,0x8e,0xfe,0x1e,0x98,0xf8,0x6e,0x44,0xd6,0xfb,0xfb,
0x26,0xee,0x03,0x72,0x7e,0x6d,0x0a,0xee,0x4b,0xb5,0xe0,0xa8,0x06,0xf7,0xa5,0x5c,
0xfe,0xbf,0x94,0x7c,0xb5,0x4d,0x8c,0xcd,0xe0,0x12,0x63,0x73,0x70,0x2f,0xcc,0x27,
0x46,0x1d,0x73,0xe7,0xca,0x33,0xf1,0xea,0x12,0xaf,0x9e,0xb9,0xaf,0x6c,0x09,0xee,
0x2f,0xdb,0x82,0xfb,0xca,0xfb,0xc4,0x50,0x7e,0x3e,0x00,0xdb,0x6a,0x7a,0xe0,0x43,
0xf0,0x51,0x66,0xff,0xff,0x18,0xbc,0x84,0xff,0x44,0xb4,0x67,0x3f,0x41,0x27,0xfc,
0x6c,0x41,0xd6,0xb1,0x7d,0x4a,0x8d,0xbd,0x7d,0x5c,0xf9,0xef,0xe4,0x73,0xb0,0x01,
0xf1,0x7f,0x2e,0xc9,0x1e,0xf1,0x05,0xff,0x6d,0x74,0x40,0xaf,0x75,0x6e,0x67,0x2c,
0x1b,0xa8,0xf3,0x4b,0x6c,0xb7,0x93,0x6b,0x1b,0x98,0xda,0xef,0x60,0xac,0xc2,0xe3,
0x0e,0xc3,0x63,0x8a,0xf9,0xff,0xb3,0xbe,0xe1,0xb1,0x00,0xee,0x0a,0xcd,0x6f,0xe5,
0x6f,0xcb,0xf8,0x7f,0xe1,0x3b,0x70,0xed,0xe9,0xef,0xe9,0xe9,0xf1,0xc6,0xe6,0x07,
0x70,0xbd,0x4b,0xfc,0x08,0xd6,0xc9,0xec,0xe1,0x3f,0x11,0xeb,0x47,0xe3,0xf7,0x33,
0x75,0xe8,0x7d,0x63,0x1f,0xff,0x13,0x95,0x60,0x2f,0xe3,0xdc,0x87,0x9d,0xfe,0x9e,
0xfa,0x07,0xfa,0x7b,0x1e,0x9d,0xfc,0x17,0x00,0x00
};
// Generated from:
//
// #version 450 core
//
// layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in;
//
// layout(set = 0, binding = 0)buffer dest
// {
// uint destData[];
// };
//
// layout(set = 0, binding = 1)buffer src
// {
// uint srcData[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
// uint outputCount;
//
// uint componentCount;
//
// uint srcOffset;
// uint destOffset;
//
// uint Ns;
// uint Bs;
// uint Ss;
// uint Es;
//
// uint Nd;
// uint Bd;
// uint Sd;
// uint Ed;
//
// uint srcEmulatedAlpha;
//
// bool isSrcHDR;
// bool isSrcA2BGR10;
// } params;
//
// uint getSourceComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Ss + component * params . Bs + params . srcOffset;
// }
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
// return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
// {
//
// uint shift =(offset % 4)* 8;
//
// return shift;
// }
//
// float loadSourceComponent(uint cd)
// {
//
// uint vertex = cd / params . Nd;
// uint component = cd % params . Nd;
//
// if(component >= params . Ns && component < 3)
// {
// return 0;
// }
//
// uint offset = getSourceComponentOffset(vertex, component);
// uint block = srcData[offset / 4];
//
// uint shiftBits;
// uint valueBits;
// uint valueMask;
//
// if(params . isSrcHDR)
// {
// valueBits = component == 3 ? 2 : 10;
// valueMask = component == 3 ? 0x03 : 0x3FF;
// if(params . isSrcA2BGR10)
// {
// shiftBits = 10 * component;
// }
// else
// {
//
// shiftBits = component == 3 ? 0 :(valueBits *(2 - component)+ 2);
// }
// }
// else
// {
// shiftBits = getShiftBits(offset, params . Bs);
// valueBits = params . Bs * 8;
// valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1;
// }
//
// uint valueAsUint;
//
// if(component >= params . Ns && component == 3)
// {
// valueAsUint = params . srcEmulatedAlpha;
// }
// else
// {
// valueAsUint =(block >> shiftBits)& valueMask;
// }
//
// float value = uintBitsToFloat(valueAsUint);
//
// return value;
// }
//
// float convertComponent(float srcValue)
// {
//
// return srcValue;
// }
//
// uint makeDestinationComponent(uint cd, float value)
// {
//
// uint shift =((cd & 1)== 0)? 0 : 16;
// uint valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
//
// return valueAsUint;
// }
//
// void storeDestinationComponents(uint valueAsUint)
// {
//
// destData[gl_GlobalInvocationID . x + params . destOffset / 4]= valueAsUint;
// }
//
// void main()
// {
// if(gl_GlobalInvocationID . x >= params . outputCount)
// return;
//
// uint valueOut = 0;
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
// if(cd >= params . componentCount)
// {
// break;
// }
//
// float srcValue = loadSourceComponent(cd);
// float destValue = convertComponent(srcValue);
// valueOut |= makeDestinationComponent(cd, destValue);
// }
//
// storeDestinationComponents(valueOut);
// }
......@@ -46,20 +46,22 @@
// * UnormToFloat: Similar to UintToFloat, but normalized.
// * FixedToFloat: 16.16 signed fixed-point to floating point.
// * FloatToFloat: float.
// * FloatToHalf: float to half-float
//
// SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and
// Copy8SintTo16SintVertexData() in renderer/copyvertex.inc.
// The *ToFloat conversions can convert to a half-precision float based on a parameter. When not
// converting to half:
//
// FixedToFloat corresponds to Copy32FixedTo32FVertexData.
// - SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and
// Copy8SintTo16SintVertexData() in renderer/copyvertex.inc.
//
// SintToFloat and UintToFloat correspond to CopyTo32FVertexData with normalized=false.
// - FixedToFloat corresponds to Copy32FixedTo32FVertexData.
//
// SnormToFloat and UnormToFloat correspond to CopyTo32FVertexData with normalized=true.
// - SintToFloat and UintToFloat correspond to CopyToFloatVertexData with normalized=false.
//
// If isSrcHDR, SintToSint, UintToUint, SintToFloat, UintToFloat and SnormToFloat
// correspond to CopyXYZ10W2ToXYZW32FVertexData (if isSrcA2BGR10) or CopyW2XYZ10ToXYZW32FVertexData
// (if !isSrcA2BGR10) with the proper options.
// - SnormToFloat and UnormToFloat correspond to CopyToFloatVertexData with normalized=true.
//
// - If isSrcHDR, SintToSint, UintToUint, SintToFloat, UintToFloat and SnormToFloat correspond to
// CopyXYZ10W2ToXYZWFloatVertexData (if isSrcA2BGR10) or CopyW2XYZ10ToXYZWFloatVertexData (if
// !isSrcA2BGR10) with the proper options.
#version 450 core
......@@ -68,7 +70,7 @@
#define SrcType int
#elif UintToUint || UintToFloat
#define SrcType uint
#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || FloatToHalf
#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat
#define SrcType float
#else
#error "Not all conversions are accounted for"
......@@ -77,16 +79,10 @@
// Destination type
#if SintToSint
#define DestType int
#define IsDestFloat 0
#elif UintToUint
#define DestType uint
#define IsDestFloat 0
#elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat
#define DestType float
#define IsDestFloat 1
#elif FloatToHalf
#define DestType float
#define IsDestFloat 0
#else
#error "Not all conversions are accounted for"
#endif
......@@ -134,8 +130,8 @@ layout (push_constant) uniform PushConstants
// other data from source is.
uint srcEmulatedAlpha;
bool isSrcHDR; // Whether source is either of A2BGR10 or RGB10A2
bool isSrcA2BGR10; // Whether source is A2BGR10
bool isSrcHDR; // Whether source is either of A2BGR10 or RGB10A2
bool isSrcA2BGR10; // Whether source is A2BGR10
} params;
// Define shorthands for more readable formulas:
......@@ -144,8 +140,8 @@ layout (push_constant) uniform PushConstants
#define Nd params.Nd
#define Sd params.Sd
// With fixed-point and float types, Bs and Bd can only be 4, so they are hardcoded for more
// efficiency.
// With fixed-point and float types, Bs can only be 4, so it is hardcoded for more efficiency. The
// same is not true for Bd because it can be a half-float type.
#if FixedToFloat || FloatToFloat
#define Bs 4
#define Es 1
......@@ -154,13 +150,8 @@ layout (push_constant) uniform PushConstants
#define Es params.Es
#endif
#if IsDestFloat
#define Bd 4
#define Ed 1
#else
#define Bd params.Bd
#define Ed params.Ed
#endif
uint getSourceComponentOffset(uint vertex, uint component)
{
......@@ -288,7 +279,7 @@ SrcType loadSourceComponent(uint cd)
#elif FixedToFloat
float divisor = 1.0f / 65536.0f;
SrcType value = int(valueAsUint) * divisor;
#elif FloatToFloat || FloatToHalf
#elif FloatToFloat
SrcType value = uintBitsToFloat(valueAsUint);
#else
#error "Not all conversions are accounted for"
......@@ -320,14 +311,19 @@ uint makeDestinationComponent(uint cd, DestType value)
uint valueMask = valueBits == 32 ? -1 : (1 << valueBits) - 1;
uint valueAsUint = (uint(value) & valueMask) << shiftBits;
#elif FloatToHalf
uint shift = ((cd & 1) == 0) ? 0 : 16;
uint valueAsUint = packHalf2x16(vec2(value, 0.0)) << shift;
#elif IsDestFloat
// If the destination is float, it will occupy the whole result.
uint valueAsUint = floatBitsToInt(value);
#elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat
uint valueAsUint;
if (Bd == 2)
{
// It's a half-precision float.
uint shift = ((cd & 1) == 0) ? 0 : 16;
valueAsUint = packHalf2x16(vec2(value, 0.0)) << shift;
}
else
{
valueAsUint = floatBitsToInt(value);
}
#else
#error "Not all conversions are accounted for"
#endif
......
......@@ -18,7 +18,6 @@
[ "SnormToFloat", "-Od" ],
[ "UnormToFloat", "-Od" ],
[ "FixedToFloat", "-Od" ],
[ "FloatToFloat", "-Od" ],
[ "FloatToHalf", "-Od" ]
[ "FloatToFloat", "-Od" ]
]
}
......@@ -299,51 +299,51 @@
},
"A2R10G10B10_SINT_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"A2R10G10B10_UINT_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"A2R10G10B10_SSCALED_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"A2R10G10B10_USCALED_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"A2R10G10B10_SNORM_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"A2R10G10B10_UNORM_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"X2R10G10B10_SINT_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"X2R10G10B10_USCALED_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"X2R10G10B10_SSCALED_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"X2R10G10B10_UINT_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"X2R10G10B10_SNORM_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"X2R10G10B10_UNORM_VERTEX": {
"image": "NONE",
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"D32_FLOAT_S8X24_UINT": {
"image": ["D24_UNORM_S8_UINT", "D32_FLOAT_S8X24_UINT"]
......@@ -390,16 +390,16 @@
"buffer": "R32G32B32_FLOAT"
},
"R8G8B8A8_UNORM": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"R8G8B8A8_SNORM": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"R8G8B8A8_USCALED": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"R8G8B8A8_SSCALED": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"R16_UNORM": {
......@@ -445,10 +445,12 @@
"buffer": "R32G32B32A32_FLOAT"
},
"R16G16B16A16_USCALED": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R32G32B32A32_FLOAT",
"buffer_compressed": "R16G16B16A16_FLOAT"
},
"R16G16B16A16_SSCALED": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R32G32B32A32_FLOAT",
"buffer_compressed": "R16G16B16A16_FLOAT"
},
"R32G32B32_UINT": {
"image": "R32G32B32A32_UINT"
......@@ -511,13 +513,13 @@
"image": ["R16G16_SNORM", "R16G16_FLOAT"]
},
"R10G10B10A2_SNORM": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"R10G10B10A2_USCALED": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"R10G10B10A2_SSCALED": {
"buffer": "R32G32B32A32_FLOAT"
"buffer": "R16G16B16A16_FLOAT"
},
"R10G10B10A2_UINT": {
"buffer": "R16G16B16A16_UINT"
......
......@@ -46,9 +46,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_INT_10_10_10_2_OES;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyW2XYZ10ToXYZW32FVertexData<true, false>;
vertexLoadFunction = CopyW2XYZ10ToXYZWFloatVertexData<true, false, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -56,9 +56,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_A2_RGB10_SNORM_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyW2XYZ10ToXYZW32FVertexData<true, true>;
vertexLoadFunction = CopyW2XYZ10ToXYZWFloatVertexData<true, true, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -66,9 +66,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_A2_RGB10_SSCALED_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyW2XYZ10ToXYZW32FVertexData<true, false>;
vertexLoadFunction = CopyW2XYZ10ToXYZWFloatVertexData<true, false, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -76,9 +76,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_UNSIGNED_INT_10_10_10_2_OES;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyW2XYZ10ToXYZW32FVertexData<false, false>;
vertexLoadFunction = CopyW2XYZ10ToXYZWFloatVertexData<false, false, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -86,9 +86,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_A2_RGB10_UNORM_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyW2XYZ10ToXYZW32FVertexData<false, true>;
vertexLoadFunction = CopyW2XYZ10ToXYZWFloatVertexData<false, true, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -96,9 +96,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_A2_RGB10_USCALED_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyW2XYZ10ToXYZW32FVertexData<false, false>;
vertexLoadFunction = CopyW2XYZ10ToXYZWFloatVertexData<false, false, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -1073,7 +1073,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R10G10B10A2_SINT, true, CopyNativeVertexData<GLuint, 1, 1, 0>,
false},
{angle::FormatID::R16G16B16A16_SINT, false,
CopyXYZ10W2ToXYZW32FVertexData<true, false, false>, true}};
CopyXYZ10W2ToXYZWFloatVertexData<true, false, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1086,8 +1086,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R10G10B10A2_SNORM, true,
CopyNativeVertexData<GLuint, 1, 1, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyXYZ10W2ToXYZW32FVertexData<true, true, true>, true}};
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyXYZ10W2ToXYZWFloatVertexData<true, true, true, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1100,8 +1100,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R10G10B10A2_SSCALED, true,
CopyNativeVertexData<GLuint, 1, 1, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyXYZ10W2ToXYZW32FVertexData<true, false, true>, true}};
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyXYZ10W2ToXYZWFloatVertexData<true, false, true, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1115,7 +1115,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R10G10B10A2_UINT, true, CopyNativeVertexData<GLuint, 1, 1, 0>,
false},
{angle::FormatID::R16G16B16A16_UINT, false,
CopyXYZ10W2ToXYZW32FVertexData<false, false, false>, true}};
CopyXYZ10W2ToXYZWFloatVertexData<false, false, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1138,8 +1138,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R10G10B10A2_USCALED, true,
CopyNativeVertexData<GLuint, 1, 1, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyXYZ10W2ToXYZW32FVertexData<false, false, true>, true}};
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyXYZ10W2ToXYZWFloatVertexData<false, false, true, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1193,7 +1193,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16A16_SNORM, false,
CopyNativeVertexData<GLshort, 4, 4, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLshort, 4, 4, true>, true}};
CopyToFloatVertexData<GLshort, 4, 4, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1207,7 +1207,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16A16_SSCALED, false,
CopyNativeVertexData<GLshort, 4, 4, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLshort, 4, 4, false>, true}};
CopyToFloatVertexData<GLshort, 4, 4, false, false>, true},
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyToFloatVertexData<GLshort, 4, 4, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1231,7 +1233,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16A16_UNORM, false,
CopyNativeVertexData<GLushort, 4, 4, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLushort, 4, 4, true>, true}};
CopyToFloatVertexData<GLushort, 4, 4, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1245,7 +1247,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16A16_USCALED, false,
CopyNativeVertexData<GLushort, 4, 4, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLushort, 4, 4, false>, true}};
CopyToFloatVertexData<GLushort, 4, 4, false, false>, true},
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyToFloatVertexData<GLushort, 4, 4, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1297,7 +1301,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16_SNORM, false,
CopyNativeVertexData<GLshort, 3, 3, 0>, false},
{angle::FormatID::R32G32B32_FLOAT, false,
CopyTo32FVertexData<GLshort, 3, 3, true>, true}};
CopyToFloatVertexData<GLshort, 3, 3, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1311,7 +1315,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16_SSCALED, false,
CopyNativeVertexData<GLshort, 3, 3, 0>, false},
{angle::FormatID::R32G32B32_FLOAT, false,
CopyTo32FVertexData<GLshort, 3, 3, false>, true}};
CopyToFloatVertexData<GLshort, 3, 3, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1344,7 +1348,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16_UNORM, false,
CopyNativeVertexData<GLushort, 3, 3, 0>, false},
{angle::FormatID::R32G32B32_FLOAT, false,
CopyTo32FVertexData<GLushort, 3, 3, true>, true}};
CopyToFloatVertexData<GLushort, 3, 3, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1358,7 +1362,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16B16_USCALED, false,
CopyNativeVertexData<GLushort, 3, 3, 0>, false},
{angle::FormatID::R32G32B32_FLOAT, false,
CopyTo32FVertexData<GLushort, 3, 3, false>, true}};
CopyToFloatVertexData<GLushort, 3, 3, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1391,8 +1395,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R16G16_SNORM, false, CopyNativeVertexData<GLshort, 2, 2, 0>,
false},
{angle::FormatID::R32G32_FLOAT, false, CopyTo32FVertexData<GLshort, 2, 2, true>,
true}};
{angle::FormatID::R32G32_FLOAT, false,
CopyToFloatVertexData<GLshort, 2, 2, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1406,7 +1410,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16_SSCALED, false, CopyNativeVertexData<GLshort, 2, 2, 0>,
false},
{angle::FormatID::R32G32_FLOAT, false,
CopyTo32FVertexData<GLshort, 2, 2, false>, true}};
CopyToFloatVertexData<GLshort, 2, 2, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1430,7 +1434,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16_UNORM, false, CopyNativeVertexData<GLushort, 2, 2, 0>,
false},
{angle::FormatID::R32G32_FLOAT, false,
CopyTo32FVertexData<GLushort, 2, 2, true>, true}};
CopyToFloatVertexData<GLushort, 2, 2, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1444,7 +1448,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R16G16_USCALED, false,
CopyNativeVertexData<GLushort, 2, 2, 0>, false},
{angle::FormatID::R32G32_FLOAT, false,
CopyTo32FVertexData<GLushort, 2, 2, false>, true}};
CopyToFloatVertexData<GLushort, 2, 2, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1477,8 +1481,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R16_SNORM, false, CopyNativeVertexData<GLshort, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLshort, 1, 1, true>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLshort, 1, 1, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1491,8 +1495,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R16_SSCALED, false, CopyNativeVertexData<GLshort, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLshort, 1, 1, false>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLshort, 1, 1, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1515,8 +1519,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R16_UNORM, false, CopyNativeVertexData<GLushort, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLushort, 1, 1, true>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLushort, 1, 1, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1529,8 +1533,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R16_USCALED, false, CopyNativeVertexData<GLushort, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLushort, 1, 1, false>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLushort, 1, 1, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1553,7 +1557,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyNativeVertexData<GLfloat, 4, 4, 0>, false},
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyTo32FVertexData<GLfloat, 4, 4, false>, true}};
CopyToFloatVertexData<GLfloat, 4, 4, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 1);
}
break;
......@@ -1573,7 +1577,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 4, 4, true>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 4, 4, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1582,7 +1586,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 4, 4, false>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 4, 4, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1601,7 +1605,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 4, 4, true>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 4, 4, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1610,7 +1614,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 4, 4, false>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 4, 4, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1638,7 +1642,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R32G32B32_FLOAT, false,
CopyNativeVertexData<GLfloat, 3, 3, 0>, false},
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyTo32FVertexData<GLfloat, 3, 3, false>, true}};
CopyToFloatVertexData<GLfloat, 3, 3, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 1);
}
break;
......@@ -1664,7 +1668,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 3, 3, true>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 3, 3, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1673,7 +1677,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 3, 3, false>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 3, 3, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1698,7 +1702,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 3, 3, true>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 3, 3, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1707,7 +1711,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32B32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 3, 3, false>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 3, 3, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1729,7 +1733,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R32G32_FLOAT, false, CopyNativeVertexData<GLfloat, 2, 2, 0>,
false},
{angle::FormatID::R16G16_FLOAT, false,
CopyTo32FVertexData<GLfloat, 2, 2, false>, true}};
CopyToFloatVertexData<GLfloat, 2, 2, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 1);
}
break;
......@@ -1749,7 +1753,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 2, 2, true>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 2, 2, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1758,7 +1762,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 2, 2, false>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 2, 2, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1777,7 +1781,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 2, 2, true>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 2, 2, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1786,7 +1790,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32G32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 2, 2, false>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 2, 2, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1807,8 +1811,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R32_FLOAT, false, CopyNativeVertexData<GLfloat, 1, 1, 0>,
false},
{angle::FormatID::R16_FLOAT, false, CopyTo32FVertexData<GLfloat, 1, 1, false>,
true}};
{angle::FormatID::R16_FLOAT, false,
CopyToFloatVertexData<GLfloat, 1, 1, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 1);
}
break;
......@@ -1828,7 +1832,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 1, 1, true>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 1, 1, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1837,7 +1841,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLint, 1, 1, false>;
vertexLoadFunction = CopyToFloatVertexData<GLint, 1, 1, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1856,7 +1860,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 1, 1, true>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 1, 1, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1865,7 +1869,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
actualBufferFormatID = angle::FormatID::R32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLuint, 1, 1, false>;
vertexLoadFunction = CopyToFloatVertexData<GLuint, 1, 1, false, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -1925,8 +1929,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8G8B8A8_SNORM, false, CopyNativeVertexData<GLbyte, 4, 4, 0>,
false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLbyte, 4, 4, true>, true}};
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyToFloatVertexData<GLbyte, 4, 4, true, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1939,8 +1943,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8G8B8A8_SSCALED, false,
CopyNativeVertexData<GLbyte, 4, 4, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLbyte, 4, 4, false>, true}};
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyToFloatVertexData<GLbyte, 4, 4, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1971,8 +1975,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8G8B8A8_UNORM, false, CopyNativeVertexData<GLubyte, 4, 4, 0>,
false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLubyte, 4, 4, true>, true}};
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyToFloatVertexData<GLubyte, 4, 4, true, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -1995,8 +1999,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8G8B8A8_USCALED, false,
CopyNativeVertexData<GLubyte, 4, 4, 0>, false},
{angle::FormatID::R32G32B32A32_FLOAT, false,
CopyTo32FVertexData<GLubyte, 4, 4, false>, true}};
{angle::FormatID::R16G16B16A16_FLOAT, false,
CopyToFloatVertexData<GLubyte, 4, 4, false, true>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2034,7 +2038,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R8G8B8_SNORM, false, CopyNativeVertexData<GLbyte, 3, 3, 0>,
false},
{angle::FormatID::R32G32B32_FLOAT, false,
CopyTo32FVertexData<GLbyte, 3, 3, true>, true}};
CopyToFloatVertexData<GLbyte, 3, 3, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2048,7 +2052,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R8G8B8_SSCALED, false, CopyNativeVertexData<GLbyte, 3, 3, 0>,
false},
{angle::FormatID::R32G32B32_FLOAT, false,
CopyTo32FVertexData<GLbyte, 3, 3, false>, true}};
CopyToFloatVertexData<GLbyte, 3, 3, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2078,7 +2082,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
imageInitializerFunction = Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>;
actualBufferFormatID = angle::FormatID::R32G32B32_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyTo32FVertexData<GLubyte, 3, 3, true>;
vertexLoadFunction = CopyToFloatVertexData<GLubyte, 3, 3, true, false>;
vertexLoadRequiresConversion = true;
break;
......@@ -2106,7 +2110,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R8G8B8_USCALED, false, CopyNativeVertexData<GLubyte, 3, 3, 0>,
false},
{angle::FormatID::R32G32B32_FLOAT, false,
CopyTo32FVertexData<GLubyte, 3, 3, false>, true}};
CopyToFloatVertexData<GLubyte, 3, 3, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2129,8 +2133,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8G8_SNORM, false, CopyNativeVertexData<GLbyte, 2, 2, 0>,
false},
{angle::FormatID::R32G32_FLOAT, false, CopyTo32FVertexData<GLbyte, 2, 2, true>,
true}};
{angle::FormatID::R32G32_FLOAT, false,
CopyToFloatVertexData<GLbyte, 2, 2, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2143,8 +2147,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8G8_SSCALED, false, CopyNativeVertexData<GLbyte, 2, 2, 0>,
false},
{angle::FormatID::R32G32_FLOAT, false, CopyTo32FVertexData<GLbyte, 2, 2, false>,
true}};
{angle::FormatID::R32G32_FLOAT, false,
CopyToFloatVertexData<GLbyte, 2, 2, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2167,8 +2171,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8G8_UNORM, false, CopyNativeVertexData<GLubyte, 2, 2, 0>,
false},
{angle::FormatID::R32G32_FLOAT, false, CopyTo32FVertexData<GLubyte, 2, 2, true>,
true}};
{angle::FormatID::R32G32_FLOAT, false,
CopyToFloatVertexData<GLubyte, 2, 2, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2182,7 +2186,7 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
{angle::FormatID::R8G8_USCALED, false, CopyNativeVertexData<GLubyte, 2, 2, 0>,
false},
{angle::FormatID::R32G32_FLOAT, false,
CopyTo32FVertexData<GLubyte, 2, 2, false>, true}};
CopyToFloatVertexData<GLubyte, 2, 2, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2205,8 +2209,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8_SNORM, false, CopyNativeVertexData<GLbyte, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLbyte, 1, 1, true>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLbyte, 1, 1, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2219,8 +2223,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8_SSCALED, false, CopyNativeVertexData<GLbyte, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLbyte, 1, 1, false>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLbyte, 1, 1, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2243,8 +2247,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8_UNORM, false, CopyNativeVertexData<GLubyte, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLubyte, 1, 1, true>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLubyte, 1, 1, true, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2267,8 +2271,8 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
static constexpr BufferFormatInitInfo kInfo[] = {
{angle::FormatID::R8_USCALED, false, CopyNativeVertexData<GLubyte, 1, 1, 0>,
false},
{angle::FormatID::R32_FLOAT, false, CopyTo32FVertexData<GLubyte, 1, 1, false>,
true}};
{angle::FormatID::R32_FLOAT, false,
CopyToFloatVertexData<GLubyte, 1, 1, false, false>, true}};
initBufferFallback(renderer, kInfo, ArraySize(kInfo), 2);
}
break;
......@@ -2303,9 +2307,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_X2_RGB10_SINT_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyXYZ10ToXYZW32FVertexData<true, false>;
vertexLoadFunction = CopyXYZ10ToXYZWFloatVertexData<true, false, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -2313,9 +2317,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_X2_RGB10_SNORM_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyXYZ10ToXYZW32FVertexData<true, true>;
vertexLoadFunction = CopyXYZ10ToXYZWFloatVertexData<true, true, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -2323,9 +2327,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_X2_RGB10_SSCALED_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyXYZ10ToXYZW32FVertexData<true, false>;
vertexLoadFunction = CopyXYZ10ToXYZWFloatVertexData<true, false, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -2333,9 +2337,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_X2_RGB10_UINT_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyXYZ10ToXYZW32FVertexData<false, false>;
vertexLoadFunction = CopyXYZ10ToXYZWFloatVertexData<false, false, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -2343,9 +2347,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_X2_RGB10_UNORM_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyXYZ10ToXYZW32FVertexData<false, true>;
vertexLoadFunction = CopyXYZ10ToXYZWFloatVertexData<false, true, true>;
vertexLoadRequiresConversion = true;
break;
......@@ -2353,9 +2357,9 @@ void Format::initialize(RendererVk *renderer, const angle::Format &angleFormat)
intendedGLFormat = GL_X2_RGB10_USCALED_ANGLEX;
actualImageFormatID = angle::FormatID::NONE;
imageInitializerFunction = nullptr;
actualBufferFormatID = angle::FormatID::R32G32B32A32_FLOAT;
actualBufferFormatID = angle::FormatID::R16G16B16A16_FLOAT;
vkBufferFormatIsPacked = false;
vertexLoadFunction = CopyXYZ10ToXYZW32FVertexData<false, false>;
vertexLoadFunction = CopyXYZ10ToXYZWFloatVertexData<false, false, true>;
vertexLoadRequiresConversion = true;
break;
......
......@@ -63,7 +63,6 @@ namespace
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000005.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000006.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000007.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000008.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/GenerateMipmap.comp.00000001.inc"
......@@ -224,7 +223,6 @@ constexpr CompressedShaderBlob kConvertVertex_comp_shaders[] = {
{kConvertVertex_comp_00000005, sizeof(kConvertVertex_comp_00000005)},
{kConvertVertex_comp_00000006, sizeof(kConvertVertex_comp_00000006)},
{kConvertVertex_comp_00000007, sizeof(kConvertVertex_comp_00000007)},
{kConvertVertex_comp_00000008, sizeof(kConvertVertex_comp_00000008)},
};
constexpr CompressedShaderBlob kFullScreenQuad_vert_shaders[] = {
{kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)},
......
......@@ -53,7 +53,6 @@ angle_vulkan_internal_shaders = [
"shaders/gen/ConvertVertex.comp.00000005.inc",
"shaders/gen/ConvertVertex.comp.00000006.inc",
"shaders/gen/ConvertVertex.comp.00000007.inc",
"shaders/gen/ConvertVertex.comp.00000008.inc",
"shaders/gen/FullScreenQuad.vert.00000000.inc",
"shaders/gen/GenerateMipmap.comp.00000000.inc",
"shaders/gen/GenerateMipmap.comp.00000001.inc",
......
......@@ -86,9 +86,8 @@ enum Conversion
kUnormToFloat = 0x00000005,
kFixedToFloat = 0x00000006,
kFloatToFloat = 0x00000007,
kFloatToHalf = 0x00000008,
};
constexpr size_t kArrayLen = 0x00000009;
constexpr size_t kArrayLen = 0x00000008;
} // namespace ConvertVertex_comp
namespace FullScreenQuad_vert
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment