Announcement

Collapse
No announcement yet.

A Quick Benchmark Of Mozilla Firefox With WebRender Beta vs. Chrome

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    I'm not convinced it's always better.

    Besides, Skia also now has Vulkan backend: https://skia.org/user/special/vulkan

    Did they try using it?

    Comment


    • #62
      Originally posted by johnp117 View Post
      It's not prevented (yet), only deprecated. And you conveniently left out the important part:
      Opened a bug about it: https://bugzilla.mozilla.org/show_bug.cgi?id=1502740

      Comment


      • #63
        Though the effort of improving Skia usage might be obsolete in the light of this: https://github.com/szeged/webrender/issues/198

        Comment


        • #64
          Originally posted by shmerl View Post
          Besides, Skia also now has Vulkan backend: https://skia.org/user/special/vulkan
          That page isn't very reassuring:

          At this time we find that many Vulkan drivers have bugs that Skia triggers for which we have no workaround. We are reporting bugs to vendors as we find them.

          Comment


          • #65
            Originally posted by Weasel View Post
            Maybe badly written C/C++. WTF are you smoking thinking that adding EXTRA code (bounds checks) would EVER be faster, it's just logic.
            That doesn't add almost any overhead. Most of Rust's checks are at compile time, not runtime. Rust also does some crazy inlining optimizations at compile time which you can only dream of in C/C++.

            Comment


            • #66
              Originally posted by Weasel View Post
              C++ best practices is not real C++. Real C++ is just C with extra features (even the name says it all). You code with C mindset but with extra features. That's real C++.

              "Best practise C++" is what I called incompetent++, only for incompetent morons who need "runtime safety checks" because they're too incompetent so they make everyone's CPUs (users) process more crap and waste more energy globally.
              What on earth are you blathering about? Best pratices with C++ are always zero overhead, boundary checks are enforced via typing at compile time and only checked on runtime of parsed from user input.

              Comment


              • #67
                Originally posted by johnp117 View Post
                That page isn't very reassuring:

                On the contrary, it means they discovered bugs in Vulkan drivers that others didn't yet. So they can be fixed now.

                However I don't see any Mesa bugs for radv or anv in regards to Skia, which means they either didn't find any or didn't test it.

                Comment


                • #68
                  I think this benchmark is incorrect. Firstly (as already mentioned) is that SVGs and some effects are not accelerated. Secondly, I see on the third screenshot of the article this:
                  WEBRENDER_QUALIFIED - blocked by env: No qualified hardware
                  So I am assuming that WebRender was not really enabled and that's why we got the same results as with the old renderer.

                  Comment


                  • #69
                    Originally posted by msotirov View Post
                    That doesn't add almost any overhead. Most of Rust's checks are at compile time, not runtime. Rust also does some crazy inlining optimizations at compile time which you can only dream of in C/C++.
                    Yeah because "inlining" has so much to do with the language (front-end) rather than the back-end of a compiler. Probably Rust can also optimize instruction scheduling better, cause that makes sense. Ask any Rust fanboy and he'll tell you Rust can make you a sandwich too.

                    Rust's checks are NOT only at compile time, because any C/C++ compiler worth its salt today will WARN you about compile-time out-of-bounds accesses that it can prove (at compile time) are out of bounds. Derp.

                    Comment


                    • #70
                      Originally posted by carewolf View Post
                      What on earth are you blathering about? Best pratices with C++ are always zero overhead, boundary checks are enforced via typing at compile time and only checked on runtime of parsed from user input.
                      Not all dynamic input is user input. Some of it the programmer already knows because another component or whatever supplies that information. That's what assertions are for (only in debug builds) and it's why they should NOT be in the release build that gets distributed.

                      And no, most best practices of C++ these days are far from zero overhead. Bounds checks is just one of them. Some also tell you to use signed int everywhere, which generates pathetic code when trying to divide by constants compared to unsigned (even when you divide by power of 2!), unless compiler can prove that the number is strictly positive. Tell me more about "zero overhead" dreamland.

                      Comment

                      Working...
                      X