]> git.sesse.net Git - casparcg/commitdiff
Clarified logic around memcpy or not in Linux decklink consumer.
authorHelge Norberg <helge.norberg@svt.se>
Fri, 8 Jan 2016 16:06:44 +0000 (17:06 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Fri, 8 Jan 2016 16:06:44 +0000 (17:06 +0100)
modules/decklink/consumer/decklink_consumer.cpp

index c8492e6538af9899db059ae9b0cf0d2d53ae65d6..e453e33382d1444ef8c39aa59d64062460e5b9b0 100644 (file)
@@ -185,13 +185,17 @@ public:
        {
                ref_count_ = 0;
 
+               bool dma_transfer_from_gl_buffer_impossible;
+
 #if !defined(_MSC_VER)
-               // On Linux Decklink cannot DMA transfer from memory returned by glMapBuffer
-               needs_to_copy_ = will_attempt_dma;
+               // On Linux Decklink cannot DMA transfer from memory returned by glMapBuffer (at least on nvidia)
+               dma_transfer_from_gl_buffer_impossible = true;
 #else
-               // On Windows it does
-               needs_to_copy_ = false;
+               // On Windows it is possible.
+               dma_transfer_from_gl_buffer_impossible = false;
 #endif
+
+               needs_to_copy_ = will_attempt_dma && dma_transfer_from_gl_buffer_impossible;
        }
        
        // IUnknown