radv: stop zeroing radv_draw_info during draw

this is a big struct, and there's only a couple extra members that need
to be initialized to hit the right codepaths

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8788>
This commit is contained in:
Mike Blumenkrantz 2021-01-27 15:18:22 -05:00 committed by Marge Bot
parent 049f56fc4e
commit d0ef28d85e
1 changed files with 24 additions and 7 deletions

View File

@ -5662,12 +5662,15 @@ void radv_CmdDraw(
uint32_t firstInstance)
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
struct radv_draw_info info = {0};
struct radv_draw_info info;
info.count = vertexCount;
info.instance_count = instanceCount;
info.first_instance = firstInstance;
info.vertex_offset = firstVertex;
info.strmout_buffer = NULL;
info.indirect = NULL;
info.indexed = false;
radv_draw(cmd_buffer, &info);
}
@ -5681,7 +5684,7 @@ void radv_CmdDrawIndexed(
uint32_t firstInstance)
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
struct radv_draw_info info = {0};
struct radv_draw_info info;
info.indexed = true;
info.count = indexCount;
@ -5689,6 +5692,8 @@ void radv_CmdDrawIndexed(
info.first_index = firstIndex;
info.vertex_offset = vertexOffset;
info.first_instance = firstInstance;
info.strmout_buffer = NULL;
info.indirect = NULL;
radv_draw(cmd_buffer, &info);
}
@ -5702,12 +5707,15 @@ void radv_CmdDrawIndirect(
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
RADV_FROM_HANDLE(radv_buffer, buffer, _buffer);
struct radv_draw_info info = {0};
struct radv_draw_info info;
info.count = drawCount;
info.indirect = buffer;
info.indirect_offset = offset;
info.stride = stride;
info.strmout_buffer = NULL;
info.count_buffer = NULL;
info.indexed = false;
radv_draw(cmd_buffer, &info);
}
@ -5721,13 +5729,15 @@ void radv_CmdDrawIndexedIndirect(
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
RADV_FROM_HANDLE(radv_buffer, buffer, _buffer);
struct radv_draw_info info = {0};
struct radv_draw_info info;
info.indexed = true;
info.count = drawCount;
info.indirect = buffer;
info.indirect_offset = offset;
info.stride = stride;
info.count_buffer = NULL;
info.strmout_buffer = NULL;
radv_draw(cmd_buffer, &info);
}
@ -5744,7 +5754,7 @@ void radv_CmdDrawIndirectCount(
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
RADV_FROM_HANDLE(radv_buffer, buffer, _buffer);
RADV_FROM_HANDLE(radv_buffer, count_buffer, _countBuffer);
struct radv_draw_info info = {0};
struct radv_draw_info info;
info.count = maxDrawCount;
info.indirect = buffer;
@ -5752,6 +5762,8 @@ void radv_CmdDrawIndirectCount(
info.count_buffer = count_buffer;
info.count_buffer_offset = countBufferOffset;
info.stride = stride;
info.strmout_buffer = NULL;
info.indexed = false;
radv_draw(cmd_buffer, &info);
}
@ -5768,7 +5780,7 @@ void radv_CmdDrawIndexedIndirectCount(
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
RADV_FROM_HANDLE(radv_buffer, buffer, _buffer);
RADV_FROM_HANDLE(radv_buffer, count_buffer, _countBuffer);
struct radv_draw_info info = {0};
struct radv_draw_info info;
info.indexed = true;
info.count = maxDrawCount;
@ -5777,6 +5789,7 @@ void radv_CmdDrawIndexedIndirectCount(
info.count_buffer = count_buffer;
info.count_buffer_offset = countBufferOffset;
info.stride = stride;
info.strmout_buffer = NULL;
radv_draw(cmd_buffer, &info);
}
@ -7214,13 +7227,17 @@ void radv_CmdDrawIndirectByteCountEXT(
{
RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
RADV_FROM_HANDLE(radv_buffer, counterBuffer, _counterBuffer);
struct radv_draw_info info = {0};
struct radv_draw_info info;
info.count = 0;
info.vertex_offset = 0;
info.instance_count = instanceCount;
info.first_instance = firstInstance;
info.strmout_buffer = counterBuffer;
info.strmout_buffer_offset = counterBufferOffset;
info.stride = vertexStride;
info.indexed = false;
info.indirect = NULL;
radv_draw(cmd_buffer, &info);
}