Commit 7f418fc2 by Courtney Goeltzenleuchter Committed by Commit Bot

Vulkan: lineloop support for DrawArrayIndirect

Add support for lineloops. Includes a compute shader for generating an index buffer to draw lineloop. Instancing turns out to be a special case for indirect draws if we have vertex attributes that need to be emulated (e.g. divisor too large or native vertex format not available). Test: dEQP.GLES31/functional_draw_indirect_* angle_end2end_tests --gtest_filter=LineLoopIndirectTest.*/* dEQP.GLES3/functional_draw_* Bug: angleproject:3564 Change-Id: I1fdabe2c8a690c8b6df9e252e1e839e08796bcca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1834682 Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 299bea64
......@@ -82,17 +82,19 @@
"src/libANGLE/renderer/vulkan/shaders/gen/BufferUtils.comp.0000000B.inc":
"7e13d5325d35f96045e920a1cb3598bc",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000000.inc":
"b3877393750a16efd1d6805a0327a9e7",
"2eb01d29bfbe67165fe2ac22f889b65e",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000001.inc":
"66d7868159587d000ef41d84489780bc",
"88ec915ed8519a5b49f1d022774d2655",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000002.inc":
"db98380613bc3f032037b4a096756975",
"4b5290a0c127e1375ec6b5dcec46893c",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc":
"e676bdff5c3b596eccba13a4e52d3875",
"0d3eb0f82f328837ef4c0fe5f978ef3f",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc":
"d99b638b0b2efa9726350869fe6b9b10",
"76d8265a6ccec813fb7f7ad1b503947e",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc":
"8f27f7634724189ce2bd63820e96ee63",
"a1964fd9d0b75701a384a11ac23242fb",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertIndirectLineLoop.comp.00000000.inc":
"523d3207d424614197ace9601ce56950",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000000.inc":
"f5ef892346ee10e5d0d9f8cba2a491b2",
"src/libANGLE/renderer/vulkan/shaders/gen/ConvertVertex.comp.00000001.inc":
......@@ -290,9 +292,11 @@
"src/libANGLE/renderer/vulkan/shaders/src/BufferUtils.comp":
"b7c20e019199f8328ef37b11c6fbcadd",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndex.comp":
"083e2b6ed2cf40f036287413c449e675",
"a46b48d7d5b19c74eb377f275525ab8d",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndexIndirectLineLoop.comp":
"a543a28fc1fe53eefd5949ee3b4428f3",
"63418a915d0a63a26c17fea3091cd42d",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertIndirectLineLoop.comp":
"c4fe0f463b41cd59bae33f9711e0b67b",
"src/libANGLE/renderer/vulkan/shaders/src/ConvertVertex.comp":
"6d034ff271e17c0a4f8a12b8eec2970d",
"src/libANGLE/renderer/vulkan/shaders/src/FullScreenQuad.vert":
......@@ -306,9 +310,9 @@
"src/libANGLE/renderer/vulkan/shaders/src/OverlayDraw.comp":
"dcc246b398b2e07a869a264666499362",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp":
"39bcc07efd2fe05c1eb0a9d9e34567d3",
"5991a86d00cf2b40989e92cc0e9f2519",
"src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h":
"cfeb07579c1ba5051450f76f06e47d05",
"64b710329f099176d53899fb4d8c816a",
"tools/glslang/glslang_validator.exe.sha1":
"289f30598865a987a21b79ae525fc66f",
"tools/glslang/glslang_validator.sha1":
......
......@@ -756,7 +756,6 @@ angle::Result ContextVk::setupDraw(const gl::Context *context,
// Must be called before the command buffer is started. Can call finish.
if (mVertexArray->getStreamingVertexAttribsMask().any())
{
ASSERT(firstVertexOrInvalid != -1);
// All client attribs & any emulated buffered attribs will be updated
ANGLE_TRY(mVertexArray->updateStreamedAttribs(context, firstVertexOrInvalid,
vertexOrIndexCount, instanceCount,
......@@ -865,21 +864,20 @@ angle::Result ContextVk::setupIndexedDraw(const gl::Context *context,
angle::Result ContextVk::setupIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
DirtyBits dirtyBitMask,
vk::CommandBuffer **commandBufferOut,
vk::Buffer **indirectBufferOut)
vk::BufferHelper *indirectBuffer,
VkDeviceSize indirectBufferOffset,
vk::CommandBuffer **commandBufferOut)
{
ASSERT(mode != gl::PrimitiveMode::LineLoop);
gl::Buffer *indirectBuffer = mState.getTargetBuffer(gl::BufferBinding::DrawIndirect);
ASSERT(indirectBuffer);
GLint firstVertex = -1;
GLsizei vertexCount = 0;
GLsizei instanceCount = 1;
vk::BufferHelper &buffer = vk::GetImpl(indirectBuffer)->getBuffer();
*indirectBufferOut = const_cast<vk::Buffer *>(&buffer.getBuffer());
vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
buffer.onRead(this, framebuffer, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
indirectBuffer->onRead(this, framebuffer, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
ANGLE_TRY(setupDraw(context, mode, -1, 0, 0, gl::DrawElementsType::InvalidEnum, nullptr,
dirtyBitMask, commandBufferOut));
ANGLE_TRY(setupDraw(context, mode, firstVertex, vertexCount, instanceCount,
gl::DrawElementsType::InvalidEnum, nullptr, dirtyBitMask,
commandBufferOut));
return angle::Result::Continue;
}
......@@ -887,8 +885,9 @@ angle::Result ContextVk::setupIndirectDraw(const gl::Context *context,
angle::Result ContextVk::setupIndexedIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
gl::DrawElementsType indexType,
vk::CommandBuffer **commandBufferOut,
vk::Buffer **indirectBufferOut)
vk::BufferHelper *indirectBuffer,
VkDeviceSize indirectBufferOffset,
vk::CommandBuffer **commandBufferOut)
{
ASSERT(mode != gl::PrimitiveMode::LineLoop);
......@@ -898,30 +897,30 @@ angle::Result ContextVk::setupIndexedIndirectDraw(const gl::Context *context,
setIndexBufferDirty();
}
return setupIndirectDraw(context, mode, mIndexedDirtyBitsMask, commandBufferOut,
indirectBufferOut);
return setupIndirectDraw(context, mode, mIndexedDirtyBitsMask, indirectBuffer,
indirectBufferOffset, commandBufferOut);
}
angle::Result ContextVk::setupLineLoopIndexedIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
gl::DrawElementsType indexType,
const gl::Buffer *indirectBuffer,
vk::BufferHelper *srcIndirectBuf,
VkDeviceSize indirectBufferOffset,
const gl::Buffer *indexBuffer,
vk::CommandBuffer **commandBufferOut,
vk::Buffer **indirectBufferOut,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut)
{
ASSERT(mode == gl::PrimitiveMode::LineLoop);
BufferVk *indirectBufferVk = vk::GetImpl(indirectBuffer);
vk::BufferHelper *indirectBufferHelperOut = nullptr;
vk::BufferHelper *dstIndirectBuf = nullptr;
VkDeviceSize dstIndirectBufOffset = 0;
ANGLE_TRY(mVertexArray->handleLineLoopIndirect(this, indirectBufferVk, indexType,
indirectBufferOffset, &indirectBufferHelperOut,
indirectBufferOffsetOut));
ANGLE_TRY(mVertexArray->handleLineLoopIndexIndirect(this, indexType, srcIndirectBuf,
indirectBufferOffset, &dstIndirectBuf,
&dstIndirectBufOffset));
*indirectBufferOut = const_cast<vk::Buffer *>(&indirectBufferHelperOut->getBuffer());
*indirectBufferOut = dstIndirectBuf;
*indirectBufferOffsetOut = dstIndirectBufOffset;
if (indexType != mCurrentDrawElementsType)
{
......@@ -929,11 +928,36 @@ angle::Result ContextVk::setupLineLoopIndexedIndirectDraw(const gl::Context *con
setIndexBufferDirty();
}
vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
indirectBufferHelperOut->onRead(this, framebuffer, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
return setupIndirectDraw(context, mode, mIndexedDirtyBitsMask, dstIndirectBuf,
dstIndirectBufOffset, commandBufferOut);
}
return setupDraw(context, mode, -1, 0, 0, gl::DrawElementsType::InvalidEnum, nullptr,
mIndexedDirtyBitsMask, commandBufferOut);
angle::Result ContextVk::setupLineLoopIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
vk::BufferHelper *indirectBuffer,
VkDeviceSize indirectBufferOffset,
vk::CommandBuffer **commandBufferOut,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut)
{
ASSERT(mode == gl::PrimitiveMode::LineLoop);
vk::BufferHelper *indirectBufferHelperOut = nullptr;
ANGLE_TRY(mVertexArray->handleLineLoopIndirectDraw(
context, indirectBuffer, indirectBufferOffset, &indirectBufferHelperOut,
indirectBufferOffsetOut));
*indirectBufferOut = indirectBufferHelperOut;
if (gl::DrawElementsType::UnsignedInt != mCurrentDrawElementsType)
{
mCurrentDrawElementsType = gl::DrawElementsType::UnsignedInt;
setIndexBufferDirty();
}
return setupIndirectDraw(context, mode, mIndexedDirtyBitsMask, indirectBufferHelperOut,
*indirectBufferOffsetOut, commandBufferOut);
}
angle::Result ContextVk::setupLineLoopDraw(const gl::Context *context,
......@@ -1613,14 +1637,19 @@ angle::Result ContextVk::drawArraysInstanced(const gl::Context *context,
GLsizei count,
GLsizei instances)
{
vk::CommandBuffer *commandBuffer = nullptr;
if (mode == gl::PrimitiveMode::LineLoop)
{
// TODO - http://anglebug.com/2672
ANGLE_VK_UNREACHABLE(this);
return angle::Result::Stop;
uint32_t clampedVertexCount = gl::GetClampedVertexCount<uint32_t>(count);
uint32_t numIndices;
ANGLE_TRY(setupLineLoopDraw(context, mode, first, clampedVertexCount,
gl::DrawElementsType::InvalidEnum, nullptr, &commandBuffer,
&numIndices));
commandBuffer->drawIndexedInstanced(numIndices, instances);
return angle::Result::Continue;
}
vk::CommandBuffer *commandBuffer = nullptr;
ANGLE_TRY(setupDraw(context, mode, first, count, instances, gl::DrawElementsType::InvalidEnum,
nullptr, mNonIndexedDirtyBitsMask, &commandBuffer));
commandBuffer->drawInstanced(gl::GetClampedVertexCount<uint32_t>(count), instances, first);
......@@ -1634,14 +1663,20 @@ angle::Result ContextVk::drawArraysInstancedBaseInstance(const gl::Context *cont
GLsizei instances,
GLuint baseInstance)
{
vk::CommandBuffer *commandBuffer = nullptr;
if (mode == gl::PrimitiveMode::LineLoop)
{
// TODO - http://anglebug.com/2672
ANGLE_VK_UNREACHABLE(this);
return angle::Result::Stop;
uint32_t clampedVertexCount = gl::GetClampedVertexCount<uint32_t>(count);
uint32_t numIndices;
ANGLE_TRY(setupLineLoopDraw(context, mode, first, clampedVertexCount,
gl::DrawElementsType::InvalidEnum, nullptr, &commandBuffer,
&numIndices));
commandBuffer->drawIndexedInstancedBaseVertexBaseInstance(numIndices, instances, 0, 0,
baseInstance);
return angle::Result::Continue;
}
vk::CommandBuffer *commandBuffer = nullptr;
ANGLE_TRY(setupDraw(context, mode, first, count, instances, gl::DrawElementsType::InvalidEnum,
nullptr, mNonIndexedDirtyBitsMask, &commandBuffer));
commandBuffer->drawInstancedBaseInstance(gl::GetClampedVertexCount<uint32_t>(count), instances,
......@@ -1679,15 +1714,20 @@ angle::Result ContextVk::drawElementsInstanced(const gl::Context *context,
const void *indices,
GLsizei instances)
{
vk::CommandBuffer *commandBuffer = nullptr;
if (mode == gl::PrimitiveMode::LineLoop)
{
// TODO - http://anglebug.com/2672
ANGLE_VK_UNREACHABLE(this);
return angle::Result::Stop;
uint32_t indexCount;
ANGLE_TRY(
setupLineLoopDraw(context, mode, 0, count, type, indices, &commandBuffer, &indexCount));
count = indexCount;
}
else
{
ANGLE_TRY(setupIndexedDraw(context, mode, count, instances, type, indices, &commandBuffer));
}
vk::CommandBuffer *commandBuffer = nullptr;
ANGLE_TRY(setupIndexedDraw(context, mode, count, instances, type, indices, &commandBuffer));
commandBuffer->drawIndexedInstanced(count, instances);
return angle::Result::Continue;
}
......@@ -1701,14 +1741,18 @@ angle::Result ContextVk::drawElementsInstancedBaseVertexBaseInstance(const gl::C
GLint baseVertex,
GLuint baseInstance)
{
vk::CommandBuffer *commandBuffer = nullptr;
if (mode == gl::PrimitiveMode::LineLoop)
{
// TODO - http://anglebug.com/2672
ANGLE_VK_UNREACHABLE(this);
return angle::Result::Stop;
uint32_t indexCount;
ANGLE_TRY(
setupLineLoopDraw(context, mode, 0, count, type, indices, &commandBuffer, &indexCount));
commandBuffer->drawIndexedInstancedBaseVertexBaseInstance(indexCount, instances, 0,
baseVertex, baseInstance);
return angle::Result::Continue;
}
vk::CommandBuffer *commandBuffer = nullptr;
ANGLE_TRY(setupIndexedDraw(context, mode, count, instances, type, indices, &commandBuffer));
commandBuffer->drawIndexedInstancedBaseVertexBaseInstance(count, instances, 0, baseVertex,
baseInstance);
......@@ -1735,19 +1779,51 @@ angle::Result ContextVk::drawArraysIndirect(const gl::Context *context,
gl::PrimitiveMode mode,
const void *indirect)
{
if (mode == gl::PrimitiveMode::LineLoop)
gl::Buffer *indirectBuffer = mState.getTargetBuffer(gl::BufferBinding::DrawIndirect);
vk::BufferHelper *currentIndirectBuf = &vk::GetImpl(indirectBuffer)->getBuffer();
VkDeviceSize currentIndirectBufOffset = reinterpret_cast<VkDeviceSize>(indirect);
if (mVertexArray->getStreamingVertexAttribsMask().any())
{
// TODO - http://anglebug.com/3564
ANGLE_VK_UNREACHABLE(this);
return angle::Result::Stop;
vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
currentIndirectBuf->onRead(this, framebuffer, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
// We have instanced vertex attributes that need to be emulated for Vulkan.
// invalidate any cache and map the buffer so that we can read the indirect data.
// Mapping the buffer will cause a flush.
ANGLE_TRY(currentIndirectBuf->invalidate(this, 0, sizeof(VkDrawIndirectCommand)));
uint8_t *buffPtr;
ANGLE_TRY(currentIndirectBuf->map(this, &buffPtr));
const VkDrawIndirectCommand *indirectData =
reinterpret_cast<VkDrawIndirectCommand *>(buffPtr + currentIndirectBufOffset);
ANGLE_TRY(drawArraysInstanced(context, mode, indirectData->firstVertex,
indirectData->vertexCount, indirectData->instanceCount));
currentIndirectBuf->unmap(getDevice());
return angle::Result::Continue;
}
vk::CommandBuffer *commandBuffer = nullptr;
vk::Buffer *buffer = nullptr;
ANGLE_TRY(setupIndirectDraw(context, mode, mNonIndexedDirtyBitsMask, &commandBuffer, &buffer));
if (mode == gl::PrimitiveMode::LineLoop)
{
ASSERT(indirectBuffer);
vk::BufferHelper *dstIndirectBuf = nullptr;
VkDeviceSize dstIndirectBufOffset = 0;
commandBuffer->drawIndirect(*buffer, reinterpret_cast<VkDeviceSize>(indirect), 1, 0);
ANGLE_TRY(setupLineLoopIndirectDraw(context, mode, currentIndirectBuf,
currentIndirectBufOffset, &commandBuffer,
&dstIndirectBuf, &dstIndirectBufOffset));
commandBuffer->drawIndexedIndirect(dstIndirectBuf->getBuffer(), dstIndirectBufOffset, 1, 0);
return angle::Result::Continue;
}
ANGLE_TRY(setupIndirectDraw(context, mode, mNonIndexedDirtyBitsMask, currentIndirectBuf,
currentIndirectBufOffset, &commandBuffer));
commandBuffer->drawIndirect(currentIndirectBuf->getBuffer(), currentIndirectBufOffset, 1, 0);
return angle::Result::Continue;
}
......@@ -1756,37 +1832,67 @@ angle::Result ContextVk::drawElementsIndirect(const gl::Context *context,
gl::DrawElementsType type,
const void *indirect)
{
VkDeviceSize indirectBufferOffset = reinterpret_cast<VkDeviceSize>(indirect);
gl::Buffer *indirectBuffer = mState.getTargetBuffer(gl::BufferBinding::DrawIndirect);
VkDeviceSize currentIndirectBufOffset = reinterpret_cast<VkDeviceSize>(indirect);
gl::Buffer *indirectBuffer = mState.getTargetBuffer(gl::BufferBinding::DrawIndirect);
ASSERT(indirectBuffer);
vk::BufferHelper *currentIndirectBuf = &vk::GetImpl(indirectBuffer)->getBuffer();
if (mVertexArray->getStreamingVertexAttribsMask().any())
{
vk::FramebufferHelper *framebuffer = mDrawFramebuffer->getFramebuffer();
currentIndirectBuf->onRead(this, framebuffer, VK_ACCESS_INDIRECT_COMMAND_READ_BIT);
// We have instanced vertex attributes that need to be emulated for Vulkan.
// invalidate any cache and map the buffer so that we can read the indirect data.
// Mapping the buffer will cause a flush.
ANGLE_TRY(currentIndirectBuf->invalidate(this, 0, sizeof(VkDrawIndexedIndirectCommand)));
uint8_t *buffPtr;
ANGLE_TRY(currentIndirectBuf->map(this, &buffPtr));
const VkDrawIndexedIndirectCommand *indirectData =
reinterpret_cast<VkDrawIndexedIndirectCommand *>(buffPtr + currentIndirectBufOffset);
const gl::Buffer *indexBuffer = mVertexArray->getState().getElementArrayBuffer();
ASSERT(indexBuffer);
ANGLE_TRY(drawElementsInstanced(context, mode, indirectData->indexCount, type, nullptr,
indirectData->instanceCount));
currentIndirectBuf->unmap(getDevice());
return angle::Result::Continue;
}
if (type == gl::DrawElementsType::UnsignedByte && mGraphicsDirtyBits[DIRTY_BIT_INDEX_BUFFER])
{
BufferVk *indexVk = vk::GetImpl(indexBuffer);
BufferVk *cmdBufferVk = vk::GetImpl(indirectBuffer);
ANGLE_TRY(
mVertexArray->convertIndexBufferIndirectGPU(this, cmdBufferVk, indexVk, indirect));
vk::BufferHelper *dstIndirectBuf;
VkDeviceSize dstIndirectBufOffset;
ANGLE_TRY(mVertexArray->convertIndexBufferIndirectGPU(
this, currentIndirectBuf, currentIndirectBufOffset, &dstIndirectBuf,
&dstIndirectBufOffset));
currentIndirectBuf = dstIndirectBuf;
currentIndirectBufOffset = dstIndirectBufOffset;
}
vk::CommandBuffer *commandBuffer = nullptr;
vk::Buffer *indirectBufferFinal = nullptr;
if (mode == gl::PrimitiveMode::LineLoop)
{
ANGLE_TRY(setupLineLoopIndexedIndirectDraw(
context, mode, type, indirectBuffer, indirectBufferOffset, indexBuffer, &commandBuffer,
&indirectBufferFinal, &indirectBufferOffset));
vk::BufferHelper *dstIndirectBuf;
VkDeviceSize dstIndirectBufOffset;
ANGLE_TRY(setupLineLoopIndexedIndirectDraw(context, mode, type, currentIndirectBuf,
currentIndirectBufOffset, &commandBuffer,
&dstIndirectBuf, &dstIndirectBufOffset));
currentIndirectBuf = dstIndirectBuf;
currentIndirectBufOffset = dstIndirectBufOffset;
}
else
{
ANGLE_TRY(
setupIndexedIndirectDraw(context, mode, type, &commandBuffer, &indirectBufferFinal));
ANGLE_TRY(setupIndexedIndirectDraw(context, mode, type, currentIndirectBuf,
currentIndirectBufOffset, &commandBuffer));
}
commandBuffer->drawIndexedIndirect(*indirectBufferFinal, indirectBufferOffset, 1, 0);
commandBuffer->drawIndexedIndirect(currentIndirectBuf->getBuffer(), currentIndirectBufOffset, 1,
0);
return angle::Result::Continue;
}
......
......@@ -506,27 +506,31 @@ class ContextVk : public ContextImpl, public vk::Context, public vk::RenderPassO
angle::Result setupIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
DirtyBits dirtyBitMask,
vk::CommandBuffer **commandBufferOut,
vk::Buffer **indirectBufferOut);
angle::Result setupIndirectDrawHelper(const gl::Context *context,
gl::PrimitiveMode mode,
DirtyBits dirtyBitMask,
vk::CommandBuffer **commandBufferOut);
vk::BufferHelper *indirectBuffer,
VkDeviceSize indirectBufferOffset,
vk::CommandBuffer **commandBufferOut);
angle::Result setupIndexedIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
gl::DrawElementsType indexType,
vk::CommandBuffer **commandBufferOut,
vk::Buffer **indirectBufferOut);
vk::BufferHelper *indirectBuffer,
VkDeviceSize indirectBufferOffset,
vk::CommandBuffer **commandBufferOut);
angle::Result setupLineLoopIndexedIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
gl::DrawElementsType indexType,
const gl::Buffer *indirectBuffer,
vk::BufferHelper *srcIndirectBuf,
VkDeviceSize indirectBufferOffset,
const gl::Buffer *indexBuffer,
vk::CommandBuffer **commandBufferOut,
vk::Buffer **indirectBufferOut,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut);
angle::Result setupLineLoopIndirectDraw(const gl::Context *context,
gl::PrimitiveMode mode,
vk::BufferHelper *indirectBuffer,
VkDeviceSize indirectBufferOffset,
vk::CommandBuffer **commandBufferOut,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut);
angle::Result setupLineLoopDraw(const gl::Context *context,
gl::PrimitiveMode mode,
......
......@@ -393,6 +393,14 @@ void UtilsVk::destroy(VkDevice device)
{
program.destroy(device);
}
for (vk::ShaderProgramHelper &program : mConvertIndirectLineLoopPrograms)
{
program.destroy(device);
}
for (vk::ShaderProgramHelper &program : mConvertIndexIndirectLineLoopPrograms)
{
program.destroy(device);
}
for (vk::ShaderProgramHelper &program : mConvertVertexPrograms)
{
program.destroy(device);
......@@ -515,10 +523,11 @@ angle::Result UtilsVk::ensureConvertIndexIndirectResourcesInitialized(ContextVk
return angle::Result::Continue;
}
VkDescriptorPoolSize setSizes[3] = {
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // source index buffer
VkDescriptorPoolSize setSizes[4] = {
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // dest index buffer
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // cmd buffer
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // source index buffer
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // src indirect buffer
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // dest indirect buffer
};
return ensureResourcesInitialized(contextVk, Function::ConvertIndexIndirectBuffer, setSizes,
......@@ -545,6 +554,24 @@ angle::Result UtilsVk::ensureConvertIndexIndirectLineLoopResourcesInitialized(Co
sizeof(ConvertIndexIndirectLineLoopShaderParams));
}
angle::Result UtilsVk::ensureConvertIndirectLineLoopResourcesInitialized(ContextVk *contextVk)
{
if (mPipelineLayouts[Function::ConvertIndirectLineLoopBuffer].valid())
{
return angle::Result::Continue;
}
VkDescriptorPoolSize setSizes[3] = {
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // cmd buffer
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // dest cmd buffer
{VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1}, // dest index buffer
};
return ensureResourcesInitialized(contextVk, Function::ConvertIndirectLineLoopBuffer, setSizes,
ArraySize(setSizes),
sizeof(ConvertIndirectLineLoopShaderParams));
}
angle::Result UtilsVk::ensureConvertVertexResourcesInitialized(ContextVk *contextVk)
{
if (mPipelineLayouts[Function::ConvertVertexBuffer].valid())
......@@ -877,44 +904,52 @@ angle::Result UtilsVk::convertIndexBuffer(ContextVk *contextVk,
}
angle::Result UtilsVk::convertIndexIndirectBuffer(ContextVk *contextVk,
vk::BufferHelper *cmdBuffer,
vk::BufferHelper *dest,
vk::BufferHelper *src,
vk::BufferHelper *srcIndirectBuf,
vk::BufferHelper *srcIndexBuf,
vk::BufferHelper *dstIndirectBuf,
vk::BufferHelper *dstIndexBuf,
const ConvertIndexIndirectParameters &params)
{
ANGLE_TRY(ensureConvertIndexIndirectResourcesInitialized(contextVk));
vk::CommandBuffer *commandBuffer;
ANGLE_TRY(dest->recordCommands(contextVk, &commandBuffer));
ANGLE_TRY(dstIndexBuf->recordCommands(contextVk, &commandBuffer));
// Tell src we are going to read from it and dest it's being written to.
src->onReadByBuffer(contextVk, dest, VK_ACCESS_SHADER_READ_BIT, VK_ACCESS_SHADER_WRITE_BIT);
cmdBuffer->onReadByBuffer(contextVk, dest, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
srcIndexBuf->onReadByBuffer(contextVk, dstIndexBuf, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
srcIndirectBuf->onReadByBuffer(contextVk, dstIndexBuf, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
ANGLE_TRY(dstIndirectBuf->recordCommands(contextVk, &commandBuffer));
srcIndirectBuf->onReadByBuffer(contextVk, dstIndirectBuf, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
VkDescriptorSet descriptorSet;
vk::RefCountedDescriptorPoolBinding descriptorPoolBinding;
ANGLE_TRY(allocateDescriptorSet(contextVk, Function::ConvertIndexIndirectBuffer,
&descriptorPoolBinding, &descriptorSet));
std::array<VkDescriptorBufferInfo, 3> buffers = {{
{dest->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{src->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{cmdBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
std::array<VkDescriptorBufferInfo, 4> buffers = {{
{dstIndexBuf->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{srcIndexBuf->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{srcIndirectBuf->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{dstIndirectBuf->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
}};
VkWriteDescriptorSet writeInfo = {};
writeInfo.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
writeInfo.dstSet = descriptorSet;
writeInfo.dstBinding = kConvertIndexDestinationBinding;
writeInfo.descriptorCount = 3;
writeInfo.descriptorCount = 4;
writeInfo.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
writeInfo.pBufferInfo = buffers.data();
vkUpdateDescriptorSets(contextVk->getDevice(), 1, &writeInfo, 0, nullptr);
ConvertIndexIndirectShaderParams shaderParams = {params.indirectBufferOffset >> 2,
params.dstOffset >> 2, params.maxIndex, 0};
ConvertIndexIndirectShaderParams shaderParams = {params.srcIndirectBufOffset >> 2,
params.dstIndexBufOffset >> 2, params.maxIndex,
params.dstIndirectBufOffset >> 2};
uint32_t flags = vk::InternalShader::ConvertIndex_comp::kIsIndirect;
if (contextVk->getState().isPrimitiveRestartEnabled())
......@@ -944,25 +979,25 @@ angle::Result UtilsVk::convertIndexIndirectBuffer(ContextVk *contextVk,
angle::Result UtilsVk::convertLineLoopIndexIndirectBuffer(
ContextVk *contextVk,
vk::BufferHelper *srcIndirectBuffer,
vk::BufferHelper *destIndirectBuffer,
vk::BufferHelper *destIndexBuffer,
vk::BufferHelper *dstIndirectBuffer,
vk::BufferHelper *dstIndexBuffer,
vk::BufferHelper *srcIndexBuffer,
const ConvertLineLoopIndexIndirectParameters &params)
{
ANGLE_TRY(ensureConvertIndexIndirectLineLoopResourcesInitialized(contextVk));
vk::CommandBuffer *commandBuffer;
ANGLE_TRY(destIndexBuffer->recordCommands(contextVk, &commandBuffer));
ANGLE_TRY(dstIndexBuffer->recordCommands(contextVk, &commandBuffer));
// Tell src we are going to read from it and dest it's being written to.
srcIndexBuffer->onReadByBuffer(contextVk, destIndexBuffer, VK_ACCESS_SHADER_READ_BIT,
srcIndexBuffer->onReadByBuffer(contextVk, dstIndexBuffer, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
srcIndirectBuffer->onReadByBuffer(contextVk, destIndexBuffer, VK_ACCESS_SHADER_READ_BIT,
srcIndirectBuffer->onReadByBuffer(contextVk, dstIndexBuffer, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
ANGLE_TRY(destIndirectBuffer->recordCommands(contextVk, &commandBuffer));
ANGLE_TRY(dstIndirectBuffer->recordCommands(contextVk, &commandBuffer));
srcIndirectBuffer->onReadByBuffer(contextVk, destIndirectBuffer, VK_ACCESS_SHADER_READ_BIT,
srcIndirectBuffer->onReadByBuffer(contextVk, dstIndirectBuffer, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
VkDescriptorSet descriptorSet;
......@@ -971,10 +1006,10 @@ angle::Result UtilsVk::convertLineLoopIndexIndirectBuffer(
&descriptorPoolBinding, &descriptorSet));
std::array<VkDescriptorBufferInfo, 4> buffers = {{
{srcIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{destIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{destIndexBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{dstIndexBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{srcIndexBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{srcIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{dstIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
}};
VkWriteDescriptorSet writeInfo = {};
......@@ -1002,8 +1037,73 @@ angle::Result UtilsVk::convertLineLoopIndexIndirectBuffer(
&shader));
ANGLE_TRY(setupProgram(contextVk, Function::ConvertIndexIndirectLineLoopBuffer, shader, nullptr,
&mConvertIndexPrograms[flags], nullptr, descriptorSet, &shaderParams,
sizeof(ConvertIndexIndirectLineLoopShaderParams), commandBuffer));
&mConvertIndexIndirectLineLoopPrograms[flags], nullptr, descriptorSet,
&shaderParams, sizeof(ConvertIndexIndirectLineLoopShaderParams),
commandBuffer));
commandBuffer->dispatch(1, 1, 1);
descriptorPoolBinding.reset();
return angle::Result::Continue;
}
angle::Result UtilsVk::convertLineLoopArrayIndirectBuffer(
ContextVk *contextVk,
vk::BufferHelper *srcIndirectBuffer,
vk::BufferHelper *destIndirectBuffer,
vk::BufferHelper *destIndexBuffer,
const ConvertLineLoopArrayIndirectParameters &params)
{
ANGLE_TRY(ensureConvertIndirectLineLoopResourcesInitialized(contextVk));
vk::CommandBuffer *commandBuffer;
ANGLE_TRY(destIndexBuffer->recordCommands(contextVk, &commandBuffer));
// Tell src we are going to read from it and dest it's being written to.
srcIndirectBuffer->onReadByBuffer(contextVk, destIndexBuffer, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
ANGLE_TRY(destIndirectBuffer->recordCommands(contextVk, &commandBuffer));
srcIndirectBuffer->onReadByBuffer(contextVk, destIndirectBuffer, VK_ACCESS_SHADER_READ_BIT,
VK_ACCESS_SHADER_WRITE_BIT);
VkDescriptorSet descriptorSet;
vk::RefCountedDescriptorPoolBinding descriptorPoolBinding;
ANGLE_TRY(allocateDescriptorSet(contextVk, Function::ConvertIndirectLineLoopBuffer,
&descriptorPoolBinding, &descriptorSet));
std::array<VkDescriptorBufferInfo, 3> buffers = {{
{srcIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{destIndirectBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
{destIndexBuffer->getBuffer().getHandle(), 0, VK_WHOLE_SIZE},
}};
VkWriteDescriptorSet writeInfo = {};
writeInfo.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
writeInfo.dstSet = descriptorSet;
writeInfo.dstBinding = kConvertIndexDestinationBinding;
writeInfo.descriptorCount = 3;
writeInfo.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
writeInfo.pBufferInfo = buffers.data();
vkUpdateDescriptorSets(contextVk->getDevice(), 1, &writeInfo, 0, nullptr);
ConvertIndirectLineLoopShaderParams shaderParams = {params.indirectBufferOffset >> 2,
params.dstIndirectBufferOffset >> 2,
params.dstIndexBufferOffset >> 2};
uint32_t flags = 0;
vk::RefCounted<vk::ShaderAndSerial> *shader = nullptr;
ANGLE_TRY(
contextVk->getShaderLibrary().getConvertIndirectLineLoop_comp(contextVk, flags, &shader));
ANGLE_TRY(setupProgram(contextVk, Function::ConvertIndirectLineLoopBuffer, shader, nullptr,
&mConvertIndirectLineLoopPrograms[flags], nullptr, descriptorSet,
&shaderParams, sizeof(ConvertIndirectLineLoopShaderParams),
commandBuffer));
commandBuffer->dispatch(1, 1, 1);
......
......@@ -56,9 +56,10 @@ class UtilsVk : angle::NonCopyable
struct ConvertIndexIndirectParameters
{
uint32_t indirectBufferOffset = 0;
uint32_t dstOffset = 0;
uint32_t srcIndirectBufOffset = 0;
uint32_t dstIndexBufOffset = 0;
uint32_t maxIndex = 0;
uint32_t dstIndirectBufOffset = 0;
};
struct ConvertLineLoopIndexIndirectParameters
......@@ -69,6 +70,13 @@ class UtilsVk : angle::NonCopyable
uint32_t is32Bit = 0;
};
struct ConvertLineLoopArrayIndirectParameters
{
uint32_t indirectBufferOffset = 0;
uint32_t dstIndirectBufferOffset = 0;
uint32_t dstIndexBufferOffset = 0;
};
struct ConvertVertexParameters
{
size_t vertexCount;
......@@ -154,19 +162,27 @@ class UtilsVk : angle::NonCopyable
vk::BufferHelper *src,
const ConvertIndexParameters &params);
angle::Result convertIndexIndirectBuffer(ContextVk *contextVk,
vk::BufferHelper *cmdBufferVk,
vk::BufferHelper *dest,
vk::BufferHelper *src,
vk::BufferHelper *srcIndirectBuf,
vk::BufferHelper *srcIndexBuf,
vk::BufferHelper *dstIndirectBuf,
vk::BufferHelper *dstIndexBuf,
const ConvertIndexIndirectParameters &params);
angle::Result convertLineLoopIndexIndirectBuffer(
ContextVk *contextVk,
vk::BufferHelper *cmdBufferVk,
vk::BufferHelper *destCmdBufferVk,
vk::BufferHelper *dest,
vk::BufferHelper *src,
vk::BufferHelper *srcIndirectBuffer,
vk::BufferHelper *destIndirectBuffer,
vk::BufferHelper *destIndexBuffer,
vk::BufferHelper *srcIndexBuffer,
const ConvertLineLoopIndexIndirectParameters &params);
angle::Result convertLineLoopArrayIndirectBuffer(
ContextVk *contextVk,
vk::BufferHelper *srcIndirectBuffer,
vk::BufferHelper *destIndirectBuffer,
vk::BufferHelper *destIndexBuffer,
const ConvertLineLoopArrayIndirectParameters &params);
angle::Result convertVertexBuffer(ContextVk *contextVk,
vk::BufferHelper *dest,
vk::BufferHelper *src,
......@@ -242,10 +258,10 @@ class UtilsVk : angle::NonCopyable
struct ConvertIndexIndirectShaderParams
{
uint32_t cmdOffsetDiv4 = 0;
uint32_t dstOffsetDiv4 = 0;
uint32_t maxIndex = 0;
uint32_t _padding = 0;
uint32_t srcIndirectOffsetDiv4 = 0;
uint32_t dstOffsetDiv4 = 0;
uint32_t maxIndex = 0;
uint32_t dstIndirectOffsetDiv4 = 0;
};
struct ConvertIndexIndirectLineLoopShaderParams
......@@ -256,6 +272,13 @@ class UtilsVk : angle::NonCopyable
uint32_t isRestartEnabled = 0;
};
struct ConvertIndirectLineLoopShaderParams
{
uint32_t cmdOffsetDiv4 = 0;
uint32_t dstCmdOffsetDiv4 = 0;
uint32_t dstOffsetDiv4 = 0;
};
struct ConvertVertexShaderParams
{
ConvertVertexShaderParams();
......@@ -358,9 +381,10 @@ class UtilsVk : angle::NonCopyable
OverlayDraw = 8,
ConvertIndexIndirectBuffer = 9,
ConvertIndexIndirectLineLoopBuffer = 10,
ConvertIndirectLineLoopBuffer = 11,
InvalidEnum = 11,
EnumCount = 11,
InvalidEnum = 12,
EnumCount = 12,
};
// Common function that creates the pipeline for the specified function, binds it and prepares
......@@ -396,6 +420,7 @@ class UtilsVk : angle::NonCopyable
angle::Result ensureConvertIndexResourcesInitialized(ContextVk *contextVk);
angle::Result ensureConvertIndexIndirectResourcesInitialized(ContextVk *contextVk);
angle::Result ensureConvertIndexIndirectLineLoopResourcesInitialized(ContextVk *contextVk);
angle::Result ensureConvertIndirectLineLoopResourcesInitialized(ContextVk *contextVk);
angle::Result ensureConvertVertexResourcesInitialized(ContextVk *contextVk);
angle::Result ensureImageClearResourcesInitialized(ContextVk *contextVk);
angle::Result ensureImageCopyResourcesInitialized(ContextVk *contextVk);
......@@ -434,6 +459,10 @@ class UtilsVk : angle::NonCopyable
vk::ShaderProgramHelper mBufferUtilsPrograms[vk::InternalShader::BufferUtils_comp::kArrayLen];
vk::ShaderProgramHelper mConvertIndexPrograms[vk::InternalShader::ConvertIndex_comp::kArrayLen];
vk::ShaderProgramHelper mConvertIndexIndirectLineLoopPrograms
[vk::InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen];
vk::ShaderProgramHelper mConvertIndirectLineLoopPrograms
[vk::InternalShader::ConvertIndirectLineLoop_comp::kArrayLen];
vk::ShaderProgramHelper
mConvertVertexPrograms[vk::InternalShader::ConvertVertex_comp::kArrayLen];
vk::ShaderProgramHelper mImageClearProgramVSOnly;
......
......@@ -24,8 +24,9 @@ namespace rx
{
namespace
{
constexpr size_t kDynamicVertexDataSize = 1024 * 1024;
constexpr size_t kDynamicIndexDataSize = 1024 * 8;
constexpr size_t kDynamicVertexDataSize = 1024 * 1024;
constexpr size_t kDynamicIndexDataSize = 1024 * 8;
constexpr size_t kDynamicIndirectDataSize = sizeof(VkDrawIndexedIndirectCommand) * 8;
ANGLE_INLINE bool BindingIsAligned(const gl::VertexBinding &binding,
const angle::Format &angleFormat,
......@@ -140,6 +141,8 @@ VertexArrayVk::VertexArrayVk(ContextVk *contextVk, const gl::VertexArrayState &s
kDynamicIndexDataSize, true);
mTranslatedByteIndexData.init(renderer, vk::kIndexBufferUsageFlags, vk::kIndexBufferAlignment,
kDynamicIndexDataSize, true);
mTranslatedByteIndirectData.init(renderer, vk::kIndirectBufferUsageFlags,
vk::kIndirectBufferAlignment, kDynamicIndirectDataSize, true);
}
VertexArrayVk::~VertexArrayVk() {}
......@@ -155,6 +158,7 @@ void VertexArrayVk::destroy(const gl::Context *context)
mDynamicVertexData.release(renderer);
mDynamicIndexData.release(renderer);
mTranslatedByteIndexData.release(renderer);
mTranslatedByteIndirectData.release(renderer);
mLineLoopHelper.release(contextVk);
}
......@@ -186,45 +190,97 @@ angle::Result VertexArrayVk::convertIndexBufferGPU(ContextVk *contextVk,
}
angle::Result VertexArrayVk::convertIndexBufferIndirectGPU(ContextVk *contextVk,
BufferVk *cmdBufferVk,
BufferVk *indexBufferVk,
const void *offset)
vk::BufferHelper *srcIndirectBuf,
VkDeviceSize srcIndirectBufOffset,
vk::BufferHelper **indirectBufferVkOut,
VkDeviceSize *indirectBufferVkOffsetOut)
{
intptr_t indirectBufferOffset = reinterpret_cast<intptr_t>(offset);
size_t srcDataSize = static_cast<size_t>(indexBufferVk->getSize());
size_t srcDataSize = static_cast<size_t>(mCurrentElementArrayBuffer->getSize());
ASSERT(mCurrentElementArrayBuffer ==
&vk::GetImpl(getState().getElementArrayBuffer())->getBuffer());
mTranslatedByteIndexData.releaseInFlightBuffers(contextVk);
mTranslatedByteIndirectData.releaseInFlightBuffers(contextVk);
vk::BufferHelper *srcIndexBuf = mCurrentElementArrayBuffer;
VkDeviceSize dstIndirectBufOffset;
VkDeviceSize dstIndexBufOffset;
ANGLE_TRY(mTranslatedByteIndexData.allocate(contextVk, sizeof(GLushort) * srcDataSize, nullptr,
nullptr, &mCurrentElementArrayBufferOffset,
nullptr));
mCurrentElementArrayBuffer = mTranslatedByteIndexData.getCurrentBuffer();
nullptr, &dstIndexBufOffset, nullptr));
vk::BufferHelper *dstIndexBuf = mTranslatedByteIndexData.getCurrentBuffer();
vk::BufferHelper *dest = mTranslatedByteIndexData.getCurrentBuffer();
vk::BufferHelper *src = &indexBufferVk->getBuffer();
ANGLE_TRY(mTranslatedByteIndirectData.allocate(contextVk, sizeof(VkDrawIndexedIndirectCommand),
nullptr, nullptr, &dstIndirectBufOffset,
nullptr));
vk::BufferHelper *dstIndirectBuf = mTranslatedByteIndirectData.getCurrentBuffer();
// Save new element array buffer
mCurrentElementArrayBuffer = dstIndexBuf;
mCurrentElementArrayBufferOffset = dstIndexBufOffset;
// Tell caller what new indirect buffer is
*indirectBufferVkOut = dstIndirectBuf;
*indirectBufferVkOffsetOut = dstIndirectBufOffset;
// Copy relevant section of the source into destination at allocated offset. Note that the
// offset returned by allocate() above is in bytes. As is the indices offset pointer.
UtilsVk::ConvertIndexIndirectParameters params = {};
params.indirectBufferOffset = static_cast<uint32_t>(indirectBufferOffset);
params.dstOffset = static_cast<uint32_t>(mCurrentElementArrayBufferOffset);
params.maxIndex = static_cast<uint32_t>(indexBufferVk->getSize());
params.srcIndirectBufOffset = static_cast<uint32_t>(srcIndirectBufOffset);
params.dstIndexBufOffset = static_cast<uint32_t>(dstIndexBufOffset);
params.maxIndex = static_cast<uint32_t>(srcDataSize);
params.dstIndirectBufOffset = static_cast<uint32_t>(dstIndirectBufOffset);
return contextVk->getUtils().convertIndexIndirectBuffer(contextVk, &cmdBufferVk->getBuffer(),
dest, src, params);
return contextVk->getUtils().convertIndexIndirectBuffer(contextVk, srcIndirectBuf, srcIndexBuf,
dstIndirectBuf, dstIndexBuf, params);
}
angle::Result VertexArrayVk::handleLineLoopIndirect(ContextVk *contextVk,
BufferVk *indirectBufferVk,
gl::DrawElementsType glIndexType,
VkDeviceSize indirectBufferOffset,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut)
angle::Result VertexArrayVk::handleLineLoopIndexIndirect(ContextVk *contextVk,
gl::DrawElementsType glIndexType,
vk::BufferHelper *srcIndirectBuf,
VkDeviceSize indirectBufferOffset,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut)
{
ANGLE_TRY(mLineLoopHelper.streamIndicesIndirect(
contextVk, glIndexType, mCurrentElementArrayBuffer, &indirectBufferVk->getBuffer(),
indirectBufferOffset, &mCurrentElementArrayBuffer, &mCurrentElementArrayBufferOffset,
indirectBufferOut, indirectBufferOffsetOut));
contextVk, glIndexType, mCurrentElementArrayBuffer, srcIndirectBuf, indirectBufferOffset,
&mCurrentElementArrayBuffer, &mCurrentElementArrayBufferOffset, indirectBufferOut,
indirectBufferOffsetOut));
return angle::Result::Continue;
}
angle::Result VertexArrayVk::handleLineLoopIndirectDraw(const gl::Context *context,
vk::BufferHelper *indirectBufferVk,
VkDeviceSize indirectBufferOffset,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut)
{
size_t maxVertexCount = 0;
ContextVk *contextVk = vk::GetImpl(context);
const gl::AttributesMask activeAttribs =
context->getStateCache().getActiveBufferedAttribsMask();
const auto &attribs = mState.getVertexAttributes();
const auto &bindings = mState.getVertexBindings();
for (size_t attribIndex : activeAttribs)
{
const gl::VertexAttribute &attrib = attribs[attribIndex];
ASSERT(attrib.enabled);
VkDeviceSize bufSize = this->getCurrentArrayBuffers()[attribIndex]->getSize();
const gl::VertexBinding &binding = bindings[attrib.bindingIndex];
size_t stride = binding.getStride();
size_t vertexCount = static_cast<size_t>(bufSize / stride);
if (vertexCount > maxVertexCount)
{
maxVertexCount = vertexCount;
}
}
ANGLE_TRY(mLineLoopHelper.streamArrayIndirect(contextVk, maxVertexCount + 1, indirectBufferVk,
indirectBufferOffset, &mCurrentElementArrayBuffer,
&mCurrentElementArrayBufferOffset,
indirectBufferOut, indirectBufferOffsetOut));
return angle::Result::Continue;
}
......@@ -502,7 +558,7 @@ angle::Result VertexArrayVk::syncDirtyAttrib(ContextVk *contextVk,
(binding.getDivisor() > renderer->getMaxVertexAttribDivisor()) || (bufferGL == nullptr);
mStreamingVertexAttribsMask.set(attribIndex, isStreamingVertexAttrib);
if (bufferGL)
if (!isStreamingVertexAttrib)
{
BufferVk *bufferVk = vk::GetImpl(bufferGL);
const angle::Format &angleFormat = vertexFormat.angleFormat();
......@@ -644,7 +700,8 @@ angle::Result VertexArrayVk::updateStreamedAttribs(const gl::Context *context,
const gl::VertexBinding &binding = bindings[attrib.bindingIndex];
const vk::Format &vertexFormat = renderer->getFormat(attrib.format->id);
GLuint stride = vertexFormat.bufferFormat().pixelBytes;
GLuint stride = vertexFormat.bufferFormat().pixelBytes;
ASSERT(GetVertexInputAlignment(vertexFormat) <= vk::kVertexBufferAlignment);
......@@ -663,7 +720,7 @@ angle::Result VertexArrayVk::updateStreamedAttribs(const gl::Context *context,
bufferVk = vk::GetImpl(binding.getBuffer().get());
void *buffSrc = nullptr;
ANGLE_TRY(bufferVk->mapImpl(contextVk, &buffSrc));
src = reinterpret_cast<const uint8_t *>(buffSrc);
src = reinterpret_cast<const uint8_t *>(buffSrc) + binding.getOffset();
}
// Divisor will be set to 1 & so update buffer to have 1 attrib per instance
size_t bytesToAllocate = instanceCount * stride;
......
......@@ -52,12 +52,18 @@ class VertexArrayVk : public VertexArrayImpl
const void *indices,
uint32_t *indexCountOut);
angle::Result handleLineLoopIndirect(ContextVk *contextVk,
BufferVk *indirectBufferVk,
gl::DrawElementsType glIndexType,
VkDeviceSize indirectBufferOffset,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut);
angle::Result handleLineLoopIndexIndirect(ContextVk *contextVk,
gl::DrawElementsType glIndexType,
vk::BufferHelper *srcIndirectBuf,
VkDeviceSize indirectBufferOffset,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut);
angle::Result handleLineLoopIndirectDraw(const gl::Context *context,
vk::BufferHelper *indirectBufferVk,
VkDeviceSize indirectBufferOffset,
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut);
const gl::AttribArray<VkBuffer> &getCurrentArrayBufferHandles() const
{
......@@ -91,9 +97,10 @@ class VertexArrayVk : public VertexArrayImpl
const void *indices);
angle::Result convertIndexBufferIndirectGPU(ContextVk *contextVk,
BufferVk *cmdBufferVk,
BufferVk *indexBufferVk,
const void *indices);
vk::BufferHelper *srcIndirectBuf,
VkDeviceSize srcIndirectBufOffset,
vk::BufferHelper **indirectBufferVkOut,
VkDeviceSize *indirectBufferVkOffsetOut);
angle::Result convertIndexBufferCPU(ContextVk *contextVk,
gl::DrawElementsType indexType,
......@@ -138,6 +145,7 @@ class VertexArrayVk : public VertexArrayImpl
vk::DynamicBuffer mDynamicVertexData;
vk::DynamicBuffer mDynamicIndexData;
vk::DynamicBuffer mTranslatedByteIndexData;
vk::DynamicBuffer mTranslatedByteIndirectData;
vk::LineLoopHelper mLineLoopHelper;
Optional<GLint> mLineLoopBufferFirstIndex;
......
......@@ -11,113 +11,113 @@ const uint32_t kConvertIndex_comp_00000000[] = {
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,0x00050005,0x0000003e,
0x73726966,0x646e4974,0x00007865,0x00050005,0x00000040,0x49646e65,0x7865646e,0x00000000,
0x00040005,0x00000045,0x65646e69,0x00000078,0x00080005,0x00000048,0x475f6c67,0x61626f6c,
0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000058,0x56747364,0x65756c61,
0x00000000,0x00050005,0x0000005e,0x56637273,0x65756c61,0x00000000,0x00040005,0x0000005f,
0x61726170,0x0000006d,0x00040005,0x00000062,0x61726170,0x0000006d,0x00040005,0x00000064,
0x61726170,0x0000006d,0x00040005,0x00000065,0x61726170,0x0000006d,0x00050005,0x00000070,
0x56637273,0x65756c61,0x00000000,0x00040005,0x00000073,0x61726170,0x0000006d,0x00040005,
0x00000075,0x61726170,0x0000006d,0x00040005,0x00000077,0x61726170,0x0000006d,0x00040005,
0x00000078,0x61726170,0x0000006d,0x00030005,0x0000007d,0x00747364,0x00050006,0x0000007d,
0x00000000,0x44747364,0x00617461,0x00030005,0x0000007f,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,0x00000048,0x0000000b,
0x0000001c,0x00040047,0x0000007c,0x00000006,0x00000004,0x00050048,0x0000007d,0x00000000,
0x00000023,0x00000000,0x00030047,0x0000007d,0x00000003,0x00040047,0x0000007f,0x00000022,
0x00000000,0x00040047,0x0000007f,0x00000021,0x00000000,0x00040047,0x00000088,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,
0x0004002b,0x00000006,0x0000003f,0x00000000,0x00040017,0x00000046,0x00000006,0x00000003,
0x00040020,0x00000047,0x00000001,0x00000046,0x0004003b,0x00000047,0x00000048,0x00000001,
0x00040020,0x00000049,0x00000001,0x00000006,0x0004002b,0x00000017,0x0000004d,0x00000001,
0x00020014,0x00000053,0x0004002b,0x00000006,0x0000006a,0x00000001,0x0003001d,0x0000007c,
0x00000006,0x0003001e,0x0000007d,0x0000007c,0x00040020,0x0000007e,0x00000002,0x0000007d,
0x0004003b,0x0000007e,0x0000007f,0x00000002,0x0004002b,0x00000006,0x00000087,0x00000040,
0x0006002c,0x00000046,0x00000088,0x00000087,0x0000006a,0x0000006a,0x00050036,0x00000002,
0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x0000003e,
0x00000007,0x0004003b,0x00000007,0x00000040,0x00000007,0x0004003b,0x00000007,0x00000045,
0x00000007,0x0004003b,0x00000007,0x00000058,0x00000007,0x0004003b,0x00000007,0x0000005e,
0x00000007,0x0004003b,0x00000007,0x0000005f,0x00000007,0x0004003b,0x00000007,0x00000062,
0x00000007,0x0004003b,0x00000007,0x00000064,0x00000007,0x0004003b,0x00000007,0x00000065,
0x00000007,0x0004003b,0x00000007,0x00000070,0x00000007,0x0004003b,0x00000007,0x00000073,
0x00000007,0x0004003b,0x00000007,0x00000075,0x00000007,0x0004003b,0x00000007,0x00000077,
0x00000007,0x0004003b,0x00000007,0x00000078,0x00000007,0x0003003e,0x0000003e,0x0000003f,
0x0004003d,0x00000006,0x00000041,0x0000003e,0x00050041,0x00000019,0x00000042,0x00000016,
0x00000023,0x0004003d,0x00000006,0x00000043,0x00000042,0x00050080,0x00000006,0x00000044,
0x00000041,0x00000043,0x0003003e,0x00000040,0x00000044,0x00050041,0x00000049,0x0000004a,
0x00000048,0x0000003f,0x0004003d,0x00000006,0x0000004b,0x0000004a,0x0004003d,0x00000006,
0x0000004c,0x0000003e,0x000500c2,0x00000006,0x0000004e,0x0000004c,0x0000004d,0x00050080,
0x00000006,0x0000004f,0x0000004b,0x0000004e,0x000500c4,0x00000006,0x00000050,0x0000004f,
0x0000004d,0x0003003e,0x00000045,0x00000050,0x0004003d,0x00000006,0x00000051,0x00000045,
0x0004003d,0x00000006,0x00000052,0x00000040,0x000500ae,0x00000053,0x00000054,0x00000051,
0x00000052,0x000300f7,0x00000056,0x00000000,0x000400fa,0x00000054,0x00000055,0x00000056,
0x000200f8,0x00000055,0x000100fd,0x000200f8,0x00000056,0x0003003e,0x00000058,0x0000003f,
0x0004003d,0x00000006,0x00000059,0x00000045,0x0004003d,0x00000006,0x0000005a,0x0000003e,
0x000500ae,0x00000053,0x0000005b,0x00000059,0x0000005a,0x000300f7,0x0000005d,0x00000000,
0x000400fa,0x0000005b,0x0000005c,0x0000005d,0x000200f8,0x0000005c,0x0004003d,0x00000006,
0x00000060,0x00000045,0x0003003e,0x0000005f,0x00000060,0x00050039,0x00000006,0x00000061,
0x0000000a,0x0000005f,0x0003003e,0x0000005e,0x00000061,0x0004003d,0x00000006,0x00000063,
0x0000005e,0x0003003e,0x00000062,0x00000063,0x0003003e,0x00000064,0x0000003f,0x0004003d,
0x00000006,0x00000066,0x00000058,0x0003003e,0x00000065,0x00000066,0x00070039,0x00000002,
0x00000067,0x00000010,0x00000062,0x00000064,0x00000065,0x0004003d,0x00000006,0x00000068,
0x00000065,0x0003003e,0x00000058,0x00000068,0x000200f9,0x0000005d,0x000200f8,0x0000005d,
0x0004003d,0x00000006,0x00000069,0x00000045,0x00050080,0x00000006,0x0000006b,0x00000069,
0x0000006a,0x0004003d,0x00000006,0x0000006c,0x00000040,0x000500b0,0x00000053,0x0000006d,
0x0000006b,0x0000006c,0x000300f7,0x0000006f,0x00000000,0x000400fa,0x0000006d,0x0000006e,
0x0000006f,0x000200f8,0x0000006e,0x0004003d,0x00000006,0x00000071,0x00000045,0x00050080,
0x00000006,0x00000072,0x00000071,0x0000006a,0x0003003e,0x00000073,0x00000072,0x00050039,
0x00000006,0x00000074,0x0000000a,0x00000073,0x0003003e,0x00000070,0x00000074,0x0004003d,
0x00000006,0x00000076,0x00000070,0x0003003e,0x00000075,0x00000076,0x0003003e,0x00000077,
0x0000006a,0x0004003d,0x00000006,0x00000079,0x00000058,0x0003003e,0x00000078,0x00000079,
0x00070039,0x00000002,0x0000007a,0x00000010,0x00000075,0x00000077,0x00000078,0x0004003d,
0x00000006,0x0000007b,0x00000078,0x0003003e,0x00000058,0x0000007b,0x000200f9,0x0000006f,
0x000200f8,0x0000006f,0x00050041,0x00000019,0x00000080,0x00000016,0x0000004d,0x0004003d,
0x00000006,0x00000081,0x00000080,0x00050041,0x00000049,0x00000082,0x00000048,0x0000003f,
0x0004003d,0x00000006,0x00000083,0x00000082,0x00050080,0x00000006,0x00000084,0x00000081,
0x00000083,0x0004003d,0x00000006,0x00000085,0x00000058,0x00060041,0x00000025,0x00000086,
0x0000007f,0x00000018,0x00000084,0x0003003e,0x00000086,0x00000085,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,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
0x00070006,0x00000014,0x00000000,0x49637273,0x7865646e,0x7366664f,0x00007465,0x00090006,
0x00000014,0x00000001,0x49747364,0x7865646e,0x4f667542,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,0x00060006,
0x0000001f,0x00000000,0x49637273,0x7865646e,0x00667542,0x00030005,0x00000021,0x00000000,
0x00060005,0x00000028,0x43637273,0x6f706d6f,0x746e656e,0x00000000,0x00040005,0x0000002c,
0x756c6176,0x00000065,0x00050005,0x0000003e,0x73726966,0x646e4974,0x00007865,0x00050005,
0x00000040,0x49646e65,0x7865646e,0x00000000,0x00040005,0x00000045,0x65646e69,0x00000078,
0x00080005,0x00000048,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,
0x00050005,0x00000058,0x56747364,0x65756c61,0x00000000,0x00050005,0x0000005e,0x56637273,
0x65756c61,0x00000000,0x00040005,0x0000005f,0x61726170,0x0000006d,0x00040005,0x00000062,
0x61726170,0x0000006d,0x00040005,0x00000064,0x61726170,0x0000006d,0x00040005,0x00000065,
0x61726170,0x0000006d,0x00050005,0x00000070,0x56637273,0x65756c61,0x00000000,0x00040005,
0x00000073,0x61726170,0x0000006d,0x00040005,0x00000075,0x61726170,0x0000006d,0x00040005,
0x00000077,0x61726170,0x0000006d,0x00040005,0x00000078,0x61726170,0x0000006d,0x00030005,
0x0000007d,0x00747364,0x00060006,0x0000007d,0x00000000,0x49747364,0x7865646e,0x00667542,
0x00030005,0x0000007f,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,0x00000048,0x0000000b,0x0000001c,0x00040047,0x0000007c,
0x00000006,0x00000004,0x00050048,0x0000007d,0x00000000,0x00000023,0x00000000,0x00030047,
0x0000007d,0x00000003,0x00040047,0x0000007f,0x00000022,0x00000000,0x00040047,0x0000007f,
0x00000021,0x00000000,0x00040047,0x00000088,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,0x0004002b,0x00000006,0x0000003f,
0x00000000,0x00040017,0x00000046,0x00000006,0x00000003,0x00040020,0x00000047,0x00000001,
0x00000046,0x0004003b,0x00000047,0x00000048,0x00000001,0x00040020,0x00000049,0x00000001,
0x00000006,0x0004002b,0x00000017,0x0000004d,0x00000001,0x00020014,0x00000053,0x0004002b,
0x00000006,0x0000006a,0x00000001,0x0003001d,0x0000007c,0x00000006,0x0003001e,0x0000007d,
0x0000007c,0x00040020,0x0000007e,0x00000002,0x0000007d,0x0004003b,0x0000007e,0x0000007f,
0x00000002,0x0004002b,0x00000006,0x00000087,0x00000040,0x0006002c,0x00000046,0x00000088,
0x00000087,0x0000006a,0x0000006a,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,
0x000200f8,0x00000005,0x0004003b,0x00000007,0x0000003e,0x00000007,0x0004003b,0x00000007,
0x00000040,0x00000007,0x0004003b,0x00000007,0x00000045,0x00000007,0x0004003b,0x00000007,
0x00000058,0x00000007,0x0004003b,0x00000007,0x0000005e,0x00000007,0x0004003b,0x00000007,
0x0000005f,0x00000007,0x0004003b,0x00000007,0x00000062,0x00000007,0x0004003b,0x00000007,
0x00000064,0x00000007,0x0004003b,0x00000007,0x00000065,0x00000007,0x0004003b,0x00000007,
0x00000070,0x00000007,0x0004003b,0x00000007,0x00000073,0x00000007,0x0004003b,0x00000007,
0x00000075,0x00000007,0x0004003b,0x00000007,0x00000077,0x00000007,0x0004003b,0x00000007,
0x00000078,0x00000007,0x0003003e,0x0000003e,0x0000003f,0x0004003d,0x00000006,0x00000041,
0x0000003e,0x00050041,0x00000019,0x00000042,0x00000016,0x00000023,0x0004003d,0x00000006,
0x00000043,0x00000042,0x00050080,0x00000006,0x00000044,0x00000041,0x00000043,0x0003003e,
0x00000040,0x00000044,0x00050041,0x00000049,0x0000004a,0x00000048,0x0000003f,0x0004003d,
0x00000006,0x0000004b,0x0000004a,0x0004003d,0x00000006,0x0000004c,0x0000003e,0x000500c2,
0x00000006,0x0000004e,0x0000004c,0x0000004d,0x00050080,0x00000006,0x0000004f,0x0000004b,
0x0000004e,0x000500c4,0x00000006,0x00000050,0x0000004f,0x0000004d,0x0003003e,0x00000045,
0x00000050,0x0004003d,0x00000006,0x00000051,0x00000045,0x0004003d,0x00000006,0x00000052,
0x00000040,0x000500ae,0x00000053,0x00000054,0x00000051,0x00000052,0x000300f7,0x00000056,
0x00000000,0x000400fa,0x00000054,0x00000055,0x00000056,0x000200f8,0x00000055,0x000100fd,
0x000200f8,0x00000056,0x0003003e,0x00000058,0x0000003f,0x0004003d,0x00000006,0x00000059,
0x00000045,0x0004003d,0x00000006,0x0000005a,0x0000003e,0x000500ae,0x00000053,0x0000005b,
0x00000059,0x0000005a,0x000300f7,0x0000005d,0x00000000,0x000400fa,0x0000005b,0x0000005c,
0x0000005d,0x000200f8,0x0000005c,0x0004003d,0x00000006,0x00000060,0x00000045,0x0003003e,
0x0000005f,0x00000060,0x00050039,0x00000006,0x00000061,0x0000000a,0x0000005f,0x0003003e,
0x0000005e,0x00000061,0x0004003d,0x00000006,0x00000063,0x0000005e,0x0003003e,0x00000062,
0x00000063,0x0003003e,0x00000064,0x0000003f,0x0004003d,0x00000006,0x00000066,0x00000058,
0x0003003e,0x00000065,0x00000066,0x00070039,0x00000002,0x00000067,0x00000010,0x00000062,
0x00000064,0x00000065,0x0004003d,0x00000006,0x00000068,0x00000065,0x0003003e,0x00000058,
0x00000068,0x000200f9,0x0000005d,0x000200f8,0x0000005d,0x0004003d,0x00000006,0x00000069,
0x00000045,0x00050080,0x00000006,0x0000006b,0x00000069,0x0000006a,0x0004003d,0x00000006,
0x0000006c,0x00000040,0x000500b0,0x00000053,0x0000006d,0x0000006b,0x0000006c,0x000300f7,
0x0000006f,0x00000000,0x000400fa,0x0000006d,0x0000006e,0x0000006f,0x000200f8,0x0000006e,
0x0004003d,0x00000006,0x00000071,0x00000045,0x00050080,0x00000006,0x00000072,0x00000071,
0x0000006a,0x0003003e,0x00000073,0x00000072,0x00050039,0x00000006,0x00000074,0x0000000a,
0x00000073,0x0003003e,0x00000070,0x00000074,0x0004003d,0x00000006,0x00000076,0x00000070,
0x0003003e,0x00000075,0x00000076,0x0003003e,0x00000077,0x0000006a,0x0004003d,0x00000006,
0x00000079,0x00000058,0x0003003e,0x00000078,0x00000079,0x00070039,0x00000002,0x0000007a,
0x00000010,0x00000075,0x00000077,0x00000078,0x0004003d,0x00000006,0x0000007b,0x00000078,
0x0003003e,0x00000058,0x0000007b,0x000200f9,0x0000006f,0x000200f8,0x0000006f,0x00050041,
0x00000019,0x00000080,0x00000016,0x0000004d,0x0004003d,0x00000006,0x00000081,0x00000080,
0x00050041,0x00000049,0x00000082,0x00000048,0x0000003f,0x0004003d,0x00000006,0x00000083,
0x00000082,0x00050080,0x00000006,0x00000084,0x00000081,0x00000083,0x0004003d,0x00000006,
0x00000085,0x00000058,0x00060041,0x00000025,0x00000086,0x0000007f,0x00000018,0x00000084,
0x0003003e,0x00000086,0x00000085,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,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
};
// Generated from:
......@@ -129,21 +129,21 @@ const uint32_t kConvertIndex_comp_00000000[] = {
// layout(set = 0, binding = 0)buffer dst
// {
//
// uint dstData[];
// uint dstIndexBuf[];
// };
//
// layout(set = 0, binding = 1)readonly buffer src
// {
//
// uint srcData[];
// uint srcIndexBuf[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
// uint srcOffset;
// uint srcIndexOffset;
//
// uint dstOffsetDiv4;
// uint dstIndexBufOffsetDiv4;
//
// uint maxIndex;
//
......@@ -153,9 +153,9 @@ const uint32_t kConvertIndex_comp_00000000[] = {
// uint PullIndex(uint index)
// {
//
// uint srcIndex = index + srcOffset;
// uint srcIndex = index + srcIndexOffset;
//
// uint srcBlock = srcData[srcIndex >> 2];
// uint srcBlock = srcIndexBuf[srcIndex >> 2];
// uint srcComponent =(srcIndex & 3);
//
// uint value =(srcBlock >>(srcComponent << 3))& 0xFF;
......@@ -194,5 +194,6 @@ const uint32_t kConvertIndex_comp_00000000[] = {
// PackIndexValue(srcValue, 1, dstValue);
// }
//
// dstData[dstOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
// dstIndexBuf[dstIndexBufOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
//
// }
......@@ -11,116 +11,117 @@ const uint32_t kConvertIndex_comp_00000001[] = {
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,0x00050005,0x00000044,
0x73726966,0x646e4974,0x00007865,0x00050005,0x00000046,0x49646e65,0x7865646e,0x00000000,
0x00040005,0x0000004b,0x65646e69,0x00000078,0x00080005,0x0000004e,0x475f6c67,0x61626f6c,
0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x0000005d,0x56747364,0x65756c61,
0x00000000,0x00050005,0x00000063,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000064,
0x61726170,0x0000006d,0x00040005,0x00000067,0x61726170,0x0000006d,0x00040005,0x00000069,
0x61726170,0x0000006d,0x00040005,0x0000006a,0x61726170,0x0000006d,0x00050005,0x00000075,
0x56637273,0x65756c61,0x00000000,0x00040005,0x00000078,0x61726170,0x0000006d,0x00040005,
0x0000007a,0x61726170,0x0000006d,0x00040005,0x0000007c,0x61726170,0x0000006d,0x00040005,
0x0000007d,0x61726170,0x0000006d,0x00030005,0x00000082,0x00747364,0x00050006,0x00000082,
0x00000000,0x44747364,0x00617461,0x00030005,0x00000084,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,0x0000004e,0x0000000b,
0x0000001c,0x00040047,0x00000081,0x00000006,0x00000004,0x00050048,0x00000082,0x00000000,
0x00000023,0x00000000,0x00030047,0x00000082,0x00000003,0x00040047,0x00000084,0x00000022,
0x00000000,0x00040047,0x00000084,0x00000021,0x00000000,0x00040047,0x0000008d,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,0x0004002b,0x00000006,
0x00000045,0x00000000,0x00040017,0x0000004c,0x00000006,0x00000003,0x00040020,0x0000004d,
0x00000001,0x0000004c,0x0004003b,0x0000004d,0x0000004e,0x00000001,0x00040020,0x0000004f,
0x00000001,0x00000006,0x0004002b,0x00000017,0x00000053,0x00000001,0x0004002b,0x00000006,
0x0000006f,0x00000001,0x0003001d,0x00000081,0x00000006,0x0003001e,0x00000082,0x00000081,
0x00040020,0x00000083,0x00000002,0x00000082,0x0004003b,0x00000083,0x00000084,0x00000002,
0x0004002b,0x00000006,0x0000008c,0x00000040,0x0006002c,0x0000004c,0x0000008d,0x0000008c,
0x0000006f,0x0000006f,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,
0x00000005,0x0004003b,0x00000007,0x00000044,0x00000007,0x0004003b,0x00000007,0x00000046,
0x00000007,0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000005d,
0x00000007,0x0004003b,0x00000007,0x00000063,0x00000007,0x0004003b,0x00000007,0x00000064,
0x00000007,0x0004003b,0x00000007,0x00000067,0x00000007,0x0004003b,0x00000007,0x00000069,
0x00000007,0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x00000075,
0x00000007,0x0004003b,0x00000007,0x00000078,0x00000007,0x0004003b,0x00000007,0x0000007a,
0x00000007,0x0004003b,0x00000007,0x0000007c,0x00000007,0x0004003b,0x00000007,0x0000007d,
0x00000007,0x0003003e,0x00000044,0x00000045,0x0004003d,0x00000006,0x00000047,0x00000044,
0x00050041,0x00000019,0x00000048,0x00000016,0x00000023,0x0004003d,0x00000006,0x00000049,
0x00000048,0x00050080,0x00000006,0x0000004a,0x00000047,0x00000049,0x0003003e,0x00000046,
0x0000004a,0x00050041,0x0000004f,0x00000050,0x0000004e,0x00000045,0x0004003d,0x00000006,
0x00000051,0x00000050,0x0004003d,0x00000006,0x00000052,0x00000044,0x000500c2,0x00000006,
0x00000054,0x00000052,0x00000053,0x00050080,0x00000006,0x00000055,0x00000051,0x00000054,
0x000500c4,0x00000006,0x00000056,0x00000055,0x00000053,0x0003003e,0x0000004b,0x00000056,
0x0004003d,0x00000006,0x00000057,0x0000004b,0x0004003d,0x00000006,0x00000058,0x00000046,
0x000500ae,0x00000035,0x00000059,0x00000057,0x00000058,0x000300f7,0x0000005b,0x00000000,
0x000400fa,0x00000059,0x0000005a,0x0000005b,0x000200f8,0x0000005a,0x000100fd,0x000200f8,
0x0000005b,0x0003003e,0x0000005d,0x00000045,0x0004003d,0x00000006,0x0000005e,0x0000004b,
0x0004003d,0x00000006,0x0000005f,0x00000044,0x000500ae,0x00000035,0x00000060,0x0000005e,
0x0000005f,0x000300f7,0x00000062,0x00000000,0x000400fa,0x00000060,0x00000061,0x00000062,
0x000200f8,0x00000061,0x0004003d,0x00000006,0x00000065,0x0000004b,0x0003003e,0x00000064,
0x00000065,0x00050039,0x00000006,0x00000066,0x0000000a,0x00000064,0x0003003e,0x00000063,
0x00000066,0x0004003d,0x00000006,0x00000068,0x00000063,0x0003003e,0x00000067,0x00000068,
0x0003003e,0x00000069,0x00000045,0x0004003d,0x00000006,0x0000006b,0x0000005d,0x0003003e,
0x0000006a,0x0000006b,0x00070039,0x00000002,0x0000006c,0x00000010,0x00000067,0x00000069,
0x0000006a,0x0004003d,0x00000006,0x0000006d,0x0000006a,0x0003003e,0x0000005d,0x0000006d,
0x000200f9,0x00000062,0x000200f8,0x00000062,0x0004003d,0x00000006,0x0000006e,0x0000004b,
0x00050080,0x00000006,0x00000070,0x0000006e,0x0000006f,0x0004003d,0x00000006,0x00000071,
0x00000046,0x000500b0,0x00000035,0x00000072,0x00000070,0x00000071,0x000300f7,0x00000074,
0x00000000,0x000400fa,0x00000072,0x00000073,0x00000074,0x000200f8,0x00000073,0x0004003d,
0x00000006,0x00000076,0x0000004b,0x00050080,0x00000006,0x00000077,0x00000076,0x0000006f,
0x0003003e,0x00000078,0x00000077,0x00050039,0x00000006,0x00000079,0x0000000a,0x00000078,
0x0003003e,0x00000075,0x00000079,0x0004003d,0x00000006,0x0000007b,0x00000075,0x0003003e,
0x0000007a,0x0000007b,0x0003003e,0x0000007c,0x0000006f,0x0004003d,0x00000006,0x0000007e,
0x0000005d,0x0003003e,0x0000007d,0x0000007e,0x00070039,0x00000002,0x0000007f,0x00000010,
0x0000007a,0x0000007c,0x0000007d,0x0004003d,0x00000006,0x00000080,0x0000007d,0x0003003e,
0x0000005d,0x00000080,0x000200f9,0x00000074,0x000200f8,0x00000074,0x00050041,0x00000019,
0x00000085,0x00000016,0x00000053,0x0004003d,0x00000006,0x00000086,0x00000085,0x00050041,
0x0000004f,0x00000087,0x0000004e,0x00000045,0x0004003d,0x00000006,0x00000088,0x00000087,
0x00050080,0x00000006,0x00000089,0x00000086,0x00000088,0x0004003d,0x00000006,0x0000008a,
0x0000005d,0x00060041,0x00000025,0x0000008b,0x00000084,0x00000018,0x00000089,0x0003003e,
0x0000008b,0x0000008a,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
0x00070006,0x00000014,0x00000000,0x49637273,0x7865646e,0x7366664f,0x00007465,0x00090006,
0x00000014,0x00000001,0x49747364,0x7865646e,0x4f667542,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,0x00060006,
0x0000001f,0x00000000,0x49637273,0x7865646e,0x00667542,0x00030005,0x00000021,0x00000000,
0x00060005,0x00000028,0x43637273,0x6f706d6f,0x746e656e,0x00000000,0x00040005,0x0000002c,
0x756c6176,0x00000065,0x00050005,0x00000044,0x73726966,0x646e4974,0x00007865,0x00050005,
0x00000046,0x49646e65,0x7865646e,0x00000000,0x00040005,0x0000004b,0x65646e69,0x00000078,
0x00080005,0x0000004e,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,
0x00050005,0x0000005d,0x56747364,0x65756c61,0x00000000,0x00050005,0x00000063,0x56637273,
0x65756c61,0x00000000,0x00040005,0x00000064,0x61726170,0x0000006d,0x00040005,0x00000067,
0x61726170,0x0000006d,0x00040005,0x00000069,0x61726170,0x0000006d,0x00040005,0x0000006a,
0x61726170,0x0000006d,0x00050005,0x00000075,0x56637273,0x65756c61,0x00000000,0x00040005,
0x00000078,0x61726170,0x0000006d,0x00040005,0x0000007a,0x61726170,0x0000006d,0x00040005,
0x0000007c,0x61726170,0x0000006d,0x00040005,0x0000007d,0x61726170,0x0000006d,0x00030005,
0x00000082,0x00747364,0x00060006,0x00000082,0x00000000,0x49747364,0x7865646e,0x00667542,
0x00030005,0x00000084,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,0x0000004e,0x0000000b,0x0000001c,0x00040047,0x00000081,
0x00000006,0x00000004,0x00050048,0x00000082,0x00000000,0x00000023,0x00000000,0x00030047,
0x00000082,0x00000003,0x00040047,0x00000084,0x00000022,0x00000000,0x00040047,0x00000084,
0x00000021,0x00000000,0x00040047,0x0000008d,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,0x0004002b,0x00000006,0x00000045,0x00000000,0x00040017,
0x0000004c,0x00000006,0x00000003,0x00040020,0x0000004d,0x00000001,0x0000004c,0x0004003b,
0x0000004d,0x0000004e,0x00000001,0x00040020,0x0000004f,0x00000001,0x00000006,0x0004002b,
0x00000017,0x00000053,0x00000001,0x0004002b,0x00000006,0x0000006f,0x00000001,0x0003001d,
0x00000081,0x00000006,0x0003001e,0x00000082,0x00000081,0x00040020,0x00000083,0x00000002,
0x00000082,0x0004003b,0x00000083,0x00000084,0x00000002,0x0004002b,0x00000006,0x0000008c,
0x00000040,0x0006002c,0x0000004c,0x0000008d,0x0000008c,0x0000006f,0x0000006f,0x00050036,
0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,
0x00000044,0x00000007,0x0004003b,0x00000007,0x00000046,0x00000007,0x0004003b,0x00000007,
0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000005d,0x00000007,0x0004003b,0x00000007,
0x00000063,0x00000007,0x0004003b,0x00000007,0x00000064,0x00000007,0x0004003b,0x00000007,
0x00000067,0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,0x0004003b,0x00000007,
0x0000006a,0x00000007,0x0004003b,0x00000007,0x00000075,0x00000007,0x0004003b,0x00000007,
0x00000078,0x00000007,0x0004003b,0x00000007,0x0000007a,0x00000007,0x0004003b,0x00000007,
0x0000007c,0x00000007,0x0004003b,0x00000007,0x0000007d,0x00000007,0x0003003e,0x00000044,
0x00000045,0x0004003d,0x00000006,0x00000047,0x00000044,0x00050041,0x00000019,0x00000048,
0x00000016,0x00000023,0x0004003d,0x00000006,0x00000049,0x00000048,0x00050080,0x00000006,
0x0000004a,0x00000047,0x00000049,0x0003003e,0x00000046,0x0000004a,0x00050041,0x0000004f,
0x00000050,0x0000004e,0x00000045,0x0004003d,0x00000006,0x00000051,0x00000050,0x0004003d,
0x00000006,0x00000052,0x00000044,0x000500c2,0x00000006,0x00000054,0x00000052,0x00000053,
0x00050080,0x00000006,0x00000055,0x00000051,0x00000054,0x000500c4,0x00000006,0x00000056,
0x00000055,0x00000053,0x0003003e,0x0000004b,0x00000056,0x0004003d,0x00000006,0x00000057,
0x0000004b,0x0004003d,0x00000006,0x00000058,0x00000046,0x000500ae,0x00000035,0x00000059,
0x00000057,0x00000058,0x000300f7,0x0000005b,0x00000000,0x000400fa,0x00000059,0x0000005a,
0x0000005b,0x000200f8,0x0000005a,0x000100fd,0x000200f8,0x0000005b,0x0003003e,0x0000005d,
0x00000045,0x0004003d,0x00000006,0x0000005e,0x0000004b,0x0004003d,0x00000006,0x0000005f,
0x00000044,0x000500ae,0x00000035,0x00000060,0x0000005e,0x0000005f,0x000300f7,0x00000062,
0x00000000,0x000400fa,0x00000060,0x00000061,0x00000062,0x000200f8,0x00000061,0x0004003d,
0x00000006,0x00000065,0x0000004b,0x0003003e,0x00000064,0x00000065,0x00050039,0x00000006,
0x00000066,0x0000000a,0x00000064,0x0003003e,0x00000063,0x00000066,0x0004003d,0x00000006,
0x00000068,0x00000063,0x0003003e,0x00000067,0x00000068,0x0003003e,0x00000069,0x00000045,
0x0004003d,0x00000006,0x0000006b,0x0000005d,0x0003003e,0x0000006a,0x0000006b,0x00070039,
0x00000002,0x0000006c,0x00000010,0x00000067,0x00000069,0x0000006a,0x0004003d,0x00000006,
0x0000006d,0x0000006a,0x0003003e,0x0000005d,0x0000006d,0x000200f9,0x00000062,0x000200f8,
0x00000062,0x0004003d,0x00000006,0x0000006e,0x0000004b,0x00050080,0x00000006,0x00000070,
0x0000006e,0x0000006f,0x0004003d,0x00000006,0x00000071,0x00000046,0x000500b0,0x00000035,
0x00000072,0x00000070,0x00000071,0x000300f7,0x00000074,0x00000000,0x000400fa,0x00000072,
0x00000073,0x00000074,0x000200f8,0x00000073,0x0004003d,0x00000006,0x00000076,0x0000004b,
0x00050080,0x00000006,0x00000077,0x00000076,0x0000006f,0x0003003e,0x00000078,0x00000077,
0x00050039,0x00000006,0x00000079,0x0000000a,0x00000078,0x0003003e,0x00000075,0x00000079,
0x0004003d,0x00000006,0x0000007b,0x00000075,0x0003003e,0x0000007a,0x0000007b,0x0003003e,
0x0000007c,0x0000006f,0x0004003d,0x00000006,0x0000007e,0x0000005d,0x0003003e,0x0000007d,
0x0000007e,0x00070039,0x00000002,0x0000007f,0x00000010,0x0000007a,0x0000007c,0x0000007d,
0x0004003d,0x00000006,0x00000080,0x0000007d,0x0003003e,0x0000005d,0x00000080,0x000200f9,
0x00000074,0x000200f8,0x00000074,0x00050041,0x00000019,0x00000085,0x00000016,0x00000053,
0x0004003d,0x00000006,0x00000086,0x00000085,0x00050041,0x0000004f,0x00000087,0x0000004e,
0x00000045,0x0004003d,0x00000006,0x00000088,0x00000087,0x00050080,0x00000006,0x00000089,
0x00000086,0x00000088,0x0004003d,0x00000006,0x0000008a,0x0000005d,0x00060041,0x00000025,
0x0000008b,0x00000084,0x00000018,0x00000089,0x0003003e,0x0000008b,0x0000008a,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
};
// Generated from:
......@@ -132,21 +133,21 @@ const uint32_t kConvertIndex_comp_00000001[] = {
// layout(set = 0, binding = 0)buffer dst
// {
//
// uint dstData[];
// uint dstIndexBuf[];
// };
//
// layout(set = 0, binding = 1)readonly buffer src
// {
//
// uint srcData[];
// uint srcIndexBuf[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
// uint srcOffset;
// uint srcIndexOffset;
//
// uint dstOffsetDiv4;
// uint dstIndexBufOffsetDiv4;
//
// uint maxIndex;
//
......@@ -156,9 +157,9 @@ const uint32_t kConvertIndex_comp_00000001[] = {
// uint PullIndex(uint index)
// {
//
// uint srcIndex = index + srcOffset;
// uint srcIndex = index + srcIndexOffset;
//
// uint srcBlock = srcData[srcIndex >> 2];
// uint srcBlock = srcIndexBuf[srcIndex >> 2];
// uint srcComponent =(srcIndex & 3);
//
// uint value =(srcBlock >>(srcComponent << 3))& 0xFF;
......@@ -200,5 +201,6 @@ const uint32_t kConvertIndex_comp_00000001[] = {
// PackIndexValue(srcValue, 1, dstValue);
// }
//
// dstData[dstOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
// dstIndexBuf[dstIndexBufOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
//
// }
// 7.12.3226
#pragma once
const uint32_t kConvertIndex_comp_00000002[] = {
0x07230203,0x00010000,0x00080007,0x00000094,0x00000000,0x00020011,0x00000001,0x0006000b,
0x07230203,0x00010000,0x00080007,0x000000c1,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000052,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
......@@ -11,105 +11,140 @@ const uint32_t kConvertIndex_comp_00000002[] = {
0x56637273,0x65756c61,0x00000000,0x00050005,0x0000000e,0x65646e69,0x646e4978,0x00007865,
0x00050005,0x0000000f,0x56747364,0x65756c61,0x00000000,0x00050005,0x00000012,0x49637273,
0x7865646e,0x00000000,0x00050005,0x00000014,0x42637273,0x6b636f6c,0x00000000,0x00030005,
0x00000016,0x00637273,0x00050006,0x00000016,0x00000000,0x44637273,0x00617461,0x00030005,
0x00000018,0x00000000,0x00060005,0x00000021,0x43637273,0x6f706d6f,0x746e656e,0x00000000,
0x00040005,0x00000025,0x756c6176,0x00000065,0x00050005,0x00000037,0x65646e69,0x756f4378,
0x0000746e,0x00030005,0x00000039,0x00646d63,0x00050006,0x00000039,0x00000000,0x44646d63,
0x00617461,0x00030005,0x0000003b,0x00000000,0x00060005,0x0000003c,0x68737550,0x736e6f43,
0x746e6174,0x00000073,0x00070006,0x0000003c,0x00000000,0x4f646d63,0x65736666,0x76694474,
0x00000034,0x00070006,0x0000003c,0x00000001,0x4f747364,0x65736666,0x76694474,0x00000034,
0x00060006,0x0000003c,0x00000002,0x4978616d,0x7865646e,0x00000000,0x00060006,0x0000003c,
0x00000003,0x6461705f,0x676e6964,0x00000000,0x00030005,0x0000003e,0x00000000,0x00050005,
0x00000044,0x73726966,0x646e4974,0x00007865,0x00050005,0x0000004b,0x49646e65,0x7865646e,
0x00000000,0x00040005,0x0000004f,0x65646e69,0x00000078,0x00080005,0x00000052,0x475f6c67,
0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000063,0x56747364,
0x65756c61,0x00000000,0x00050005,0x00000069,0x56637273,0x65756c61,0x00000000,0x00040005,
0x0000006a,0x61726170,0x0000006d,0x00040005,0x0000006d,0x61726170,0x0000006d,0x00040005,
0x0000006f,0x61726170,0x0000006d,0x00040005,0x00000070,0x61726170,0x0000006d,0x00050005,
0x0000007b,0x56637273,0x65756c61,0x00000000,0x00040005,0x0000007e,0x61726170,0x0000006d,
0x00040005,0x00000080,0x61726170,0x0000006d,0x00040005,0x00000082,0x61726170,0x0000006d,
0x00040005,0x00000083,0x61726170,0x0000006d,0x00030005,0x00000088,0x00747364,0x00050006,
0x00000088,0x00000000,0x44747364,0x00617461,0x00030005,0x0000008a,0x00000000,0x00040047,
0x00000015,0x00000006,0x00000004,0x00040048,0x00000016,0x00000000,0x00000018,0x00050048,
0x00000016,0x00000000,0x00000023,0x00000000,0x00030047,0x00000016,0x00000003,0x00040047,
0x00000018,0x00000022,0x00000000,0x00040047,0x00000018,0x00000021,0x00000001,0x00040047,
0x00000038,0x00000006,0x00000004,0x00040048,0x00000039,0x00000000,0x00000018,0x00050048,
0x00000039,0x00000000,0x00000023,0x00000000,0x00030047,0x00000039,0x00000003,0x00040047,
0x0000003b,0x00000022,0x00000000,0x00040047,0x0000003b,0x00000021,0x00000002,0x00050048,
0x0000003c,0x00000000,0x00000023,0x00000000,0x00050048,0x0000003c,0x00000001,0x00000023,
0x00000004,0x00050048,0x0000003c,0x00000002,0x00000023,0x00000008,0x00050048,0x0000003c,
0x00000003,0x00000023,0x0000000c,0x00030047,0x0000003c,0x00000002,0x00040047,0x00000052,
0x0000000b,0x0000001c,0x00040047,0x00000087,0x00000006,0x00000004,0x00050048,0x00000088,
0x00000000,0x00000023,0x00000000,0x00030047,0x00000088,0x00000003,0x00040047,0x0000008a,
0x00000022,0x00000000,0x00040047,0x0000008a,0x00000021,0x00000000,0x00040047,0x00000093,
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,0x0003001d,0x00000015,0x00000006,0x0003001e,0x00000016,0x00000015,0x00040020,
0x00000017,0x00000002,0x00000016,0x0004003b,0x00000017,0x00000018,0x00000002,0x00040015,
0x00000019,0x00000020,0x00000001,0x0004002b,0x00000019,0x0000001a,0x00000000,0x0004002b,
0x00000019,0x0000001c,0x00000002,0x00040020,0x0000001e,0x00000002,0x00000006,0x0004002b,
0x00000006,0x00000023,0x00000003,0x0004002b,0x00000019,0x00000028,0x00000003,0x0004002b,
0x00000006,0x0000002b,0x000000ff,0x0004002b,0x00000019,0x00000032,0x00000004,0x0003001d,
0x00000038,0x00000006,0x0003001e,0x00000039,0x00000038,0x00040020,0x0000003a,0x00000002,
0x00000039,0x0004003b,0x0000003a,0x0000003b,0x00000002,0x0006001e,0x0000003c,0x00000006,
0x00000006,0x00000006,0x00000006,0x00040020,0x0000003d,0x00000009,0x0000003c,0x0004003b,
0x0000003d,0x0000003e,0x00000009,0x00040020,0x0000003f,0x00000009,0x00000006,0x0004002b,
0x00000006,0x00000047,0x00000002,0x00040017,0x00000050,0x00000006,0x00000003,0x00040020,
0x00000051,0x00000001,0x00000050,0x0004003b,0x00000051,0x00000052,0x00000001,0x0004002b,
0x00000006,0x00000053,0x00000000,0x00040020,0x00000054,0x00000001,0x00000006,0x0004002b,
0x00000019,0x00000058,0x00000001,0x00020014,0x0000005e,0x0004002b,0x00000006,0x00000075,
0x00000001,0x0003001d,0x00000087,0x00000006,0x0003001e,0x00000088,0x00000087,0x00040020,
0x00000089,0x00000002,0x00000088,0x0004003b,0x00000089,0x0000008a,0x00000002,0x0004002b,
0x00000006,0x00000092,0x00000040,0x0006002c,0x00000050,0x00000093,0x00000092,0x00000075,
0x00000075,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,
0x0004003b,0x00000007,0x00000037,0x00000007,0x0004003b,0x00000007,0x00000044,0x00000007,
0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,0x00000007,0x0000004f,0x00000007,
0x0004003b,0x00000007,0x00000063,0x00000007,0x0004003b,0x00000007,0x00000069,0x00000007,
0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,0x00000007,0x0000006d,0x00000007,
0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,0x00000007,0x00000070,0x00000007,
0x0004003b,0x00000007,0x0000007b,0x00000007,0x0004003b,0x00000007,0x0000007e,0x00000007,
0x0004003b,0x00000007,0x00000080,0x00000007,0x0004003b,0x00000007,0x00000082,0x00000007,
0x0004003b,0x00000007,0x00000083,0x00000007,0x00050041,0x0000003f,0x00000040,0x0000003e,
0x0000001a,0x0004003d,0x00000006,0x00000041,0x00000040,0x00060041,0x0000001e,0x00000042,
0x0000003b,0x0000001a,0x00000041,0x0004003d,0x00000006,0x00000043,0x00000042,0x0003003e,
0x00000037,0x00000043,0x00050041,0x0000003f,0x00000045,0x0000003e,0x0000001a,0x0004003d,
0x00000006,0x00000046,0x00000045,0x00050080,0x00000006,0x00000048,0x00000046,0x00000047,
0x00060041,0x0000001e,0x00000049,0x0000003b,0x0000001a,0x00000048,0x0004003d,0x00000006,
0x0000004a,0x00000049,0x0003003e,0x00000044,0x0000004a,0x0004003d,0x00000006,0x0000004c,
0x00000044,0x0004003d,0x00000006,0x0000004d,0x00000037,0x00050080,0x00000006,0x0000004e,
0x0000004c,0x0000004d,0x0003003e,0x0000004b,0x0000004e,0x00050041,0x00000054,0x00000055,
0x00000052,0x00000053,0x0004003d,0x00000006,0x00000056,0x00000055,0x0004003d,0x00000006,
0x00000057,0x00000044,0x000500c2,0x00000006,0x00000059,0x00000057,0x00000058,0x00050080,
0x00000006,0x0000005a,0x00000056,0x00000059,0x000500c4,0x00000006,0x0000005b,0x0000005a,
0x00000058,0x0003003e,0x0000004f,0x0000005b,0x0004003d,0x00000006,0x0000005c,0x0000004f,
0x0004003d,0x00000006,0x0000005d,0x0000004b,0x000500ae,0x0000005e,0x0000005f,0x0000005c,
0x0000005d,0x000300f7,0x00000061,0x00000000,0x000400fa,0x0000005f,0x00000060,0x00000061,
0x000200f8,0x00000060,0x000100fd,0x000200f8,0x00000061,0x0003003e,0x00000063,0x00000053,
0x0004003d,0x00000006,0x00000064,0x0000004f,0x0004003d,0x00000006,0x00000065,0x00000044,
0x000500ae,0x0000005e,0x00000066,0x00000064,0x00000065,0x000300f7,0x00000068,0x00000000,
0x000400fa,0x00000066,0x00000067,0x00000068,0x000200f8,0x00000067,0x0004003d,0x00000006,
0x0000006b,0x0000004f,0x0003003e,0x0000006a,0x0000006b,0x00050039,0x00000006,0x0000006c,
0x0000000a,0x0000006a,0x0003003e,0x00000069,0x0000006c,0x0004003d,0x00000006,0x0000006e,
0x00000069,0x0003003e,0x0000006d,0x0000006e,0x0003003e,0x0000006f,0x00000053,0x0004003d,
0x00000006,0x00000071,0x00000063,0x0003003e,0x00000070,0x00000071,0x00070039,0x00000002,
0x00000072,0x00000010,0x0000006d,0x0000006f,0x00000070,0x0004003d,0x00000006,0x00000073,
0x00000070,0x0003003e,0x00000063,0x00000073,0x000200f9,0x00000068,0x000200f8,0x00000068,
0x0004003d,0x00000006,0x00000074,0x0000004f,0x00050080,0x00000006,0x00000076,0x00000074,
0x00000075,0x0004003d,0x00000006,0x00000077,0x0000004b,0x000500b0,0x0000005e,0x00000078,
0x00000076,0x00000077,0x000300f7,0x0000007a,0x00000000,0x000400fa,0x00000078,0x00000079,
0x0000007a,0x000200f8,0x00000079,0x0004003d,0x00000006,0x0000007c,0x0000004f,0x00050080,
0x00000006,0x0000007d,0x0000007c,0x00000075,0x0003003e,0x0000007e,0x0000007d,0x00050039,
0x00000006,0x0000007f,0x0000000a,0x0000007e,0x0003003e,0x0000007b,0x0000007f,0x0004003d,
0x00000006,0x00000081,0x0000007b,0x0003003e,0x00000080,0x00000081,0x0003003e,0x00000082,
0x00000075,0x0004003d,0x00000006,0x00000084,0x00000063,0x0003003e,0x00000083,0x00000084,
0x00070039,0x00000002,0x00000085,0x00000010,0x00000080,0x00000082,0x00000083,0x0004003d,
0x00000006,0x00000086,0x00000083,0x0003003e,0x00000063,0x00000086,0x000200f9,0x0000007a,
0x000200f8,0x0000007a,0x00050041,0x0000003f,0x0000008b,0x0000003e,0x00000058,0x0004003d,
0x00000006,0x0000008c,0x0000008b,0x00050041,0x00000054,0x0000008d,0x00000052,0x00000053,
0x0004003d,0x00000006,0x0000008e,0x0000008d,0x00050080,0x00000006,0x0000008f,0x0000008c,
0x0000008e,0x0004003d,0x00000006,0x00000090,0x00000063,0x00060041,0x0000001e,0x00000091,
0x0000008a,0x0000001a,0x0000008f,0x0003003e,0x00000091,0x00000090,0x000100fd,0x00010038,
0x00000016,0x00637273,0x00060006,0x00000016,0x00000000,0x49637273,0x7865646e,0x00667542,
0x00030005,0x00000018,0x00000000,0x00060005,0x00000021,0x43637273,0x6f706d6f,0x746e656e,
0x00000000,0x00040005,0x00000025,0x756c6176,0x00000065,0x00050005,0x00000037,0x65646e69,
0x756f4378,0x0000746e,0x00050005,0x00000039,0x49637273,0x7269646e,0x00746365,0x00070006,
0x00000039,0x00000000,0x49637273,0x7269646e,0x42746365,0x00006675,0x00030005,0x0000003b,
0x00000000,0x00060005,0x0000003c,0x68737550,0x736e6f43,0x746e6174,0x00000073,0x00090006,
0x0000003c,0x00000000,0x49637273,0x7269646e,0x4f746365,0x65736666,0x76694474,0x00000034,
0x00090006,0x0000003c,0x00000001,0x49747364,0x7865646e,0x4f667542,0x65736666,0x76694474,
0x00000034,0x00060006,0x0000003c,0x00000002,0x4978616d,0x7865646e,0x00000000,0x000a0006,
0x0000003c,0x00000003,0x49747364,0x7269646e,0x42746365,0x664f6675,0x74657366,0x34766944,
0x00000000,0x00030005,0x0000003e,0x00000000,0x00050005,0x00000044,0x73726966,0x646e4974,
0x00007865,0x00050005,0x0000004b,0x49646e65,0x7865646e,0x00000000,0x00040005,0x0000004f,
0x65646e69,0x00000078,0x00080005,0x00000052,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
0x496e6f69,0x00000044,0x00050005,0x00000063,0x56747364,0x65756c61,0x00000000,0x00050005,
0x00000069,0x56637273,0x65756c61,0x00000000,0x00040005,0x0000006a,0x61726170,0x0000006d,
0x00040005,0x0000006d,0x61726170,0x0000006d,0x00040005,0x0000006f,0x61726170,0x0000006d,
0x00040005,0x00000070,0x61726170,0x0000006d,0x00050005,0x0000007b,0x56637273,0x65756c61,
0x00000000,0x00040005,0x0000007e,0x61726170,0x0000006d,0x00040005,0x00000080,0x61726170,
0x0000006d,0x00040005,0x00000082,0x61726170,0x0000006d,0x00040005,0x00000083,0x61726170,
0x0000006d,0x00030005,0x00000088,0x00747364,0x00060006,0x00000088,0x00000000,0x49747364,
0x7865646e,0x00667542,0x00030005,0x0000008a,0x00000000,0x00050005,0x00000098,0x49747364,
0x7269646e,0x00746365,0x00070006,0x00000098,0x00000000,0x49747364,0x7269646e,0x42746365,
0x00006675,0x00030005,0x0000009a,0x00000000,0x00040047,0x00000015,0x00000006,0x00000004,
0x00040048,0x00000016,0x00000000,0x00000018,0x00050048,0x00000016,0x00000000,0x00000023,
0x00000000,0x00030047,0x00000016,0x00000003,0x00040047,0x00000018,0x00000022,0x00000000,
0x00040047,0x00000018,0x00000021,0x00000001,0x00040047,0x00000038,0x00000006,0x00000004,
0x00040048,0x00000039,0x00000000,0x00000018,0x00050048,0x00000039,0x00000000,0x00000023,
0x00000000,0x00030047,0x00000039,0x00000003,0x00040047,0x0000003b,0x00000022,0x00000000,
0x00040047,0x0000003b,0x00000021,0x00000002,0x00050048,0x0000003c,0x00000000,0x00000023,
0x00000000,0x00050048,0x0000003c,0x00000001,0x00000023,0x00000004,0x00050048,0x0000003c,
0x00000002,0x00000023,0x00000008,0x00050048,0x0000003c,0x00000003,0x00000023,0x0000000c,
0x00030047,0x0000003c,0x00000002,0x00040047,0x00000052,0x0000000b,0x0000001c,0x00040047,
0x00000087,0x00000006,0x00000004,0x00050048,0x00000088,0x00000000,0x00000023,0x00000000,
0x00030047,0x00000088,0x00000003,0x00040047,0x0000008a,0x00000022,0x00000000,0x00040047,
0x0000008a,0x00000021,0x00000000,0x00040047,0x00000097,0x00000006,0x00000004,0x00050048,
0x00000098,0x00000000,0x00000023,0x00000000,0x00030047,0x00000098,0x00000003,0x00040047,
0x0000009a,0x00000022,0x00000000,0x00040047,0x0000009a,0x00000021,0x00000003,0x00040047,
0x000000c0,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,0x0003001d,0x00000015,0x00000006,0x0003001e,0x00000016,0x00000015,
0x00040020,0x00000017,0x00000002,0x00000016,0x0004003b,0x00000017,0x00000018,0x00000002,
0x00040015,0x00000019,0x00000020,0x00000001,0x0004002b,0x00000019,0x0000001a,0x00000000,
0x0004002b,0x00000019,0x0000001c,0x00000002,0x00040020,0x0000001e,0x00000002,0x00000006,
0x0004002b,0x00000006,0x00000023,0x00000003,0x0004002b,0x00000019,0x00000028,0x00000003,
0x0004002b,0x00000006,0x0000002b,0x000000ff,0x0004002b,0x00000019,0x00000032,0x00000004,
0x0003001d,0x00000038,0x00000006,0x0003001e,0x00000039,0x00000038,0x00040020,0x0000003a,
0x00000002,0x00000039,0x0004003b,0x0000003a,0x0000003b,0x00000002,0x0006001e,0x0000003c,
0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x0000003d,0x00000009,0x0000003c,
0x0004003b,0x0000003d,0x0000003e,0x00000009,0x00040020,0x0000003f,0x00000009,0x00000006,
0x0004002b,0x00000006,0x00000047,0x00000002,0x00040017,0x00000050,0x00000006,0x00000003,
0x00040020,0x00000051,0x00000001,0x00000050,0x0004003b,0x00000051,0x00000052,0x00000001,
0x0004002b,0x00000006,0x00000053,0x00000000,0x00040020,0x00000054,0x00000001,0x00000006,
0x0004002b,0x00000019,0x00000058,0x00000001,0x00020014,0x0000005e,0x0004002b,0x00000006,
0x00000075,0x00000001,0x0003001d,0x00000087,0x00000006,0x0003001e,0x00000088,0x00000087,
0x00040020,0x00000089,0x00000002,0x00000088,0x0004003b,0x00000089,0x0000008a,0x00000002,
0x0003001d,0x00000097,0x00000006,0x0003001e,0x00000098,0x00000097,0x00040020,0x00000099,
0x00000002,0x00000098,0x0004003b,0x00000099,0x0000009a,0x00000002,0x0004002b,0x00000006,
0x000000bc,0x00000004,0x0004002b,0x00000006,0x000000bf,0x00000040,0x0006002c,0x00000050,
0x000000c0,0x000000bf,0x00000075,0x00000075,0x00050036,0x00000002,0x00000004,0x00000000,
0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x00000037,0x00000007,0x0004003b,
0x00000007,0x00000044,0x00000007,0x0004003b,0x00000007,0x0000004b,0x00000007,0x0004003b,
0x00000007,0x0000004f,0x00000007,0x0004003b,0x00000007,0x00000063,0x00000007,0x0004003b,
0x00000007,0x00000069,0x00000007,0x0004003b,0x00000007,0x0000006a,0x00000007,0x0004003b,
0x00000007,0x0000006d,0x00000007,0x0004003b,0x00000007,0x0000006f,0x00000007,0x0004003b,
0x00000007,0x00000070,0x00000007,0x0004003b,0x00000007,0x0000007b,0x00000007,0x0004003b,
0x00000007,0x0000007e,0x00000007,0x0004003b,0x00000007,0x00000080,0x00000007,0x0004003b,
0x00000007,0x00000082,0x00000007,0x0004003b,0x00000007,0x00000083,0x00000007,0x00050041,
0x0000003f,0x00000040,0x0000003e,0x0000001a,0x0004003d,0x00000006,0x00000041,0x00000040,
0x00060041,0x0000001e,0x00000042,0x0000003b,0x0000001a,0x00000041,0x0004003d,0x00000006,
0x00000043,0x00000042,0x0003003e,0x00000037,0x00000043,0x00050041,0x0000003f,0x00000045,
0x0000003e,0x0000001a,0x0004003d,0x00000006,0x00000046,0x00000045,0x00050080,0x00000006,
0x00000048,0x00000046,0x00000047,0x00060041,0x0000001e,0x00000049,0x0000003b,0x0000001a,
0x00000048,0x0004003d,0x00000006,0x0000004a,0x00000049,0x0003003e,0x00000044,0x0000004a,
0x0004003d,0x00000006,0x0000004c,0x00000044,0x0004003d,0x00000006,0x0000004d,0x00000037,
0x00050080,0x00000006,0x0000004e,0x0000004c,0x0000004d,0x0003003e,0x0000004b,0x0000004e,
0x00050041,0x00000054,0x00000055,0x00000052,0x00000053,0x0004003d,0x00000006,0x00000056,
0x00000055,0x0004003d,0x00000006,0x00000057,0x00000044,0x000500c2,0x00000006,0x00000059,
0x00000057,0x00000058,0x00050080,0x00000006,0x0000005a,0x00000056,0x00000059,0x000500c4,
0x00000006,0x0000005b,0x0000005a,0x00000058,0x0003003e,0x0000004f,0x0000005b,0x0004003d,
0x00000006,0x0000005c,0x0000004f,0x0004003d,0x00000006,0x0000005d,0x0000004b,0x000500ae,
0x0000005e,0x0000005f,0x0000005c,0x0000005d,0x000300f7,0x00000061,0x00000000,0x000400fa,
0x0000005f,0x00000060,0x00000061,0x000200f8,0x00000060,0x000100fd,0x000200f8,0x00000061,
0x0003003e,0x00000063,0x00000053,0x0004003d,0x00000006,0x00000064,0x0000004f,0x0004003d,
0x00000006,0x00000065,0x00000044,0x000500ae,0x0000005e,0x00000066,0x00000064,0x00000065,
0x000300f7,0x00000068,0x00000000,0x000400fa,0x00000066,0x00000067,0x00000068,0x000200f8,
0x00000067,0x0004003d,0x00000006,0x0000006b,0x0000004f,0x0003003e,0x0000006a,0x0000006b,
0x00050039,0x00000006,0x0000006c,0x0000000a,0x0000006a,0x0003003e,0x00000069,0x0000006c,
0x0004003d,0x00000006,0x0000006e,0x00000069,0x0003003e,0x0000006d,0x0000006e,0x0003003e,
0x0000006f,0x00000053,0x0004003d,0x00000006,0x00000071,0x00000063,0x0003003e,0x00000070,
0x00000071,0x00070039,0x00000002,0x00000072,0x00000010,0x0000006d,0x0000006f,0x00000070,
0x0004003d,0x00000006,0x00000073,0x00000070,0x0003003e,0x00000063,0x00000073,0x000200f9,
0x00000068,0x000200f8,0x00000068,0x0004003d,0x00000006,0x00000074,0x0000004f,0x00050080,
0x00000006,0x00000076,0x00000074,0x00000075,0x0004003d,0x00000006,0x00000077,0x0000004b,
0x000500b0,0x0000005e,0x00000078,0x00000076,0x00000077,0x000300f7,0x0000007a,0x00000000,
0x000400fa,0x00000078,0x00000079,0x0000007a,0x000200f8,0x00000079,0x0004003d,0x00000006,
0x0000007c,0x0000004f,0x00050080,0x00000006,0x0000007d,0x0000007c,0x00000075,0x0003003e,
0x0000007e,0x0000007d,0x00050039,0x00000006,0x0000007f,0x0000000a,0x0000007e,0x0003003e,
0x0000007b,0x0000007f,0x0004003d,0x00000006,0x00000081,0x0000007b,0x0003003e,0x00000080,
0x00000081,0x0003003e,0x00000082,0x00000075,0x0004003d,0x00000006,0x00000084,0x00000063,
0x0003003e,0x00000083,0x00000084,0x00070039,0x00000002,0x00000085,0x00000010,0x00000080,
0x00000082,0x00000083,0x0004003d,0x00000006,0x00000086,0x00000083,0x0003003e,0x00000063,
0x00000086,0x000200f9,0x0000007a,0x000200f8,0x0000007a,0x00050041,0x0000003f,0x0000008b,
0x0000003e,0x00000058,0x0004003d,0x00000006,0x0000008c,0x0000008b,0x00050041,0x00000054,
0x0000008d,0x00000052,0x00000053,0x0004003d,0x00000006,0x0000008e,0x0000008d,0x00050080,
0x00000006,0x0000008f,0x0000008c,0x0000008e,0x0004003d,0x00000006,0x00000090,0x00000063,
0x00060041,0x0000001e,0x00000091,0x0000008a,0x0000001a,0x0000008f,0x0003003e,0x00000091,
0x00000090,0x00050041,0x00000054,0x00000092,0x00000052,0x00000053,0x0004003d,0x00000006,
0x00000093,0x00000092,0x000500aa,0x0000005e,0x00000094,0x00000093,0x00000053,0x000300f7,
0x00000096,0x00000000,0x000400fa,0x00000094,0x00000095,0x00000096,0x000200f8,0x00000095,
0x00050041,0x0000003f,0x0000009b,0x0000003e,0x00000028,0x0004003d,0x00000006,0x0000009c,
0x0000009b,0x00050041,0x0000003f,0x0000009d,0x0000003e,0x0000001a,0x0004003d,0x00000006,
0x0000009e,0x0000009d,0x00060041,0x0000001e,0x0000009f,0x0000003b,0x0000001a,0x0000009e,
0x0004003d,0x00000006,0x000000a0,0x0000009f,0x00060041,0x0000001e,0x000000a1,0x0000009a,
0x0000001a,0x0000009c,0x0003003e,0x000000a1,0x000000a0,0x00050041,0x0000003f,0x000000a2,
0x0000003e,0x00000028,0x0004003d,0x00000006,0x000000a3,0x000000a2,0x00050080,0x00000006,
0x000000a4,0x000000a3,0x00000075,0x00050041,0x0000003f,0x000000a5,0x0000003e,0x0000001a,
0x0004003d,0x00000006,0x000000a6,0x000000a5,0x00050080,0x00000006,0x000000a7,0x000000a6,
0x00000075,0x00060041,0x0000001e,0x000000a8,0x0000003b,0x0000001a,0x000000a7,0x0004003d,
0x00000006,0x000000a9,0x000000a8,0x00060041,0x0000001e,0x000000aa,0x0000009a,0x0000001a,
0x000000a4,0x0003003e,0x000000aa,0x000000a9,0x00050041,0x0000003f,0x000000ab,0x0000003e,
0x00000028,0x0004003d,0x00000006,0x000000ac,0x000000ab,0x00050080,0x00000006,0x000000ad,
0x000000ac,0x00000047,0x0004003d,0x00000006,0x000000ae,0x00000044,0x000500c7,0x00000006,
0x000000af,0x000000ae,0x00000075,0x00060041,0x0000001e,0x000000b0,0x0000009a,0x0000001a,
0x000000ad,0x0003003e,0x000000b0,0x000000af,0x00050041,0x0000003f,0x000000b1,0x0000003e,
0x00000028,0x0004003d,0x00000006,0x000000b2,0x000000b1,0x00050080,0x00000006,0x000000b3,
0x000000b2,0x00000023,0x00050041,0x0000003f,0x000000b4,0x0000003e,0x0000001a,0x0004003d,
0x00000006,0x000000b5,0x000000b4,0x00050080,0x00000006,0x000000b6,0x000000b5,0x00000023,
0x00060041,0x0000001e,0x000000b7,0x0000003b,0x0000001a,0x000000b6,0x0004003d,0x00000006,
0x000000b8,0x000000b7,0x00060041,0x0000001e,0x000000b9,0x0000009a,0x0000001a,0x000000b3,
0x0003003e,0x000000b9,0x000000b8,0x00050041,0x0000003f,0x000000ba,0x0000003e,0x00000028,
0x0004003d,0x00000006,0x000000bb,0x000000ba,0x00050080,0x00000006,0x000000bd,0x000000bb,
0x000000bc,0x00060041,0x0000001e,0x000000be,0x0000009a,0x0000001a,0x000000bd,0x0003003e,
0x000000be,0x00000053,0x000200f9,0x00000096,0x000200f8,0x00000096,0x000100fd,0x00010038,
0x00050036,0x00000006,0x0000000a,0x00000000,0x00000008,0x00030037,0x00000007,0x00000009,
0x000200f8,0x0000000b,0x0004003b,0x00000007,0x00000012,0x00000007,0x0004003b,0x00000007,
0x00000014,0x00000007,0x0004003b,0x00000007,0x00000021,0x00000007,0x0004003b,0x00000007,
......@@ -140,31 +175,37 @@ const uint32_t kConvertIndex_comp_00000002[] = {
// layout(set = 0, binding = 0)buffer dst
// {
//
// uint dstData[];
// uint dstIndexBuf[];
// };
//
// layout(set = 0, binding = 1)readonly buffer src
// {
//
// uint srcData[];
// uint srcIndexBuf[];
// };
//
// layout(set = 0, binding = 2)readonly buffer cmd
// layout(set = 0, binding = 2)readonly buffer srcIndirect
// {
//
// uint cmdData[];
// uint srcIndirectBuf[];
// };
//
// layout(set = 0, binding = 3)buffer dstIndirect
// {
//
// uint dstIndirectBuf[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
// uint cmdOffsetDiv4;
// uint srcIndirectOffsetDiv4;
//
// uint dstOffsetDiv4;
// uint dstIndexBufOffsetDiv4;
//
// uint maxIndex;
//
// uint _padding;
// uint dstIndirectBufOffsetDiv4;
// };
//
// uint PullIndex(uint index)
......@@ -172,7 +213,7 @@ const uint32_t kConvertIndex_comp_00000002[] = {
//
// uint srcIndex = index;
//
// uint srcBlock = srcData[srcIndex >> 2];
// uint srcBlock = srcIndexBuf[srcIndex >> 2];
// uint srcComponent =(srcIndex & 3);
//
// uint value =(srcBlock >>(srcComponent << 3))& 0xFF;
......@@ -189,8 +230,8 @@ const uint32_t kConvertIndex_comp_00000002[] = {
// void main()
// {
//
// uint indexCount = cmdData[cmdOffsetDiv4];
// uint firstIndex = cmdData[cmdOffsetDiv4 + 2];
// uint indexCount = srcIndirectBuf[srcIndirectOffsetDiv4];
// uint firstIndex = srcIndirectBuf[srcIndirectOffsetDiv4 + 2];
// uint endIndex = firstIndex + indexCount;
//
// uint index =((gl_GlobalInvocationID . x +(firstIndex >> 1))<< 1);
......@@ -212,5 +253,18 @@ const uint32_t kConvertIndex_comp_00000002[] = {
// PackIndexValue(srcValue, 1, dstValue);
// }
//
// dstData[dstOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
// dstIndexBuf[dstIndexBufOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
//
// if(gl_GlobalInvocationID . x == 0)
// {
// dstIndirectBuf[dstIndirectBufOffsetDiv4]= srcIndirectBuf[srcIndirectOffsetDiv4];
//
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 1]= srcIndirectBuf[srcIndirectOffsetDiv4 + 1];
//
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 2]= firstIndex & 1;
//
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 3]= srcIndirectBuf[srcIndirectOffsetDiv4 + 3];
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 4]= 0;
// }
//
// }
// 7.12.3226
#pragma once
const uint32_t kConvertIndex_comp_00000003[] = {
0x07230203,0x00010000,0x00080007,0x00000099,0x00000000,0x00020011,0x00000001,0x0006000b,
0x07230203,0x00010000,0x00080007,0x000000c6,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000058,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
......@@ -11,106 +11,141 @@ const uint32_t kConvertIndex_comp_00000003[] = {
0x56637273,0x65756c61,0x00000000,0x00050005,0x0000000e,0x65646e69,0x646e4978,0x00007865,
0x00050005,0x0000000f,0x56747364,0x65756c61,0x00000000,0x00050005,0x00000012,0x49637273,
0x7865646e,0x00000000,0x00050005,0x00000014,0x42637273,0x6b636f6c,0x00000000,0x00030005,
0x00000016,0x00637273,0x00050006,0x00000016,0x00000000,0x44637273,0x00617461,0x00030005,
0x00000018,0x00000000,0x00060005,0x00000021,0x43637273,0x6f706d6f,0x746e656e,0x00000000,
0x00040005,0x00000025,0x756c6176,0x00000065,0x00050005,0x0000003d,0x65646e69,0x756f4378,
0x0000746e,0x00030005,0x0000003f,0x00646d63,0x00050006,0x0000003f,0x00000000,0x44646d63,
0x00617461,0x00030005,0x00000041,0x00000000,0x00060005,0x00000042,0x68737550,0x736e6f43,
0x746e6174,0x00000073,0x00070006,0x00000042,0x00000000,0x4f646d63,0x65736666,0x76694474,
0x00000034,0x00070006,0x00000042,0x00000001,0x4f747364,0x65736666,0x76694474,0x00000034,
0x00060006,0x00000042,0x00000002,0x4978616d,0x7865646e,0x00000000,0x00060006,0x00000042,
0x00000003,0x6461705f,0x676e6964,0x00000000,0x00030005,0x00000044,0x00000000,0x00050005,
0x0000004a,0x73726966,0x646e4974,0x00007865,0x00050005,0x00000051,0x49646e65,0x7865646e,
0x00000000,0x00040005,0x00000055,0x65646e69,0x00000078,0x00080005,0x00000058,0x475f6c67,
0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,0x00000044,0x00050005,0x00000068,0x56747364,
0x65756c61,0x00000000,0x00050005,0x0000006e,0x56637273,0x65756c61,0x00000000,0x00040005,
0x0000006f,0x61726170,0x0000006d,0x00040005,0x00000072,0x61726170,0x0000006d,0x00040005,
0x00000074,0x61726170,0x0000006d,0x00040005,0x00000075,0x61726170,0x0000006d,0x00050005,
0x00000080,0x56637273,0x65756c61,0x00000000,0x00040005,0x00000083,0x61726170,0x0000006d,
0x00040005,0x00000085,0x61726170,0x0000006d,0x00040005,0x00000087,0x61726170,0x0000006d,
0x00040005,0x00000088,0x61726170,0x0000006d,0x00030005,0x0000008d,0x00747364,0x00050006,
0x0000008d,0x00000000,0x44747364,0x00617461,0x00030005,0x0000008f,0x00000000,0x00040047,
0x00000015,0x00000006,0x00000004,0x00040048,0x00000016,0x00000000,0x00000018,0x00050048,
0x00000016,0x00000000,0x00000023,0x00000000,0x00030047,0x00000016,0x00000003,0x00040047,
0x00000018,0x00000022,0x00000000,0x00040047,0x00000018,0x00000021,0x00000001,0x00040047,
0x0000003e,0x00000006,0x00000004,0x00040048,0x0000003f,0x00000000,0x00000018,0x00050048,
0x0000003f,0x00000000,0x00000023,0x00000000,0x00030047,0x0000003f,0x00000003,0x00040047,
0x00000041,0x00000022,0x00000000,0x00040047,0x00000041,0x00000021,0x00000002,0x00050048,
0x00000042,0x00000000,0x00000023,0x00000000,0x00050048,0x00000042,0x00000001,0x00000023,
0x00000004,0x00050048,0x00000042,0x00000002,0x00000023,0x00000008,0x00050048,0x00000042,
0x00000003,0x00000023,0x0000000c,0x00030047,0x00000042,0x00000002,0x00040047,0x00000058,
0x0000000b,0x0000001c,0x00040047,0x0000008c,0x00000006,0x00000004,0x00050048,0x0000008d,
0x00000000,0x00000023,0x00000000,0x00030047,0x0000008d,0x00000003,0x00040047,0x0000008f,
0x00000022,0x00000000,0x00040047,0x0000008f,0x00000021,0x00000000,0x00040047,0x00000098,
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,0x0003001d,0x00000015,0x00000006,0x0003001e,0x00000016,0x00000015,0x00040020,
0x00000017,0x00000002,0x00000016,0x0004003b,0x00000017,0x00000018,0x00000002,0x00040015,
0x00000019,0x00000020,0x00000001,0x0004002b,0x00000019,0x0000001a,0x00000000,0x0004002b,
0x00000019,0x0000001c,0x00000002,0x00040020,0x0000001e,0x00000002,0x00000006,0x0004002b,
0x00000006,0x00000023,0x00000003,0x0004002b,0x00000019,0x00000028,0x00000003,0x0004002b,
0x00000006,0x0000002b,0x000000ff,0x00020014,0x0000002e,0x0004002b,0x00000006,0x00000032,
0x0000ffff,0x0004002b,0x00000019,0x00000038,0x00000004,0x0003001d,0x0000003e,0x00000006,
0x0003001e,0x0000003f,0x0000003e,0x00040020,0x00000040,0x00000002,0x0000003f,0x0004003b,
0x00000040,0x00000041,0x00000002,0x0006001e,0x00000042,0x00000006,0x00000006,0x00000006,
0x00000006,0x00040020,0x00000043,0x00000009,0x00000042,0x0004003b,0x00000043,0x00000044,
0x00000009,0x00040020,0x00000045,0x00000009,0x00000006,0x0004002b,0x00000006,0x0000004d,
0x00000002,0x00040017,0x00000056,0x00000006,0x00000003,0x00040020,0x00000057,0x00000001,
0x00000056,0x0004003b,0x00000057,0x00000058,0x00000001,0x0004002b,0x00000006,0x00000059,
0x00000000,0x00040020,0x0000005a,0x00000001,0x00000006,0x0004002b,0x00000019,0x0000005e,
0x00000001,0x0004002b,0x00000006,0x0000007a,0x00000001,0x0003001d,0x0000008c,0x00000006,
0x0003001e,0x0000008d,0x0000008c,0x00040020,0x0000008e,0x00000002,0x0000008d,0x0004003b,
0x0000008e,0x0000008f,0x00000002,0x0004002b,0x00000006,0x00000097,0x00000040,0x0006002c,
0x00000056,0x00000098,0x00000097,0x0000007a,0x0000007a,0x00050036,0x00000002,0x00000004,
0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,0x00000007,0x0000003d,0x00000007,
0x0004003b,0x00000007,0x0000004a,0x00000007,0x0004003b,0x00000007,0x00000051,0x00000007,
0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,0x00000007,0x00000068,0x00000007,
0x0004003b,0x00000007,0x0000006e,0x00000007,0x0004003b,0x00000007,0x0000006f,0x00000007,
0x0004003b,0x00000007,0x00000072,0x00000007,0x0004003b,0x00000007,0x00000074,0x00000007,
0x0004003b,0x00000007,0x00000075,0x00000007,0x0004003b,0x00000007,0x00000080,0x00000007,
0x0004003b,0x00000007,0x00000083,0x00000007,0x0004003b,0x00000007,0x00000085,0x00000007,
0x0004003b,0x00000007,0x00000087,0x00000007,0x0004003b,0x00000007,0x00000088,0x00000007,
0x00050041,0x00000045,0x00000046,0x00000044,0x0000001a,0x0004003d,0x00000006,0x00000047,
0x00000046,0x00060041,0x0000001e,0x00000048,0x00000041,0x0000001a,0x00000047,0x0004003d,
0x00000006,0x00000049,0x00000048,0x0003003e,0x0000003d,0x00000049,0x00050041,0x00000045,
0x0000004b,0x00000044,0x0000001a,0x0004003d,0x00000006,0x0000004c,0x0000004b,0x00050080,
0x00000006,0x0000004e,0x0000004c,0x0000004d,0x00060041,0x0000001e,0x0000004f,0x00000041,
0x0000001a,0x0000004e,0x0004003d,0x00000006,0x00000050,0x0000004f,0x0003003e,0x0000004a,
0x00000050,0x0004003d,0x00000006,0x00000052,0x0000004a,0x0004003d,0x00000006,0x00000053,
0x0000003d,0x00050080,0x00000006,0x00000054,0x00000052,0x00000053,0x0003003e,0x00000051,
0x00000054,0x00050041,0x0000005a,0x0000005b,0x00000058,0x00000059,0x0004003d,0x00000006,
0x0000005c,0x0000005b,0x0004003d,0x00000006,0x0000005d,0x0000004a,0x000500c2,0x00000006,
0x0000005f,0x0000005d,0x0000005e,0x00050080,0x00000006,0x00000060,0x0000005c,0x0000005f,
0x000500c4,0x00000006,0x00000061,0x00000060,0x0000005e,0x0003003e,0x00000055,0x00000061,
0x0004003d,0x00000006,0x00000062,0x00000055,0x0004003d,0x00000006,0x00000063,0x00000051,
0x000500ae,0x0000002e,0x00000064,0x00000062,0x00000063,0x000300f7,0x00000066,0x00000000,
0x000400fa,0x00000064,0x00000065,0x00000066,0x000200f8,0x00000065,0x000100fd,0x000200f8,
0x00000066,0x0003003e,0x00000068,0x00000059,0x0004003d,0x00000006,0x00000069,0x00000055,
0x0004003d,0x00000006,0x0000006a,0x0000004a,0x000500ae,0x0000002e,0x0000006b,0x00000069,
0x0000006a,0x000300f7,0x0000006d,0x00000000,0x000400fa,0x0000006b,0x0000006c,0x0000006d,
0x000200f8,0x0000006c,0x0004003d,0x00000006,0x00000070,0x00000055,0x0003003e,0x0000006f,
0x00000070,0x00050039,0x00000006,0x00000071,0x0000000a,0x0000006f,0x0003003e,0x0000006e,
0x00000071,0x0004003d,0x00000006,0x00000073,0x0000006e,0x0003003e,0x00000072,0x00000073,
0x0003003e,0x00000074,0x00000059,0x0004003d,0x00000006,0x00000076,0x00000068,0x0003003e,
0x00000075,0x00000076,0x00070039,0x00000002,0x00000077,0x00000010,0x00000072,0x00000074,
0x00000075,0x0004003d,0x00000006,0x00000078,0x00000075,0x0003003e,0x00000068,0x00000078,
0x000200f9,0x0000006d,0x000200f8,0x0000006d,0x0004003d,0x00000006,0x00000079,0x00000055,
0x00050080,0x00000006,0x0000007b,0x00000079,0x0000007a,0x0004003d,0x00000006,0x0000007c,
0x00000051,0x000500b0,0x0000002e,0x0000007d,0x0000007b,0x0000007c,0x000300f7,0x0000007f,
0x00000000,0x000400fa,0x0000007d,0x0000007e,0x0000007f,0x000200f8,0x0000007e,0x0004003d,
0x00000006,0x00000081,0x00000055,0x00050080,0x00000006,0x00000082,0x00000081,0x0000007a,
0x0003003e,0x00000083,0x00000082,0x00050039,0x00000006,0x00000084,0x0000000a,0x00000083,
0x0003003e,0x00000080,0x00000084,0x0004003d,0x00000006,0x00000086,0x00000080,0x0003003e,
0x00000085,0x00000086,0x0003003e,0x00000087,0x0000007a,0x0004003d,0x00000006,0x00000089,
0x00000068,0x0003003e,0x00000088,0x00000089,0x00070039,0x00000002,0x0000008a,0x00000010,
0x00000085,0x00000087,0x00000088,0x0004003d,0x00000006,0x0000008b,0x00000088,0x0003003e,
0x00000068,0x0000008b,0x000200f9,0x0000007f,0x000200f8,0x0000007f,0x00050041,0x00000045,
0x00000090,0x00000044,0x0000005e,0x0004003d,0x00000006,0x00000091,0x00000090,0x00050041,
0x0000005a,0x00000092,0x00000058,0x00000059,0x0004003d,0x00000006,0x00000093,0x00000092,
0x00050080,0x00000006,0x00000094,0x00000091,0x00000093,0x0004003d,0x00000006,0x00000095,
0x00000068,0x00060041,0x0000001e,0x00000096,0x0000008f,0x0000001a,0x00000094,0x0003003e,
0x00000096,0x00000095,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,
0x00000016,0x00637273,0x00060006,0x00000016,0x00000000,0x49637273,0x7865646e,0x00667542,
0x00030005,0x00000018,0x00000000,0x00060005,0x00000021,0x43637273,0x6f706d6f,0x746e656e,
0x00000000,0x00040005,0x00000025,0x756c6176,0x00000065,0x00050005,0x0000003d,0x65646e69,
0x756f4378,0x0000746e,0x00050005,0x0000003f,0x49637273,0x7269646e,0x00746365,0x00070006,
0x0000003f,0x00000000,0x49637273,0x7269646e,0x42746365,0x00006675,0x00030005,0x00000041,
0x00000000,0x00060005,0x00000042,0x68737550,0x736e6f43,0x746e6174,0x00000073,0x00090006,
0x00000042,0x00000000,0x49637273,0x7269646e,0x4f746365,0x65736666,0x76694474,0x00000034,
0x00090006,0x00000042,0x00000001,0x49747364,0x7865646e,0x4f667542,0x65736666,0x76694474,
0x00000034,0x00060006,0x00000042,0x00000002,0x4978616d,0x7865646e,0x00000000,0x000a0006,
0x00000042,0x00000003,0x49747364,0x7269646e,0x42746365,0x664f6675,0x74657366,0x34766944,
0x00000000,0x00030005,0x00000044,0x00000000,0x00050005,0x0000004a,0x73726966,0x646e4974,
0x00007865,0x00050005,0x00000051,0x49646e65,0x7865646e,0x00000000,0x00040005,0x00000055,
0x65646e69,0x00000078,0x00080005,0x00000058,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,
0x496e6f69,0x00000044,0x00050005,0x00000068,0x56747364,0x65756c61,0x00000000,0x00050005,
0x0000006e,0x56637273,0x65756c61,0x00000000,0x00040005,0x0000006f,0x61726170,0x0000006d,
0x00040005,0x00000072,0x61726170,0x0000006d,0x00040005,0x00000074,0x61726170,0x0000006d,
0x00040005,0x00000075,0x61726170,0x0000006d,0x00050005,0x00000080,0x56637273,0x65756c61,
0x00000000,0x00040005,0x00000083,0x61726170,0x0000006d,0x00040005,0x00000085,0x61726170,
0x0000006d,0x00040005,0x00000087,0x61726170,0x0000006d,0x00040005,0x00000088,0x61726170,
0x0000006d,0x00030005,0x0000008d,0x00747364,0x00060006,0x0000008d,0x00000000,0x49747364,
0x7865646e,0x00667542,0x00030005,0x0000008f,0x00000000,0x00050005,0x0000009d,0x49747364,
0x7269646e,0x00746365,0x00070006,0x0000009d,0x00000000,0x49747364,0x7269646e,0x42746365,
0x00006675,0x00030005,0x0000009f,0x00000000,0x00040047,0x00000015,0x00000006,0x00000004,
0x00040048,0x00000016,0x00000000,0x00000018,0x00050048,0x00000016,0x00000000,0x00000023,
0x00000000,0x00030047,0x00000016,0x00000003,0x00040047,0x00000018,0x00000022,0x00000000,
0x00040047,0x00000018,0x00000021,0x00000001,0x00040047,0x0000003e,0x00000006,0x00000004,
0x00040048,0x0000003f,0x00000000,0x00000018,0x00050048,0x0000003f,0x00000000,0x00000023,
0x00000000,0x00030047,0x0000003f,0x00000003,0x00040047,0x00000041,0x00000022,0x00000000,
0x00040047,0x00000041,0x00000021,0x00000002,0x00050048,0x00000042,0x00000000,0x00000023,
0x00000000,0x00050048,0x00000042,0x00000001,0x00000023,0x00000004,0x00050048,0x00000042,
0x00000002,0x00000023,0x00000008,0x00050048,0x00000042,0x00000003,0x00000023,0x0000000c,
0x00030047,0x00000042,0x00000002,0x00040047,0x00000058,0x0000000b,0x0000001c,0x00040047,
0x0000008c,0x00000006,0x00000004,0x00050048,0x0000008d,0x00000000,0x00000023,0x00000000,
0x00030047,0x0000008d,0x00000003,0x00040047,0x0000008f,0x00000022,0x00000000,0x00040047,
0x0000008f,0x00000021,0x00000000,0x00040047,0x0000009c,0x00000006,0x00000004,0x00050048,
0x0000009d,0x00000000,0x00000023,0x00000000,0x00030047,0x0000009d,0x00000003,0x00040047,
0x0000009f,0x00000022,0x00000000,0x00040047,0x0000009f,0x00000021,0x00000003,0x00040047,
0x000000c5,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,0x0003001d,0x00000015,0x00000006,0x0003001e,0x00000016,0x00000015,
0x00040020,0x00000017,0x00000002,0x00000016,0x0004003b,0x00000017,0x00000018,0x00000002,
0x00040015,0x00000019,0x00000020,0x00000001,0x0004002b,0x00000019,0x0000001a,0x00000000,
0x0004002b,0x00000019,0x0000001c,0x00000002,0x00040020,0x0000001e,0x00000002,0x00000006,
0x0004002b,0x00000006,0x00000023,0x00000003,0x0004002b,0x00000019,0x00000028,0x00000003,
0x0004002b,0x00000006,0x0000002b,0x000000ff,0x00020014,0x0000002e,0x0004002b,0x00000006,
0x00000032,0x0000ffff,0x0004002b,0x00000019,0x00000038,0x00000004,0x0003001d,0x0000003e,
0x00000006,0x0003001e,0x0000003f,0x0000003e,0x00040020,0x00000040,0x00000002,0x0000003f,
0x0004003b,0x00000040,0x00000041,0x00000002,0x0006001e,0x00000042,0x00000006,0x00000006,
0x00000006,0x00000006,0x00040020,0x00000043,0x00000009,0x00000042,0x0004003b,0x00000043,
0x00000044,0x00000009,0x00040020,0x00000045,0x00000009,0x00000006,0x0004002b,0x00000006,
0x0000004d,0x00000002,0x00040017,0x00000056,0x00000006,0x00000003,0x00040020,0x00000057,
0x00000001,0x00000056,0x0004003b,0x00000057,0x00000058,0x00000001,0x0004002b,0x00000006,
0x00000059,0x00000000,0x00040020,0x0000005a,0x00000001,0x00000006,0x0004002b,0x00000019,
0x0000005e,0x00000001,0x0004002b,0x00000006,0x0000007a,0x00000001,0x0003001d,0x0000008c,
0x00000006,0x0003001e,0x0000008d,0x0000008c,0x00040020,0x0000008e,0x00000002,0x0000008d,
0x0004003b,0x0000008e,0x0000008f,0x00000002,0x0003001d,0x0000009c,0x00000006,0x0003001e,
0x0000009d,0x0000009c,0x00040020,0x0000009e,0x00000002,0x0000009d,0x0004003b,0x0000009e,
0x0000009f,0x00000002,0x0004002b,0x00000006,0x000000c1,0x00000004,0x0004002b,0x00000006,
0x000000c4,0x00000040,0x0006002c,0x00000056,0x000000c5,0x000000c4,0x0000007a,0x0000007a,
0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
0x00000007,0x0000003d,0x00000007,0x0004003b,0x00000007,0x0000004a,0x00000007,0x0004003b,
0x00000007,0x00000051,0x00000007,0x0004003b,0x00000007,0x00000055,0x00000007,0x0004003b,
0x00000007,0x00000068,0x00000007,0x0004003b,0x00000007,0x0000006e,0x00000007,0x0004003b,
0x00000007,0x0000006f,0x00000007,0x0004003b,0x00000007,0x00000072,0x00000007,0x0004003b,
0x00000007,0x00000074,0x00000007,0x0004003b,0x00000007,0x00000075,0x00000007,0x0004003b,
0x00000007,0x00000080,0x00000007,0x0004003b,0x00000007,0x00000083,0x00000007,0x0004003b,
0x00000007,0x00000085,0x00000007,0x0004003b,0x00000007,0x00000087,0x00000007,0x0004003b,
0x00000007,0x00000088,0x00000007,0x00050041,0x00000045,0x00000046,0x00000044,0x0000001a,
0x0004003d,0x00000006,0x00000047,0x00000046,0x00060041,0x0000001e,0x00000048,0x00000041,
0x0000001a,0x00000047,0x0004003d,0x00000006,0x00000049,0x00000048,0x0003003e,0x0000003d,
0x00000049,0x00050041,0x00000045,0x0000004b,0x00000044,0x0000001a,0x0004003d,0x00000006,
0x0000004c,0x0000004b,0x00050080,0x00000006,0x0000004e,0x0000004c,0x0000004d,0x00060041,
0x0000001e,0x0000004f,0x00000041,0x0000001a,0x0000004e,0x0004003d,0x00000006,0x00000050,
0x0000004f,0x0003003e,0x0000004a,0x00000050,0x0004003d,0x00000006,0x00000052,0x0000004a,
0x0004003d,0x00000006,0x00000053,0x0000003d,0x00050080,0x00000006,0x00000054,0x00000052,
0x00000053,0x0003003e,0x00000051,0x00000054,0x00050041,0x0000005a,0x0000005b,0x00000058,
0x00000059,0x0004003d,0x00000006,0x0000005c,0x0000005b,0x0004003d,0x00000006,0x0000005d,
0x0000004a,0x000500c2,0x00000006,0x0000005f,0x0000005d,0x0000005e,0x00050080,0x00000006,
0x00000060,0x0000005c,0x0000005f,0x000500c4,0x00000006,0x00000061,0x00000060,0x0000005e,
0x0003003e,0x00000055,0x00000061,0x0004003d,0x00000006,0x00000062,0x00000055,0x0004003d,
0x00000006,0x00000063,0x00000051,0x000500ae,0x0000002e,0x00000064,0x00000062,0x00000063,
0x000300f7,0x00000066,0x00000000,0x000400fa,0x00000064,0x00000065,0x00000066,0x000200f8,
0x00000065,0x000100fd,0x000200f8,0x00000066,0x0003003e,0x00000068,0x00000059,0x0004003d,
0x00000006,0x00000069,0x00000055,0x0004003d,0x00000006,0x0000006a,0x0000004a,0x000500ae,
0x0000002e,0x0000006b,0x00000069,0x0000006a,0x000300f7,0x0000006d,0x00000000,0x000400fa,
0x0000006b,0x0000006c,0x0000006d,0x000200f8,0x0000006c,0x0004003d,0x00000006,0x00000070,
0x00000055,0x0003003e,0x0000006f,0x00000070,0x00050039,0x00000006,0x00000071,0x0000000a,
0x0000006f,0x0003003e,0x0000006e,0x00000071,0x0004003d,0x00000006,0x00000073,0x0000006e,
0x0003003e,0x00000072,0x00000073,0x0003003e,0x00000074,0x00000059,0x0004003d,0x00000006,
0x00000076,0x00000068,0x0003003e,0x00000075,0x00000076,0x00070039,0x00000002,0x00000077,
0x00000010,0x00000072,0x00000074,0x00000075,0x0004003d,0x00000006,0x00000078,0x00000075,
0x0003003e,0x00000068,0x00000078,0x000200f9,0x0000006d,0x000200f8,0x0000006d,0x0004003d,
0x00000006,0x00000079,0x00000055,0x00050080,0x00000006,0x0000007b,0x00000079,0x0000007a,
0x0004003d,0x00000006,0x0000007c,0x00000051,0x000500b0,0x0000002e,0x0000007d,0x0000007b,
0x0000007c,0x000300f7,0x0000007f,0x00000000,0x000400fa,0x0000007d,0x0000007e,0x0000007f,
0x000200f8,0x0000007e,0x0004003d,0x00000006,0x00000081,0x00000055,0x00050080,0x00000006,
0x00000082,0x00000081,0x0000007a,0x0003003e,0x00000083,0x00000082,0x00050039,0x00000006,
0x00000084,0x0000000a,0x00000083,0x0003003e,0x00000080,0x00000084,0x0004003d,0x00000006,
0x00000086,0x00000080,0x0003003e,0x00000085,0x00000086,0x0003003e,0x00000087,0x0000007a,
0x0004003d,0x00000006,0x00000089,0x00000068,0x0003003e,0x00000088,0x00000089,0x00070039,
0x00000002,0x0000008a,0x00000010,0x00000085,0x00000087,0x00000088,0x0004003d,0x00000006,
0x0000008b,0x00000088,0x0003003e,0x00000068,0x0000008b,0x000200f9,0x0000007f,0x000200f8,
0x0000007f,0x00050041,0x00000045,0x00000090,0x00000044,0x0000005e,0x0004003d,0x00000006,
0x00000091,0x00000090,0x00050041,0x0000005a,0x00000092,0x00000058,0x00000059,0x0004003d,
0x00000006,0x00000093,0x00000092,0x00050080,0x00000006,0x00000094,0x00000091,0x00000093,
0x0004003d,0x00000006,0x00000095,0x00000068,0x00060041,0x0000001e,0x00000096,0x0000008f,
0x0000001a,0x00000094,0x0003003e,0x00000096,0x00000095,0x00050041,0x0000005a,0x00000097,
0x00000058,0x00000059,0x0004003d,0x00000006,0x00000098,0x00000097,0x000500aa,0x0000002e,
0x00000099,0x00000098,0x00000059,0x000300f7,0x0000009b,0x00000000,0x000400fa,0x00000099,
0x0000009a,0x0000009b,0x000200f8,0x0000009a,0x00050041,0x00000045,0x000000a0,0x00000044,
0x00000028,0x0004003d,0x00000006,0x000000a1,0x000000a0,0x00050041,0x00000045,0x000000a2,
0x00000044,0x0000001a,0x0004003d,0x00000006,0x000000a3,0x000000a2,0x00060041,0x0000001e,
0x000000a4,0x00000041,0x0000001a,0x000000a3,0x0004003d,0x00000006,0x000000a5,0x000000a4,
0x00060041,0x0000001e,0x000000a6,0x0000009f,0x0000001a,0x000000a1,0x0003003e,0x000000a6,
0x000000a5,0x00050041,0x00000045,0x000000a7,0x00000044,0x00000028,0x0004003d,0x00000006,
0x000000a8,0x000000a7,0x00050080,0x00000006,0x000000a9,0x000000a8,0x0000007a,0x00050041,
0x00000045,0x000000aa,0x00000044,0x0000001a,0x0004003d,0x00000006,0x000000ab,0x000000aa,
0x00050080,0x00000006,0x000000ac,0x000000ab,0x0000007a,0x00060041,0x0000001e,0x000000ad,
0x00000041,0x0000001a,0x000000ac,0x0004003d,0x00000006,0x000000ae,0x000000ad,0x00060041,
0x0000001e,0x000000af,0x0000009f,0x0000001a,0x000000a9,0x0003003e,0x000000af,0x000000ae,
0x00050041,0x00000045,0x000000b0,0x00000044,0x00000028,0x0004003d,0x00000006,0x000000b1,
0x000000b0,0x00050080,0x00000006,0x000000b2,0x000000b1,0x0000004d,0x0004003d,0x00000006,
0x000000b3,0x0000004a,0x000500c7,0x00000006,0x000000b4,0x000000b3,0x0000007a,0x00060041,
0x0000001e,0x000000b5,0x0000009f,0x0000001a,0x000000b2,0x0003003e,0x000000b5,0x000000b4,
0x00050041,0x00000045,0x000000b6,0x00000044,0x00000028,0x0004003d,0x00000006,0x000000b7,
0x000000b6,0x00050080,0x00000006,0x000000b8,0x000000b7,0x00000023,0x00050041,0x00000045,
0x000000b9,0x00000044,0x0000001a,0x0004003d,0x00000006,0x000000ba,0x000000b9,0x00050080,
0x00000006,0x000000bb,0x000000ba,0x00000023,0x00060041,0x0000001e,0x000000bc,0x00000041,
0x0000001a,0x000000bb,0x0004003d,0x00000006,0x000000bd,0x000000bc,0x00060041,0x0000001e,
0x000000be,0x0000009f,0x0000001a,0x000000b8,0x0003003e,0x000000be,0x000000bd,0x00050041,
0x00000045,0x000000bf,0x00000044,0x00000028,0x0004003d,0x00000006,0x000000c0,0x000000bf,
0x00050080,0x00000006,0x000000c2,0x000000c0,0x000000c1,0x00060041,0x0000001e,0x000000c3,
0x0000009f,0x0000001a,0x000000c2,0x0003003e,0x000000c3,0x00000059,0x000200f9,0x0000009b,
0x000200f8,0x0000009b,0x000100fd,0x00010038,0x00050036,0x00000006,0x0000000a,0x00000000,
0x00000008,0x00030037,0x00000007,0x00000009,0x000200f8,0x0000000b,0x0004003b,0x00000007,
0x00000012,0x00000007,0x0004003b,0x00000007,0x00000014,0x00000007,0x0004003b,0x00000007,
0x00000021,0x00000007,0x0004003b,0x00000007,0x00000025,0x00000007,0x0004003d,0x00000006,
......@@ -144,31 +179,37 @@ const uint32_t kConvertIndex_comp_00000003[] = {
// layout(set = 0, binding = 0)buffer dst
// {
//
// uint dstData[];
// uint dstIndexBuf[];
// };
//
// layout(set = 0, binding = 1)readonly buffer src
// {
//
// uint srcData[];
// uint srcIndexBuf[];
// };
//
// layout(set = 0, binding = 2)readonly buffer cmd
// layout(set = 0, binding = 2)readonly buffer srcIndirect
// {
//
// uint cmdData[];
// uint srcIndirectBuf[];
// };
//
// layout(set = 0, binding = 3)buffer dstIndirect
// {
//
// uint dstIndirectBuf[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
// uint cmdOffsetDiv4;
// uint srcIndirectOffsetDiv4;
//
// uint dstOffsetDiv4;
// uint dstIndexBufOffsetDiv4;
//
// uint maxIndex;
//
// uint _padding;
// uint dstIndirectBufOffsetDiv4;
// };
//
// uint PullIndex(uint index)
......@@ -176,7 +217,7 @@ const uint32_t kConvertIndex_comp_00000003[] = {
//
// uint srcIndex = index;
//
// uint srcBlock = srcData[srcIndex >> 2];
// uint srcBlock = srcIndexBuf[srcIndex >> 2];
// uint srcComponent =(srcIndex & 3);
//
// uint value =(srcBlock >>(srcComponent << 3))& 0xFF;
......@@ -196,8 +237,8 @@ const uint32_t kConvertIndex_comp_00000003[] = {
// void main()
// {
//
// uint indexCount = cmdData[cmdOffsetDiv4];
// uint firstIndex = cmdData[cmdOffsetDiv4 + 2];
// uint indexCount = srcIndirectBuf[srcIndirectOffsetDiv4];
// uint firstIndex = srcIndirectBuf[srcIndirectOffsetDiv4 + 2];
// uint endIndex = firstIndex + indexCount;
//
// uint index =((gl_GlobalInvocationID . x +(firstIndex >> 1))<< 1);
......@@ -219,5 +260,18 @@ const uint32_t kConvertIndex_comp_00000003[] = {
// PackIndexValue(srcValue, 1, dstValue);
// }
//
// dstData[dstOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
// dstIndexBuf[dstIndexBufOffsetDiv4 + gl_GlobalInvocationID . x]= dstValue;
//
// if(gl_GlobalInvocationID . x == 0)
// {
// dstIndirectBuf[dstIndirectBufOffsetDiv4]= srcIndirectBuf[srcIndirectOffsetDiv4];
//
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 1]= srcIndirectBuf[srcIndirectOffsetDiv4 + 1];
//
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 2]= firstIndex & 1;
//
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 3]= srcIndirectBuf[srcIndirectOffsetDiv4 + 3];
// dstIndirectBuf[dstIndirectBufOffsetDiv4 + 4]= 0;
// }
//
// }
......@@ -39,18 +39,18 @@ const uint32_t kConvertIndexIndirectLineLoop_comp_00000000[] = {
0x000000c6,0x00000000,0x00040047,0x00000012,0x00000006,0x00000004,0x00040048,0x00000013,
0x00000000,0x00000018,0x00050048,0x00000013,0x00000000,0x00000023,0x00000000,0x00030047,
0x00000013,0x00000003,0x00040047,0x00000015,0x00000022,0x00000000,0x00040047,0x00000015,
0x00000021,0x00000003,0x00050048,0x00000030,0x00000000,0x00000023,0x00000000,0x00050048,
0x00000021,0x00000001,0x00050048,0x00000030,0x00000000,0x00000023,0x00000000,0x00050048,
0x00000030,0x00000001,0x00000023,0x00000004,0x00050048,0x00000030,0x00000002,0x00000023,
0x00000008,0x00050048,0x00000030,0x00000003,0x00000023,0x0000000c,0x00030047,0x00000030,
0x00000002,0x00040047,0x0000003b,0x00000006,0x00000004,0x00050048,0x0000003c,0x00000000,
0x00000023,0x00000000,0x00030047,0x0000003c,0x00000003,0x00040047,0x0000003e,0x00000022,
0x00000000,0x00040047,0x0000003e,0x00000021,0x00000002,0x00040047,0x00000056,0x00000006,
0x00000000,0x00040047,0x0000003e,0x00000021,0x00000000,0x00040047,0x00000056,0x00000006,
0x00000004,0x00040048,0x00000057,0x00000000,0x00000018,0x00050048,0x00000057,0x00000000,
0x00000023,0x00000000,0x00030047,0x00000057,0x00000003,0x00040047,0x00000059,0x00000022,
0x00000000,0x00040047,0x00000059,0x00000021,0x00000000,0x00040047,0x0000006b,0x0000000b,
0x00000000,0x00040047,0x00000059,0x00000021,0x00000002,0x00040047,0x0000006b,0x0000000b,
0x0000001c,0x00040047,0x000000c3,0x00000006,0x00000004,0x00050048,0x000000c4,0x00000000,
0x00000023,0x00000000,0x00030047,0x000000c4,0x00000003,0x00040047,0x000000c6,0x00000022,
0x00000000,0x00040047,0x000000c6,0x00000021,0x00000001,0x00040047,0x000000ed,0x0000000b,
0x00000000,0x00040047,0x000000c6,0x00000021,0x00000003,0x00040047,0x000000ed,0x0000000b,
0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00040015,0x00000006,
0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,0x00000006,0x00040021,0x00000008,
0x00000006,0x00000007,0x00050021,0x0000000c,0x00000002,0x00000007,0x00000007,0x0003001d,
......@@ -207,28 +207,28 @@ const uint32_t kConvertIndexIndirectLineLoop_comp_00000000[] = {
//
// layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in;
//
// layout(set = 0, binding = 0)readonly buffer cmd
// layout(set = 0, binding = 0)buffer dst
// {
//
// uint cmdData[];
// uint dstData[];
// };
//
// layout(set = 0, binding = 1)buffer dstCmd
// layout(set = 0, binding = 1)readonly buffer src
// {
//
// uint dstCmdData[];
// uint srcData[];
// };
//
// layout(set = 0, binding = 2)buffer dst
// layout(set = 0, binding = 2)readonly buffer cmd
// {
//
// uint dstData[];
// uint cmdData[];
// };
//
// layout(set = 0, binding = 3)readonly buffer src
// layout(set = 0, binding = 3)buffer dstCmd
// {
//
// uint srcData[];
// uint dstCmdData[];
// };
//
// layout(push_constant)uniform PushConstants
......
......@@ -34,18 +34,18 @@ const uint32_t kConvertIndexIndirectLineLoop_comp_00000001[] = {
0x6144646d,0x00006174,0x00030005,0x000000a1,0x00000000,0x00040047,0x00000011,0x00000006,
0x00000004,0x00040048,0x00000012,0x00000000,0x00000018,0x00050048,0x00000012,0x00000000,
0x00000023,0x00000000,0x00030047,0x00000012,0x00000003,0x00040047,0x00000014,0x00000022,
0x00000000,0x00040047,0x00000014,0x00000021,0x00000003,0x00040047,0x0000001d,0x00000006,
0x00000000,0x00040047,0x00000014,0x00000021,0x00000001,0x00040047,0x0000001d,0x00000006,
0x00000004,0x00050048,0x0000001e,0x00000000,0x00000023,0x00000000,0x00030047,0x0000001e,
0x00000003,0x00040047,0x00000020,0x00000022,0x00000000,0x00040047,0x00000020,0x00000021,
0x00000002,0x00050048,0x00000021,0x00000000,0x00000023,0x00000000,0x00050048,0x00000021,
0x00000000,0x00050048,0x00000021,0x00000000,0x00000023,0x00000000,0x00050048,0x00000021,
0x00000001,0x00000023,0x00000004,0x00050048,0x00000021,0x00000002,0x00000023,0x00000008,
0x00050048,0x00000021,0x00000003,0x00000023,0x0000000c,0x00030047,0x00000021,0x00000002,
0x00040047,0x0000002e,0x00000006,0x00000004,0x00040048,0x0000002f,0x00000000,0x00000018,
0x00050048,0x0000002f,0x00000000,0x00000023,0x00000000,0x00030047,0x0000002f,0x00000003,
0x00040047,0x00000031,0x00000022,0x00000000,0x00040047,0x00000031,0x00000021,0x00000000,
0x00040047,0x00000031,0x00000022,0x00000000,0x00040047,0x00000031,0x00000021,0x00000002,
0x00040047,0x00000043,0x0000000b,0x0000001c,0x00040047,0x0000009e,0x00000006,0x00000004,
0x00050048,0x0000009f,0x00000000,0x00000023,0x00000000,0x00030047,0x0000009f,0x00000003,
0x00040047,0x000000a1,0x00000022,0x00000000,0x00040047,0x000000a1,0x00000021,0x00000001,
0x00040047,0x000000a1,0x00000022,0x00000000,0x00040047,0x000000a1,0x00000021,0x00000003,
0x00040047,0x000000c8,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,
0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,
0x00000006,0x00040021,0x00000008,0x00000006,0x00000007,0x00050021,0x0000000c,0x00000002,
......@@ -178,28 +178,28 @@ const uint32_t kConvertIndexIndirectLineLoop_comp_00000001[] = {
//
// layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in;
//
// layout(set = 0, binding = 0)readonly buffer cmd
// layout(set = 0, binding = 0)buffer dst
// {
//
// uint cmdData[];
// uint dstData[];
// };
//
// layout(set = 0, binding = 1)buffer dstCmd
// layout(set = 0, binding = 1)readonly buffer src
// {
//
// uint dstCmdData[];
// uint srcData[];
// };
//
// layout(set = 0, binding = 2)buffer dst
// layout(set = 0, binding = 2)readonly buffer cmd
// {
//
// uint dstData[];
// uint cmdData[];
// };
//
// layout(set = 0, binding = 3)readonly buffer src
// layout(set = 0, binding = 3)buffer dstCmd
// {
//
// uint srcData[];
// uint dstCmdData[];
// };
//
// layout(push_constant)uniform PushConstants
......
// 7.12.3226
#pragma once
const uint32_t kConvertIndirectLineLoop_comp_00000000[] = {
0x07230203,0x00010000,0x00080007,0x00000077,0x00000000,0x00020011,0x00000001,0x0006000b,
0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001,
0x0006000f,0x00000005,0x00000004,0x6e69616d,0x00000000,0x00000021,0x00060010,0x00000004,
0x00000011,0x00000040,0x00000001,0x00000001,0x00030003,0x00000002,0x000001c2,0x00040005,
0x00000004,0x6e69616d,0x00000000,0x00050005,0x00000008,0x74726576,0x6f437865,0x00746e75,
0x00060005,0x0000000a,0x49637273,0x7269646e,0x42746365,0x00006675,0x00060006,0x0000000a,
0x00000000,0x69646e69,0x74636572,0x00667542,0x00030005,0x0000000c,0x00000000,0x00060005,
0x0000000f,0x68737550,0x736e6f43,0x746e6174,0x00000073,0x000a0006,0x0000000f,0x00000000,
0x69646e69,0x74636572,0x66667542,0x664f7265,0x74657366,0x34766944,0x00000000,0x000a0006,
0x0000000f,0x00000001,0x65646e69,0x646e4978,0x63657269,0x66754274,0x7366664f,0x69447465,
0x00003476,0x00080006,0x0000000f,0x00000002,0x44747364,0x4f617461,0x65736666,0x76694474,
0x00000034,0x00030005,0x00000011,0x00000000,0x00050005,0x00000018,0x73726966,0x72655674,
0x00786574,0x00080005,0x00000021,0x475f6c67,0x61626f6c,0x766e496c,0x7461636f,0x496e6f69,
0x00000044,0x00030005,0x0000002c,0x00000069,0x00050005,0x00000036,0x49747364,0x7865646e,
0x00667542,0x00050006,0x00000036,0x00000000,0x44747364,0x00617461,0x00030005,0x00000038,
0x00000000,0x00060005,0x00000052,0x49747364,0x7269646e,0x42746365,0x00006675,0x00080006,
0x00000052,0x00000000,0x65646e69,0x646e4978,0x63657269,0x66754274,0x00000000,0x00030005,
0x00000054,0x00000000,0x00040047,0x00000009,0x00000006,0x00000004,0x00040048,0x0000000a,
0x00000000,0x00000018,0x00050048,0x0000000a,0x00000000,0x00000023,0x00000000,0x00030047,
0x0000000a,0x00000003,0x00040047,0x0000000c,0x00000022,0x00000000,0x00040047,0x0000000c,
0x00000021,0x00000000,0x00050048,0x0000000f,0x00000000,0x00000023,0x00000000,0x00050048,
0x0000000f,0x00000001,0x00000023,0x00000004,0x00050048,0x0000000f,0x00000002,0x00000023,
0x00000008,0x00030047,0x0000000f,0x00000002,0x00040047,0x00000021,0x0000000b,0x0000001c,
0x00040047,0x00000035,0x00000006,0x00000004,0x00050048,0x00000036,0x00000000,0x00000023,
0x00000000,0x00030047,0x00000036,0x00000003,0x00040047,0x00000038,0x00000022,0x00000000,
0x00040047,0x00000038,0x00000021,0x00000002,0x00040047,0x00000051,0x00000006,0x00000004,
0x00050048,0x00000052,0x00000000,0x00000023,0x00000000,0x00030047,0x00000052,0x00000003,
0x00040047,0x00000054,0x00000022,0x00000000,0x00040047,0x00000054,0x00000021,0x00000001,
0x00040047,0x00000076,0x0000000b,0x00000019,0x00020013,0x00000002,0x00030021,0x00000003,
0x00000002,0x00040015,0x00000006,0x00000020,0x00000000,0x00040020,0x00000007,0x00000007,
0x00000006,0x0003001d,0x00000009,0x00000006,0x0003001e,0x0000000a,0x00000009,0x00040020,
0x0000000b,0x00000002,0x0000000a,0x0004003b,0x0000000b,0x0000000c,0x00000002,0x00040015,
0x0000000d,0x00000020,0x00000001,0x0004002b,0x0000000d,0x0000000e,0x00000000,0x0005001e,
0x0000000f,0x00000006,0x00000006,0x00000006,0x00040020,0x00000010,0x00000009,0x0000000f,
0x0004003b,0x00000010,0x00000011,0x00000009,0x00040020,0x00000012,0x00000009,0x00000006,
0x00040020,0x00000015,0x00000002,0x00000006,0x0004002b,0x00000006,0x0000001b,0x00000002,
0x00040017,0x0000001f,0x00000006,0x00000003,0x00040020,0x00000020,0x00000001,0x0000001f,
0x0004003b,0x00000020,0x00000021,0x00000001,0x0004002b,0x00000006,0x00000022,0x00000000,
0x00040020,0x00000023,0x00000001,0x00000006,0x0004002b,0x00000006,0x00000026,0x00000001,
0x00020014,0x00000027,0x0003001d,0x00000035,0x00000006,0x0003001e,0x00000036,0x00000035,
0x00040020,0x00000037,0x00000002,0x00000036,0x0004003b,0x00000037,0x00000038,0x00000002,
0x0004002b,0x0000000d,0x00000039,0x00000002,0x0004002b,0x0000000d,0x00000043,0x00000001,
0x0003001d,0x00000051,0x00000006,0x0003001e,0x00000052,0x00000051,0x00040020,0x00000053,
0x00000002,0x00000052,0x0004003b,0x00000053,0x00000054,0x00000002,0x0004002b,0x00000006,
0x00000068,0x00000003,0x0004002b,0x00000006,0x0000006d,0x00000004,0x0004002b,0x00000006,
0x00000075,0x00000040,0x0006002c,0x0000001f,0x00000076,0x00000075,0x00000026,0x00000026,
0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003b,
0x00000007,0x00000008,0x00000007,0x0004003b,0x00000007,0x00000018,0x00000007,0x0004003b,
0x00000007,0x0000002c,0x00000007,0x00050041,0x00000012,0x00000013,0x00000011,0x0000000e,
0x0004003d,0x00000006,0x00000014,0x00000013,0x00060041,0x00000015,0x00000016,0x0000000c,
0x0000000e,0x00000014,0x0004003d,0x00000006,0x00000017,0x00000016,0x0003003e,0x00000008,
0x00000017,0x00050041,0x00000012,0x00000019,0x00000011,0x0000000e,0x0004003d,0x00000006,
0x0000001a,0x00000019,0x00050080,0x00000006,0x0000001c,0x0000001a,0x0000001b,0x00060041,
0x00000015,0x0000001d,0x0000000c,0x0000000e,0x0000001c,0x0004003d,0x00000006,0x0000001e,
0x0000001d,0x0003003e,0x00000018,0x0000001e,0x00050041,0x00000023,0x00000024,0x00000021,
0x00000022,0x0004003d,0x00000006,0x00000025,0x00000024,0x000500ae,0x00000027,0x00000028,
0x00000025,0x00000026,0x000300f7,0x0000002a,0x00000000,0x000400fa,0x00000028,0x00000029,
0x0000002a,0x000200f8,0x00000029,0x000100fd,0x000200f8,0x0000002a,0x0003003e,0x0000002c,
0x00000022,0x000200f9,0x0000002d,0x000200f8,0x0000002d,0x000400f6,0x0000002f,0x00000030,
0x00000000,0x000200f9,0x00000031,0x000200f8,0x00000031,0x0004003d,0x00000006,0x00000032,
0x0000002c,0x0004003d,0x00000006,0x00000033,0x00000008,0x000500b0,0x00000027,0x00000034,
0x00000032,0x00000033,0x000400fa,0x00000034,0x0000002e,0x0000002f,0x000200f8,0x0000002e,
0x00050041,0x00000012,0x0000003a,0x00000011,0x00000039,0x0004003d,0x00000006,0x0000003b,
0x0000003a,0x0004003d,0x00000006,0x0000003c,0x0000002c,0x00050080,0x00000006,0x0000003d,
0x0000003b,0x0000003c,0x0004003d,0x00000006,0x0000003e,0x00000018,0x0004003d,0x00000006,
0x0000003f,0x0000002c,0x00050080,0x00000006,0x00000040,0x0000003e,0x0000003f,0x00060041,
0x00000015,0x00000041,0x00000038,0x0000000e,0x0000003d,0x0003003e,0x00000041,0x00000040,
0x000200f9,0x00000030,0x000200f8,0x00000030,0x0004003d,0x00000006,0x00000042,0x0000002c,
0x00050080,0x00000006,0x00000044,0x00000042,0x00000043,0x0003003e,0x0000002c,0x00000044,
0x000200f9,0x0000002d,0x000200f8,0x0000002f,0x0004003d,0x00000006,0x00000045,0x00000008,
0x000500ac,0x00000027,0x00000046,0x00000045,0x00000026,0x000300f7,0x00000048,0x00000000,
0x000400fa,0x00000046,0x00000047,0x00000048,0x000200f8,0x00000047,0x00050041,0x00000012,
0x00000049,0x00000011,0x00000039,0x0004003d,0x00000006,0x0000004a,0x00000049,0x0004003d,
0x00000006,0x0000004b,0x00000008,0x00050080,0x00000006,0x0000004c,0x0000004a,0x0000004b,
0x0004003d,0x00000006,0x0000004d,0x00000018,0x00060041,0x00000015,0x0000004e,0x00000038,
0x0000000e,0x0000004c,0x0003003e,0x0000004e,0x0000004d,0x0004003d,0x00000006,0x0000004f,
0x00000008,0x00050080,0x00000006,0x00000050,0x0000004f,0x00000043,0x0003003e,0x00000008,
0x00000050,0x000200f9,0x00000048,0x000200f8,0x00000048,0x00050041,0x00000012,0x00000055,
0x00000011,0x00000043,0x0004003d,0x00000006,0x00000056,0x00000055,0x0004003d,0x00000006,
0x00000057,0x00000008,0x00060041,0x00000015,0x00000058,0x00000054,0x0000000e,0x00000056,
0x0003003e,0x00000058,0x00000057,0x00050041,0x00000012,0x00000059,0x00000011,0x00000043,
0x0004003d,0x00000006,0x0000005a,0x00000059,0x00050080,0x00000006,0x0000005b,0x0000005a,
0x00000026,0x00050041,0x00000012,0x0000005c,0x00000011,0x0000000e,0x0004003d,0x00000006,
0x0000005d,0x0000005c,0x00050080,0x00000006,0x0000005e,0x0000005d,0x00000026,0x00060041,
0x00000015,0x0000005f,0x0000000c,0x0000000e,0x0000005e,0x0004003d,0x00000006,0x00000060,
0x0000005f,0x00060041,0x00000015,0x00000061,0x00000054,0x0000000e,0x0000005b,0x0003003e,
0x00000061,0x00000060,0x00050041,0x00000012,0x00000062,0x00000011,0x00000043,0x0004003d,
0x00000006,0x00000063,0x00000062,0x00050080,0x00000006,0x00000064,0x00000063,0x0000001b,
0x00060041,0x00000015,0x00000065,0x00000054,0x0000000e,0x00000064,0x0003003e,0x00000065,
0x00000022,0x00050041,0x00000012,0x00000066,0x00000011,0x00000043,0x0004003d,0x00000006,
0x00000067,0x00000066,0x00050080,0x00000006,0x00000069,0x00000067,0x00000068,0x00060041,
0x00000015,0x0000006a,0x00000054,0x0000000e,0x00000069,0x0003003e,0x0000006a,0x00000022,
0x00050041,0x00000012,0x0000006b,0x00000011,0x00000043,0x0004003d,0x00000006,0x0000006c,
0x0000006b,0x00050080,0x00000006,0x0000006e,0x0000006c,0x0000006d,0x00050041,0x00000012,
0x0000006f,0x00000011,0x0000000e,0x0004003d,0x00000006,0x00000070,0x0000006f,0x00050080,
0x00000006,0x00000071,0x00000070,0x00000068,0x00060041,0x00000015,0x00000072,0x0000000c,
0x0000000e,0x00000071,0x0004003d,0x00000006,0x00000073,0x00000072,0x00060041,0x00000015,
0x00000074,0x00000054,0x0000000e,0x0000006e,0x0003003e,0x00000074,0x00000073,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)readonly buffer srcIndirectBuf
// {
//
// uint indirectBuf[];
// };
//
// layout(set = 0, binding = 1)buffer dstIndirectBuf
// {
//
// uint indexIndirectBuf[];
// };
//
// layout(set = 0, binding = 2)buffer dstIndexBuf
// {
//
// uint dstData[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
// uint indirectBufferOffsetDiv4;
//
// uint indexIndirectBufOffsetDiv4;
//
// uint dstDataOffsetDiv4;
// };
//
// void main()
// {
//
// uint vertexCount = indirectBuf[indirectBufferOffsetDiv4];
// uint firstVertex = indirectBuf[indirectBufferOffsetDiv4 + 2];
//
// if(gl_GlobalInvocationID . x >= 1)
// return;
//
// for(uint i = 0;i < vertexCount;i ++)
// {
// dstData[dstDataOffsetDiv4 + i]= firstVertex + i;
// }
// if(vertexCount > 1)
// {
// dstData[dstDataOffsetDiv4 + vertexCount]= firstVertex;
// vertexCount ++;
// }
//
// indexIndirectBuf[indexIndirectBufOffsetDiv4]= vertexCount;
// indexIndirectBuf[indexIndirectBufOffsetDiv4 + 1]= indirectBuf[indirectBufferOffsetDiv4 + 1];
// indexIndirectBuf[indexIndirectBufOffsetDiv4 + 2]= 0;
// indexIndirectBuf[indexIndirectBufOffsetDiv4 + 3]= 0;
// indexIndirectBuf[indexIndirectBufOffsetDiv4 + 4]= indirectBuf[indirectBufferOffsetDiv4 + 3];
// }
......@@ -20,43 +20,49 @@ layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
layout (set = 0, binding = 0) buffer dst
{
// Shader invocations output one packed 32-bit value with up to two 16-bit indices.
uint dstData[];
uint dstIndexBuf[];
};
layout (set = 0, binding = 1) readonly buffer src
{
// Shader invocations read at most 16 bits of one packed 32-bit value. (Two 8-bit indices.)
uint srcData[];
uint srcIndexBuf[];
};
#if IsIndirect
layout (set = 0, binding = 2) readonly buffer cmd
layout (set = 0, binding = 2) readonly buffer srcIndirect
{
// Shader invocations read from the cmdData buffer to determine what indices to convert
// The command data starts at offset cmdOffsetDiv4 of the cmdData buffer.
uint cmdData[];
// Shader invocations read from the srcIndirectBuf buffer to determine what indices to convert
// The command data starts at offset srcIndirectOffsetDiv4 of the srcIndirectBuf buffer.
uint srcIndirectBuf[];
};
layout (set = 0, binding = 3) buffer dstIndirect
{
// output indirect buffer data, data starts at dstIndirectBufOffsetDiv4
uint dstIndirectBuf[];
};
layout (push_constant) uniform PushConstants
{
// Read offset in bytes into the cmdData array, divided by four.
uint cmdOffsetDiv4;
// Write offset in bytes into the dstData array, divided by four.
uint dstOffsetDiv4;
// Read offset in bytes into the srcIndirectBuf array, divided by four.
uint srcIndirectOffsetDiv4;
// Write offset in bytes into the dstIndexBuf array, divided by four.
uint dstIndexBufOffsetDiv4;
// Maximum size of the read buffer. The highest index value we will convert.
uint maxIndex;
// Not used in the shader. Kept to pad "PushConstants" to the size of a vec4.
uint _padding;
// Write offset in bytes/4 of destinatio indirect buffer
uint dstIndirectBufOffsetDiv4;
};
#else
layout (push_constant) uniform PushConstants
{
// Read offset in bytes into the srcData array.
uint srcOffset;
// Write offset in bytes into the dstData array, divided by four.
uint dstOffsetDiv4;
// Read offset in bytes into the srcIndexBuf array.
uint srcIndexOffset;
// Write offset in bytes into the dstIndexBuf array, divided by four.
uint dstIndexBufOffsetDiv4;
// Maximum size of the read buffer. The highest index value we will convert.
uint maxIndex;
// Not used in the shader. Kept to pad "PushConstants" to the size of a vec4.
......@@ -69,9 +75,9 @@ uint PullIndex(uint index)
#if IsIndirect
uint srcIndex = index;
#else
uint srcIndex = index + srcOffset;
uint srcIndex = index + srcIndexOffset;
#endif
uint srcBlock = srcData[srcIndex >> 2];
uint srcBlock = srcIndexBuf[srcIndex >> 2];
uint srcComponent = (srcIndex & 3);
uint value = (srcBlock >> (srcComponent << 3)) & 0xFF;
......@@ -93,8 +99,8 @@ void PackIndexValue(uint srcValue, uint indexIndex, inout uint dstValue)
void main()
{
#if IsIndirect
uint indexCount = cmdData[cmdOffsetDiv4];
uint firstIndex = cmdData[cmdOffsetDiv4 + 2];
uint indexCount = srcIndirectBuf[srcIndirectOffsetDiv4];
uint firstIndex = srcIndirectBuf[srcIndirectOffsetDiv4 + 2];
uint endIndex = firstIndex + indexCount;
#else
uint firstIndex = 0;
......@@ -128,5 +134,30 @@ void main()
PackIndexValue(srcValue, 1, dstValue);
}
dstData[dstOffsetDiv4 + gl_GlobalInvocationID.x] = dstValue;
dstIndexBuf[dstIndexBufOffsetDiv4 + gl_GlobalInvocationID.x] = dstValue;
#if IsIndirect
// Copy the source indirect draw info (DrawElementsIndirectCommand) to the destination
// indirect draw buffer adjusting the firstIndex to account for the offset into dstIndirectBuf
// typedef struct {
// uint count;
// uint instanceCount;
// uint firstIndex;
// int baseVertex;
// uint reservedMustBeZero;
// } DrawElementsIndirectCommand;
if (gl_GlobalInvocationID.x == 0)
{
dstIndirectBuf[dstIndirectBufOffsetDiv4] = srcIndirectBuf[srcIndirectOffsetDiv4]; // count
// instanceCount
dstIndirectBuf[dstIndirectBufOffsetDiv4 + 1] = srcIndirectBuf[srcIndirectOffsetDiv4 + 1];
// ANGLE will supply dstIndexBufOffset when binding the index buffer so don't
// need to worry about that as part of firstIndex for the new indirect buffer command.
// firstIndex can be in 2nd half of word so add one if incoming firstIndex is odd
dstIndirectBuf[dstIndirectBufOffsetDiv4 + 2] = firstIndex & 1; // firstIndex
// baseVertex
dstIndirectBuf[dstIndirectBufOffsetDiv4 + 3] = srcIndirectBuf[srcIndirectOffsetDiv4 + 3];
dstIndirectBuf[dstIndirectBufOffsetDiv4 + 4] = 0; // reservedMustBeZero
}
#endif
}
......@@ -16,29 +16,29 @@
layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
layout (set = 0, binding = 0) readonly buffer cmd
layout (set = 0, binding = 0) buffer dst
{
// Shader invocations read the cmd data to determine what indices to convert
// Command data at offset cmdOffset of buffer
uint cmdData[];
// Shader invocation outputs linelist(s) here.
uint dstData[];
};
layout (set = 0, binding = 1) buffer dstCmd
layout (set = 0, binding = 1) readonly buffer src
{
// Shader outputs updated indirect buffer here.
uint dstCmdData[];
// Source index buffer
uint srcData[];
};
layout (set = 0, binding = 2) buffer dst
layout (set = 0, binding = 2) readonly buffer cmd
{
// Shader invocation outputs linelist(s) here.
uint dstData[];
// Shader invocations read the cmd data to determine what indices to convert
// Command data at offset cmdOffset of buffer
uint cmdData[];
};
layout (set = 0, binding = 3) readonly buffer src
layout (set = 0, binding = 3) buffer dstCmd
{
// Source index buffer
uint srcData[];
// Shader outputs updated indirect buffer here.
uint dstCmdData[];
};
layout (push_constant) uniform PushConstants
......
//
// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ConvertArrayIndirectLineloop.comp: Construct an index buffer for an indirect
// draw that draws all the specified vertices and repeats the last vertex at
// the end to give lineloop behavior.
// Will also output a new indirect "command" buffer with adjusted index values.
//
//
#version 450 core
layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
layout (set = 0, binding = 0) readonly buffer srcIndirectBuf
{
// Shader invocations read the cmd data to determine what indices to convert
// Command data at offset cmdOffset of buffer
uint indirectBuf[];
};
layout (set = 0, binding = 1) buffer dstIndirectBuf
{
// Shader outputs updated indirect buffer here.
uint indexIndirectBuf[];
};
layout (set = 0, binding = 2) buffer dstIndexBuf
{
// Shader invocation outputs linelist(s) here.
uint dstData[];
};
layout (push_constant) uniform PushConstants
{
// Read offset in bytes into the indirectBuf, divided by four.
uint indirectBufferOffsetDiv4;
// Dst command offset in bytes into the indexIndirectBuff, divided by four.
uint indexIndirectBufOffsetDiv4;
// Write offset in bytes into the dstData array, divided by four.
uint dstDataOffsetDiv4;
};
// Structure of command data loaded at offset indirectBufferOffsetDiv4 of the indirectBuf buffer
// struct VkDrawIndirectCommand {
// uint32_t vertexCount;
// uint32_t instanceCount;
// uint32_t firstVertex;
// uint32_t firstInstance;
// };
// Structure of command data loaded at offset indexIndirectBufferOffsetDiv4 of the
// indexIndirectBuf buffer
// struct VkDrawIndexedIndirectCommand {
// uint32_t indexCount;
// uint32_t instanceCount;
// uint32_t firstIndex;
// int32_t vertexOffset;
// uint32_t firstInstance;
// };
void main()
{
// Load the relevant command info from cmdData
uint vertexCount = indirectBuf[indirectBufferOffsetDiv4];
uint firstVertex = indirectBuf[indirectBufferOffsetDiv4 + 2];
// Only first invocation does the work
if (gl_GlobalInvocationID.x >= 1)
return;
for (uint i = 0; i < vertexCount; i++)
{
dstData[dstDataOffsetDiv4 + i] = firstVertex + i;
}
if (vertexCount > 1)
{
dstData[dstDataOffsetDiv4 + vertexCount] = firstVertex;
vertexCount++;
}
// Write new indirect data in indexIndirectBuf.
indexIndirectBuf[indexIndirectBufOffsetDiv4] = vertexCount;
indexIndirectBuf[indexIndirectBufOffsetDiv4 + 1] = indirectBuf[indirectBufferOffsetDiv4 + 1];
indexIndirectBuf[indexIndirectBufOffsetDiv4 + 2] = 0;
indexIndirectBuf[indexIndirectBufOffsetDiv4 + 3] = 0;
indexIndirectBuf[indexIndirectBufOffsetDiv4 + 4] = indirectBuf[indirectBufferOffsetDiv4 + 3];
}
{
"Description": [
"Copyright 2019 The ANGLE Project Authors. All rights reserved.",
"Use of this source code is governed by a BSD-style license that can be",
"found in the LICENSE file.",
"",
"ConvertArrayIndirectLineLoop.comp.json: Build parameters for ConvertArrayIndirectLineLoop.comp."
],
"Flags": [
]
}
......@@ -1300,6 +1300,46 @@ angle::Result LineLoopHelper::streamIndicesIndirect(ContextVk *contextVk,
return angle::Result::Continue;
}
angle::Result LineLoopHelper::streamArrayIndirect(ContextVk *contextVk,
size_t vertexCount,
vk::BufferHelper *arrayIndirectBuffer,
VkDeviceSize arrayIndirectBufferOffset,
vk::BufferHelper **indexBufferOut,
VkDeviceSize *indexBufferOffsetOut,
vk::BufferHelper **indexIndirectBufferOut,
VkDeviceSize *indexIndirectBufferOffsetOut)
{
auto unitSize = sizeof(uint32_t);
size_t allocateBytes = static_cast<size_t>((vertexCount + 1) * unitSize);
mDynamicIndexBuffer.releaseInFlightBuffers(contextVk);
mDynamicIndirectBuffer.releaseInFlightBuffers(contextVk);
ANGLE_TRY(mDynamicIndexBuffer.allocate(contextVk, allocateBytes, nullptr, nullptr,
indexBufferOffsetOut, nullptr));
*indexBufferOut = mDynamicIndexBuffer.getCurrentBuffer();
ANGLE_TRY(mDynamicIndirectBuffer.allocate(contextVk, sizeof(VkDrawIndexedIndirectCommand),
nullptr, nullptr, indexIndirectBufferOffsetOut,
nullptr));
*indexIndirectBufferOut = mDynamicIndirectBuffer.getCurrentBuffer();
vk::BufferHelper *destIndexBuffer = mDynamicIndexBuffer.getCurrentBuffer();
vk::BufferHelper *destIndirectBuffer = mDynamicIndirectBuffer.getCurrentBuffer();
// Copy relevant section of the source into destination at allocated offset. Note that the
// offset returned by allocate() above is in bytes. As is the indices offset pointer.
UtilsVk::ConvertLineLoopArrayIndirectParameters params = {};
params.indirectBufferOffset = static_cast<uint32_t>(arrayIndirectBufferOffset);
params.dstIndirectBufferOffset = static_cast<uint32_t>(*indexIndirectBufferOffsetOut);
params.dstIndexBufferOffset = static_cast<uint32_t>(*indexBufferOffsetOut);
ANGLE_TRY(contextVk->getUtils().convertLineLoopArrayIndirectBuffer(
contextVk, arrayIndirectBuffer, destIndirectBuffer, destIndexBuffer, params));
return angle::Result::Continue;
}
void LineLoopHelper::release(ContextVk *contextVk)
{
mDynamicIndexBuffer.release(contextVk->getRenderer());
......
......@@ -25,8 +25,11 @@ constexpr VkBufferUsageFlags kVertexBufferUsageFlags =
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
constexpr VkBufferUsageFlags kIndexBufferUsageFlags =
VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
constexpr size_t kVertexBufferAlignment = 4;
constexpr size_t kIndexBufferAlignment = 4;
constexpr VkBufferUsageFlags kIndirectBufferUsageFlags =
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
constexpr size_t kVertexBufferAlignment = 4;
constexpr size_t kIndexBufferAlignment = 4;
constexpr size_t kIndirectBufferAlignment = 4;
constexpr VkBufferUsageFlags kStagingBufferFlags =
VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
......@@ -432,6 +435,15 @@ class LineLoopHelper final : angle::NonCopyable
vk::BufferHelper **indirectBufferOut,
VkDeviceSize *indirectBufferOffsetOut);
angle::Result streamArrayIndirect(ContextVk *contextVk,
size_t vertexCount,
vk::BufferHelper *arrayIndirectBuffer,
VkDeviceSize arrayIndirectBufferOffset,
vk::BufferHelper **indexBufferOut,
VkDeviceSize *indexBufferOffsetOut,
vk::BufferHelper **indexIndirectBufferOut,
VkDeviceSize *indexIndirectBufferOffsetOut);
void release(ContextVk *contextVk);
void destroy(VkDevice device);
......
......@@ -62,6 +62,7 @@ namespace
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndex.comp.00000003.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc"
#include "libANGLE/renderer/vulkan/shaders/gen/ConvertIndirectLineLoop.comp.00000000.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"
......@@ -223,6 +224,9 @@ constexpr ShaderBlob kConvertIndexIndirectLineLoop_comp_shaders[] = {
{kConvertIndexIndirectLineLoop_comp_00000001,
sizeof(kConvertIndexIndirectLineLoop_comp_00000001)},
};
constexpr ShaderBlob kConvertIndirectLineLoop_comp_shaders[] = {
{kConvertIndirectLineLoop_comp_00000000, sizeof(kConvertIndirectLineLoop_comp_00000000)},
};
constexpr ShaderBlob kConvertVertex_comp_shaders[] = {
{kConvertVertex_comp_00000000, sizeof(kConvertVertex_comp_00000000)},
{kConvertVertex_comp_00000001, sizeof(kConvertVertex_comp_00000001)},
......@@ -385,6 +389,10 @@ void ShaderLibrary::destroy(VkDevice device)
{
shader.get().destroy(device);
}
for (RefCounted<ShaderAndSerial> &shader : mConvertIndirectLineLoop_comp_shaders)
{
shader.get().destroy(device);
}
for (RefCounted<ShaderAndSerial> &shader : mConvertVertex_comp_shaders)
{
shader.get().destroy(device);
......@@ -455,6 +463,16 @@ angle::Result ShaderLibrary::getConvertIndexIndirectLineLoop_comp(
ArraySize(kConvertIndexIndirectLineLoop_comp_shaders), shaderFlags, shaderOut);
}
angle::Result ShaderLibrary::getConvertIndirectLineLoop_comp(
Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut)
{
return GetShader(context, mConvertIndirectLineLoop_comp_shaders,
kConvertIndirectLineLoop_comp_shaders,
ArraySize(kConvertIndirectLineLoop_comp_shaders), shaderFlags, shaderOut);
}
angle::Result ShaderLibrary::getConvertVertex_comp(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut)
......
......@@ -55,6 +55,7 @@ angle_vulkan_internal_shaders = [
"shaders/gen/ConvertIndex.comp.00000003.inc",
"shaders/gen/ConvertIndexIndirectLineLoop.comp.00000000.inc",
"shaders/gen/ConvertIndexIndirectLineLoop.comp.00000001.inc",
"shaders/gen/ConvertIndirectLineLoop.comp.00000000.inc",
"shaders/gen/ConvertVertex.comp.00000000.inc",
"shaders/gen/ConvertVertex.comp.00000001.inc",
"shaders/gen/ConvertVertex.comp.00000002.inc",
......
......@@ -87,6 +87,11 @@ enum flags
constexpr size_t kArrayLen = 0x00000002;
} // namespace ConvertIndexIndirectLineLoop_comp
namespace ConvertIndirectLineLoop_comp
{
constexpr size_t kArrayLen = 0x00000001;
} // namespace ConvertIndirectLineLoop_comp
namespace ConvertVertex_comp
{
enum flags
......@@ -220,6 +225,9 @@ class ShaderLibrary final : angle::NonCopyable
angle::Result getConvertIndexIndirectLineLoop_comp(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut);
angle::Result getConvertIndirectLineLoop_comp(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut);
angle::Result getConvertVertex_comp(Context *context,
uint32_t shaderFlags,
RefCounted<ShaderAndSerial> **shaderOut);
......@@ -250,6 +258,8 @@ class ShaderLibrary final : angle::NonCopyable
mConvertIndex_comp_shaders[InternalShader::ConvertIndex_comp::kArrayLen];
RefCounted<ShaderAndSerial> mConvertIndexIndirectLineLoop_comp_shaders
[InternalShader::ConvertIndexIndirectLineLoop_comp::kArrayLen];
RefCounted<ShaderAndSerial> mConvertIndirectLineLoop_comp_shaders
[InternalShader::ConvertIndirectLineLoop_comp::kArrayLen];
RefCounted<ShaderAndSerial>
mConvertVertex_comp_shaders[InternalShader::ConvertVertex_comp::kArrayLen];
RefCounted<ShaderAndSerial>
......
......@@ -623,10 +623,6 @@
// Block name matching failure:
3459 VULKAN : dEQP-GLES31.functional.shaders.linkage.es31.shader_storage_block.mismatch_with_and_without_instance_name = FAIL
// Indirect draw:
3564 VULKAN : dEQP-GLES31.functional.draw_indirect.draw_arrays_indirect.line_loop.* = SKIP
3564 VULKAN : dEQP-GLES31.functional.draw_indirect.random.* = SKIP
// Tessellation geometry interaction:
3572 VULKAN : dEQP-GLES31.functional.tessellation_geometry_interaction.* = FAIL
......
......@@ -549,13 +549,6 @@
// Flat shading:
3430 VULKAN : dEQP-GLES3.functional.rasterization.flatshading.* = FAIL
// Instanced rendering:
2672 VULKAN : dEQP-GLES3.functional.draw.draw_arrays_instanced.line_loop.* = SKIP
2672 VULKAN : dEQP-GLES3.functional.draw.draw_elements_instanced.line_loop.* = SKIP
2672 VULKAN : dEQP-GLES3.functional.draw.random.* = SKIP
// - Primitive restart with line loops:
2672 VULKAN : dEQP-GLES3.functional.primitive_restart.*.line_loop.*instanced = SKIP
// Misc unimplemented:
// Failures on newer NVIDIA drivers (411.95) and passes on older drivers (388.16). Passes on 418.12 on Linux.
......@@ -570,5 +563,10 @@
2830 ANDROID VULKAN : dEQP-GLES3.functional.rasterization.primitives.line* = FAIL
2808 ANDROID VULKAN : dEQP-GLES3.functional.shaders.builtin_variable.fragcoord_w = FAIL
// Pixel driver issues
4024 PIXEL2 VULKAN : dEQP-GLES3.functional.draw.random.5 = SKIP
4024 PIXEL2 VULKAN : dEQP-GLES3.functional.draw.random.49 = SKIP
4024 PIXEL2 VULKAN : dEQP-GLES3.functional.draw.random.96 = FAIL
// Fixed in later driver versions.
2727 VULKAN ANDROID : dEQP-GLES3.functional.shaders.builtin_variable.pointcoord = FAIL
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