Announcement

Collapse
No announcement yet.

OpenGL 4.3, OpenGL ES 3.0 Specifications Unveiled

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

  • #31
    Originally posted by M1kkko View Post
    That's what I had in mind. The current situation is, "you can use OpenGL, but only with proprietary drivers".
    A standard can be open while still being proprietary - that just means that the standard body does not restrict who may buy a license to implement the standard. An example is Infiniband: anyone at all with the money can license the materials and the right to implement and sell IB HBAs or switches or software.

    "Open standard" is not the same as "open source".

    I don't think OpenGL works like that though: the "open" in the name was mostly just a marketing response to M$' quite closed DirectX & Direct3D product. DirectX/Direct3D ran only on Windows. SGI made it's competing 3D pipeline that it called GL available on any platform from UNIX to MacOS to Windows, so SGI rebranded GL as OpenGL. The point of the "Open" in the name was that SGI GL was being released in such a way that it could be implemented on any hardware and/or OS that someone wanted to use.

    There is no fee to acquire the OpenGL spec and implementation guidelines. Anyone who wants to can just download them and start working. I downloaded them in circa 1998, read them, and decided I had better things to do with the next decade of my life than implement OpenGL.

    The reason MESA has always lagged behind commercial implementations is IMHO because an OpenGL implementation (1) is very complex; (2) is not really well suited for a CPU with only a few cores; (3) is certainly more complex to implement on a MIMD CPU than on a SIMD GPU.

    Comment


    • #32
      Originally posted by hoohoo View Post
      A standard can be open while still being proprietary - that just means that the standard body does not restrict who may buy a license to implement the standard.
      That's an interesting point. So in the same sense, you would probably also consider Microsoft Windows an open OS as long as Microsoft doesn't restrict who may buy a license to use it?

      Originally posted by hoohoo View Post
      The reason MESA has always lagged behind commercial implementations is IMHO because an OpenGL implementation (1) is very complex; (2) is not really well suited for a CPU with only a few cores; (3) is certainly more complex to implement on a MIMD CPU than on a SIMD GPU.
      Were there many multi-core CPUs in 1998?

      Comment


      • #33
        Originally posted by M1kkko View Post
        That's an interesting point. So in the same sense, you would probably also consider Microsoft Windows an open OS as long as Microsoft doesn't restrict who may buy a license to use it?
        No, because Windows is software not a spec. If it was an open specification, wine would be much further along.

        Originally posted by M1kkko View Post
        Were there many multi-core CPUs in 1998?
        No, but there were multi processor systems.

        Comment


        • #34
          Originally posted by hoohoo View Post
          The reason MESA has always lagged behind commercial implementations is IMHO because an OpenGL implementation (1) is very complex; (2) is not really well suited for a CPU with only a few cores; (3) is certainly more complex to implement on a MIMD CPU than on a SIMD GPU.
          Why are you comparing swrast to commercial gpu stacks? Or is there a gl4.2 software renderer I'm not aware of?

          Also, anything being easier on a gpu than on a cpu, you're going to have to back that with some sources.

          Comment


          • #35
            Originally posted by hoohoo View Post
            A standard can be open while still being proprietary - that just means that the standard body does not restrict who may buy a license to implement the standard. An example is Infiniband: anyone at all with the money can license the materials and the right to implement and sell IB HBAs or switches or software.

            "Open standard" is not the same as "open source".

            I don't think OpenGL works like that though: the "open" in the name was mostly just a marketing response to M$' quite closed DirectX & Direct3D product. DirectX/Direct3D ran only on Windows. SGI made it's competing 3D pipeline that it called GL available on any platform from UNIX to MacOS to Windows, so SGI rebranded GL as OpenGL. The point of the "Open" in the name was that SGI GL was being released in such a way that it could be implemented on any hardware and/or OS that someone wanted to use.

            There is no fee to acquire the OpenGL spec and implementation guidelines. Anyone who wants to can just download them and start working. I downloaded them in circa 1998, read them, and decided I had better things to do with the next decade of my life than implement OpenGL.

            The reason MESA has always lagged behind commercial implementations is IMHO because an OpenGL implementation (1) is very complex; (2) is not really well suited for a CPU with only a few cores; (3) is certainly more complex to implement on a MIMD CPU than on a SIMD GPU.
            Plus CPUs are not MIMD!!!

            Comment


            • #36
              Originally posted by curaga View Post
              Why are you comparing swrast to commercial gpu stacks? Or is there a gl4.2 software renderer I'm not aware of?

              Also, anything being easier on a gpu than on a cpu, you're going to have to back that with some sources.
              I say that because rendering a screenful of pixels is inherently embarassingly parallel problem. That kind of problem fits much easier onto an large array of processors (a GPU with dozens or hundreds of cores) than onto a small group of processors (a CPU with 4 or 8 cores).

              I do not claim that managing memory access patterns optimally on a GPU is simple but it's not rocket science either.

              I do claim that rendering same screen on a CPU at same FPS rate as a GPU can do it is very hard - because CPUs in general cannot match the performance of GPUs for this kind of task. To get good OpenGL performance out of a CPU alone is not at all easy.

              Comment


              • #37
                Originally posted by artivision View Post
                Plus CPUs are not MIMD!!!
                A multicore CPU can execute different instructions on different data simultaneously, this is multiple instruction multiple data: MIMD.

                Comment


                • #38
                  Originally posted by M1kkko View Post
                  That's an interesting point. So in the same sense, you would probably also consider Microsoft Windows an open OS as long as Microsoft doesn't restrict who may buy a license to use it?



                  Were there many multi-core CPUs in 1998?
                  If MS sold licenses to *implement* Windows to anyone with the money to buy, then yes Windows would be an open standard.

                  However MS does not offer Windows on those terms, so I do not consider Windows an open standard.

                  Comment


                  • #39
                    Originally posted by curaga View Post
                    Why are you comparing swrast to commercial gpu stacks? Or is there a gl4.2 software renderer I'm not aware of?

                    ...
                    Because I was replying to comments that were also talking about that MESA lags the commercial offerings.

                    Comment


                    • #40
                      Originally posted by hoohoo View Post
                      A multicore CPU can execute different instructions on different data simultaneously, this is multiple instruction multiple data: MIMD.
                      Wrong, MIMD and SIMD are acronyms for Execution-Units not processors. x86 processors are only have SIMD_Vectors (SSE an AVX)

                      Comment


                      • #41
                        OpenGL specification is royalty-free. There are no fees to implement them.

                        Comment


                        • #42
                          Originally posted by artivision View Post
                          Wrong, MIMD and SIMD are acronyms for Execution-Units not processors. x86 processors are only have SIMD_Vectors (SSE an AVX)
                          Perhaps you should read: http://en.wikipedia.org/wiki/Multiprocessing

                          Comment


                          • #43
                            Originally posted by artivision View Post
                            OpenGL specification is royalty-free. There are no fees to implement them.
                            Yeah, but you cannot claim to have an OpenGL implementation without paying. I'm not sure exactly how that is done - trademarking the OpenGL name?

                            Comment


                            • #44
                              Originally posted by smitty3268 View Post
                              Yeah, but you cannot claim to have an OpenGL implementation without paying. I'm not sure exactly how that is done - trademarking the OpenGL name?
                              Pretty much. It's similar to how Linux implements the POSIX standard but isn't certified POSIX (well, it's probably more accurate to say distributions, but you get what I mean.) Same thing here, Mesa is OpenGL compatible, but isn't OpenGL certified.

                              Comment


                              • #45
                                Originally posted by losinggeneration View Post
                                This article speaks about processing when you have MIMD units, or other similar type units. SIMD is a single unit that can do multiple actions on multiple data with a single instruction. MIMD is a unit that can do the same as SIMD, plus it can do it with more than one instruction. Example: Radeon has 128bit SIMD vectors and every vector can do actions on 4-32bit data (4 shaders). Wile Fermi and Kepler have 64bit MIMD scalar units(1-shader) and every unit have an ALU(Integer) and an FPU or 2(Kepler), so they can use multiple instructions on multiple data. Actually Fermi and Kepler are the only processors I know that use MIMD. So Radeon7000 has 3.8Tflops(FMAC)32bit wile Kepler has 3.2Tflops(FMAC)64bit or 6.4Tflops(FMAC)32bit.

                                Comment

                                Working...
                                X