Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Wine Software Entertainment Games

DirectX 10 Coming To Linux and Mac 152

twickline writes "Jeremy White posted the 2009 roadmap for Crossover, and wrote, 'We've just shipped a lot of those "under the hood" improvements for games out in CrossOver Games 7.2. We're really pushing Direct X 9 support pretty far along, and getting ready to move on Direct X 10. ... In addition to our normal work of broadening and deepening our application support in Wine, we're going to try to dramatically improve the CrossOver GUI itself. First, the Linux version will get a fresh new look. But both versions are going to get an interface that we hope will bring the power of the Compatibility Center right into the installation view. The key idea is to make it easier to distill the gathered wisdom on unsupported applications and make it far easier to use.'"
This discussion has been archived. No new comments can be posted.

DirectX 10 Coming To Linux and Mac

Comments Filter:
  • by tomalpha ( 746163 ) * on Tuesday March 10, 2009 @04:16AM (#27131745)

    The only reason I still have a Windows PC at home is for gaming. DirectX 10 support is a step closer to me being able to get rid of it. Can't come soon enough, and I'm happy to pay for it if that's what it takes.

    • by sinthetek ( 678498 ) on Tuesday March 10, 2009 @04:22AM (#27131763) Homepage
      As long as DirectX is still in use, *nix will always still be a step behind Windows in gaming. Personally I would be pushing for game developers to support OpenGL more than WINE developers to support DirectX
      • by Dunbal ( 464142 )

        *nix will always still be a step behind Windows in gaming.

              However considering that the age of your average PC gamer is well into his 30's, most of us are patient enough to wait.

      • Re: (Score:2, Interesting)

        As much as I'd like to see *nix do better I hate openGL with a fiery passion. I'll grant that the generally lower performance and responsiveness is almost guaranteed to be the developers fault rather than opengl... but requiring me to go get a third party application purely to keep my monitor from being forced to 60hz every damn time I boot up the game pisses me off.

        • Re: (Score:3, Informative)

          uhm, when you say third party app, do you mean the graphics card driver? (Since you only need to disable v-sync in the graphics card options and the problem is gone)
          • No I mean refreshforce to force my screen to run at it's proper 85hz instead of the opengl game's forced 60hz, and vsync controls the game's framerate by syncing the display of frames to your monitor's refresh rate, not the other way around. I've run with vsync before, it helps with tearing but it does not force your refresh rate to 60hz.

            • by MrMr ( 219533 )
              OpenGL does not force any particular frame rate, it defaults to the monitor refresh with vsync on, so perhaps you should complain to the game developers for overriding that behaviour.
              • Onward with the torches then, I can't think of any reason to force a monitor to the lowest refresh rate.

                • by Sancho ( 17056 ) *

                  No, but there are pretty good reasons to optimize with 60hz in mind--most people these days have LCDs, and most (all?) LCDs are stuck at that frequency.

                  • Re: (Score:2, Informative)

                    by jbarlow ( 35149 )

                    I honestly haven't seen a 60hz LCD for years. My four-year-old Samsungs are running at 75hz, and current nicer TVs run at 120hz.
                     
                    /takes off pedantic hat

                    • Re: (Score:3, Informative)

                      by Creepy ( 93888 )

                      The reality is having a refresh greater than 60Hz is pretty pointless with an LCD because there is no phosphor being strobe blasted with scanlines where the eye can detect the flicker and most people can't detect changes faster than 1/30th of a second, much less 1/60th.

                      The only use I can think of for 120Hz on a TV is because traditional movies are recorded at 24 frames per second (12 for cartoons, but they double frame) and TV at 30FPS, and since 120/24=5 and 120/30=4 you don't have to double

                    • by Kazoo the Clown ( 644526 ) on Tuesday March 10, 2009 @04:43PM (#27140517)

                      The reality is having a refresh greater than 60Hz is pretty pointless with an LCD because there is no phosphor being strobe blasted with scanlines where the eye can detect the flicker and most people can't detect changes faster than 1/30th of a second, much less 1/60th.

                      This is probably true if they're calculating motion blur, but pumping up the refresh rate is simpler. We're not talking about flicker of static images, but the stepped-motion of moving ones. An object that flies across a 1920 pixel screen in one second, shifts 32 pixels a frame at 60hz, and 16 at 120hz. These are differences you can see.

                    • most people can't detect changes faster than 1/30th of a second, much less 1/60th.

                      I'd question that. With PAL at least, traditional interlaced analogue video "looks" different to film in part because movement is updated 50 times a second (albeit per half-frame or field) rather than film's 24/25 fps.

                      I doubt that 30fps is so much more than 25 that it's indistinguishable from 50 or 60 fields-per-second video, so I'd dispute your assertion.

                    • I think the most important thing to note is that OpenGL is for display. DirectX handles sound, networking, input... etc, etc.
                    • For graphics, there is OpenGL. For everything else, there are things like SDL.

                      There is no real valid excuse to use DirectX, unless that's all you know how to use... which is a different problem all together.

            • Re: (Score:3, Interesting)

              That's got nothing to do with the graphics hardware at all, it's crap programming. You can enumerate all supported display modes, and you'll generally pick either the highest one, or the current display mode (or offer a choice).

              At a guess, I'd say that the game jumping to 60Hz is due to a fixed time step being employed within the update loop of the game (in general this is because physics engines don't work very well with variable time steps). If you do this kind of thing, you have to divorce the renderi
              • by tixxit ( 1107127 )
                I doubt that's the problem. First off, the game is being capped at 60Hz, but that says nothing about the minimum. The developers will still have to anticipate the game running on a system that cannot support 60Hz (at least some of the time), so regardless they'll have to support "variable" time steps. Even if you fixed the loop interval, and your computer is fast enough, you still couldn't expect exactly 0.0166666.. seconds to pass between each run. I'd also imagine that doing stuff like collision checks be
                • by Novus ( 182265 )

                  First off, the game is being capped at 60Hz, but that says nothing about the minimum. The developers will still have to anticipate the game running on a system that cannot support 60Hz (at least some of the time), so regardless they'll have to support "variable" time steps.

                  Not at all. In many cases, the game logic uses negligible processing time compared to the graphics. This allows the game itself to run at a fixed speed (which is great for simplicity and consistency) and skip drawing frames to catch up.

        • Re: (Score:3, Interesting)

          by Novus ( 182265 )

          but requiring me to go get a third party application purely to keep my monitor from being forced to 60hz every damn time I boot up the game pisses me off.

          There are two possible reasons for this:

          • The application explicitly requests a 60 Hz refresh rate; for many applications it makes sense to match the refresh rate to the frame rate, which may be fixed either to have a consistent frame rate over all systems (and 60 Hz is more or less universal for PCs) or because you have content with a specific frame rate (e.g. 60 fields/s M ("NTSC") video).
          • The operating system or video driver defaults to 60 Hz or overrides the selected value.

          OpenGL does not even support swit

      • by MetaPhyzx ( 212830 ) * on Tuesday March 10, 2009 @07:03AM (#27132541)

        One has to weigh the push M$ has put behind cultivating coders who feel comfortable doing things in DX (with the advantage of support from M$), versus the shops that have the luxury to tool around in GL (id software and a few others).

        Being able to pick up a phone and get support is huge to them, with the added bonus of writing for a select set of API's that are supposedly guaranteed to work with the varying M$ operating systems.

        Don't get me wrong; I agree with you. But as the old saying goes: Money talks; bullsh!t...

        • Re: (Score:3, Informative)

          One has to weigh the push M$ has put behind cultivating coders who feel comfortable doing things in DX (with the advantage of support from M$), versus the shops that have the luxury to tool around in GL (id software and a few others).

          It's interesting you say luxury there because it takes a lot less time and resources to develop a game for Windows due to superior API's and vastly superior development and testing tools. It's not like game developers are brainwashed or anything- they're just time and budget constrained. Games are tremendously complex and extremely resource intensive, it takes a very consistent and sane environment to do complex modern games.

          You're welcome to mod me down, but this is a huge gap in the linux development ecos

      • by TheRaven64 ( 641858 ) on Tuesday March 10, 2009 @09:26AM (#27133483) Journal
        One of the interesting, but less-often mentioned, things about WINE is that it works on Windows. If WINE adds support for DirectX 10, then this makes it possible to run DirectX 10 games on Windows XP, which gives home users a reason not to upgrade to Vista / Windows 7.
        • Re: (Score:3, Insightful)

          This would've been nice two years ago, but we are already at the 4GB barrier. And sadly we are out of options. If available memory cannot increase, the quality of games will not improve. Yeah, you can go XP-64, but from what I've seen, it's not nearly as good as Vista/7 64. And if you're going to upgrade to XP-64, you might as well consider 7 instead.

          In addition, the demand just isn't there anymore. There was a huge clamor for DX10 in XP when Vista was released, but now that's died-down. It turns out

      • As long as unmodified OpenGL is still in use, *nix will always still be a step behind Windows in gaming. OpenGL and DirectX are simply common APIs for accessing features on graphics cards. OpenGL is no longer a good representation for how these cards operate, and is thus not a good API for programming them.

        The question is what is the best way to keep up-to-date with hardware features in a market that is driven by external forces. Do you sit and wait for phoronix to update OpenGL and then try and convince ha

        • >Do you sit and wait for phoronix to update OpenGL

          Phoronix is a Linux graphics news website. They talk about OGL, but they certainly don't make it, Khronos does.

      • What's wrong with full support for both OpenGL and DirectX being delivered by wine, thereby reaching out to anyone who wants to run a Windows app on Linux and other Wine-capable platforms?

      • As long as DirectX is still in use, *nix will always still be a step behind Windows in gaming. Personally I would be pushing for game developers to support OpenGL more than WINE developers to support DirectX

        OpenGL isn't available on the Xbox 360, and it is often a source of problems on Windows (why this is, we could argue about all day.) If you want to create a single game engine which supports the largest number of gamers, you use DirectX. OpenGL is definitely in second place there. I personally put the blame directly on 3DFX here; they had starry-eyed visions of being the big swinging dicks in the graphics market, and that they would define the API. By the time they implemented MiniGL it was too late; GLIDE

        • by Creepy ( 93888 )

          OpenGL works fantastically if you just want the base API set for a version. The problems occur when you try to use relatively new features that are available in DirectX, but not in a released version of OpenGL. When a year and a half year old feature (DX10 was in the Vista betas I believe) for DirectX hasn't even shown up on some OpenGL graphics cards and won't be supported in the near future, I can see full well why developers choose DirectX - OpenGL is feature following and two years behind on full supp

      • The funny part is, belated dx in linux still has better hardware support than OpenGL...

        • No it doesn't. Wine's DX support sits on top of the Linux graphics stack, which means X and Mesa/OGL. Wine's DX doesn't support any hardware on its own.

  • by Novus ( 182265 ) on Tuesday March 10, 2009 @04:19AM (#27131755)

    With Wine under the LGPL (making much of CrossOver LGPL) and CodeWeavers supporting Wine development, this will probably result in standard Wine also supporting DirectX 10 soon. I can also see this becoming a DirectX 10 to OpenGL wrapper to provide DirectX 10 features on XP. Both of these would be nice.

    • by IBBoard ( 1128019 ) on Tuesday March 10, 2009 @05:00AM (#27131931) Homepage

      I can also see this becoming a DirectX 10 to OpenGL wrapper to provide DirectX 10 features on XP.

      That's the wonderful irony about this - Linux, the non-gaming desktop, is going to get DirectX 10 through open-source while Microsoft just ignore the huge majority of people on Windows XP!

      Not that I use any games that are DX10, but this is definitely an interesting development.

      • by Jurily ( 900488 )

        That's the wonderful irony about this - Linux, the non-gaming desktop, is going to get DirectX 10 through open-source while Microsoft just ignore the huge majority of people on Windows XP!

        "Be careful, king of kings. First, you need the victory."

        I want DirectX 9 first, if possible. Altough the Intel GM965 driver works better on Linux than on the preinstalled Vista, wine still crashes the whole thing. And by crash, I mean "hard reboot required".

      • by TheRaven64 ( 641858 ) on Tuesday March 10, 2009 @09:35AM (#27133603) Journal

        That's the wonderful irony about this - Linux, the non-gaming desktop, is going to get DirectX 10 through open-source while Microsoft just ignore the huge majority of people on Windows XP!

        You seem to be missing the fact that WINE works quite well on Windows (and Mac), and so if WINE supports DirectX 10 then so does XP. A few desktop VM apps are using WINE code to provide DirectX drivers which talk to the host platform's OpenGL implementation. I wouldn't be surprised to see some game publishers investing a little in WINE development and shipping WINE DLLs along with their app to run on XP. This would also give them Mac (and Linux) ports effectively for free.

        • Well, yeah, but putting DX10 on Windows should be Microsoft's job. Putting DX10 on Linux/Mac is basically the community's job (plus a few companies supporting things a bit) and they're doing it better than Windows, despite the fact that DX was designed as Windows-centric.

          • If Microsoft did everything that was their job, or even a majority of the things that were their job, none of this crap would be necessary. As they see it, Microsoft's "job" is to maintain their monopoly, if you can actually get some usable software out of that, consider yourself lucky, they certainly couldn't care less.

      • by mgblst ( 80109 )

        So you are saying that these guys are going to be bigger publishes of the DirectX 10 interface than Microsoft? They will give more users access to DX10 than even Microsoft can do? I don't believe it.

    • Re: (Score:3, Interesting)

      I have the impression that the sponsorship rather contributes to no improvements. Best example is the DIB engine. First implementations were proposed years ago but always rejected. It was said it takes like 3 month. Still there would be the option to introduce a DIB engine in a branch and stablize it. It won't happen. We probably have the fourth DIB engine implementation now. The patch rejection policy of the dictatorial project leader can be explained and rationalised by underlying commercial objectives of

      • So where are the links to your patches that were rejected?
      • Re: (Score:3, Insightful)

        by kazade84 ( 1078337 )

        I have the impression that the sponsorship rather contributes to no improvements. Best example is the DIB engine. First implementations were proposed years ago but always rejected. It was said it takes like 3 month. Still there would be the option to introduce a DIB engine in a branch and stablize it. It won't happen. We probably have the fourth DIB engine implementation now. The patch rejection policy of the dictatorial project leader can be explained and rationalised by underlying commercial objectives of the commercial implementations which gain here competitive advantages or utter mismanagement of the development process.

        I think that's a little unfair. The DIB engine has been rejected several times because noone has yet managed to implement it in a way which doesn't cause MASSIVE regressions. The DIB engine implementation is huge, Alexandre Julliard (the "dictatorial project leader" as you put it) won't accept code which breaks Wine or is the wrong approach. He also won't accept one massive patch which may cause a tonne of regressions, I don't blame him for that.

        I believe the current DIB engine which is being worked on is s

    • by Quarters ( 18322 )
      Is there anything in the linked article that says that WINE with DX10 support will convert DX10 calls to DX9 or OpenGL? If so, I missed it. I'd guess that in order to use DX10 in WINE you'll need a DX10 card.
      • by Novus ( 182265 )

        Is there anything in the linked article that says that WINE with DX10 support will convert DX10 calls to DX9 or OpenGL? If so, I missed it. I'd guess that in order to use DX10 in WINE you'll need a DX10 card.

        Graphics cards don't implement APIs, software does (although the graphics card's feature set does affect strongly how much work the main CPU has to do). Wine implements the DirectX API using OpenGL, so the features supported by your OpenGL implementation are going to be the limiting factor.

        For good performance, though, you will need a card that supports the features added in DX10, but as OpenGL extensions. In practice, this means that you need a "DX10 card" to get all features running well, but some may wor

  • by Anonymous Coward on Tuesday March 10, 2009 @04:31AM (#27131809)

    Surely with the likes of IBM, Apple, EA, Sun (shudder), Valve, ATI, Nvidia, all teaming up, they could create a cross platform API, and all appropriate documentation, programming plugins etc that will make programming for it easier than DirectX?

    I mean, it's not the wildest concept ever. Clean up OpenGL, make it simpler if required. Add Open sound, add openinput, and voila!

    If it's simple to code for, well documented and supports all of the latest features, and is downloadable as a library for all of the major windows' and *nix's it will make life easier for gamers, developers and other open source advocates.

    It could be like java in concept, but more like directx in function. (ie it works)

    • by Sneeka2 ( 782894 ) on Tuesday March 10, 2009 @04:47AM (#27131883)

      Oh, and ponies please while you're at it, m'kay?

      Unfortunately, this is much less of a technical issue than a business issue. Developers are entrenched in DX development, and Microsoft will try to keep it that way. That's the real problem that needs to be solved.

      • by kripkenstein ( 913150 ) on Tuesday March 10, 2009 @06:20AM (#27132337) Homepage

        Developers are entrenched in DX development, and Microsoft will try to keep it that way. That's the real problem that needs to be solved.

        Is that still true? All the major 3D engines - Gamebryo, CryEngine, id Tech (5), Unity, etc., can output to DirectX, OpenGL and various console graphic systems. And at the low end even open source engines like Ogre and Irrlicht can output to multiple renderers.

        Are there still a lot of Windows games that write raw DirectX code?

        • Are there still a lot of Windows games that write raw DirectX code?

          If you're sensible, you'll wrap the API calls and then the only difference is the shading language. Really though, all the D3D C++ API lets you do is:

          create/delete shader
          create/delete buffer
          create/delete texture
          create/delete renderer state (blend/raster etc)
          draw buffer
          draw indexed buffer

          finding the OpenGL equivalents is a relatively painless process (assuming you don't have too many vendor extension nightmares to deal with).

          porting GL code to D3D is a PITA, but porting D3D to GL is (relatively s

      • by robthebloke ( 1308483 ) on Tuesday March 10, 2009 @07:57AM (#27132817)
        Not really, everything has gone towards shaders, and it's trivial to port a GLSL shader to a HLSL one and vice versa.

        The real problem for GL developers is that the API is lagging behind DX, and has been for a number of years. So, new features get added to D3D, and then ATI/NVidia will implement extensions for those into GL. About a year later, those may be unified into a single ext or arb extension. About 3 years later, they may find their way into the core SDK (at which point D3D would have had those in the core SDK for 3 years).

        Developers aren't entrenched in D3D, they just find a much nicer API to work with.
      • Not really - if that is how a developer prefers to work and get paid, more power to them.

        What needs fixing is the to get a few higher ups to have the will to dedicate a little bit of $ to it. Those big companies mentioned above may do better by working with wine and focusing on a wrapper dedicated to DX -> OpenGL/sound/etc.

      • by CAIMLAS ( 41445 )

        Well, it runs deeper than that.

        If you're working in a collation of businesses on a standard, or for that matter in a project of any kind, there is a lot of motivation to let the others do the work and reap the benefits - and there will be cross-company competition and antagonism, as well (as many are competitors).

        The only way they could reasonably pull it off, technically, would be to fund an organization which would create such an open standard, which would be equally owned by all involved. Said organizati

    • by RedK ( 112790 )
      OpenGL is already very clean, but more to the point, everything you've pointed out already exists. OpenGL, OpenAL and SDL can pretty much do it all right now, and except for SDL, Apple already supports everything out of the box (even in their developpement tool, Xcode).
    • Sure they could, but it's hard and they have close to no motivation to do so.
    • You mean like OpenCL [wikipedia.org]?
  • Good news, bad news. (Score:4, Informative)

    by Anonymous Coward on Tuesday March 10, 2009 @04:33AM (#27131817)

    The good news: increased base of support for games.

    The bad news: Codeweavers makes much noise about their "supported games [codeweavers.com]". But what they don't make explicitly clear is that these games are, for the most part, games that have been reported to work. Don't take my word for it, go and check. Out of 174 games listed on that page, one is "known not to work", 149 get an "honourable mention" (meaning they've been reported to work, but they are not supported by Codeweavers), two get a bronze, and 22 get a silver. So that's 174 games listed, and just 24 of those are supported if there are issues.

    Rather disingenuous, really, to have that information tucked away in a pop-up tooltip that only appears when you hover over the medal. I wish them luck, but I can't help but feel that they need to be a little bit more open with their customers.

    It also doesn't help that that list hasn't been updated since July ... eight months. Not exactly confidence inspiring, alas.

    • Re: (Score:3, Informative)

      by jparshall ( 1165843 )
      Here's the deal, guys. We're not trying to be disingenuous. But we also have finite resources, which means we have to be very careful about what we bite off in the support department. Here at the ranch, we have this funny belief that officially supporting a game means we *actually* have to care about it. That means that we have to treat our customers' questions about that game with some amount of due diligence, stoke up developers to fix bugs on it, etc. Sadly, there aren't enough support engineers on
  • Misleading title (Score:5, Insightful)

    by Totenglocke ( 1291680 ) on Tuesday March 10, 2009 @04:44AM (#27131869)
    Direct X 10 coming to Linux and Mac falsely implies that MS would be making it possible for Direct X 10 to be run natively on Linux or Mac. A much more accurate title (though one that many would read and say "who cares" without clicking on the link) would be "Crossover Games to support Direct X 10.
    • by TheLink ( 130905 )
      Not misleading to me.

      Nobody in their right mind expects MS to port DX10 to Linux+Mac.

      So the title means:
      a) Somebody else is doing it (most likely)
      b) It's a trap! What's the catch?
      c) Microsoft has gone insane.
    • Re: (Score:3, Funny)

      by wwphx ( 225607 )

      Rats, I was hoping for a way to make my MacBook Pro less stable. Rebooting my Axim almost daily just isn't enough for me.

  • Porting to XP? (Score:3, Informative)

    by RenHoek ( 101570 ) on Tuesday March 10, 2009 @04:49AM (#27131897) Homepage

    It would be nice if this were to be ported to Windows XP and take away the only reason why I would ever consider Vista/7

  • It's all lies. (Score:4, Insightful)

    by Computershack ( 1143409 ) on Tuesday March 10, 2009 @05:33AM (#27132069)

    The last time I played a game using Crossover, it was in DX7, not 9, so I don't know how they can claim that's the case. For those still reading, it was CS:Source and Battlefield 2. Both looked truly horrific compared to playing on Windows and had poor framerates despite being run on a 9600GT.

    And then there's Punkbuster support. Until they can get that working 100%, there's no point at all because you end up getting blacklisted so that money you spent buying the game is wasted as your CD Key is unusable on any PB server.

    • by Nursie ( 632944 )

      I played Portal on linux last year. Looked the same under Wine as it does on Windows.

      Never did play counterstrike though, so I don't know what special considerations it has. If the game runs fine but the tamper-evident punkbuster system fails because you're on a different platform, well, I wouldn't be so quick to blame wine.

      • As far as I know, CS:S uses Valve's Anti-Cheat (VAC) system. I've heard of people playing Team Fortress 2 under Wine, so it must work...

    • I've played hl2 solo and tf2 online via wine. hl2 was a bit choppy but playable (still had the ridiculous sound stuttering i got on windows though... GRRR) and tf2 connected etc but was pretty much unplayably slow.
  • by Progman3K ( 515744 ) on Tuesday March 10, 2009 @06:28AM (#27132389)

    I love the Wine project.
    I have seen it mature to where it is amazingly able to reproduce Windows (bugs and all!) which is NO SMALL FEAT.
    I've installed Crossover Office for someone and seen it able to run Office perfectly.

    I just wish in all of that it was able to run Rogue Squadron, an old Windows 98 game because that is really the only game I miss.

    But I suppose Rogue Squadron is too much of an oddball; it's old and probably relies on some undocumented jazz in Windows 98...

    • I assume you've reported the problems as bugs?

      Of course, it's a problem getting obscure proprietary games that are difficult to obtain to work.

    • I just wish in all of that it was able to run Rogue Squadron, an old Windows 98 game because that is really the only game I miss.

      But I suppose Rogue Squadron is too much of an oddball; it's old and probably relies on some undocumented jazz in Windows 98...

      Heh, I used to love that game.. good times. I'll try to dig it out this weekend and see if I can hack Wine to make it work ;)

    • by Bert64 ( 520050 )

      But if it's that old it probably doesn't need much in the way of performance, so you could probably install win98 under a vm and play the game there...

  • Get the few remaining gaming studios who use OpenGL or the Unreal engine on DX 10 and then decide that porting DX11 to those platforms is not in the best interest of the company.

    Either that or "accidentally" dereference null a lot more in your Linux and OSX drivers. Or both. I wouldn't put both past Microsoft either.

  • Great news! Now, does Crossover run on Windows XP as well?
  • Considering that barely any games run perfectly under WINE without some sort of manual tweaking, and that most games don't run acceptably well even with, is it really time to be pushing for DX10 support?

    A brief overview of some of the games I'm likely to play, and their compatibility (I define "tweaking" to mean "must install Windows DLLs and/or make registry/settings changes." In other words, won't run out-of-box):

    1) Warcraft III: Works playably if DirectX is disabled (force to OpenGL) but umpteen issues m

"Protozoa are small, and bacteria are small, but viruses are smaller than the both put together."

Working...