]> git.sesse.net Git - casparcg/blobdiff - core/mixer/gpu/fence.cpp
2.0.2: Improved log messages. In particular regarding GPU stall warning.
[casparcg] / core / mixer / gpu / fence.cpp
index 6fbbdf37a3e5608cf9318af56b34c6c669b6a576..5de2a5894ec858e5bb9b1481f0aa87150223d54a 100644 (file)
@@ -6,6 +6,8 @@
 \r
 #include <common/gl/gl_check.h>\r
 \r
+#include <gl/glew.h>\r
+\r
 namespace caspar { namespace core {\r
 \r
 struct fence::implementation\r
@@ -39,15 +41,27 @@ struct fence::implementation
                int delay = 0;\r
                if(!ogl.invoke([this]{return ready();}, high_priority))\r
                {\r
-                       while(!ogl.invoke([this]{return ready();}, normal_priority) && delay < 30)\r
+                       while(!ogl.invoke([this]{return ready();}, normal_priority) && delay < 20)\r
                        {\r
-                               delay += 3;\r
-                               Sleep(3);\r
+                               delay += 2;\r
+                               Sleep(2);\r
                        }\r
                }\r
 \r
-               if(delay > 0)\r
-                       CASPAR_LOG(warning) << L"[fence] Performance warning. GPU was not ready during requested host read-back. Delayed by atleast: " << delay << L" ms.";\r
+               static tbb::atomic<bool> warned;\r
+               \r
+               if(delay > 2)\r
+               {\r
+                       if(!warned.fetch_and_store(true))\r
+                       {\r
+                               CASPAR_LOG(warning) << L"[fence] Performance warning. GPU was not ready during requested host read-back. Delayed by atleast: " << delay << L" ms. Further warnings are sent to trace log level."\r
+                                                                       << L" You can ignore this warning if you do not notice any problems with output video. This warning is caused by insufficent support or performance of your graphics card for OpenGL based memory transfers. "\r
+                                                                       << L" Please try to update your graphics drivers or update your graphics card, see recommendations on (www.casparcg.com)."\r
+                                                                       << L" Further help is available at (www.casparcg.com/forum).";\r
+                       }\r
+                       else\r
+                               CASPAR_LOG(trace) << L"[fence] Performance warning. GPU was not ready during requested host read-back. Delayed by atleast: " << delay << L" ms.";\r
+               }\r
        }\r
 };\r
        \r