16
16
17
17
namespace AZ ::RHI
18
18
{
19
- DrawPacketBuilder::DrawRequest MultiDeviceDrawPacketBuilder::MultiDeviceDrawRequest::BuildDeviceDrawRequest (int deviceIndex)
19
+ DrawPacketBuilder::DrawRequest MultiDeviceDrawPacketBuilder::MultiDeviceDrawRequest::
20
+ GetDeviceDrawRequest (int deviceIndex)
20
21
{
21
22
if (!m_deviceStreamBufferViews.contains (deviceIndex))
22
23
{
@@ -28,14 +29,14 @@ namespace AZ::RHI
28
29
}
29
30
m_deviceStreamBufferViews.emplace (deviceIndex, AZStd::move (deviceStreamBufferView));
30
31
}
31
-
32
- return { m_listTag,
33
- m_stencilRef,
34
- m_deviceStreamBufferViews.at (deviceIndex),
35
- m_uniqueShaderResourceGroup ? m_uniqueShaderResourceGroup->GetDeviceShaderResourceGroup (deviceIndex).get () : nullptr ,
36
- m_pipelineState ? m_pipelineState->GetDevicePipelineState (deviceIndex).get () : nullptr ,
37
- m_sortKey,
38
- m_drawFilterMask };
32
+ return DrawPacketBuilder::DrawRequest{
33
+ m_listTag,
34
+ m_stencilRef,
35
+ m_deviceStreamBufferViews.at (deviceIndex),
36
+ m_uniqueShaderResourceGroup ? m_uniqueShaderResourceGroup->GetDeviceShaderResourceGroup (deviceIndex).get () : nullptr ,
37
+ m_pipelineState ? m_pipelineState->GetDevicePipelineState (deviceIndex).get () : nullptr ,
38
+ m_sortKey,
39
+ m_drawFilterMask };
39
40
}
40
41
41
42
void MultiDeviceDrawPacketBuilder::Begin (IAllocator* allocator)
@@ -122,7 +123,7 @@ namespace AZ::RHI
122
123
m_drawPacketInFlight->m_drawListMask .set (request.m_listTag .GetIndex ());
123
124
for (auto & [deviceIndex, deviceDrawPacketBuilder] : m_deviceDrawPacketBuilders)
124
125
{
125
- deviceDrawPacketBuilder.AddDrawItem (request. BuildDeviceDrawRequest (deviceIndex));
126
+ deviceDrawPacketBuilder.AddDrawItem (m_drawRequests. back (). GetDeviceDrawRequest (deviceIndex));
126
127
}
127
128
}
128
129
else
@@ -149,12 +150,12 @@ namespace AZ::RHI
149
150
m_drawPacketInFlight->m_drawItems .reserve (m_drawRequests.size ());
150
151
151
152
// Setup single-device DrawItems
152
- for (auto i { 0 }; i < m_drawRequests.size (); ++i )
153
+ for (auto drawItemIndex { 0 }; drawItemIndex < m_drawRequests.size (); ++drawItemIndex )
153
154
{
154
155
AZStd::unordered_map<int , DrawItem*> deviceDrawItemPtrs;
155
156
for (auto & [deviceIndex, deviceDrawPacketBuilder] : m_deviceDrawPacketBuilders)
156
157
{
157
- deviceDrawItemPtrs.emplace (deviceIndex, m_drawPacketInFlight->m_deviceDrawPackets [deviceIndex]->GetDrawItem (0 ));
158
+ deviceDrawItemPtrs.emplace (deviceIndex, m_drawPacketInFlight->m_deviceDrawPackets [deviceIndex]->GetDrawItem (drawItemIndex ));
158
159
}
159
160
m_drawPacketInFlight->m_drawItems .emplace_back (MultiDeviceDrawItem{ m_deviceMask, AZStd::move (deviceDrawItemPtrs) });
160
161
}
@@ -207,12 +208,12 @@ namespace AZ::RHI
207
208
}
208
209
209
210
// Setup single-device DrawItems
210
- for (auto i { 0 }; i < drawRequestCount; ++i )
211
+ for (auto drawItemIndex { 0 }; drawItemIndex < drawRequestCount; ++drawItemIndex )
211
212
{
212
213
AZStd::unordered_map<int , DrawItem*> deviceDrawItemPtrs;
213
214
for (auto & [deviceIndex, deviceDrawPacketBuilder] : m_deviceDrawPacketBuilders)
214
215
{
215
- deviceDrawItemPtrs.emplace (deviceIndex, m_drawPacketInFlight->m_deviceDrawPackets [deviceIndex]->GetDrawItem (0 ));
216
+ deviceDrawItemPtrs.emplace (deviceIndex, m_drawPacketInFlight->m_deviceDrawPackets [deviceIndex]->GetDrawItem (drawItemIndex ));
216
217
}
217
218
m_drawPacketInFlight->m_drawItems .emplace_back (MultiDeviceDrawItem{ m_deviceMask, AZStd::move (deviceDrawItemPtrs) });
218
219
}
0 commit comments