mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
radv: move streamout bindings to radv_streamout_state
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41152>
This commit is contained in:
parent
02ec87672b
commit
5246eee299
2 changed files with 9 additions and 9 deletions
|
|
@ -6973,7 +6973,6 @@ radv_flush_streamout_descriptors(struct radv_cmd_buffer *cmd_buffer)
|
|||
{
|
||||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
struct radv_streamout_binding *sb = cmd_buffer->streamout_bindings;
|
||||
struct radv_streamout_state *so = &cmd_buffer->state.streamout;
|
||||
unsigned so_offset;
|
||||
uint64_t desc_va;
|
||||
|
|
@ -6989,7 +6988,7 @@ radv_flush_streamout_descriptors(struct radv_cmd_buffer *cmd_buffer)
|
|||
uint64_t va = 0;
|
||||
|
||||
if (so->enabled_mask & (1 << i)) {
|
||||
va = sb[i].va;
|
||||
va = so->bindings[i].va;
|
||||
|
||||
/* Set the descriptor.
|
||||
*
|
||||
|
|
@ -7003,7 +7002,7 @@ radv_flush_streamout_descriptors(struct radv_cmd_buffer *cmd_buffer)
|
|||
/* With NGG streamout, the buffer size is used to determine the max emit per buffer
|
||||
* and also acts as a disable bit when it's 0.
|
||||
*/
|
||||
size = radv_is_streamout_enabled(cmd_buffer) ? sb[i].size : 0;
|
||||
size = radv_is_streamout_enabled(cmd_buffer) ? so->bindings[i].size : 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -15656,15 +15655,15 @@ radv_CmdBindTransformFeedbackBuffers2EXT(VkCommandBuffer commandBuffer, uint32_t
|
|||
const VkBindTransformFeedbackBuffer2InfoEXT *pBindingInfos)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
struct radv_streamout_binding *sb = cmd_buffer->streamout_bindings;
|
||||
struct radv_streamout_state *so = &cmd_buffer->state.streamout;
|
||||
uint8_t enabled_mask = 0;
|
||||
|
||||
assert(firstBinding + bindingCount <= MAX_SO_BUFFERS);
|
||||
for (uint32_t i = 0; i < bindingCount; i++) {
|
||||
uint32_t idx = firstBinding + i;
|
||||
|
||||
sb[idx].va = pBindingInfos[i].addressRange.address;
|
||||
sb[idx].size = pBindingInfos[i].addressRange.size;
|
||||
so->bindings[idx].va = pBindingInfos[i].addressRange.address;
|
||||
so->bindings[idx].size = pBindingInfos[i].addressRange.size;
|
||||
|
||||
enabled_mask |= 1 << idx;
|
||||
}
|
||||
|
|
@ -15799,7 +15798,6 @@ radv_CmdBeginTransformFeedback2EXT(VkCommandBuffer commandBuffer, uint32_t first
|
|||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const enum amd_ip_type ring = radv_queue_family_to_ring(pdev, cmd_buffer->qf);
|
||||
struct radv_streamout_binding *sb = cmd_buffer->streamout_bindings;
|
||||
struct radv_streamout_state *so = &cmd_buffer->state.streamout;
|
||||
struct radv_cmd_stream *cs = cmd_buffer->cs;
|
||||
|
||||
|
|
@ -15853,7 +15851,7 @@ radv_CmdBeginTransformFeedback2EXT(VkCommandBuffer commandBuffer, uint32_t first
|
|||
* VGT only counts primitives and tells the shader through
|
||||
* SGPRs what to do.
|
||||
*/
|
||||
radeon_set_context_reg(R_028AD0_VGT_STRMOUT_BUFFER_SIZE_0 + 16 * i, sb[i].size >> 2);
|
||||
radeon_set_context_reg(R_028AD0_VGT_STRMOUT_BUFFER_SIZE_0 + 16 * i, so->bindings[i].size >> 2);
|
||||
|
||||
cmd_buffer->cs->b->context_roll = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -180,6 +180,9 @@ struct radv_streamout_binding {
|
|||
};
|
||||
|
||||
struct radv_streamout_state {
|
||||
/* Buffer bindings. */
|
||||
struct radv_streamout_binding bindings[MAX_SO_BUFFERS];
|
||||
|
||||
/* Mask of bound streamout buffers. */
|
||||
uint8_t enabled_mask;
|
||||
|
||||
|
|
@ -531,7 +534,6 @@ struct radv_cmd_buffer {
|
|||
struct radv_cmd_stream *cs;
|
||||
struct radv_cmd_state state;
|
||||
struct radv_vertex_binding vertex_bindings[MAX_VBS];
|
||||
struct radv_streamout_binding streamout_bindings[MAX_SO_BUFFERS];
|
||||
enum radv_queue_family qf;
|
||||
|
||||
uint8_t push_constants[MAX_PUSH_CONSTANTS_SIZE];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue