Commit 764d572b by Tobin Ehlis Committed by Commit Bot

Vulkan: Refactor SecondaryCommandBuffers class

A strictly cosmetic change to move code into alphabetical order. In working with SecondaryCommandBuffer commands in separate CLs, it can be difficult/annoying to track which commands are already in place as some of them are out-of-order. This change puts the command enums, functions, and processing in alphabetical order to simplify searching and adding new commands. Bug: b/154030403 Change-Id: I6dba4cf48d6f27c056585ac633c694e083b1a263 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2158816Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com>
parent e5491253
...@@ -27,6 +27,8 @@ const char *GetCommandString(CommandID id) ...@@ -27,6 +27,8 @@ const char *GetCommandString(CommandID id)
return "--Invalid--"; return "--Invalid--";
case CommandID::BeginQuery: case CommandID::BeginQuery:
return "BeginQuery"; return "BeginQuery";
case CommandID::BeginTransformFeedback:
return "BeginTransformFeedback";
case CommandID::BindComputePipeline: case CommandID::BindComputePipeline:
return "BindComputePipeline"; return "BindComputePipeline";
case CommandID::BindDescriptorSets: case CommandID::BindDescriptorSets:
...@@ -35,10 +37,10 @@ const char *GetCommandString(CommandID id) ...@@ -35,10 +37,10 @@ const char *GetCommandString(CommandID id)
return "BindGraphicsPipeline"; return "BindGraphicsPipeline";
case CommandID::BindIndexBuffer: case CommandID::BindIndexBuffer:
return "BindIndexBuffer"; return "BindIndexBuffer";
case CommandID::BindVertexBuffers:
return "BindVertexBuffers";
case CommandID::BindTransformFeedbackBuffers: case CommandID::BindTransformFeedbackBuffers:
return "BindTransformFeedbackBuffers"; return "BindTransformFeedbackBuffers";
case CommandID::BindVertexBuffers:
return "BindVertexBuffers";
case CommandID::BlitImage: case CommandID::BlitImage:
return "BlitImage"; return "BlitImage";
case CommandID::BufferBarrier: case CommandID::BufferBarrier:
...@@ -67,22 +69,24 @@ const char *GetCommandString(CommandID id) ...@@ -67,22 +69,24 @@ const char *GetCommandString(CommandID id)
return "DrawIndexed"; return "DrawIndexed";
case CommandID::DrawIndexedBaseVertex: case CommandID::DrawIndexedBaseVertex:
return "DrawIndexedBaseVertex"; return "DrawIndexedBaseVertex";
case CommandID::DrawIndexedIndirect:
return "DrawIndexedIndirect";
case CommandID::DrawIndexedInstanced: case CommandID::DrawIndexedInstanced:
return "DrawIndexedInstanced"; return "DrawIndexedInstanced";
case CommandID::DrawIndexedInstancedBaseVertex: case CommandID::DrawIndexedInstancedBaseVertex:
return "DrawIndexedInstancedBaseVertex"; return "DrawIndexedInstancedBaseVertex";
case CommandID::DrawIndexedInstancedBaseVertexBaseInstance: case CommandID::DrawIndexedInstancedBaseVertexBaseInstance:
return "DrawIndexedInstancedBaseVertexBaseInstance"; return "DrawIndexedInstancedBaseVertexBaseInstance";
case CommandID::DrawIndirect:
return "DrawIndirect";
case CommandID::DrawInstanced: case CommandID::DrawInstanced:
return "DrawInstanced"; return "DrawInstanced";
case CommandID::DrawInstancedBaseInstance: case CommandID::DrawInstancedBaseInstance:
return "DrawInstancedBaseInstance"; return "DrawInstancedBaseInstance";
case CommandID::DrawIndexedIndirect:
return "DrawIndexedIndirect";
case CommandID::DrawIndirect:
return "DrawIndirect";
case CommandID::EndQuery: case CommandID::EndQuery:
return "EndQuery"; return "EndQuery";
case CommandID::EndTransformFeedback:
return "EndTransformFeedback";
case CommandID::ExecutionBarrier: case CommandID::ExecutionBarrier:
return "ExecutionBarrier"; return "ExecutionBarrier";
case CommandID::FillBuffer: case CommandID::FillBuffer:
...@@ -107,10 +111,6 @@ const char *GetCommandString(CommandID id) ...@@ -107,10 +111,6 @@ const char *GetCommandString(CommandID id)
return "WaitEvents"; return "WaitEvents";
case CommandID::WriteTimestamp: case CommandID::WriteTimestamp:
return "WriteTimestamp"; return "WriteTimestamp";
case CommandID::BeginTransformFeedback:
return "BeginTransformFeedback";
case CommandID::EndTransformFeedback:
return "EndTransformFeedback";
default: default:
// Need this to work around MSVC warning 4715. // Need this to work around MSVC warning 4715.
UNREACHABLE(); UNREACHABLE();
...@@ -141,6 +141,20 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer) ...@@ -141,6 +141,20 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer)
vkCmdBeginQuery(cmdBuffer, params->queryPool, params->query, params->flags); vkCmdBeginQuery(cmdBuffer, params->queryPool, params->query, params->flags);
break; break;
} }
case CommandID::BeginTransformFeedback:
{
const BeginTransformFeedbackParams *params =
getParamPtr<BeginTransformFeedbackParams>(currentCommand);
const VkBuffer *counterBuffers =
Offset<VkBuffer>(params, sizeof(BeginTransformFeedbackParams));
// Workaround for AMD driver bug where it expects the offsets array to be
// non-null
gl::TransformFeedbackBuffersArray<VkDeviceSize> offsets;
offsets.fill(0);
vkCmdBeginTransformFeedbackEXT(cmdBuffer, 0, params->bufferCount,
counterBuffers, offsets.data());
break;
}
case CommandID::BindComputePipeline: case CommandID::BindComputePipeline:
{ {
const BindPipelineParams *params = const BindPipelineParams *params =
...@@ -311,6 +325,13 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer) ...@@ -311,6 +325,13 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer)
vkCmdDrawIndexed(cmdBuffer, params->indexCount, 1, 0, params->vertexOffset, 0); vkCmdDrawIndexed(cmdBuffer, params->indexCount, 1, 0, params->vertexOffset, 0);
break; break;
} }
case CommandID::DrawIndexedIndirect:
{
const DrawIndexedIndirectParams *params =
getParamPtr<DrawIndexedIndirectParams>(currentCommand);
vkCmdDrawIndexedIndirect(cmdBuffer, params->buffer, params->offset, 1, 0);
break;
}
case CommandID::DrawIndexedInstanced: case CommandID::DrawIndexedInstanced:
{ {
const DrawIndexedInstancedParams *params = const DrawIndexedInstancedParams *params =
...@@ -336,6 +357,13 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer) ...@@ -336,6 +357,13 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer)
params->firstInstance); params->firstInstance);
break; break;
} }
case CommandID::DrawIndirect:
{
const DrawIndirectParams *params =
getParamPtr<DrawIndirectParams>(currentCommand);
vkCmdDrawIndirect(cmdBuffer, params->buffer, params->offset, 1, 0);
break;
}
case CommandID::DrawInstanced: case CommandID::DrawInstanced:
{ {
const DrawInstancedParams *params = const DrawInstancedParams *params =
...@@ -352,26 +380,26 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer) ...@@ -352,26 +380,26 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer)
params->firstVertex, params->firstInstance); params->firstVertex, params->firstInstance);
break; break;
} }
case CommandID::DrawIndirect:
{
const DrawIndirectParams *params =
getParamPtr<DrawIndirectParams>(currentCommand);
vkCmdDrawIndirect(cmdBuffer, params->buffer, params->offset, 1, 0);
break;
}
case CommandID::DrawIndexedIndirect:
{
const DrawIndexedIndirectParams *params =
getParamPtr<DrawIndexedIndirectParams>(currentCommand);
vkCmdDrawIndexedIndirect(cmdBuffer, params->buffer, params->offset, 1, 0);
break;
}
case CommandID::EndQuery: case CommandID::EndQuery:
{ {
const EndQueryParams *params = getParamPtr<EndQueryParams>(currentCommand); const EndQueryParams *params = getParamPtr<EndQueryParams>(currentCommand);
vkCmdEndQuery(cmdBuffer, params->queryPool, params->query); vkCmdEndQuery(cmdBuffer, params->queryPool, params->query);
break; break;
} }
case CommandID::EndTransformFeedback:
{
const EndTransformFeedbackParams *params =
getParamPtr<EndTransformFeedbackParams>(currentCommand);
const VkBuffer *counterBuffers =
Offset<VkBuffer>(params, sizeof(EndTransformFeedbackParams));
// Workaround for AMD driver bug where it expects the offsets array to be
// non-null
gl::TransformFeedbackBuffersArray<VkDeviceSize> offsets;
offsets.fill(0);
vkCmdEndTransformFeedbackEXT(cmdBuffer, 0, params->bufferCount, counterBuffers,
offsets.data());
break;
}
case CommandID::ExecutionBarrier: case CommandID::ExecutionBarrier:
{ {
const ExecutionBarrierParams *params = const ExecutionBarrierParams *params =
...@@ -487,34 +515,6 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer) ...@@ -487,34 +515,6 @@ void SecondaryCommandBuffer::executeCommands(VkCommandBuffer cmdBuffer)
params->query); params->query);
break; break;
} }
case CommandID::BeginTransformFeedback:
{
const BeginTransformFeedbackParams *params =
getParamPtr<BeginTransformFeedbackParams>(currentCommand);
const VkBuffer *counterBuffers =
Offset<VkBuffer>(params, sizeof(BeginTransformFeedbackParams));
// Workaround for AMD driver bug where it expects the offsets array to be
// non-null
gl::TransformFeedbackBuffersArray<VkDeviceSize> offsets;
offsets.fill(0);
vkCmdBeginTransformFeedbackEXT(cmdBuffer, 0, params->bufferCount,
counterBuffers, offsets.data());
break;
}
case CommandID::EndTransformFeedback:
{
const EndTransformFeedbackParams *params =
getParamPtr<EndTransformFeedbackParams>(currentCommand);
const VkBuffer *counterBuffers =
Offset<VkBuffer>(params, sizeof(EndTransformFeedbackParams));
// Workaround for AMD driver bug where it expects the offsets array to be
// non-null
gl::TransformFeedbackBuffersArray<VkDeviceSize> offsets;
offsets.fill(0);
vkCmdEndTransformFeedbackEXT(cmdBuffer, 0, params->bufferCount, counterBuffers,
offsets.data());
break;
}
default: default:
{ {
UNREACHABLE(); UNREACHABLE();
......
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