{"id":51,"date":"2007-05-22T12:56:53","date_gmt":"2007-05-22T11:56:53","guid":{"rendered":"http:\/\/www.ozone3d.net\/blogs\/lab\/?p=51"},"modified":"2011-09-07T20:47:43","modified_gmt":"2011-09-07T19:47:43","slug":"dynamic-branching-and-nvidia-forceware-drivers","status":"publish","type":"post","link":"https:\/\/www.ozone3d.net\/blogs\/lab\/20070522\/dynamic-branching-and-nvidia-forceware-drivers\/","title":{"rendered":"Dynamic branching and NVIDIA Forceware Drivers"},"content":{"rendered":"<p>Several weeks ago, I posted on <a =\"http:\/\/www.beyond3d.com\/forum\/showthread.php?t=37430\">Beyond3D<\/a> a thread on my <a href=\"http:\/\/www.ozone3d.net\/demos_projects\/soft_shadows_benchmark.php\">dynamic branching benchmark<\/a>. I wondered why dynamic branching performances on Geforce 7 were worse than ones on Geforce 6 or 8. I believe I&#8217;ve got the answer: Forceware drivers.<\/p>\n<p>Here are some new results where ratio = Branching_ON \/ Branching_OFF :<\/p>\n<p>7600GS &#8211; Fw 84.21 &#8211; Branching OFF: 496 o3Marks &#8211; Branching ON: 773 o3Marks &#8211; Ratio = 1.5<br \/>\n7600GS &#8211; Fw 91.31 &#8211; Branching OFF: 509 o3Marks &#8211; Branching ON: 850 o3Marks &#8211; Ratio = 1.6<br \/>\n7600GS &#8211; Fw 91.36 &#8211; Branching OFF: 508 o3Marks &#8211; Branching ON: 850 o3Marks &#8211; Ratio = 1.6<br \/>\n7600GS &#8211; Fw 91.37 &#8211; Branching OFF: 509 o3Marks &#8211; Branching ON: 850 o3Marks &#8211; Ratio = 1.6<\/p>\n<p>7600GS &#8211; Fw 91.45 &#8211; Branching OFF: 509 o3Marks &#8211; Branching ON: 472 o3Marks &#8211; Ratio = 0.9<br \/>\n7600GS &#8211; Fw 91.47 &#8211; Branching OFF: 509 o3Marks &#8211; Branching ON: 472 o3Marks &#8211; Ratio = 0.9<br \/>\n7600GS &#8211; Fw 93.71 &#8211; Branching OFF: 508 o3Marks &#8211; Branching ON: 474 o3Marks &#8211; Ratio = 0.9<br \/>\n7600GS &#8211; Fw 97.92 &#8211; Branching OFF: 505 o3Marks &#8211; Branching ON: 478 o3Marks &#8211; Ratio = 0.9<br \/>\n7600GS &#8211; Fw 100.95 &#8211; Branching OFF: 508 o3Marks &#8211; Branching ON: 480 o3Marks &#8211; Ratio = 0.9<\/p>\n<p>my conclusion is: dynamic branching in OpenGL works fine (read the performance are better than without dynamic branching:  ratio > 1) for forceware < = 91.37. For the drivers >= 91.45, the ratio drops under 1. Dynamic branching works as expected for gf6 and gf8 but not for gf7 since forceware 91.45. So the bug explanation is a plausible answer (and it&#8217;s easily understandable: in this <a href=\"http:\/\/www.ozone3d.net\/news.php?id_news=324\">news<\/a>  we learnt that a forceware driver is made of around 20 millions of lines of code &#8211; a paradise for a small bug!!!). I&#8217;ve also done the test with the simple soft shadows demo provided with the NV SDK 9.5. The results are the same.<\/p>\n<p>I&#8217;ve just done the bench with a 7950gx2 and the latest forceware 160.02 and dynamic branching is still buggy&#8230; <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Several weeks ago, I posted on Beyond3D a thread on my dynamic branching benchmark. I wondered why dynamic branching performances on Geforce 7 were worse than ones on Geforce 6 or 8. I believe I&#8217;ve got the answer: Forceware drivers. Here are some new results where ratio = Branching_ON \/ Branching_OFF : 7600GS &#8211; Fw 84.21 &#8211; Branching OFF: 496 o3Marks &#8211; Branching ON: 773 &hellip; <a href=\"https:\/\/www.ozone3d.net\/blogs\/lab\/20070522\/dynamic-branching-and-nvidia-forceware-drivers\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Dynamic branching and NVIDIA Forceware Drivers<\/span> <span class=\"meta-nav\">&raquo;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,42,469],"tags":[31,181,180,51,59],"class_list":["post-51","post","type-post","status-publish","format-standard","hentry","category-opengl","category-tests-reviews","category-tools-de-jegx","tag-bug","tag-dynamic-branching","tag-forceware","tag-nvidia","tag-tools"],"aioseo_notices":[],"views":488,"_links":{"self":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":0,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ozone3d.net\/blogs\/lab\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}