Commit 2806a898 by James Dong Committed by Commit Bot

Vulkan: implement primitive restart

Implements ES 3.0 feature GL_PRIMITIVE_RESTART_FIXED_INDEX, which allows the application to use a fixed "restart" index to restart the primitive during a single draw call. This change does't handle GL_LINE_LOOP primitives, which requires a bit of special handling. Bug: angleproject:3215 Change-Id: I2388852683fd17328a6a76c48d70a24d67ce8b67 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1650301Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
parent 4316e064
......@@ -274,7 +274,9 @@
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.inc":
"065aaa20cdad29b5f5d2916eb3d096fc",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc":
"449ed947f0a7923a26b9fe1fa9c02a47",
"7ab9d6aa6dba8271f68df9c6f5355e44",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc":
"4726c9620a56bee224983d28d979fd39",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc":
"d4e48d64aa66fcf3c09330c4234ba349",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc":
......@@ -400,7 +402,7 @@
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp":
"0c8c050841543da0d7faca2559212aa8",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp":
"f7675f4b3c966022e5bd222823b5a094",
"ca35df77d258baa0636529d1f0f446a9",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
"93649f61036c2fa4739988ad71f413df",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
......@@ -410,9 +412,9 @@
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/shaders/src/ImageCopy.frag":
"20c83ade1efb48a802dc34ca838a2be6",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"75538dc8198ce0c1c3f41d351fb6f5a2",
"7891716bf0c429ddacfbb2823f166dc6",
"Vulkan internal shader programs:src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"bb6cb68410a9e8f0143046f1e034ceaf",
"63e63b37508787d66a0e4aab7e36ffd8",
"Vulkan internal shader programs:tools/glslang/glslang_validator.exe.sha1":
"9f1f0fc61116a657e065c40f9296e5ab",
"Vulkan internal shader programs:tools/glslang/glslang_validator.sha1":
......
......@@ -1504,6 +1504,8 @@ angle::Result ContextVk::syncState(const gl::Context *context,
glState.getLineWidth());
break;
case gl::State::DIRTY_BIT_PRIMITIVE_RESTART_ENABLED:
mGraphicsPipelineDesc->updatePrimitiveRestartEnabled(
&mGraphicsPipelineTransition, glState.isPrimitiveRestartEnabled());
break;
case gl::State::DIRTY_BIT_CLEAR_COLOR:
mClearColorValue.color.float32[0] = glState.getColorClearValue().red;
......
......@@ -647,11 +647,17 @@ angle::Result UtilsVk::convertIndexBuffer(ContextVk *contextVk,
ConvertIndexShaderParams shaderParams = {params.srcOffset, params.dstOffset >> 2,
params.maxIndex, 0};
uint32_t flags = 0;
if (contextVk->getState().isPrimitiveRestartEnabled())
{
flags |= vk::InternalShader::ConvertIndex_comp::kIsPrimitiveRestartEnabled;
}
vk::RefCounted<vk::ShaderAndSerial> *shader = nullptr;
ANGLE_TRY(contextVk->getShaderLibrary().getConvertIndex_comp(contextVk, 0, &shader));
ANGLE_TRY(contextVk->getShaderLibrary().getConvertIndex_comp(contextVk, flags, &shader));
ANGLE_TRY(setupProgram(contextVk, Function::ConvertIndexBuffer, shader, nullptr,
&mConvertIndexPrograms[0], nullptr, descriptorSet, &shaderParams,
&mConvertIndexPrograms[flags], nullptr, descriptorSet, &shaderParams,
sizeof(ConvertIndexShaderParams), commandBuffer));
constexpr uint32_t kInvocationsPerGroup = 64;
......
......@@ -189,13 +189,37 @@ angle::Result VertexArrayVk::convertIndexBufferCPU(ContextVk *contextVk,
// memory to a GLushort.
const GLubyte *in = static_cast<const GLubyte *>(sourcePointer);
GLushort *expandedDst = reinterpret_cast<GLushort *>(dst);
for (size_t index = 0; index < indexCount; index++)
bool primitiveRestart = contextVk->getState().isPrimitiveRestartEnabled();
constexpr GLubyte kUnsignedByteRestartValue = 0xFF;
constexpr GLushort kUnsignedShortRestartValue = 0xFFFF;
if (primitiveRestart)
{
expandedDst[index] = static_cast<GLushort>(in[index]);
for (size_t index = 0; index < indexCount; index++)
{
GLushort value = static_cast<GLushort>(in[index]);
if (in[index] == kUnsignedByteRestartValue)
{
// Convert from 8-bit restart value to 16-bit restart value
value = kUnsignedShortRestartValue;
}
expandedDst[index] = value;
}
}
else
{
// Fast path for common case.
for (size_t index = 0; index < indexCount; index++)
{
expandedDst[index] = static_cast<GLushort>(in[index]);
}
}
}
else
{
// The primitive restart value is the same for OpenGL and Vulkan,
// so there's no need to perform any conversion.
memcpy(dst, sourcePointer, amount);
}
ANGLE_TRY(dynamicBuffer->flush(contextVk));
......
// 7.12.3226
#pragma once
const uint32_t kConvertIndex_comp_00000000[] = {
0x07230203,0x00010000,0x00080007,0x0000007b,0x00000000,0x00020011,0x00000001,0x0006000b,
0x07230203,0x00010000,0x00080007,0x0000007d,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x0000003f,0x00060010,0x00000004,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000041,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000a,0x6c6c7550,0x65646e49,0x31752878,
0x0000003b,0x00040005,0x00000009,0x65646e69,0x00000078,0x00090005,0x00000010,0x6b636150,
......@@ -17,96 +17,98 @@ const uint32_t kConvertIndex_comp_00000000[] = {
0x00000000,0x00030005,0x00000016,0x00000000,0x00050005,0x0000001d,0x42637273,0x6b636f6c,
0x00000000,0x00030005,0x0000001f,0x00637273,0x00050006,0x0000001f,0x00000000,0x44637273,
0x00617461,0x00030005,0x00000021,0x00000000,0x00060005,0x00000028,0x43637273,0x6f706d6f,
0x746e656e,0x00000000,0x00040005,0x0000003c,0x65646e69,0x00000078,0x00080005,0x0000003f,
0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x0000004e,
0x56747364,0x65756c61,0x00000000,0x00050005,0x0000004f,0x56637273,0x65756c61,0x00000000,
0x00040005,0x00000050,0x61726170,0x0000006d,0x00040005,0x00000053,0x61726170,0x0000006d,
0x00040005,0x00000055,0x61726170,0x0000006d,0x00040005,0x00000056,0x61726170,0x0000006d,
0x00050005,0x00000062,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000065,0x61726170,
0x0000006d,0x00040005,0x00000067,0x61726170,0x0000006d,0x00040005,0x00000069,0x61726170,
0x0000006d,0x00040005,0x0000006a,0x61726170,0x0000006d,0x00030005,0x0000006f,0x00747364,
0x00050006,0x0000006f,0x00000000,0x44747364,0x00617461,0x00030005,0x00000071,0x00000000,
0x00050048,0x00000014,0x00000000,0x00000023,0x00000000,0x00050048,0x00000014,0x00000001,
0x00000023,0x00000004,0x00050048,0x00000014,0x00000002,0x00000023,0x00000008,0x00050048,
0x00000014,0x00000003,0x00000023,0x0000000c,0x00030047,0x00000014,0x00000002,0x00040047,
0x0000001e,0x00000006,0x00000004,0x00040048,0x0000001f,0x00000000,0x00000018,0x00050048,
0x0000001f,0x00000000,0x00000023,0x00000000,0x00030047,0x0000001f,0x00000003,0x00040047,
0x00000021,0x00000022,0x00000000,0x00040047,0x00000021,0x00000021,0x00000001,0x00040047,
0x0000003f,0x0000000b,0x0000001c,0x00040047,0x0000006e,0x00000006,0x00000004,0x00050048,
0x0000006f,0x00000000,0x00000023,0x00000000,0x00030047,0x0000006f,0x00000003,0x00040047,
0x00000071,0x00000022,0x00000000,0x00040047,0x00000071,0x00000021,0x00000000,0x00040047,
0x0000007a,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,
0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,
0x00040021,0x00000008,0x00000006,0x00000007,0x00060021,0x0000000c,0x00000002,0x00000007,
0x00000007,0x00000007,0x0006001e,0x00000014,0x00000006,0x00000006,0x00000006,0x00000006,
0x00040020,0x00000015,0x00000009,0x00000014,0x0004003b,0x00000015,0x00000016,0x00000009,
0x00040015,0x00000017,0x00000020,0x00000001,0x0004002b,0x00000017,0x00000018,0x00000000,
0x00040020,0x00000019,0x00000009,0x00000006,0x0003001d,0x0000001e,0x00000006,0x0003001e,
0x0000001f,0x0000001e,0x00040020,0x00000020,0x00000002,0x0000001f,0x0004003b,0x00000020,
0x00000021,0x00000002,0x0004002b,0x00000017,0x00000023,0x00000002,0x00040020,0x00000025,
0x00000002,0x00000006,0x0004002b,0x00000006,0x0000002a,0x00000003,0x0004002b,0x00000017,
0x0000002e,0x00000003,0x0004002b,0x00000006,0x00000031,0x000000ff,0x0004002b,0x00000017,
0x00000037,0x00000004,0x00040017,0x0000003d,0x00000006,0x00000003,0x00040020,0x0000003e,
0x00000001,0x0000003d,0x0004003b,0x0000003e,0x0000003f,0x00000001,0x0004002b,0x00000006,
0x00000040,0x00000000,0x00040020,0x00000041,0x00000001,0x00000006,0x0004002b,0x00000017,
0x00000044,0x00000001,0x00020014,0x00000049,0x0004002b,0x00000006,0x0000005b,0x00000001,
0x0003001d,0x0000006e,0x00000006,0x0003001e,0x0000006f,0x0000006e,0x00040020,0x00000070,
0x00000002,0x0000006f,0x0004003b,0x00000070,0x00000071,0x00000002,0x0004002b,0x00000006,
0x00000079,0x00000040,0x0006002c,0x0000003d,0x0000007a,0x00000079,0x0000005b,0x0000005b,
0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
0x00000007,0x0000003c,0x00000007,0x0004003b,0x00000007,0x0000004e,0x00000007,0x0004003b,
0x00000007,0x0000004f,0x00000007,0x0004003b,0x00000007,0x00000050,0x00000007,0x0004003b,
0x00000007,0x00000053,0x00000007,0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,
0x00000007,0x00000056,0x00000007,0x0004003b,0x00000007,0x00000062,0x00000007,0x0004003b,
0x00000007,0x00000065,0x00000007,0x0004003b,0x00000007,0x00000067,0x00000007,0x0004003b,
0x00000007,0x00000069,0x00000007,0x0004003b,0x00000007,0x0000006a,0x00000007,0x00050041,
0x00000041,0x00000042,0x0000003f,0x00000040,0x0004003d,0x00000006,0x00000043,0x00000042,
0x000500c4,0x00000006,0x00000045,0x00000043,0x00000044,0x0003003e,0x0000003c,0x00000045,
0x0004003d,0x00000006,0x00000046,0x0000003c,0x00050041,0x00000019,0x00000047,0x00000016,
0x00000023,0x0004003d,0x00000006,0x00000048,0x00000047,0x000500ae,0x00000049,0x0000004a,
0x00000046,0x00000048,0x000300f7,0x0000004c,0x00000000,0x000400fa,0x0000004a,0x0000004b,
0x0000004c,0x000200f8,0x0000004b,0x000100fd,0x000200f8,0x0000004c,0x0003003e,0x0000004e,
0x00000040,0x0004003d,0x00000006,0x00000051,0x0000003c,0x0003003e,0x00000050,0x00000051,
0x00050039,0x00000006,0x00000052,0x0000000a,0x00000050,0x0003003e,0x0000004f,0x00000052,
0x0004003d,0x00000006,0x00000054,0x0000004f,0x0003003e,0x00000053,0x00000054,0x0003003e,
0x00000055,0x00000040,0x0004003d,0x00000006,0x00000057,0x0000004e,0x0003003e,0x00000056,
0x00000057,0x00070039,0x00000002,0x00000058,0x00000010,0x00000053,0x00000055,0x00000056,
0x0004003d,0x00000006,0x00000059,0x00000056,0x0003003e,0x0000004e,0x00000059,0x0004003d,
0x00000006,0x0000005a,0x0000003c,0x00050080,0x00000006,0x0000005c,0x0000005a,0x0000005b,
0x00050041,0x00000019,0x0000005d,0x00000016,0x00000023,0x0004003d,0x00000006,0x0000005e,
0x0000005d,0x000500b0,0x00000049,0x0000005f,0x0000005c,0x0000005e,0x000300f7,0x00000061,
0x00000000,0x000400fa,0x0000005f,0x00000060,0x00000061,0x000200f8,0x00000060,0x0004003d,
0x00000006,0x00000063,0x0000003c,0x00050080,0x00000006,0x00000064,0x00000063,0x0000005b,
0x0003003e,0x00000065,0x00000064,0x00050039,0x00000006,0x00000066,0x0000000a,0x00000065,
0x0003003e,0x00000062,0x00000066,0x0004003d,0x00000006,0x00000068,0x00000062,0x0003003e,
0x00000067,0x00000068,0x0003003e,0x00000069,0x0000005b,0x0004003d,0x00000006,0x0000006b,
0x0000004e,0x0003003e,0x0000006a,0x0000006b,0x00070039,0x00000002,0x0000006c,0x00000010,
0x00000067,0x00000069,0x0000006a,0x0004003d,0x00000006,0x0000006d,0x0000006a,0x0003003e,
0x0000004e,0x0000006d,0x000200f9,0x00000061,0x000200f8,0x00000061,0x00050041,0x00000019,
0x00000072,0x00000016,0x00000044,0x0004003d,0x00000006,0x00000073,0x00000072,0x00050041,
0x00000041,0x00000074,0x0000003f,0x00000040,0x0004003d,0x00000006,0x00000075,0x00000074,
0x00050080,0x00000006,0x00000076,0x00000073,0x00000075,0x0004003d,0x00000006,0x00000077,
0x0000004e,0x00060041,0x00000025,0x00000078,0x00000071,0x00000018,0x00000076,0x0003003e,
0x00000078,0x00000077,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,
0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,
0x00000012,0x00000007,0x0004003b,0x00000007,0x0000001d,0x00000007,0x0004003b,0x00000007,
0x00000028,0x00000007,0x0004003d,0x00000006,0x00000013,0x00000009,0x00050041,0x00000019,
0x746e656e,0x00000000,0x00040005,0x0000002c,0x756c6176,0x00000065,0x00040005,0x0000003e,
0x65646e69,0x00000078,0x00080005,0x00000041,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
0x496e6f69,0x00000044,0x00050005,0x00000050,0x56747364,0x65756c61,0x00000000,0x00050005,
0x00000051,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000052,0x61726170,0x0000006d,
0x00040005,0x00000055,0x61726170,0x0000006d,0x00040005,0x00000057,0x61726170,0x0000006d,
0x00040005,0x00000058,0x61726170,0x0000006d,0x00050005,0x00000064,0x56637273,0x65756c61,
0x00000000,0x00040005,0x00000067,0x61726170,0x0000006d,0x00040005,0x00000069,0x61726170,
0x0000006d,0x00040005,0x0000006b,0x61726170,0x0000006d,0x00040005,0x0000006c,0x61726170,
0x0000006d,0x00030005,0x00000071,0x00747364,0x00050006,0x00000071,0x00000000,0x44747364,
0x00617461,0x00030005,0x00000073,0x00000000,0x00050048,0x00000014,0x00000000,0x00000023,
0x00000000,0x00050048,0x00000014,0x00000001,0x00000023,0x00000004,0x00050048,0x00000014,
0x00000002,0x00000023,0x00000008,0x00050048,0x00000014,0x00000003,0x00000023,0x0000000c,
0x00030047,0x00000014,0x00000002,0x00040047,0x0000001e,0x00000006,0x00000004,0x00040048,
0x0000001f,0x00000000,0x00000018,0x00050048,0x0000001f,0x00000000,0x00000023,0x00000000,
0x00030047,0x0000001f,0x00000003,0x00040047,0x00000021,0x00000022,0x00000000,0x00040047,
0x00000021,0x00000021,0x00000001,0x00040047,0x00000041,0x0000000b,0x0000001c,0x00040047,
0x00000070,0x00000006,0x00000004,0x00050048,0x00000071,0x00000000,0x00000023,0x00000000,
0x00030047,0x00000071,0x00000003,0x00040047,0x00000073,0x00000022,0x00000000,0x00040047,
0x00000073,0x00000021,0x00000000,0x00040047,0x0000007c,0x0000000b,0x00000019,0x00020013,
0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,
0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,
0x00060021,0x0000000c,0x00000002,0x00000007,0x00000007,0x00000007,0x0006001e,0x00000014,
0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000015,0x00000009,0x00000014,
0x0004003b,0x00000015,0x00000016,0x00000009,0x00040015,0x00000017,0x00000020,0x00000001,
0x0004002b,0x00000017,0x00000018,0x00000000,0x00040020,0x00000019,0x00000009,0x00000006,
0x0003001d,0x0000001e,0x00000006,0x0003001e,0x0000001f,0x0000001e,0x00040020,0x00000020,
0x00000002,0x0000001f,0x0004003b,0x00000020,0x00000021,0x00000002,0x0004002b,0x00000017,
0x00000023,0x00000002,0x00040020,0x00000025,0x00000002,0x00000006,0x0004002b,0x00000006,
0x0000002a,0x00000003,0x0004002b,0x00000017,0x0000002f,0x00000003,0x0004002b,0x00000006,
0x00000032,0x000000ff,0x0004002b,0x00000017,0x00000039,0x00000004,0x00040017,0x0000003f,
0x00000006,0x00000003,0x00040020,0x00000040,0x00000001,0x0000003f,0x0004003b,0x00000040,
0x00000041,0x00000001,0x0004002b,0x00000006,0x00000042,0x00000000,0x00040020,0x00000043,
0x00000001,0x00000006,0x0004002b,0x00000017,0x00000046,0x00000001,0x00020014,0x0000004b,
0x0004002b,0x00000006,0x0000005d,0x00000001,0x0003001d,0x00000070,0x00000006,0x0003001e,
0x00000071,0x00000070,0x00040020,0x00000072,0x00000002,0x00000071,0x0004003b,0x00000072,
0x00000073,0x00000002,0x0004002b,0x00000006,0x0000007b,0x00000040,0x0006002c,0x0000003f,
0x0000007c,0x0000007b,0x0000005d,0x0000005d,0x00050036,0x00000002,0x00000004,0x00000000,
0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x0000003e,0x00000007,0x0004003b,
0x00000007,0x00000050,0x00000007,0x0004003b,0x00000007,0x00000051,0x00000007,0x0004003b,
0x00000007,0x00000052,0x00000007,0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,
0x00000007,0x00000057,0x00000007,0x0004003b,0x00000007,0x00000058,0x00000007,0x0004003b,
0x00000007,0x00000064,0x00000007,0x0004003b,0x00000007,0x00000067,0x00000007,0x0004003b,
0x00000007,0x00000069,0x00000007,0x0004003b,0x00000007,0x0000006b,0x00000007,0x0004003b,
0x00000007,0x0000006c,0x00000007,0x00050041,0x00000043,0x00000044,0x00000041,0x00000042,
0x0004003d,0x00000006,0x00000045,0x00000044,0x000500c4,0x00000006,0x00000047,0x00000045,
0x00000046,0x0003003e,0x0000003e,0x00000047,0x0004003d,0x00000006,0x00000048,0x0000003e,
0x00050041,0x00000019,0x00000049,0x00000016,0x00000023,0x0004003d,0x00000006,0x0000004a,
0x00000049,0x000500ae,0x0000004b,0x0000004c,0x00000048,0x0000004a,0x000300f7,0x0000004e,
0x00000000,0x000400fa,0x0000004c,0x0000004d,0x0000004e,0x000200f8,0x0000004d,0x000100fd,
0x000200f8,0x0000004e,0x0003003e,0x00000050,0x00000042,0x0004003d,0x00000006,0x00000053,
0x0000003e,0x0003003e,0x00000052,0x00000053,0x00050039,0x00000006,0x00000054,0x0000000a,
0x00000052,0x0003003e,0x00000051,0x00000054,0x0004003d,0x00000006,0x00000056,0x00000051,
0x0003003e,0x00000055,0x00000056,0x0003003e,0x00000057,0x00000042,0x0004003d,0x00000006,
0x00000059,0x00000050,0x0003003e,0x00000058,0x00000059,0x00070039,0x00000002,0x0000005a,
0x00000010,0x00000055,0x00000057,0x00000058,0x0004003d,0x00000006,0x0000005b,0x00000058,
0x0003003e,0x00000050,0x0000005b,0x0004003d,0x00000006,0x0000005c,0x0000003e,0x00050080,
0x00000006,0x0000005e,0x0000005c,0x0000005d,0x00050041,0x00000019,0x0000005f,0x00000016,
0x00000023,0x0004003d,0x00000006,0x00000060,0x0000005f,0x000500b0,0x0000004b,0x00000061,
0x0000005e,0x00000060,0x000300f7,0x00000063,0x00000000,0x000400fa,0x00000061,0x00000062,
0x00000063,0x000200f8,0x00000062,0x0004003d,0x00000006,0x00000065,0x0000003e,0x00050080,
0x00000006,0x00000066,0x00000065,0x0000005d,0x0003003e,0x00000067,0x00000066,0x00050039,
0x00000006,0x00000068,0x0000000a,0x00000067,0x0003003e,0x00000064,0x00000068,0x0004003d,
0x00000006,0x0000006a,0x00000064,0x0003003e,0x00000069,0x0000006a,0x0003003e,0x0000006b,
0x0000005d,0x0004003d,0x00000006,0x0000006d,0x00000050,0x0003003e,0x0000006c,0x0000006d,
0x00070039,0x00000002,0x0000006e,0x00000010,0x00000069,0x0000006b,0x0000006c,0x0004003d,
0x00000006,0x0000006f,0x0000006c,0x0003003e,0x00000050,0x0000006f,0x000200f9,0x00000063,
0x000200f8,0x00000063,0x00050041,0x00000019,0x00000074,0x00000016,0x00000046,0x0004003d,
0x00000006,0x00000075,0x00000074,0x00050041,0x00000043,0x00000076,0x00000041,0x00000042,
0x0004003d,0x00000006,0x00000077,0x00000076,0x00050080,0x00000006,0x00000078,0x00000075,
0x00000077,0x0004003d,0x00000006,0x00000079,0x00000050,0x00060041,0x00000025,0x0000007a,
0x00000073,0x00000018,0x00000078,0x0003003e,0x0000007a,0x00000079,0x000100fd,0x00010038,
0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,
0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,0x00000007,
0x0000001d,0x00000007,0x0004003b,0x00000007,0x00000028,0x00000007,0x0004003b,0x00000007,
0x0000002c,0x00000007,0x0004003d,0x00000006,0x00000013,0x00000009,0x00050041,0x00000019,
0x0000001a,0x00000016,0x00000018,0x0004003d,0x00000006,0x0000001b,0x0000001a,0x00050080,
0x00000006,0x0000001c,0x00000013,0x0000001b,0x0003003e,0x00000012,0x0000001c,0x0004003d,
0x00000006,0x00000022,0x00000012,0x000500c2,0x00000006,0x00000024,0x00000022,0x00000023,
0x00060041,0x00000025,0x00000026,0x00000021,0x00000018,0x00000024,0x0004003d,0x00000006,
0x00000027,0x00000026,0x0003003e,0x0000001d,0x00000027,0x0004003d,0x00000006,0x00000029,
0x00000012,0x000500c7,0x00000006,0x0000002b,0x00000029,0x0000002a,0x0003003e,0x00000028,
0x0000002b,0x0004003d,0x00000006,0x0000002c,0x0000001d,0x0004003d,0x00000006,0x0000002d,
0x00000028,0x000500c4,0x00000006,0x0000002f,0x0000002d,0x0000002e,0x000500c2,0x00000006,
0x00000030,0x0000002c,0x0000002f,0x000500c7,0x00000006,0x00000032,0x00000030,0x00000031,
0x000200fe,0x00000032,0x00010038,0x00050036,0x00000002,0x00000010,0x00000000,0x0000000c,
0x00030037,0x00000007,0x0000000d,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,
0x0000000f,0x000200f8,0x00000011,0x0004003d,0x00000006,0x00000035,0x0000000d,0x0004003d,
0x00000006,0x00000036,0x0000000e,0x000500c4,0x00000006,0x00000038,0x00000036,0x00000037,
0x000500c4,0x00000006,0x00000039,0x00000035,0x00000038,0x0004003d,0x00000006,0x0000003a,
0x0000000f,0x000500c5,0x00000006,0x0000003b,0x0000003a,0x00000039,0x0003003e,0x0000000f,
0x0000003b,0x000100fd,0x00010038
0x0000002b,0x0004003d,0x00000006,0x0000002d,0x0000001d,0x0004003d,0x00000006,0x0000002e,
0x00000028,0x000500c4,0x00000006,0x00000030,0x0000002e,0x0000002f,0x000500c2,0x00000006,
0x00000031,0x0000002d,0x00000030,0x000500c7,0x00000006,0x00000033,0x00000031,0x00000032,
0x0003003e,0x0000002c,0x00000033,0x0004003d,0x00000006,0x00000034,0x0000002c,0x000200fe,
0x00000034,0x00010038,0x00050036,0x00000002,0x00000010,0x00000000,0x0000000c,0x00030037,
0x00000007,0x0000000d,0x00030037,0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f,
0x000200f8,0x00000011,0x0004003d,0x00000006,0x00000037,0x0000000d,0x0004003d,0x00000006,
0x00000038,0x0000000e,0x000500c4,0x00000006,0x0000003a,0x00000038,0x00000039,0x000500c4,
0x00000006,0x0000003b,0x00000037,0x0000003a,0x0004003d,0x00000006,0x0000003c,0x0000000f,
0x000500c5,0x00000006,0x0000003d,0x0000003c,0x0000003b,0x0003003e,0x0000000f,0x0000003d,
0x000100fd,0x00010038
};
#if 0 // Generated from:
......@@ -144,7 +146,9 @@ uint PullIndex(uint index)
uint srcBlock = srcData[srcIndex >> 2];
uint srcComponent =(srcIndex & 3);
return(srcBlock >>(srcComponent << 3))& 0xFF;
uint value =(srcBlock >>(srcComponent << 3))& 0xFF;
return value;
}
void PackIndexValue(uint srcValue, uint indexIndex, inout uint dstValue)
......
// 7.12.3226
#pragma once
const uint32_t kConvertIndex_comp_00000001[] = {
0x07230203,0x00010000,0x00080007,0x00000082,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000047,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
0x00000004,0x6e69616d,0x00000000,0x00060005,0x0000000a,0x6c6c7550,0x65646e49,0x31752878,
0x0000003b,0x00040005,0x00000009,0x65646e69,0x00000078,0x00090005,0x00000010,0x6b636150,
0x65646e49,0x6c615678,0x75286575,0x31753b31,0x3b31753b,0x00000000,0x00050005,0x0000000d,
0x56637273,0x65756c61,0x00000000,0x00050005,0x0000000e,0x65646e69,0x646e4978,0x00007865,
0x00050005,0x0000000f,0x56747364,0x65756c61,0x00000000,0x00050005,0x00000012,0x49637273,
0x7865646e,0x00000000,0x00060005,0x00000014,0x68737550,0x736e6f43,0x746e6174,0x00000073,
0x00060006,0x00000014,0x00000000,0x4f637273,0x65736666,0x00000074,0x00070006,0x00000014,
0x00000001,0x4f747364,0x65736666,0x76694474,0x00000034,0x00060006,0x00000014,0x00000002,
0x4978616d,0x7865646e,0x00000000,0x00060006,0x00000014,0x00000003,0x6461705f,0x676e6964,
0x00000000,0x00030005,0x00000016,0x00000000,0x00050005,0x0000001d,0x42637273,0x6b636f6c,
0x00000000,0x00030005,0x0000001f,0x00637273,0x00050006,0x0000001f,0x00000000,0x44637273,
0x00617461,0x00030005,0x00000021,0x00000000,0x00060005,0x00000028,0x43637273,0x6f706d6f,
0x746e656e,0x00000000,0x00040005,0x0000002c,0x756c6176,0x00000065,0x00040005,0x00000044,
0x65646e69,0x00000078,0x00080005,0x00000047,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
0x496e6f69,0x00000044,0x00050005,0x00000055,0x56747364,0x65756c61,0x00000000,0x00050005,
0x00000056,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000057,0x61726170,0x0000006d,
0x00040005,0x0000005a,0x61726170,0x0000006d,0x00040005,0x0000005c,0x61726170,0x0000006d,
0x00040005,0x0000005d,0x61726170,0x0000006d,0x00050005,0x00000069,0x56637273,0x65756c61,
0x00000000,0x00040005,0x0000006c,0x61726170,0x0000006d,0x00040005,0x0000006e,0x61726170,
0x0000006d,0x00040005,0x00000070,0x61726170,0x0000006d,0x00040005,0x00000071,0x61726170,
0x0000006d,0x00030005,0x00000076,0x00747364,0x00050006,0x00000076,0x00000000,0x44747364,
0x00617461,0x00030005,0x00000078,0x00000000,0x00050048,0x00000014,0x00000000,0x00000023,
0x00000000,0x00050048,0x00000014,0x00000001,0x00000023,0x00000004,0x00050048,0x00000014,
0x00000002,0x00000023,0x00000008,0x00050048,0x00000014,0x00000003,0x00000023,0x0000000c,
0x00030047,0x00000014,0x00000002,0x00040047,0x0000001e,0x00000006,0x00000004,0x00040048,
0x0000001f,0x00000000,0x00000018,0x00050048,0x0000001f,0x00000000,0x00000023,0x00000000,
0x00030047,0x0000001f,0x00000003,0x00040047,0x00000021,0x00000022,0x00000000,0x00040047,
0x00000021,0x00000021,0x00000001,0x00040047,0x00000047,0x0000000b,0x0000001c,0x00040047,
0x00000075,0x00000006,0x00000004,0x00050048,0x00000076,0x00000000,0x00000023,0x00000000,
0x00030047,0x00000076,0x00000003,0x00040047,0x00000078,0x00000022,0x00000000,0x00040047,
0x00000078,0x00000021,0x00000000,0x00040047,0x00000081,0x0000000b,0x00000019,0x00020013,
0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,
0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,
0x00060021,0x0000000c,0x00000002,0x00000007,0x00000007,0x00000007,0x0006001e,0x00000014,
0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000015,0x00000009,0x00000014,
0x0004003b,0x00000015,0x00000016,0x00000009,0x00040015,0x00000017,0x00000020,0x00000001,
0x0004002b,0x00000017,0x00000018,0x00000000,0x00040020,0x00000019,0x00000009,0x00000006,
0x0003001d,0x0000001e,0x00000006,0x0003001e,0x0000001f,0x0000001e,0x00040020,0x00000020,
0x00000002,0x0000001f,0x0004003b,0x00000020,0x00000021,0x00000002,0x0004002b,0x00000017,
0x00000023,0x00000002,0x00040020,0x00000025,0x00000002,0x00000006,0x0004002b,0x00000006,
0x0000002a,0x00000003,0x0004002b,0x00000017,0x0000002f,0x00000003,0x0004002b,0x00000006,
0x00000032,0x000000ff,0x00020014,0x00000035,0x0004002b,0x00000006,0x00000039,0x0000ffff,
0x0004002b,0x00000017,0x0000003f,0x00000004,0x00040017,0x00000045,0x00000006,0x00000003,
0x00040020,0x00000046,0x00000001,0x00000045,0x0004003b,0x00000046,0x00000047,0x00000001,
0x0004002b,0x00000006,0x00000048,0x00000000,0x00040020,0x00000049,0x00000001,0x00000006,
0x0004002b,0x00000017,0x0000004c,0x00000001,0x0004002b,0x00000006,0x00000062,0x00000001,
0x0003001d,0x00000075,0x00000006,0x0003001e,0x00000076,0x00000075,0x00040020,0x00000077,
0x00000002,0x00000076,0x0004003b,0x00000077,0x00000078,0x00000002,0x0004002b,0x00000006,
0x00000080,0x00000040,0x0006002c,0x00000045,0x00000081,0x00000080,0x00000062,0x00000062,
0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
0x00000007,0x00000044,0x00000007,0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,
0x00000007,0x00000056,0x00000007,0x0004003b,0x00000007,0x00000057,0x00000007,0x0004003b,
0x00000007,0x0000005a,0x00000007,0x0004003b,0x00000007,0x0000005c,0x00000007,0x0004003b,
0x00000007,0x0000005d,0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,0x0004003b,
0x00000007,0x0000006c,0x00000007,0x0004003b,0x00000007,0x0000006e,0x00000007,0x0004003b,
0x00000007,0x00000070,0x00000007,0x0004003b,0x00000007,0x00000071,0x00000007,0x00050041,
0x00000049,0x0000004a,0x00000047,0x00000048,0x0004003d,0x00000006,0x0000004b,0x0000004a,
0x000500c4,0x00000006,0x0000004d,0x0000004b,0x0000004c,0x0003003e,0x00000044,0x0000004d,
0x0004003d,0x00000006,0x0000004e,0x00000044,0x00050041,0x00000019,0x0000004f,0x00000016,
0x00000023,0x0004003d,0x00000006,0x00000050,0x0000004f,0x000500ae,0x00000035,0x00000051,
0x0000004e,0x00000050,0x000300f7,0x00000053,0x00000000,0x000400fa,0x00000051,0x00000052,
0x00000053,0x000200f8,0x00000052,0x000100fd,0x000200f8,0x00000053,0x0003003e,0x00000055,
0x00000048,0x0004003d,0x00000006,0x00000058,0x00000044,0x0003003e,0x00000057,0x00000058,
0x00050039,0x00000006,0x00000059,0x0000000a,0x00000057,0x0003003e,0x00000056,0x00000059,
0x0004003d,0x00000006,0x0000005b,0x00000056,0x0003003e,0x0000005a,0x0000005b,0x0003003e,
0x0000005c,0x00000048,0x0004003d,0x00000006,0x0000005e,0x00000055,0x0003003e,0x0000005d,
0x0000005e,0x00070039,0x00000002,0x0000005f,0x00000010,0x0000005a,0x0000005c,0x0000005d,
0x0004003d,0x00000006,0x00000060,0x0000005d,0x0003003e,0x00000055,0x00000060,0x0004003d,
0x00000006,0x00000061,0x00000044,0x00050080,0x00000006,0x00000063,0x00000061,0x00000062,
0x00050041,0x00000019,0x00000064,0x00000016,0x00000023,0x0004003d,0x00000006,0x00000065,
0x00000064,0x000500b0,0x00000035,0x00000066,0x00000063,0x00000065,0x000300f7,0x00000068,
0x00000000,0x000400fa,0x00000066,0x00000067,0x00000068,0x000200f8,0x00000067,0x0004003d,
0x00000006,0x0000006a,0x00000044,0x00050080,0x00000006,0x0000006b,0x0000006a,0x00000062,
0x0003003e,0x0000006c,0x0000006b,0x00050039,0x00000006,0x0000006d,0x0000000a,0x0000006c,
0x0003003e,0x00000069,0x0000006d,0x0004003d,0x00000006,0x0000006f,0x00000069,0x0003003e,
0x0000006e,0x0000006f,0x0003003e,0x00000070,0x00000062,0x0004003d,0x00000006,0x00000072,
0x00000055,0x0003003e,0x00000071,0x00000072,0x00070039,0x00000002,0x00000073,0x00000010,
0x0000006e,0x00000070,0x00000071,0x0004003d,0x00000006,0x00000074,0x00000071,0x0003003e,
0x00000055,0x00000074,0x000200f9,0x00000068,0x000200f8,0x00000068,0x00050041,0x00000019,
0x00000079,0x00000016,0x0000004c,0x0004003d,0x00000006,0x0000007a,0x00000079,0x00050041,
0x00000049,0x0000007b,0x00000047,0x00000048,0x0004003d,0x00000006,0x0000007c,0x0000007b,
0x00050080,0x00000006,0x0000007d,0x0000007a,0x0000007c,0x0004003d,0x00000006,0x0000007e,
0x00000055,0x00060041,0x00000025,0x0000007f,0x00000078,0x00000018,0x0000007d,0x0003003e,
0x0000007f,0x0000007e,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,
0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,
0x00000012,0x00000007,0x0004003b,0x00000007,0x0000001d,0x00000007,0x0004003b,0x00000007,
0x00000028,0x00000007,0x0004003b,0x00000007,0x0000002c,0x00000007,0x0004003d,0x00000006,
0x00000013,0x00000009,0x00050041,0x00000019,0x0000001a,0x00000016,0x00000018,0x0004003d,
0x00000006,0x0000001b,0x0000001a,0x00050080,0x00000006,0x0000001c,0x00000013,0x0000001b,
0x0003003e,0x00000012,0x0000001c,0x0004003d,0x00000006,0x00000022,0x00000012,0x000500c2,
0x00000006,0x00000024,0x00000022,0x00000023,0x00060041,0x00000025,0x00000026,0x00000021,
0x00000018,0x00000024,0x0004003d,0x00000006,0x00000027,0x00000026,0x0003003e,0x0000001d,
0x00000027,0x0004003d,0x00000006,0x00000029,0x00000012,0x000500c7,0x00000006,0x0000002b,
0x00000029,0x0000002a,0x0003003e,0x00000028,0x0000002b,0x0004003d,0x00000006,0x0000002d,
0x0000001d,0x0004003d,0x00000006,0x0000002e,0x00000028,0x000500c4,0x00000006,0x00000030,
0x0000002e,0x0000002f,0x000500c2,0x00000006,0x00000031,0x0000002d,0x00000030,0x000500c7,
0x00000006,0x00000033,0x00000031,0x00000032,0x0003003e,0x0000002c,0x00000033,0x0004003d,
0x00000006,0x00000034,0x0000002c,0x000500aa,0x00000035,0x00000036,0x00000034,0x00000032,
0x000300f7,0x00000038,0x00000000,0x000400fa,0x00000036,0x00000037,0x00000038,0x000200f8,
0x00000037,0x0003003e,0x0000002c,0x00000039,0x000200f9,0x00000038,0x000200f8,0x00000038,
0x0004003d,0x00000006,0x0000003a,0x0000002c,0x000200fe,0x0000003a,0x00010038,0x00050036,
0x00000002,0x00000010,0x00000000,0x0000000c,0x00030037,0x00000007,0x0000000d,0x00030037,
0x00000007,0x0000000e,0x00030037,0x00000007,0x0000000f,0x000200f8,0x00000011,0x0004003d,
0x00000006,0x0000003d,0x0000000d,0x0004003d,0x00000006,0x0000003e,0x0000000e,0x000500c4,
0x00000006,0x00000040,0x0000003e,0x0000003f,0x000500c4,0x00000006,0x00000041,0x0000003d,
0x00000040,0x0004003d,0x00000006,0x00000042,0x0000000f,0x000500c5,0x00000006,0x00000043,
0x00000042,0x00000041,0x0003003e,0x0000000f,0x00000043,0x000100fd,0x00010038
};
#if 0 // 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 dst
{
uint dstData[];
};
layout(set = 0, binding = 1)readonly buffer src
{
uint srcData[];
};
layout(push_constant)uniform PushConstants
{
uint srcOffset;
uint dstOffsetDiv4;
uint maxIndex;
uint _padding;
};
uint PullIndex(uint index)
{
uint srcIndex = index + srcOffset;
uint srcBlock = srcData[srcIndex >> 2];
uint srcComponent =(srcIndex & 3);
uint value =(srcBlock >>(srcComponent << 3))& 0xFF;
if(value == 0xFF)
value = 0xFFFF;
return value;
}
void PackIndexValue(uint srcValue, uint indexIndex, inout uint dstValue)
{
dstValue |= srcValue <<(indexIndex << 4);
}
void main()
{
uint index =(gl_GlobalInvocationID . x << 1);
if(index >= maxIndex)
return;
uint dstValue = 0;
uint srcValue = PullIndex(index);
PackIndexValue(srcValue, 0, dstValue);
if(index + 1 < maxIndex)
{
uint srcValue = PullIndex(index + 1);
PackIndexValue(srcValue, 1, dstValue);
}
dstData[dstOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
}
#endif // Preprocessed code
......@@ -7,7 +7,9 @@
//
// The following defines tweak the functionality, and a different shader is built based on these.
//
// (Currently no parameters)
// - Flags:
// * IsPrimitiveRestartEnabled: enables conversion from 0xFF to 0xFFFF,
// the restart indices for 8-bit and 16-bit indices.
//
#version 450 core
......@@ -34,7 +36,7 @@ layout (push_constant) uniform PushConstants
uint dstOffsetDiv4;
// Maximum size of the read buffer. The highest index value we will convert.
uint maxIndex;
// Not used in the shader. Kept to pad "PushContants" to the size of a vec4.
// Not used in the shader. Kept to pad "PushConstants" to the size of a vec4.
uint _padding;
};
......@@ -44,7 +46,14 @@ uint PullIndex(uint index)
uint srcBlock = srcData[srcIndex >> 2];
uint srcComponent = (srcIndex & 3);
return (srcBlock >> (srcComponent << 3)) & 0xFF;
uint value = (srcBlock >> (srcComponent << 3)) & 0xFF;
#if IsPrimitiveRestartEnabled
// convert 0xFF (restart value for 8-bit indices)
// to 0xFFFF (restart value for 16-bit indices).
if (value == 0xFF)
value = 0xFFFF;
#endif
return value;
}
void PackIndexValue(uint srcValue, uint indexIndex, inout uint dstValue)
......@@ -53,9 +62,6 @@ void PackIndexValue(uint srcValue, uint indexIndex, inout uint dstValue)
dstValue |= srcValue << (indexIndex << 4);
}
// Note: Once support for primitive restart is added, the shader needs to
// convert 0xFF -> 0xFFFF. http://anglebug.com/3215
void main()
{
// The element index is simply the invocation ID times two.
......
......@@ -5,5 +5,8 @@
"found in the LICENSE file.",
"",
"ConvertIndex.comp.json: Build parameters for ConvertIndex.comp."
],
"Flags": [
"IsPrimitiveRestartEnabled"
]
}
......@@ -830,6 +830,14 @@ void GraphicsPipelineDesc::updateTopology(GraphicsPipelineTransitionBits *transi
transition->set(ANGLE_GET_TRANSITION_BIT(mInputAssemblyAndColorBlendStateInfo, primitive));
}
void GraphicsPipelineDesc::updatePrimitiveRestartEnabled(GraphicsPipelineTransitionBits *transition,
bool primitiveRestartEnabled)
{
mInputAssemblyAndColorBlendStateInfo.primitive.restartEnable =
static_cast<uint16_t>(primitiveRestartEnabled);
transition->set(ANGLE_GET_TRANSITION_BIT(mInputAssemblyAndColorBlendStateInfo, primitive));
}
void GraphicsPipelineDesc::updateCullMode(GraphicsPipelineTransitionBits *transition,
const gl::RasterizerState &rasterState)
{
......
......@@ -375,6 +375,8 @@ class GraphicsPipelineDesc final
// Input assembly info
void updateTopology(GraphicsPipelineTransitionBits *transition, gl::PrimitiveMode drawMode);
void updatePrimitiveRestartEnabled(GraphicsPipelineTransitionBits *transition,
bool primitiveRestartEnabled);
// Raster states
void updateCullMode(GraphicsPipelineTransitionBits *transition,
......
......@@ -57,6 +57,7 @@ namespace
#include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000A.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000002.inc"
......@@ -172,6 +173,7 @@ constexpr ShaderBlob kBufferUtils_comp_shaders[] = {
};
constexpr ShaderBlob kConvertIndex_comp_shaders[] = {
{kConvertIndex_comp_00000000, sizeof(kConvertIndex_comp_00000000)},
{kConvertIndex_comp_00000001, sizeof(kConvertIndex_comp_00000001)},
};
constexpr ShaderBlob kConvertVertex_comp_shaders[] = {
{kConvertVertex_comp_00000000, sizeof(kConvertVertex_comp_00000000)},
......
......@@ -50,6 +50,7 @@ angle_vulkan_internal_shaders = [
"shaders/gen/BufferUtils.comp.0000000A.inc",
"shaders/gen/BufferUtils.comp.0000000B.inc",
"shaders/gen/ConvertIndex.comp.00000000.inc",
"shaders/gen/ConvertIndex.comp.00000001.inc",
"shaders/gen/ConvertVertex.comp.00000000.inc",
"shaders/gen/ConvertVertex.comp.00000001.inc",
"shaders/gen/ConvertVertex.comp.00000002.inc",
......
......@@ -70,7 +70,11 @@ constexpr size_t kArrayLen = 0x0000000C;
namespace ConvertIndex_comp
{
constexpr size_t kArrayLen = 0x00000001;
enum flags
{
kIsPrimitiveRestartEnabled = 0x00000001,
};
constexpr size_t kArrayLen = 0x00000002;
} // namespace ConvertIndex_comp
namespace ConvertVertex_comp
......
......@@ -657,8 +657,15 @@
// - FramebufferVk::invalidate*:
2950 VULKAN : dEQP-GLES3.functional.fbo.invalidate.* = SKIP
// - Primitive restart:
2950 VULKAN : dEQP-GLES3.functional.primitive_restart.* = SKIP
// - Primitive restart with line loops:
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.basic.line_loop.* = SKIP
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.duplicate_restarts.line_loop.* = SKIP
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.end_restart.line_loop.* = SKIP
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.end_restart_duplicate_restarts.line_loop.* = SKIP
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.begin_restart.line_loop.* = SKIP
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.begin_restart_duplicate_restarts.line_loop.* = SKIP
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.begin_restart_end_restart.line_loop.* = SKIP
3215 VULKAN : dEQP-GLES3.functional.primitive_restart.begin_restart_end_restart_duplicate_restarts.line_loop.* = SKIP
// - BufferVk::copySubData:
2950 VULKAN : dEQP-GLES3.functional.negative_api.buffer.copy_buffer_sub_data = SKIP
......
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