Performance issue #872
Closed
theotherraycole
started this conversation in
General
Replies: 3 comments 1 reply
|
Interesting. I'll give this a look. |
1 reply
|
I've also run into this recently. For context, it was on a system without a dedicated GPU - just an Intel 9700k with integrated graphics. Enabling the Main NDI output doesn't result in much overhead (even in RGB mode instead of NV12, for what it's worth), but using a filter definitely does, to the point where it's not really usable for 60fps feeds. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I found obs-ndi has been increasing the time to render frames about 8ms on two of my systems whenever I use it as a filter on a source. After some research, I found this greatly reduces it and my render times have gone from 10ms down to 2ms:
It appears void ndi_filter_offscreen_render(void *data, uint32_t cx, uint32_t cy) calls gs_stagesurface_map constantly when it is not necessary. I changed this section of obs-ndi-filter.cpp as follows. No idea if this is "correct", but it is working great for me and seems to be more efficient.
// removed the unmap call and reset of video_data to NULL that was here...constant map/unmap seems to be a big hit
// Only map once...mapping multiple times results in higher CPU
if (s->video_data == NULL)
{
gs_stagesurface_map(s->stagesurface, &s->video_data,
&s->video_linesize);
All reactions