On Wed, 7 Jul 2021 at 03:44, Zebediah Figura zfigura@codeweavers.com wrote:
@@ -1181,24 +1181,22 @@ static void STDMETHODCALLTYPE d3d11_device_context_OMSetDepthStencilState(ID3D11 static void STDMETHODCALLTYPE d3d11_device_context_SOSetTargets(ID3D11DeviceContext1 *iface, UINT buffer_count, ID3D11Buffer *const *buffers, const UINT *offsets) {
- struct wined3d_stream_output outputs[WINED3D_MAX_STREAM_OUTPUT_BUFFERS] = {0}; struct d3d11_device_context *context = impl_from_ID3D11DeviceContext1(iface);
- unsigned int count, i;
unsigned int i;
TRACE("iface %p, buffer_count %u, buffers %p, offsets %p.\n", iface, buffer_count, buffers, offsets);
- count = min(buffer_count, D3D11_SO_BUFFER_SLOT_COUNT);
- wined3d_mutex_lock();
- for (i = 0; i < count; ++i)
- for (i = 0; i < buffer_count; ++i) { struct d3d_buffer *buffer = unsafe_impl_from_ID3D11Buffer(buffers[i]);
wined3d_device_context_set_stream_output(context->wined3d_context, i,
buffer ? buffer->wined3d_buffer : NULL, offsets ? offsets[i] : 0);
- }
- for (; i < D3D11_SO_BUFFER_SLOT_COUNT; ++i)
- {
wined3d_device_context_set_stream_output(context->wined3d_context, i, NULL, 0);
outputs[i].buffer = buffer ? buffer->wined3d_buffer : NULL;
}outputs[i].offset = offsets ? offsets[i] : 0;
- wined3d_mutex_lock();
- wined3d_device_context_set_stream_outputs(context->wined3d_context, outputs); wined3d_mutex_unlock();
}
Getting rid of the "count = min(buffer_count, D3D11_SO_BUFFER_SLOT_COUNT);" is a change in behaviour. It may be correct, but it doesn't belong in this patch.