Commit d4c75347 by Hyunchang Kim Committed by Commit Bot

Vulkan: Enable GPU conversion from RGB16F to RGBA16F

- Add proper GPU conversion routine when the source and destination format of vertex attribute is half float data type. - Add an end2end test which utilizes half float GPU conversion path. Bug: angleproject:3802 Test: angle_end2end_tests --gtest_filter=*VertexAttributeTest.HalfFloatBuffer* Change-Id: Ia88a4984156f8967796bea3852c3cde714f2acab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1824799Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
parent 096b08fa
......@@ -169,6 +169,10 @@
"d6cfcf49825f3da242d0f8935b0e30f6",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc":
"59e6c4a829283dc6db1664bb397ed6a2",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002A.inc":
"4090206500b8e40b293de75230b1b532",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002B.inc":
"35ac7eddef7947f070b4f8419674f048",
"src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc":
"235ca7c3979ce29a49c320d000ee7409",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc":
......@@ -280,7 +284,7 @@
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp":
"ca35df77d258baa0636529d1f0f446a9",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
"debe6949313d7c23395e603a5f01162c",
"88d434e43a01906e6a6b1dd5d5e45cdc",
"src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
"805ec8b2f87d4bd4242dc5b1c58ba3b4",
"src/libANGLE/renderer/vulkan/shaders/src/ImageClear.frag":
......@@ -292,9 +296,9 @@
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp":
"dcc246b398b2e07a869a264666499362",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"0e9742f5a784d2b43f5ca758cb23719a",
"c38ca374f8af3ce9a394b7170747cb27",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"996dc7cf95d03551b55a903b2c8ac755",
"c1fdbaf6ed5605cd453eb94276e9c990",
"tools/glslang/glslang_validator.exe.sha1":
"289f30598865a987a21b79ae525fc66f",
"tools/glslang/glslang_validator.sha1":
......
......@@ -57,6 +57,7 @@ struct Format final : private angle::NonCopyable
constexpr bool isSnorm() const;
constexpr bool isUnorm() const;
constexpr bool isFloat() const;
constexpr bool isVertexTypeHalfFloat() const;
constexpr bool isInt() const { return isSint() || isUint(); }
constexpr bool isNorm() const { return isSnorm() || isUnorm(); }
......@@ -209,6 +210,11 @@ constexpr bool Format::isFloat() const
return componentType == GL_FLOAT;
}
constexpr bool Format::isVertexTypeHalfFloat() const
{
return vertexAttribType == gl::VertexAttribType::HalfFloat;
}
} // namespace angle
#endif // LIBANGLE_RENDERER_FORMAT_H_
......@@ -90,15 +90,20 @@ uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
((params.srcFormat->vertexAttribType == gl::VertexAttribType::UnsignedInt1010102) ||
params.srcFormat->vertexAttribType == gl::VertexAttribType::Int1010102) &&
!params.srcFormat->alphaBits;
bool destIsSint = params.destFormat->isSint();
bool destIsUint = params.destFormat->isUint();
bool destIsFloat = params.destFormat->isFloat();
bool srcIsHalfFloat = params.srcFormat->isVertexTypeHalfFloat();
bool destIsSint = params.destFormat->isSint();
bool destIsUint = params.destFormat->isUint();
bool destIsFloat = params.destFormat->isFloat();
bool destIsHalfFloat = params.destFormat->isVertexTypeHalfFloat();
// Assert on the types to make sure the shader supports its. These are based on
// ConvertVertex_comp::Conversion values.
ASSERT(!destIsSint || srcIsSint); // If destination is sint, src must be sint too
ASSERT(!destIsUint || srcIsUint); // If destination is uint, src must be uint too
ASSERT(!srcIsFixed || destIsFloat); // If source is fixed, dest must be float
ASSERT(srcIsHalfFloat == destIsHalfFloat); // Both src and dest are half float or neither
// One of each bool set must be true
ASSERT(srcIsSint || srcIsUint || srcIsSnorm || srcIsUnorm || srcIsFixed || srcIsFloat);
ASSERT(destIsSint || destIsUint || destIsFloat);
......@@ -187,6 +192,10 @@ uint32_t GetConvertVertexFlags(const UtilsVk::ConvertVertexParameters &params)
UNREACHABLE();
}
}
else if (srcIsHalfFloat && destIsHalfFloat)
{
flags |= ConvertVertex_comp::kHalfFloatToHalfFloat;
}
else if (srcIsSint && destIsSint)
{
flags |= ConvertVertex_comp::kSintToSint;
......
// 7.12.3226
#pragma once
const uint32_t kConvertVertex_comp_0000002A[] = {
0x07230203,0x00010000,0x00080007,0x0000011d,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000000d9,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000b,0x53746567,0x6372756f,0x6d6f4365,
0x656e6f70,0x664f746e,0x74657366,0x3b317528,0x003b3175,0x00040005,0x00000009,0x74726576,
0x00007865,0x00050005,0x0000000a,0x706d6f63,0x6e656e6f,0x00000074,0x000c0005,0x0000000f,
0x44746567,0x69747365,0x6974616e,0x6f436e6f,0x6e6f706d,0x4f746e65,0x65736666,0x31752874,
0x3b31753b,0x00000000,0x00040005,0x0000000d,0x74726576,0x00007865,0x00050005,0x0000000e,
0x706d6f63,0x6e656e6f,0x00000074,0x00070005,0x00000013,0x53746567,0x74666968,0x73746942,
0x3b317528,0x003b3175,0x00040005,0x00000011,0x7366666f,0x00007465,0x00030005,0x00000012,
0x00000042,0x00080005,0x00000017,0x64616f6c,0x72756f53,0x6f436563,0x6e6f706d,0x28746e65,
0x003b3175,0x00030005,0x00000016,0x00006463,0x00080005,0x0000001a,0x766e6f63,0x43747265,
0x6f706d6f,0x746e656e,0x3b317528,0x00000000,0x00050005,0x00000019,0x56637273,0x65756c61,
0x00000000,0x000a0005,0x0000001e,0x656b616d,0x74736544,0x74616e69,0x436e6f69,0x6f706d6f,
0x746e656e,0x3b317528,0x003b3175,0x00030005,0x0000001c,0x00006463,0x00040005,0x0000001d,
0x756c6176,0x00000065,0x000a0005,0x00000022,0x726f7473,0x73654465,0x616e6974,0x6e6f6974,
0x706d6f43,0x6e656e6f,0x75287374,0x00003b31,0x00050005,0x00000021,0x756c6176,0x55734165,
0x00746e69,0x00060005,0x00000025,0x68737550,0x736e6f43,0x746e6174,0x00000073,0x00060006,
0x00000025,0x00000000,0x7074756f,0x6f437475,0x00746e75,0x00070006,0x00000025,0x00000001,
0x706d6f63,0x6e656e6f,0x756f4374,0x0000746e,0x00060006,0x00000025,0x00000002,0x4f637273,
0x65736666,0x00000074,0x00060006,0x00000025,0x00000003,0x74736564,0x7366664f,0x00007465,
0x00040006,0x00000025,0x00000004,0x0000734e,0x00040006,0x00000025,0x00000005,0x00007342,
0x00040006,0x00000025,0x00000006,0x00007353,0x00040006,0x00000025,0x00000007,0x00007345,
0x00040006,0x00000025,0x00000008,0x0000644e,0x00040006,0x00000025,0x00000009,0x00006442,
0x00040006,0x00000025,0x0000000a,0x00006453,0x00040006,0x00000025,0x0000000b,0x00006445,
0x00040005,0x00000027,0x61726170,0x0000736d,0x00040005,0x0000004b,0x66696873,0x00000074,
0x00040005,0x00000054,0x74726576,0x00007865,0x00050005,0x0000005a,0x706d6f63,0x6e656e6f,
0x00000074,0x00040005,0x00000069,0x7366666f,0x00007465,0x00040005,0x0000006a,0x61726170,
0x0000006d,0x00040005,0x0000006c,0x61726170,0x0000006d,0x00040005,0x0000006f,0x636f6c62,
0x0000006b,0x00030005,0x00000071,0x00637273,0x00050006,0x00000071,0x00000000,0x44637273,
0x00617461,0x00030005,0x00000073,0x00000000,0x00050005,0x0000007a,0x66696873,0x74694274,
0x00000073,0x00040005,0x0000007b,0x61726170,0x0000006d,0x00040005,0x0000007d,0x61726170,
0x0000006d,0x00050005,0x00000081,0x756c6176,0x74694265,0x00000073,0x00050005,0x00000085,
0x756c6176,0x73614d65,0x0000006b,0x00050005,0x00000095,0x756c6176,0x55734165,0x00746e69,
0x00040005,0x0000009b,0x756c6176,0x00000065,0x00040005,0x000000a3,0x74726576,0x00007865,
0x00050005,0x000000a8,0x706d6f63,0x6e656e6f,0x00000074,0x00040005,0x000000ad,0x7366666f,
0x00007465,0x00040005,0x000000ae,0x61726170,0x0000006d,0x00040005,0x000000b0,0x61726170,
0x0000006d,0x00050005,0x000000b3,0x66696873,0x74694274,0x00000073,0x00040005,0x000000b4,
0x61726170,0x0000006d,0x00040005,0x000000b6,0x61726170,0x0000006d,0x00050005,0x000000ba,
0x756c6176,0x74694265,0x00000073,0x00050005,0x000000be,0x756c6176,0x73614d65,0x0000006b,
0x00050005,0x000000ca,0x756c6176,0x55734165,0x00746e69,0x00040005,0x000000d4,0x74736564,
0x00000000,0x00060006,0x000000d4,0x00000000,0x74736564,0x61746144,0x00000000,0x00030005,
0x000000d6,0x00000000,0x00080005,0x000000d9,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
0x496e6f69,0x00000044,0x00050005,0x000000eb,0x756c6176,0x74754f65,0x00000000,0x00030005,
0x000000ec,0x00000069,0x00030005,0x000000f7,0x00006463,0x00050005,0x00000106,0x56637273,
0x65756c61,0x00000000,0x00040005,0x00000107,0x61726170,0x0000006d,0x00050005,0x0000010a,
0x74736564,0x756c6156,0x00000065,0x00040005,0x0000010b,0x61726170,0x0000006d,0x00040005,
0x0000010e,0x61726170,0x0000006d,0x00040005,0x00000110,0x61726170,0x0000006d,0x00040005,
0x00000117,0x61726170,0x0000006d,0x00050048,0x00000025,0x00000000,0x00000023,0x00000000,
0x00050048,0x00000025,0x00000001,0x00000023,0x00000004,0x00050048,0x00000025,0x00000002,
0x00000023,0x00000008,0x00050048,0x00000025,0x00000003,0x00000023,0x0000000c,0x00050048,
0x00000025,0x00000004,0x00000023,0x00000010,0x00050048,0x00000025,0x00000005,0x00000023,
0x00000014,0x00050048,0x00000025,0x00000006,0x00000023,0x00000018,0x00050048,0x00000025,
0x00000007,0x00000023,0x0000001c,0x00050048,0x00000025,0x00000008,0x00000023,0x00000020,
0x00050048,0x00000025,0x00000009,0x00000023,0x00000024,0x00050048,0x00000025,0x0000000a,
0x00000023,0x00000028,0x00050048,0x00000025,0x0000000b,0x00000023,0x0000002c,0x00030047,
0x00000025,0x00000002,0x00040047,0x00000070,0x00000006,0x00000004,0x00050048,0x00000071,
0x00000000,0x00000023,0x00000000,0x00030047,0x00000071,0x00000003,0x00040047,0x00000073,
0x00000022,0x00000000,0x00040047,0x00000073,0x00000021,0x00000001,0x00040047,0x000000d3,
0x00000006,0x00000004,0x00050048,0x000000d4,0x00000000,0x00000023,0x00000000,0x00030047,
0x000000d4,0x00000003,0x00040047,0x000000d6,0x00000022,0x00000000,0x00040047,0x000000d6,
0x00000021,0x00000000,0x00040047,0x000000d9,0x0000000b,0x0000001c,0x00040047,0x0000011c,
0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,
0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00050021,
0x00000008,0x00000006,0x00000007,0x00000007,0x00040021,0x00000015,0x00000006,0x00000007,
0x00040021,0x00000020,0x00000002,0x00000007,0x000e001e,0x00000025,0x00000006,0x00000006,
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
0x00000006,0x00000006,0x00040020,0x00000026,0x00000009,0x00000025,0x0004003b,0x00000026,
0x00000027,0x00000009,0x00040015,0x00000028,0x00000020,0x00000001,0x0004002b,0x00000028,
0x00000029,0x00000006,0x00040020,0x0000002a,0x00000009,0x00000006,0x0004002b,0x00000028,
0x0000002f,0x00000005,0x0004002b,0x00000028,0x00000034,0x00000002,0x0004002b,0x00000028,
0x0000003b,0x0000000a,0x0004002b,0x00000028,0x00000040,0x00000009,0x0004002b,0x00000028,
0x00000045,0x00000003,0x0004002b,0x00000006,0x0000004d,0x00000004,0x0004002b,0x00000006,
0x0000004f,0x00000008,0x0004002b,0x00000028,0x00000056,0x00000008,0x0004002b,0x00000028,
0x00000060,0x00000004,0x00020014,0x00000063,0x0004002b,0x00000006,0x00000067,0x00000000,
0x0003001d,0x00000070,0x00000006,0x0003001e,0x00000071,0x00000070,0x00040020,0x00000072,
0x00000002,0x00000071,0x0004003b,0x00000072,0x00000073,0x00000002,0x0004002b,0x00000028,
0x00000074,0x00000000,0x00040020,0x00000077,0x00000002,0x00000006,0x0004002b,0x00000006,
0x00000087,0x00000020,0x00040020,0x00000089,0x00000007,0x00000028,0x0004002b,0x00000028,
0x0000008d,0xffffffff,0x0004002b,0x00000028,0x0000008f,0x00000001,0x0003001d,0x000000d3,
0x00000006,0x0003001e,0x000000d4,0x000000d3,0x00040020,0x000000d5,0x00000002,0x000000d4,
0x0004003b,0x000000d5,0x000000d6,0x00000002,0x00040017,0x000000d7,0x00000006,0x00000003,
0x00040020,0x000000d8,0x00000001,0x000000d7,0x0004003b,0x000000d8,0x000000d9,0x00000001,
0x00040020,0x000000da,0x00000001,0x00000006,0x0004002b,0x00000028,0x000000f3,0x0000000b,
0x0004002b,0x00000006,0x0000011a,0x00000040,0x0004002b,0x00000006,0x0000011b,0x00000001,
0x0006002c,0x000000d7,0x0000011c,0x0000011a,0x0000011b,0x0000011b,0x00050036,0x00000002,
0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x000000eb,
0x00000007,0x0004003b,0x00000007,0x000000ec,0x00000007,0x0004003b,0x00000007,0x000000f7,
0x00000007,0x0004003b,0x00000007,0x00000106,0x00000007,0x0004003b,0x00000007,0x00000107,
0x00000007,0x0004003b,0x00000007,0x0000010a,0x00000007,0x0004003b,0x00000007,0x0000010b,
0x00000007,0x0004003b,0x00000007,0x0000010e,0x00000007,0x0004003b,0x00000007,0x00000110,
0x00000007,0x0004003b,0x00000007,0x00000117,0x00000007,0x00050041,0x000000da,0x000000e3,
0x000000d9,0x00000067,0x0004003d,0x00000006,0x000000e4,0x000000e3,0x00050041,0x0000002a,
0x000000e5,0x00000027,0x00000074,0x0004003d,0x00000006,0x000000e6,0x000000e5,0x000500ae,
0x00000063,0x000000e7,0x000000e4,0x000000e6,0x000300f7,0x000000e9,0x00000000,0x000400fa,
0x000000e7,0x000000e8,0x000000e9,0x000200f8,0x000000e8,0x000100fd,0x000200f8,0x000000e9,
0x0003003e,0x000000eb,0x00000067,0x0003003e,0x000000ec,0x00000067,0x000200f9,0x000000ed,
0x000200f8,0x000000ed,0x000400f6,0x000000ef,0x000000f0,0x00000000,0x000200f9,0x000000f1,
0x000200f8,0x000000f1,0x0004003d,0x00000006,0x000000f2,0x000000ec,0x00050041,0x0000002a,
0x000000f4,0x00000027,0x000000f3,0x0004003d,0x00000006,0x000000f5,0x000000f4,0x000500b0,
0x00000063,0x000000f6,0x000000f2,0x000000f5,0x000400fa,0x000000f6,0x000000ee,0x000000ef,
0x000200f8,0x000000ee,0x00050041,0x000000da,0x000000f8,0x000000d9,0x00000067,0x0004003d,
0x00000006,0x000000f9,0x000000f8,0x00050041,0x0000002a,0x000000fa,0x00000027,0x000000f3,
0x0004003d,0x00000006,0x000000fb,0x000000fa,0x00050084,0x00000006,0x000000fc,0x000000f9,
0x000000fb,0x0004003d,0x00000006,0x000000fd,0x000000ec,0x00050080,0x00000006,0x000000fe,
0x000000fc,0x000000fd,0x0003003e,0x000000f7,0x000000fe,0x0004003d,0x00000006,0x000000ff,
0x000000f7,0x00050041,0x0000002a,0x00000100,0x00000027,0x0000008f,0x0004003d,0x00000006,
0x00000101,0x00000100,0x000500ae,0x00000063,0x00000102,0x000000ff,0x00000101,0x000300f7,
0x00000104,0x00000000,0x000400fa,0x00000102,0x00000103,0x00000104,0x000200f8,0x00000103,
0x000200f9,0x000000ef,0x000200f8,0x00000104,0x0004003d,0x00000006,0x00000108,0x000000f7,
0x0003003e,0x00000107,0x00000108,0x00050039,0x00000006,0x00000109,0x00000017,0x00000107,
0x0003003e,0x00000106,0x00000109,0x0004003d,0x00000006,0x0000010c,0x00000106,0x0003003e,
0x0000010b,0x0000010c,0x00050039,0x00000006,0x0000010d,0x0000001a,0x0000010b,0x0003003e,
0x0000010a,0x0000010d,0x0004003d,0x00000006,0x0000010f,0x000000f7,0x0003003e,0x0000010e,
0x0000010f,0x0004003d,0x00000006,0x00000111,0x0000010a,0x0003003e,0x00000110,0x00000111,
0x00060039,0x00000006,0x00000112,0x0000001e,0x0000010e,0x00000110,0x0004003d,0x00000006,
0x00000113,0x000000eb,0x000500c5,0x00000006,0x00000114,0x00000113,0x00000112,0x0003003e,
0x000000eb,0x00000114,0x000200f9,0x000000f0,0x000200f8,0x000000f0,0x0004003d,0x00000006,
0x00000115,0x000000ec,0x00050080,0x00000006,0x00000116,0x00000115,0x0000008f,0x0003003e,
0x000000ec,0x00000116,0x000200f9,0x000000ed,0x000200f8,0x000000ef,0x0004003d,0x00000006,
0x00000118,0x000000eb,0x0003003e,0x00000117,0x00000118,0x00050039,0x00000002,0x00000119,
0x00000022,0x00000117,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000b,0x00000000,
0x00000008,0x00030037,0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,
0x0000000c,0x0004003d,0x00000006,0x00000024,0x00000009,0x00050041,0x0000002a,0x0000002b,
0x00000027,0x00000029,0x0004003d,0x00000006,0x0000002c,0x0000002b,0x00050084,0x00000006,
0x0000002d,0x00000024,0x0000002c,0x0004003d,0x00000006,0x0000002e,0x0000000a,0x00050041,
0x0000002a,0x00000030,0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000031,0x00000030,
0x00050084,0x00000006,0x00000032,0x0000002e,0x00000031,0x00050080,0x00000006,0x00000033,
0x0000002d,0x00000032,0x00050041,0x0000002a,0x00000035,0x00000027,0x00000034,0x0004003d,
0x00000006,0x00000036,0x00000035,0x00050080,0x00000006,0x00000037,0x00000033,0x00000036,
0x000200fe,0x00000037,0x00010038,0x00050036,0x00000006,0x0000000f,0x00000000,0x00000008,
0x00030037,0x00000007,0x0000000d,0x00030037,0x00000007,0x0000000e,0x000200f8,0x00000010,
0x0004003d,0x00000006,0x0000003a,0x0000000d,0x00050041,0x0000002a,0x0000003c,0x00000027,
0x0000003b,0x0004003d,0x00000006,0x0000003d,0x0000003c,0x00050084,0x00000006,0x0000003e,
0x0000003a,0x0000003d,0x0004003d,0x00000006,0x0000003f,0x0000000e,0x00050041,0x0000002a,
0x00000041,0x00000027,0x00000040,0x0004003d,0x00000006,0x00000042,0x00000041,0x00050084,
0x00000006,0x00000043,0x0000003f,0x00000042,0x00050080,0x00000006,0x00000044,0x0000003e,
0x00000043,0x00050041,0x0000002a,0x00000046,0x00000027,0x00000045,0x0004003d,0x00000006,
0x00000047,0x00000046,0x00050080,0x00000006,0x00000048,0x00000044,0x00000047,0x000200fe,
0x00000048,0x00010038,0x00050036,0x00000006,0x00000013,0x00000000,0x00000008,0x00030037,
0x00000007,0x00000011,0x00030037,0x00000007,0x00000012,0x000200f8,0x00000014,0x0004003b,
0x00000007,0x0000004b,0x00000007,0x0004003d,0x00000006,0x0000004c,0x00000011,0x00050089,
0x00000006,0x0000004e,0x0000004c,0x0000004d,0x00050084,0x00000006,0x00000050,0x0000004e,
0x0000004f,0x0003003e,0x0000004b,0x00000050,0x0004003d,0x00000006,0x00000051,0x0000004b,
0x000200fe,0x00000051,0x00010038,0x00050036,0x00000006,0x00000017,0x00000000,0x00000015,
0x00030037,0x00000007,0x00000016,0x000200f8,0x00000018,0x0004003b,0x00000007,0x00000054,
0x00000007,0x0004003b,0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x00000069,
0x00000007,0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x0000006c,
0x00000007,0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,0x00000007,0x0000007a,
0x00000007,0x0004003b,0x00000007,0x0000007b,0x00000007,0x0004003b,0x00000007,0x0000007d,
0x00000007,0x0004003b,0x00000007,0x00000081,0x00000007,0x0004003b,0x00000007,0x00000085,
0x00000007,0x0004003b,0x00000089,0x0000008a,0x00000007,0x0004003b,0x00000007,0x00000095,
0x00000007,0x0004003b,0x00000007,0x0000009b,0x00000007,0x0004003d,0x00000006,0x00000055,
0x00000016,0x00050041,0x0000002a,0x00000057,0x00000027,0x00000056,0x0004003d,0x00000006,
0x00000058,0x00000057,0x00050086,0x00000006,0x00000059,0x00000055,0x00000058,0x0003003e,
0x00000054,0x00000059,0x0004003d,0x00000006,0x0000005b,0x00000016,0x00050041,0x0000002a,
0x0000005c,0x00000027,0x00000056,0x0004003d,0x00000006,0x0000005d,0x0000005c,0x00050089,
0x00000006,0x0000005e,0x0000005b,0x0000005d,0x0003003e,0x0000005a,0x0000005e,0x0004003d,
0x00000006,0x0000005f,0x0000005a,0x00050041,0x0000002a,0x00000061,0x00000027,0x00000060,
0x0004003d,0x00000006,0x00000062,0x00000061,0x000500ae,0x00000063,0x00000064,0x0000005f,
0x00000062,0x000300f7,0x00000066,0x00000000,0x000400fa,0x00000064,0x00000065,0x00000066,
0x000200f8,0x00000065,0x000200fe,0x00000067,0x000200f8,0x00000066,0x0004003d,0x00000006,
0x0000006b,0x00000054,0x0003003e,0x0000006a,0x0000006b,0x0004003d,0x00000006,0x0000006d,
0x0000005a,0x0003003e,0x0000006c,0x0000006d,0x00060039,0x00000006,0x0000006e,0x0000000b,
0x0000006a,0x0000006c,0x0003003e,0x00000069,0x0000006e,0x0004003d,0x00000006,0x00000075,
0x00000069,0x00050086,0x00000006,0x00000076,0x00000075,0x0000004d,0x00060041,0x00000077,
0x00000078,0x00000073,0x00000074,0x00000076,0x0004003d,0x00000006,0x00000079,0x00000078,
0x0003003e,0x0000006f,0x00000079,0x0004003d,0x00000006,0x0000007c,0x00000069,0x0003003e,
0x0000007b,0x0000007c,0x00050041,0x0000002a,0x0000007e,0x00000027,0x0000002f,0x0004003d,
0x00000006,0x0000007f,0x0000007e,0x0003003e,0x0000007d,0x0000007f,0x00060039,0x00000006,
0x00000080,0x00000013,0x0000007b,0x0000007d,0x0003003e,0x0000007a,0x00000080,0x00050041,
0x0000002a,0x00000082,0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000083,0x00000082,
0x00050084,0x00000006,0x00000084,0x00000083,0x0000004f,0x0003003e,0x00000081,0x00000084,
0x0004003d,0x00000006,0x00000086,0x00000081,0x000500aa,0x00000063,0x00000088,0x00000086,
0x00000087,0x000300f7,0x0000008c,0x00000000,0x000400fa,0x00000088,0x0000008b,0x0000008e,
0x000200f8,0x0000008b,0x0003003e,0x0000008a,0x0000008d,0x000200f9,0x0000008c,0x000200f8,
0x0000008e,0x0004003d,0x00000006,0x00000090,0x00000081,0x000500c4,0x00000028,0x00000091,
0x0000008f,0x00000090,0x00050082,0x00000028,0x00000092,0x00000091,0x0000008f,0x0003003e,
0x0000008a,0x00000092,0x000200f9,0x0000008c,0x000200f8,0x0000008c,0x0004003d,0x00000028,
0x00000093,0x0000008a,0x0004007c,0x00000006,0x00000094,0x00000093,0x0003003e,0x00000085,
0x00000094,0x0004003d,0x00000006,0x00000096,0x0000006f,0x0004003d,0x00000006,0x00000097,
0x0000007a,0x000500c2,0x00000006,0x00000098,0x00000096,0x00000097,0x0004003d,0x00000006,
0x00000099,0x00000085,0x000500c7,0x00000006,0x0000009a,0x00000098,0x00000099,0x0003003e,
0x00000095,0x0000009a,0x0004003d,0x00000006,0x0000009c,0x00000095,0x0003003e,0x0000009b,
0x0000009c,0x0004003d,0x00000006,0x0000009d,0x0000009b,0x000200fe,0x0000009d,0x00010038,
0x00050036,0x00000006,0x0000001a,0x00000000,0x00000015,0x00030037,0x00000007,0x00000019,
0x000200f8,0x0000001b,0x0004003d,0x00000006,0x000000a0,0x00000019,0x000200fe,0x000000a0,
0x00010038,0x00050036,0x00000006,0x0000001e,0x00000000,0x00000008,0x00030037,0x00000007,
0x0000001c,0x00030037,0x00000007,0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x00000007,
0x000000a3,0x00000007,0x0004003b,0x00000007,0x000000a8,0x00000007,0x0004003b,0x00000007,
0x000000ad,0x00000007,0x0004003b,0x00000007,0x000000ae,0x00000007,0x0004003b,0x00000007,
0x000000b0,0x00000007,0x0004003b,0x00000007,0x000000b3,0x00000007,0x0004003b,0x00000007,
0x000000b4,0x00000007,0x0004003b,0x00000007,0x000000b6,0x00000007,0x0004003b,0x00000007,
0x000000ba,0x00000007,0x0004003b,0x00000007,0x000000be,0x00000007,0x0004003b,0x00000089,
0x000000c1,0x00000007,0x0004003b,0x00000007,0x000000ca,0x00000007,0x0004003d,0x00000006,
0x000000a4,0x0000001c,0x00050041,0x0000002a,0x000000a5,0x00000027,0x00000056,0x0004003d,
0x00000006,0x000000a6,0x000000a5,0x00050086,0x00000006,0x000000a7,0x000000a4,0x000000a6,
0x0003003e,0x000000a3,0x000000a7,0x0004003d,0x00000006,0x000000a9,0x0000001c,0x00050041,
0x0000002a,0x000000aa,0x00000027,0x00000056,0x0004003d,0x00000006,0x000000ab,0x000000aa,
0x00050089,0x00000006,0x000000ac,0x000000a9,0x000000ab,0x0003003e,0x000000a8,0x000000ac,
0x0004003d,0x00000006,0x000000af,0x000000a3,0x0003003e,0x000000ae,0x000000af,0x0004003d,
0x00000006,0x000000b1,0x000000a8,0x0003003e,0x000000b0,0x000000b1,0x00060039,0x00000006,
0x000000b2,0x0000000f,0x000000ae,0x000000b0,0x0003003e,0x000000ad,0x000000b2,0x0004003d,
0x00000006,0x000000b5,0x000000ad,0x0003003e,0x000000b4,0x000000b5,0x00050041,0x0000002a,
0x000000b7,0x00000027,0x00000040,0x0004003d,0x00000006,0x000000b8,0x000000b7,0x0003003e,
0x000000b6,0x000000b8,0x00060039,0x00000006,0x000000b9,0x00000013,0x000000b4,0x000000b6,
0x0003003e,0x000000b3,0x000000b9,0x00050041,0x0000002a,0x000000bb,0x00000027,0x00000040,
0x0004003d,0x00000006,0x000000bc,0x000000bb,0x00050084,0x00000006,0x000000bd,0x000000bc,
0x0000004f,0x0003003e,0x000000ba,0x000000bd,0x0004003d,0x00000006,0x000000bf,0x000000ba,
0x000500aa,0x00000063,0x000000c0,0x000000bf,0x00000087,0x000300f7,0x000000c3,0x00000000,
0x000400fa,0x000000c0,0x000000c2,0x000000c4,0x000200f8,0x000000c2,0x0003003e,0x000000c1,
0x0000008d,0x000200f9,0x000000c3,0x000200f8,0x000000c4,0x0004003d,0x00000006,0x000000c5,
0x000000ba,0x000500c4,0x00000028,0x000000c6,0x0000008f,0x000000c5,0x00050082,0x00000028,
0x000000c7,0x000000c6,0x0000008f,0x0003003e,0x000000c1,0x000000c7,0x000200f9,0x000000c3,
0x000200f8,0x000000c3,0x0004003d,0x00000028,0x000000c8,0x000000c1,0x0004007c,0x00000006,
0x000000c9,0x000000c8,0x0003003e,0x000000be,0x000000c9,0x0004003d,0x00000006,0x000000cb,
0x0000001d,0x0004003d,0x00000006,0x000000cc,0x000000be,0x000500c7,0x00000006,0x000000cd,
0x000000cb,0x000000cc,0x0004003d,0x00000006,0x000000ce,0x000000b3,0x000500c4,0x00000006,
0x000000cf,0x000000cd,0x000000ce,0x0003003e,0x000000ca,0x000000cf,0x0004003d,0x00000006,
0x000000d0,0x000000ca,0x000200fe,0x000000d0,0x00010038,0x00050036,0x00000002,0x00000022,
0x00000000,0x00000020,0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,0x00050041,
0x000000da,0x000000db,0x000000d9,0x00000067,0x0004003d,0x00000006,0x000000dc,0x000000db,
0x00050041,0x0000002a,0x000000dd,0x00000027,0x00000045,0x0004003d,0x00000006,0x000000de,
0x000000dd,0x00050086,0x00000006,0x000000df,0x000000de,0x0000004d,0x00050080,0x00000006,
0x000000e0,0x000000dc,0x000000df,0x0004003d,0x00000006,0x000000e1,0x00000021,0x00060041,
0x00000077,0x000000e2,0x000000d6,0x00000074,0x000000e0,0x0003003e,0x000000e2,0x000000e1,
0x000100fd,0x00010038
};
// 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;
// } 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;
// }
//
// uint loadSourceComponent(uint cd)
// {
//
// uint vertex = cd / params . Nd;
// uint component = cd % params . Nd;
//
// if(component >= params . Ns)
// {
// return 0;
// }
//
// uint offset = getSourceComponentOffset(vertex, component);
// uint block = srcData[offset / 4];
//
// uint shiftBits = getShiftBits(offset, params . Bs);
// uint valueBits = params . Bs * 8;
// uint valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1;
//
// uint valueAsUint =(block >> shiftBits)& valueMask;
//
// uint value = valueAsUint;
//
// return value;
// }
//
// uint convertComponent(uint srcValue)
// {
//
// return srcValue;
// }
//
// uint makeDestinationComponent(uint cd, uint value)
// {
//
// uint vertex = cd / params . Nd;
// uint component = cd % params . Nd;
//
// uint offset = getDestinationComponentOffset(vertex, component);
// uint shiftBits = getShiftBits(offset, params . Bd);
//
// uint valueBits = params . Bd * 8;
// uint valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1;
// uint valueAsUint =(uint(value)& valueMask)<< shiftBits;
//
// 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;
// }
//
// uint srcValue = loadSourceComponent(cd);
// uint destValue = convertComponent(srcValue);
// valueOut |= makeDestinationComponent(cd, destValue);
// }
//
// storeDestinationComponents(valueOut);
// }
// 7.12.3226
#pragma once
const uint32_t kConvertVertex_comp_0000002B[] = {
0x07230203,0x00010000,0x00080007,0x0000010e,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x000000d9,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
0x00000004,0x6e69616d,0x00000000,0x000a0005,0x0000000b,0x53746567,0x6372756f,0x6d6f4365,
0x656e6f70,0x664f746e,0x74657366,0x3b317528,0x003b3175,0x00040005,0x00000009,0x74726576,
0x00007865,0x00050005,0x0000000a,0x706d6f63,0x6e656e6f,0x00000074,0x000c0005,0x0000000f,
0x44746567,0x69747365,0x6974616e,0x6f436e6f,0x6e6f706d,0x4f746e65,0x65736666,0x31752874,
0x3b31753b,0x00000000,0x00040005,0x0000000d,0x74726576,0x00007865,0x00050005,0x0000000e,
0x706d6f63,0x6e656e6f,0x00000074,0x00070005,0x00000013,0x53746567,0x74666968,0x73746942,
0x3b317528,0x003b3175,0x00040005,0x00000011,0x7366666f,0x00007465,0x00030005,0x00000012,
0x00000042,0x00080005,0x00000017,0x64616f6c,0x72756f53,0x6f436563,0x6e6f706d,0x28746e65,
0x003b3175,0x00030005,0x00000016,0x00006463,0x00080005,0x0000001a,0x766e6f63,0x43747265,
0x6f706d6f,0x746e656e,0x3b317528,0x00000000,0x00050005,0x00000019,0x56637273,0x65756c61,
0x00000000,0x000a0005,0x0000001e,0x656b616d,0x74736544,0x74616e69,0x436e6f69,0x6f706d6f,
0x746e656e,0x3b317528,0x003b3175,0x00030005,0x0000001c,0x00006463,0x00040005,0x0000001d,
0x756c6176,0x00000065,0x000a0005,0x00000022,0x726f7473,0x73654465,0x616e6974,0x6e6f6974,
0x706d6f43,0x6e656e6f,0x75287374,0x00003b31,0x00050005,0x00000021,0x756c6176,0x55734165,
0x00746e69,0x00060005,0x00000025,0x68737550,0x736e6f43,0x746e6174,0x00000073,0x00060006,
0x00000025,0x00000000,0x7074756f,0x6f437475,0x00746e75,0x00070006,0x00000025,0x00000001,
0x706d6f63,0x6e656e6f,0x756f4374,0x0000746e,0x00060006,0x00000025,0x00000002,0x4f637273,
0x65736666,0x00000074,0x00060006,0x00000025,0x00000003,0x74736564,0x7366664f,0x00007465,
0x00040006,0x00000025,0x00000004,0x0000734e,0x00040006,0x00000025,0x00000005,0x00007342,
0x00040006,0x00000025,0x00000006,0x00007353,0x00040006,0x00000025,0x00000007,0x00007345,
0x00040006,0x00000025,0x00000008,0x0000644e,0x00040006,0x00000025,0x00000009,0x00006442,
0x00040006,0x00000025,0x0000000a,0x00006453,0x00040006,0x00000025,0x0000000b,0x00006445,
0x00040005,0x00000027,0x61726170,0x0000736d,0x00040005,0x0000004b,0x66696873,0x00000074,
0x00040005,0x00000054,0x74726576,0x00007865,0x00050005,0x0000005a,0x706d6f63,0x6e656e6f,
0x00000074,0x00040005,0x00000069,0x7366666f,0x00007465,0x00040005,0x0000006a,0x61726170,
0x0000006d,0x00040005,0x0000006c,0x61726170,0x0000006d,0x00040005,0x0000006f,0x636f6c62,
0x0000006b,0x00030005,0x00000071,0x00637273,0x00050006,0x00000071,0x00000000,0x44637273,
0x00617461,0x00030005,0x00000073,0x00000000,0x00050005,0x0000007a,0x66696873,0x74694274,
0x00000073,0x00040005,0x0000007b,0x61726170,0x0000006d,0x00040005,0x0000007d,0x61726170,
0x0000006d,0x00050005,0x00000081,0x756c6176,0x74694265,0x00000073,0x00050005,0x00000085,
0x756c6176,0x73614d65,0x0000006b,0x00050005,0x00000095,0x756c6176,0x55734165,0x00746e69,
0x00040005,0x0000009b,0x756c6176,0x00000065,0x00040005,0x000000a3,0x74726576,0x00007865,
0x00050005,0x000000a8,0x706d6f63,0x6e656e6f,0x00000074,0x00040005,0x000000ad,0x7366666f,
0x00007465,0x00040005,0x000000ae,0x61726170,0x0000006d,0x00040005,0x000000b0,0x61726170,
0x0000006d,0x00050005,0x000000b3,0x66696873,0x74694274,0x00000073,0x00040005,0x000000b4,
0x61726170,0x0000006d,0x00040005,0x000000b6,0x61726170,0x0000006d,0x00050005,0x000000ba,
0x756c6176,0x74694265,0x00000073,0x00050005,0x000000be,0x756c6176,0x73614d65,0x0000006b,
0x00050005,0x000000ca,0x756c6176,0x55734165,0x00746e69,0x00040005,0x000000d4,0x74736564,
0x00000000,0x00060006,0x000000d4,0x00000000,0x74736564,0x61746144,0x00000000,0x00030005,
0x000000d6,0x00000000,0x00080005,0x000000d9,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
0x496e6f69,0x00000044,0x00050005,0x000000e3,0x756c6176,0x74754f65,0x00000000,0x00030005,
0x000000e4,0x00000069,0x00030005,0x000000ef,0x00006463,0x00050005,0x000000f7,0x56637273,
0x65756c61,0x00000000,0x00040005,0x000000f8,0x61726170,0x0000006d,0x00050005,0x000000fb,
0x74736564,0x756c6156,0x00000065,0x00040005,0x000000fc,0x61726170,0x0000006d,0x00040005,
0x000000ff,0x61726170,0x0000006d,0x00040005,0x00000101,0x61726170,0x0000006d,0x00040005,
0x00000108,0x61726170,0x0000006d,0x00050048,0x00000025,0x00000000,0x00000023,0x00000000,
0x00050048,0x00000025,0x00000001,0x00000023,0x00000004,0x00050048,0x00000025,0x00000002,
0x00000023,0x00000008,0x00050048,0x00000025,0x00000003,0x00000023,0x0000000c,0x00050048,
0x00000025,0x00000004,0x00000023,0x00000010,0x00050048,0x00000025,0x00000005,0x00000023,
0x00000014,0x00050048,0x00000025,0x00000006,0x00000023,0x00000018,0x00050048,0x00000025,
0x00000007,0x00000023,0x0000001c,0x00050048,0x00000025,0x00000008,0x00000023,0x00000020,
0x00050048,0x00000025,0x00000009,0x00000023,0x00000024,0x00050048,0x00000025,0x0000000a,
0x00000023,0x00000028,0x00050048,0x00000025,0x0000000b,0x00000023,0x0000002c,0x00030047,
0x00000025,0x00000002,0x00040047,0x00000070,0x00000006,0x00000004,0x00050048,0x00000071,
0x00000000,0x00000023,0x00000000,0x00030047,0x00000071,0x00000003,0x00040047,0x00000073,
0x00000022,0x00000000,0x00040047,0x00000073,0x00000021,0x00000001,0x00040047,0x000000d3,
0x00000006,0x00000004,0x00050048,0x000000d4,0x00000000,0x00000023,0x00000000,0x00030047,
0x000000d4,0x00000003,0x00040047,0x000000d6,0x00000022,0x00000000,0x00040047,0x000000d6,
0x00000021,0x00000000,0x00040047,0x000000d9,0x0000000b,0x0000001c,0x00040047,0x0000010d,
0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,
0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00050021,
0x00000008,0x00000006,0x00000007,0x00000007,0x00040021,0x00000015,0x00000006,0x00000007,
0x00040021,0x00000020,0x00000002,0x00000007,0x000e001e,0x00000025,0x00000006,0x00000006,
0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,0x00000006,
0x00000006,0x00000006,0x00040020,0x00000026,0x00000009,0x00000025,0x0004003b,0x00000026,
0x00000027,0x00000009,0x00040015,0x00000028,0x00000020,0x00000001,0x0004002b,0x00000028,
0x00000029,0x00000006,0x00040020,0x0000002a,0x00000009,0x00000006,0x0004002b,0x00000028,
0x0000002f,0x00000005,0x0004002b,0x00000028,0x00000034,0x00000002,0x0004002b,0x00000028,
0x0000003b,0x0000000a,0x0004002b,0x00000028,0x00000040,0x00000009,0x0004002b,0x00000028,
0x00000045,0x00000003,0x0004002b,0x00000006,0x0000004d,0x00000004,0x0004002b,0x00000006,
0x0000004f,0x00000008,0x0004002b,0x00000028,0x00000056,0x00000008,0x0004002b,0x00000028,
0x00000060,0x00000004,0x00020014,0x00000063,0x0004002b,0x00000006,0x00000067,0x00000000,
0x0003001d,0x00000070,0x00000006,0x0003001e,0x00000071,0x00000070,0x00040020,0x00000072,
0x00000002,0x00000071,0x0004003b,0x00000072,0x00000073,0x00000002,0x0004002b,0x00000028,
0x00000074,0x00000000,0x00040020,0x00000077,0x00000002,0x00000006,0x0004002b,0x00000006,
0x00000087,0x00000020,0x00040020,0x00000089,0x00000007,0x00000028,0x0004002b,0x00000028,
0x0000008d,0xffffffff,0x0004002b,0x00000028,0x0000008f,0x00000001,0x0003001d,0x000000d3,
0x00000006,0x0003001e,0x000000d4,0x000000d3,0x00040020,0x000000d5,0x00000002,0x000000d4,
0x0004003b,0x000000d5,0x000000d6,0x00000002,0x00040017,0x000000d7,0x00000006,0x00000003,
0x00040020,0x000000d8,0x00000001,0x000000d7,0x0004003b,0x000000d8,0x000000d9,0x00000001,
0x00040020,0x000000da,0x00000001,0x00000006,0x0004002b,0x00000028,0x000000eb,0x0000000b,
0x0004002b,0x00000006,0x0000010b,0x00000040,0x0004002b,0x00000006,0x0000010c,0x00000001,
0x0006002c,0x000000d7,0x0000010d,0x0000010b,0x0000010c,0x0000010c,0x00050036,0x00000002,
0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x000000e3,
0x00000007,0x0004003b,0x00000007,0x000000e4,0x00000007,0x0004003b,0x00000007,0x000000ef,
0x00000007,0x0004003b,0x00000007,0x000000f7,0x00000007,0x0004003b,0x00000007,0x000000f8,
0x00000007,0x0004003b,0x00000007,0x000000fb,0x00000007,0x0004003b,0x00000007,0x000000fc,
0x00000007,0x0004003b,0x00000007,0x000000ff,0x00000007,0x0004003b,0x00000007,0x00000101,
0x00000007,0x0004003b,0x00000007,0x00000108,0x00000007,0x0003003e,0x000000e3,0x00000067,
0x0003003e,0x000000e4,0x00000067,0x000200f9,0x000000e5,0x000200f8,0x000000e5,0x000400f6,
0x000000e7,0x000000e8,0x00000000,0x000200f9,0x000000e9,0x000200f8,0x000000e9,0x0004003d,
0x00000006,0x000000ea,0x000000e4,0x00050041,0x0000002a,0x000000ec,0x00000027,0x000000eb,
0x0004003d,0x00000006,0x000000ed,0x000000ec,0x000500b0,0x00000063,0x000000ee,0x000000ea,
0x000000ed,0x000400fa,0x000000ee,0x000000e6,0x000000e7,0x000200f8,0x000000e6,0x00050041,
0x000000da,0x000000f0,0x000000d9,0x00000067,0x0004003d,0x00000006,0x000000f1,0x000000f0,
0x00050041,0x0000002a,0x000000f2,0x00000027,0x000000eb,0x0004003d,0x00000006,0x000000f3,
0x000000f2,0x00050084,0x00000006,0x000000f4,0x000000f1,0x000000f3,0x0004003d,0x00000006,
0x000000f5,0x000000e4,0x00050080,0x00000006,0x000000f6,0x000000f4,0x000000f5,0x0003003e,
0x000000ef,0x000000f6,0x0004003d,0x00000006,0x000000f9,0x000000ef,0x0003003e,0x000000f8,
0x000000f9,0x00050039,0x00000006,0x000000fa,0x00000017,0x000000f8,0x0003003e,0x000000f7,
0x000000fa,0x0004003d,0x00000006,0x000000fd,0x000000f7,0x0003003e,0x000000fc,0x000000fd,
0x00050039,0x00000006,0x000000fe,0x0000001a,0x000000fc,0x0003003e,0x000000fb,0x000000fe,
0x0004003d,0x00000006,0x00000100,0x000000ef,0x0003003e,0x000000ff,0x00000100,0x0004003d,
0x00000006,0x00000102,0x000000fb,0x0003003e,0x00000101,0x00000102,0x00060039,0x00000006,
0x00000103,0x0000001e,0x000000ff,0x00000101,0x0004003d,0x00000006,0x00000104,0x000000e3,
0x000500c5,0x00000006,0x00000105,0x00000104,0x00000103,0x0003003e,0x000000e3,0x00000105,
0x000200f9,0x000000e8,0x000200f8,0x000000e8,0x0004003d,0x00000006,0x00000106,0x000000e4,
0x00050080,0x00000006,0x00000107,0x00000106,0x0000008f,0x0003003e,0x000000e4,0x00000107,
0x000200f9,0x000000e5,0x000200f8,0x000000e7,0x0004003d,0x00000006,0x00000109,0x000000e3,
0x0003003e,0x00000108,0x00000109,0x00050039,0x00000002,0x0000010a,0x00000022,0x00000108,
0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000b,0x00000000,0x00000008,0x00030037,
0x00000007,0x00000009,0x00030037,0x00000007,0x0000000a,0x000200f8,0x0000000c,0x0004003d,
0x00000006,0x00000024,0x00000009,0x00050041,0x0000002a,0x0000002b,0x00000027,0x00000029,
0x0004003d,0x00000006,0x0000002c,0x0000002b,0x00050084,0x00000006,0x0000002d,0x00000024,
0x0000002c,0x0004003d,0x00000006,0x0000002e,0x0000000a,0x00050041,0x0000002a,0x00000030,
0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000031,0x00000030,0x00050084,0x00000006,
0x00000032,0x0000002e,0x00000031,0x00050080,0x00000006,0x00000033,0x0000002d,0x00000032,
0x00050041,0x0000002a,0x00000035,0x00000027,0x00000034,0x0004003d,0x00000006,0x00000036,
0x00000035,0x00050080,0x00000006,0x00000037,0x00000033,0x00000036,0x000200fe,0x00000037,
0x00010038,0x00050036,0x00000006,0x0000000f,0x00000000,0x00000008,0x00030037,0x00000007,
0x0000000d,0x00030037,0x00000007,0x0000000e,0x000200f8,0x00000010,0x0004003d,0x00000006,
0x0000003a,0x0000000d,0x00050041,0x0000002a,0x0000003c,0x00000027,0x0000003b,0x0004003d,
0x00000006,0x0000003d,0x0000003c,0x00050084,0x00000006,0x0000003e,0x0000003a,0x0000003d,
0x0004003d,0x00000006,0x0000003f,0x0000000e,0x00050041,0x0000002a,0x00000041,0x00000027,
0x00000040,0x0004003d,0x00000006,0x00000042,0x00000041,0x00050084,0x00000006,0x00000043,
0x0000003f,0x00000042,0x00050080,0x00000006,0x00000044,0x0000003e,0x00000043,0x00050041,
0x0000002a,0x00000046,0x00000027,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000046,
0x00050080,0x00000006,0x00000048,0x00000044,0x00000047,0x000200fe,0x00000048,0x00010038,
0x00050036,0x00000006,0x00000013,0x00000000,0x00000008,0x00030037,0x00000007,0x00000011,
0x00030037,0x00000007,0x00000012,0x000200f8,0x00000014,0x0004003b,0x00000007,0x0000004b,
0x00000007,0x0004003d,0x00000006,0x0000004c,0x00000011,0x00050089,0x00000006,0x0000004e,
0x0000004c,0x0000004d,0x00050084,0x00000006,0x00000050,0x0000004e,0x0000004f,0x0003003e,
0x0000004b,0x00000050,0x0004003d,0x00000006,0x00000051,0x0000004b,0x000200fe,0x00000051,
0x00010038,0x00050036,0x00000006,0x00000017,0x00000000,0x00000015,0x00030037,0x00000007,
0x00000016,0x000200f8,0x00000018,0x0004003b,0x00000007,0x00000054,0x00000007,0x0004003b,
0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,0x0004003b,
0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x0000006c,0x00000007,0x0004003b,
0x00000007,0x0000006f,0x00000007,0x0004003b,0x00000007,0x0000007a,0x00000007,0x0004003b,
0x00000007,0x0000007b,0x00000007,0x0004003b,0x00000007,0x0000007d,0x00000007,0x0004003b,
0x00000007,0x00000081,0x00000007,0x0004003b,0x00000007,0x00000085,0x00000007,0x0004003b,
0x00000089,0x0000008a,0x00000007,0x0004003b,0x00000007,0x00000095,0x00000007,0x0004003b,
0x00000007,0x0000009b,0x00000007,0x0004003d,0x00000006,0x00000055,0x00000016,0x00050041,
0x0000002a,0x00000057,0x00000027,0x00000056,0x0004003d,0x00000006,0x00000058,0x00000057,
0x00050086,0x00000006,0x00000059,0x00000055,0x00000058,0x0003003e,0x00000054,0x00000059,
0x0004003d,0x00000006,0x0000005b,0x00000016,0x00050041,0x0000002a,0x0000005c,0x00000027,
0x00000056,0x0004003d,0x00000006,0x0000005d,0x0000005c,0x00050089,0x00000006,0x0000005e,
0x0000005b,0x0000005d,0x0003003e,0x0000005a,0x0000005e,0x0004003d,0x00000006,0x0000005f,
0x0000005a,0x00050041,0x0000002a,0x00000061,0x00000027,0x00000060,0x0004003d,0x00000006,
0x00000062,0x00000061,0x000500ae,0x00000063,0x00000064,0x0000005f,0x00000062,0x000300f7,
0x00000066,0x00000000,0x000400fa,0x00000064,0x00000065,0x00000066,0x000200f8,0x00000065,
0x000200fe,0x00000067,0x000200f8,0x00000066,0x0004003d,0x00000006,0x0000006b,0x00000054,
0x0003003e,0x0000006a,0x0000006b,0x0004003d,0x00000006,0x0000006d,0x0000005a,0x0003003e,
0x0000006c,0x0000006d,0x00060039,0x00000006,0x0000006e,0x0000000b,0x0000006a,0x0000006c,
0x0003003e,0x00000069,0x0000006e,0x0004003d,0x00000006,0x00000075,0x00000069,0x00050086,
0x00000006,0x00000076,0x00000075,0x0000004d,0x00060041,0x00000077,0x00000078,0x00000073,
0x00000074,0x00000076,0x0004003d,0x00000006,0x00000079,0x00000078,0x0003003e,0x0000006f,
0x00000079,0x0004003d,0x00000006,0x0000007c,0x00000069,0x0003003e,0x0000007b,0x0000007c,
0x00050041,0x0000002a,0x0000007e,0x00000027,0x0000002f,0x0004003d,0x00000006,0x0000007f,
0x0000007e,0x0003003e,0x0000007d,0x0000007f,0x00060039,0x00000006,0x00000080,0x00000013,
0x0000007b,0x0000007d,0x0003003e,0x0000007a,0x00000080,0x00050041,0x0000002a,0x00000082,
0x00000027,0x0000002f,0x0004003d,0x00000006,0x00000083,0x00000082,0x00050084,0x00000006,
0x00000084,0x00000083,0x0000004f,0x0003003e,0x00000081,0x00000084,0x0004003d,0x00000006,
0x00000086,0x00000081,0x000500aa,0x00000063,0x00000088,0x00000086,0x00000087,0x000300f7,
0x0000008c,0x00000000,0x000400fa,0x00000088,0x0000008b,0x0000008e,0x000200f8,0x0000008b,
0x0003003e,0x0000008a,0x0000008d,0x000200f9,0x0000008c,0x000200f8,0x0000008e,0x0004003d,
0x00000006,0x00000090,0x00000081,0x000500c4,0x00000028,0x00000091,0x0000008f,0x00000090,
0x00050082,0x00000028,0x00000092,0x00000091,0x0000008f,0x0003003e,0x0000008a,0x00000092,
0x000200f9,0x0000008c,0x000200f8,0x0000008c,0x0004003d,0x00000028,0x00000093,0x0000008a,
0x0004007c,0x00000006,0x00000094,0x00000093,0x0003003e,0x00000085,0x00000094,0x0004003d,
0x00000006,0x00000096,0x0000006f,0x0004003d,0x00000006,0x00000097,0x0000007a,0x000500c2,
0x00000006,0x00000098,0x00000096,0x00000097,0x0004003d,0x00000006,0x00000099,0x00000085,
0x000500c7,0x00000006,0x0000009a,0x00000098,0x00000099,0x0003003e,0x00000095,0x0000009a,
0x0004003d,0x00000006,0x0000009c,0x00000095,0x0003003e,0x0000009b,0x0000009c,0x0004003d,
0x00000006,0x0000009d,0x0000009b,0x000200fe,0x0000009d,0x00010038,0x00050036,0x00000006,
0x0000001a,0x00000000,0x00000015,0x00030037,0x00000007,0x00000019,0x000200f8,0x0000001b,
0x0004003d,0x00000006,0x000000a0,0x00000019,0x000200fe,0x000000a0,0x00010038,0x00050036,
0x00000006,0x0000001e,0x00000000,0x00000008,0x00030037,0x00000007,0x0000001c,0x00030037,
0x00000007,0x0000001d,0x000200f8,0x0000001f,0x0004003b,0x00000007,0x000000a3,0x00000007,
0x0004003b,0x00000007,0x000000a8,0x00000007,0x0004003b,0x00000007,0x000000ad,0x00000007,
0x0004003b,0x00000007,0x000000ae,0x00000007,0x0004003b,0x00000007,0x000000b0,0x00000007,
0x0004003b,0x00000007,0x000000b3,0x00000007,0x0004003b,0x00000007,0x000000b4,0x00000007,
0x0004003b,0x00000007,0x000000b6,0x00000007,0x0004003b,0x00000007,0x000000ba,0x00000007,
0x0004003b,0x00000007,0x000000be,0x00000007,0x0004003b,0x00000089,0x000000c1,0x00000007,
0x0004003b,0x00000007,0x000000ca,0x00000007,0x0004003d,0x00000006,0x000000a4,0x0000001c,
0x00050041,0x0000002a,0x000000a5,0x00000027,0x00000056,0x0004003d,0x00000006,0x000000a6,
0x000000a5,0x00050086,0x00000006,0x000000a7,0x000000a4,0x000000a6,0x0003003e,0x000000a3,
0x000000a7,0x0004003d,0x00000006,0x000000a9,0x0000001c,0x00050041,0x0000002a,0x000000aa,
0x00000027,0x00000056,0x0004003d,0x00000006,0x000000ab,0x000000aa,0x00050089,0x00000006,
0x000000ac,0x000000a9,0x000000ab,0x0003003e,0x000000a8,0x000000ac,0x0004003d,0x00000006,
0x000000af,0x000000a3,0x0003003e,0x000000ae,0x000000af,0x0004003d,0x00000006,0x000000b1,
0x000000a8,0x0003003e,0x000000b0,0x000000b1,0x00060039,0x00000006,0x000000b2,0x0000000f,
0x000000ae,0x000000b0,0x0003003e,0x000000ad,0x000000b2,0x0004003d,0x00000006,0x000000b5,
0x000000ad,0x0003003e,0x000000b4,0x000000b5,0x00050041,0x0000002a,0x000000b7,0x00000027,
0x00000040,0x0004003d,0x00000006,0x000000b8,0x000000b7,0x0003003e,0x000000b6,0x000000b8,
0x00060039,0x00000006,0x000000b9,0x00000013,0x000000b4,0x000000b6,0x0003003e,0x000000b3,
0x000000b9,0x00050041,0x0000002a,0x000000bb,0x00000027,0x00000040,0x0004003d,0x00000006,
0x000000bc,0x000000bb,0x00050084,0x00000006,0x000000bd,0x000000bc,0x0000004f,0x0003003e,
0x000000ba,0x000000bd,0x0004003d,0x00000006,0x000000bf,0x000000ba,0x000500aa,0x00000063,
0x000000c0,0x000000bf,0x00000087,0x000300f7,0x000000c3,0x00000000,0x000400fa,0x000000c0,
0x000000c2,0x000000c4,0x000200f8,0x000000c2,0x0003003e,0x000000c1,0x0000008d,0x000200f9,
0x000000c3,0x000200f8,0x000000c4,0x0004003d,0x00000006,0x000000c5,0x000000ba,0x000500c4,
0x00000028,0x000000c6,0x0000008f,0x000000c5,0x00050082,0x00000028,0x000000c7,0x000000c6,
0x0000008f,0x0003003e,0x000000c1,0x000000c7,0x000200f9,0x000000c3,0x000200f8,0x000000c3,
0x0004003d,0x00000028,0x000000c8,0x000000c1,0x0004007c,0x00000006,0x000000c9,0x000000c8,
0x0003003e,0x000000be,0x000000c9,0x0004003d,0x00000006,0x000000cb,0x0000001d,0x0004003d,
0x00000006,0x000000cc,0x000000be,0x000500c7,0x00000006,0x000000cd,0x000000cb,0x000000cc,
0x0004003d,0x00000006,0x000000ce,0x000000b3,0x000500c4,0x00000006,0x000000cf,0x000000cd,
0x000000ce,0x0003003e,0x000000ca,0x000000cf,0x0004003d,0x00000006,0x000000d0,0x000000ca,
0x000200fe,0x000000d0,0x00010038,0x00050036,0x00000002,0x00000022,0x00000000,0x00000020,
0x00030037,0x00000007,0x00000021,0x000200f8,0x00000023,0x00050041,0x000000da,0x000000db,
0x000000d9,0x00000067,0x0004003d,0x00000006,0x000000dc,0x000000db,0x00050041,0x0000002a,
0x000000dd,0x00000027,0x00000045,0x0004003d,0x00000006,0x000000de,0x000000dd,0x00050086,
0x00000006,0x000000df,0x000000de,0x0000004d,0x00050080,0x00000006,0x000000e0,0x000000dc,
0x000000df,0x0004003d,0x00000006,0x000000e1,0x00000021,0x00060041,0x00000077,0x000000e2,
0x000000d6,0x00000074,0x000000e0,0x0003003e,0x000000e2,0x000000e1,0x000100fd,0x00010038
};
// 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;
// } 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;
// }
//
// uint loadSourceComponent(uint cd)
// {
//
// uint vertex = cd / params . Nd;
// uint component = cd % params . Nd;
//
// if(component >= params . Ns)
// {
// return 0;
// }
//
// uint offset = getSourceComponentOffset(vertex, component);
// uint block = srcData[offset / 4];
//
// uint shiftBits = getShiftBits(offset, params . Bs);
// uint valueBits = params . Bs * 8;
// uint valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1;
//
// uint valueAsUint =(block >> shiftBits)& valueMask;
//
// uint value = valueAsUint;
//
// return value;
// }
//
// uint convertComponent(uint srcValue)
// {
//
// return srcValue;
// }
//
// uint makeDestinationComponent(uint cd, uint value)
// {
//
// uint vertex = cd / params . Nd;
// uint component = cd % params . Nd;
//
// uint offset = getDestinationComponentOffset(vertex, component);
// uint shiftBits = getShiftBits(offset, params . Bd);
//
// uint valueBits = params . Bd * 8;
// uint valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1;
// uint valueAsUint =(uint(value)& valueMask)<< shiftBits;
//
// return valueAsUint;
// }
//
// void storeDestinationComponents(uint valueAsUint)
// {
//
// destData[gl_GlobalInvocationID . x + params . destOffset / 4]= valueAsUint;
// }
//
// void main()
// {
//
// uint valueOut = 0;
// for(uint i = 0;i < params . Ed;++ i)
// {
// uint cd = gl_GlobalInvocationID . x * params . Ed + i;
//
// uint srcValue = loadSourceComponent(cd);
// uint destValue = convertComponent(srcValue);
// valueOut |= makeDestinationComponent(cd, destValue);
// }
//
// storeDestinationComponents(valueOut);
// }
......@@ -66,7 +66,7 @@
// * RGB10X2UintToFloat: Same types as RGB10X2UintToUint for source (including uscaled).
// Converts to float.
// * RGB10X2SnormToFloat: Similar to IntToFloat, but normalized and only for RGB10X2.
// * RGB10X2UnormToFloat: Similar to UintToFloat, but normalized and only for RGB10X2.
// * HalfFloatToHalfFloat: covers half float type only.
//
// SintToSint, UintToUint and FloatToFloat correspond to CopyNativeVertexData() and
// Copy8SintTo16SintVertexData() in renderer/copyvertex.inc, FixedToFloat corresponds to
......@@ -77,7 +77,7 @@
// RGB10A2SintToFloat, RGB10A2UintToFloat, RGB10A2SnormToFloat, and RGB10X2UnormToFloat correspond
// to CopyW2XYZ10ToXYZW32FVertexData, and RGB10X2SintToFloat, RGB10UintToFloat,
// RGB10X2SnormToFloat, and RGB10X2UnormToFloat correspond to CopyXYZ10ToXYZW32FVertexData with
// the proper options.
// the proper options. HalfFloatToHalfFloat correspond to CopyNativeVertexData().
#version 450 core
......@@ -86,7 +86,7 @@
RGB10X2SintToFloat
#define SrcType int
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || \
RGB10A2UintToFloat || RGB10X2UintToFloat
RGB10A2UintToFloat || RGB10X2UintToFloat || HalfFloatToHalfFloat
#define SrcType uint
#elif SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || A2BGR10SnormToFloat || \
RGB10A2SnormToFloat || RGB10A2UnormToFloat || RGB10X2SnormToFloat || RGB10X2UnormToFloat
......@@ -99,7 +99,7 @@
#if SintToSint || A2BGR10SintToSint
#define DestType int
#define IsDestFloat 0
#elif UintToUint || A2BGR10UintToUint
#elif UintToUint || A2BGR10UintToUint || HalfFloatToHalfFloat
#define DestType uint
#define IsDestFloat 0
#elif SintToFloat || UintToFloat || SnormToFloat || UnormToFloat || FixedToFloat || FloatToFloat || \
......@@ -275,7 +275,7 @@ SrcType loadSourceComponent(uint cd)
}
SrcType value = SrcType(valueAsUint);
#elif UintToUint || UintToFloat || A2BGR10UintToUint || A2BGR10UintToFloat || RGB10A2UintToFloat \
|| RGB10X2UintToFloat
|| RGB10X2UintToFloat || HalfFloatToHalfFloat
SrcType value = valueAsUint;
#elif SnormToFloat || A2BGR10SnormToFloat || RGB10A2SnormToFloat || RGB10X2SnormToFloat
if (valueBits < 32)
......@@ -314,7 +314,7 @@ uint makeDestinationComponent(uint cd, DestType value)
// Return valueAsUint, shifted to the right spot. Multiple calls to this function should be |ed
// and eventually written to the destination.
#if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint
#if SintToSint || UintToUint || A2BGR10SintToSint || A2BGR10UintToUint || HalfFloatToHalfFloat
uint vertex = cd / Nd;
uint component = cd % Nd;
......
......@@ -30,7 +30,8 @@
"RGB10X2SintToFloat",
"RGB10X2UintToFloat",
"RGB10X2SnormToFloat",
"RGB10X2UnormToFloat"
"RGB10X2UnormToFloat",
"HalfFloatToHalfFloat"
]
}
......@@ -100,6 +100,8 @@ namespace
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002A.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002B.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc"
......@@ -252,6 +254,8 @@ constexpr ShaderBlob kConvertVertex_comp_shaders[] = {
{kConvertVertex_comp_00000027, sizeof(kConvertVertex_comp_00000027)},
{kConvertVertex_comp_00000028, sizeof(kConvertVertex_comp_00000028)},
{kConvertVertex_comp_00000029, sizeof(kConvertVertex_comp_00000029)},
{kConvertVertex_comp_0000002A, sizeof(kConvertVertex_comp_0000002A)},
{kConvertVertex_comp_0000002B, sizeof(kConvertVertex_comp_0000002B)},
};
constexpr ShaderBlob kFullScreenQuad_vert_shaders[] = {
{kFullScreenQuad_vert_00000000, sizeof(kFullScreenQuad_vert_00000000)},
......
......@@ -93,6 +93,8 @@ angle_vulkan_internal_shaders = [
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000027.inc",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000028.inc",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000029.inc",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002A.inc",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.0000002B.inc",
"src/libANGLE/renderer/vulkan/shaders/gen/FullScreenQuad.vert.00000000.inc",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000000.inc",
"src/libANGLE/renderer/vulkan/shaders/gen/ImageClear.frag.00000001.inc",
......
......@@ -85,29 +85,30 @@ enum flags
};
enum Conversion
{
kSintToSint = 0x00000000,
kUintToUint = 0x00000002,
kSintToFloat = 0x00000004,
kUintToFloat = 0x00000006,
kSnormToFloat = 0x00000008,
kUnormToFloat = 0x0000000A,
kFixedToFloat = 0x0000000C,
kFloatToFloat = 0x0000000E,
kA2BGR10SintToSint = 0x00000010,
kA2BGR10UintToUint = 0x00000012,
kA2BGR10SintToFloat = 0x00000014,
kA2BGR10UintToFloat = 0x00000016,
kA2BGR10SnormToFloat = 0x00000018,
kRGB10A2SintToFloat = 0x0000001A,
kRGB10A2UintToFloat = 0x0000001C,
kRGB10A2SnormToFloat = 0x0000001E,
kRGB10A2UnormToFloat = 0x00000020,
kRGB10X2SintToFloat = 0x00000022,
kRGB10X2UintToFloat = 0x00000024,
kRGB10X2SnormToFloat = 0x00000026,
kRGB10X2UnormToFloat = 0x00000028,
};
constexpr size_t kArrayLen = 0x0000002A;
kSintToSint = 0x00000000,
kUintToUint = 0x00000002,
kSintToFloat = 0x00000004,
kUintToFloat = 0x00000006,
kSnormToFloat = 0x00000008,
kUnormToFloat = 0x0000000A,
kFixedToFloat = 0x0000000C,
kFloatToFloat = 0x0000000E,
kA2BGR10SintToSint = 0x00000010,
kA2BGR10UintToUint = 0x00000012,
kA2BGR10SintToFloat = 0x00000014,
kA2BGR10UintToFloat = 0x00000016,
kA2BGR10SnormToFloat = 0x00000018,
kRGB10A2SintToFloat = 0x0000001A,
kRGB10A2UintToFloat = 0x0000001C,
kRGB10A2SnormToFloat = 0x0000001E,
kRGB10A2UnormToFloat = 0x00000020,
kRGB10X2SintToFloat = 0x00000022,
kRGB10X2UintToFloat = 0x00000024,
kRGB10X2SnormToFloat = 0x00000026,
kRGB10X2UnormToFloat = 0x00000028,
kHalfFloatToHalfFloat = 0x0000002A,
};
constexpr size_t kArrayLen = 0x0000002C;
} // namespace ConvertVertex_comp
namespace FullScreenQuad_vert
......
......@@ -550,6 +550,34 @@ TEST_P(VertexAttributeTest, HalfFloatClientMemoryPointer)
}
}
// Verify that vertex data is updated correctly when using a float/half-float buffer.
TEST_P(VertexAttributeTest, HalfFloatBuffer)
{
std::array<GLhalf, kVertexCount> inputData;
std::array<GLfloat, kVertexCount> expectedData = {
{0.f, 1.5f, 2.3f, 3.2f, -1.8f, -2.2f, -3.9f, -4.f, 34.5f, 32.2f, -78.8f, -77.4f, -76.1f}};
for (size_t i = 0; i < kVertexCount; i++)
{
inputData[i] = gl::float32ToFloat16(expectedData[i]);
}
// If the extension is enabled run the test on all contexts
if (IsGLExtensionEnabled("GL_OES_vertex_half_float"))
{
TestData bufferData(GL_HALF_FLOAT_OES, GL_FALSE, Source::BUFFER, inputData.data(),
expectedData.data());
runTest(bufferData);
}
// Otherwise run the test only if it is an ES3 context
else if (getClientMajorVersion() >= 3)
{
TestData bufferData(GL_HALF_FLOAT, GL_FALSE, Source::BUFFER, inputData.data(),
expectedData.data());
runTest(bufferData);
}
}
// Verify that using the same client memory pointer in different format won't mess up the draw.
TEST_P(VertexAttributeTest, UsingDifferentFormatAndSameClientMemoryPointer)
{
......
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