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:
parent
049f56fc4e
commit
d0ef28d85e
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue