パスワードを忘れた? アカウント作成
873565 story
GNOME

GNOMEシェル、GPUアクセラレーション必須でなくなる 11

ストーリー by hylom
そもそもLinuxデスクトップに派手なエフェクトは必要なの? 部門より
あるAnonymous Coward 曰く、

GNOME 3.0では「Mutter」というウィンドウマネージャや、Mutterと連携する「GNOME Shell」というUIが採用されている。しかし、Mutterの利用にGPUアクセラレーションが必須であったため、利用できない環境もあった。しかしこのたび、Gallium3Dプロジェクトの「LLVMpipe」というLLVMを活用したソフトウェアラスタライザを導入することで、GPUアクセラレーションを用いずにMutterやGNOME Shellを利用できるようになったという(phoronix本家/.)。

本家/.ではGObjectの使いづらさとコンパイルされたバイナリの遅さ、非効率的な動作や、GPUアクセラレーションの必須化、その後のLLVMにまつわるあれこれはすべて誤った判断の結果であり欠陥であると指摘、GNOMEが「ソフトウェア設計の反面教師」であるとのコメントに5点がついている。

LLVMpipeは3D画像処理をGPUの代わりにCPUで実行させるというものだそうで、Phoronixの記事によるとGPUアクセラレーションが利用できない環境でも問題なくMutterやGNOME Shellが使えたそうだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • そんなに使いづらいかな。
    Cでオブジェクト指向をやるってのは面白いアプローチだと思った。

    • by annoymouse coward (11178) on 2011年11月10日 11時45分 (#2048040) 日記

      タレコミに
      > 本家/.ではGObjectの使いづらさ
      とありますが,これ誤読です.

      元のコメント(の前半)は,大雑把にまとめると

      c++とか objective-c 等の言語がすでにあるのに,わざわざCでオブジェクト指向な実装を行う方針がそもそもの間違い.
      なぜなら,Cで無理やりオブジェクト指向な実装を行うとGObjectのようなマクロを駆使した変態的実装が不可避になり,次の2つの問題が発生するから.
      - コーディングが大変.苦痛でしかない
      - コンパイラによる最適化が期待できない.ビルドしたバイナリの質は低く,動作速度も遅い.
      GNOMEの開発陣って,センスないよね.

      という感じです.もっともな指摘です.

      GNOMEが誕生した1998年頃だと,まだc++は言語仕様もコンパイラの実装も共にイマイチでした.当時なら,仕方なくCを選択し,gobject というか glib というライブラリを整備するという方針はかなり妥当でしたし,実際成功しています.

      ただ10年経った今もなおその古い思想をズルズル引き継いでしまっている点は「ソフトウェア設計の悪い例」なのかも知れません.

      親コメント
      • by CowardDuck (25674) on 2011年11月11日 0時50分 (#2048409)

        > - コンパイラによる最適化が期待できない.ビルドしたバイナリの質は低く,動作速度も遅い.

        むかし COBOL のプログラムを C に変換してから
        コンパイルする処理系で出来上がった実行ファイルが
        激おそだったときがあった。

        このシステムは某日本メーカの UNIX だったけど
        同じ処理系の Solaris 版で同じ COBOL プログラムを
        コンパイルすると某日本メーカの UNIX と比べて
        はるかに早くなった。

        普通の C プログラムだとどっこいの性能がでたので
        原因は某日本メーカ製 UNIX の C コンパイラの
        最適化が機械生成されたプログラムに対応して
        なかったのだろうと思う。

        何がいいたいのかというと、C コンパイラ側が
        GObject を考慮した最適化を行うようにしたら
        性能が改善する余地があるんだろうか?という話。

        親コメント
      • by greentea (17971) on 2011年11月10日 16時09分 (#2048203) 日記

        GNOMEより先に出たKDEは当初からC++/Qt使ってたので、C++使うって選択がそんなにありえなかったわけでもないと思うけどなぁ。。。

        # Qtも変態マクロがそこそこある気がするが。。。

        --
        1を聞いて0を知れ!
        親コメント
      • by Anonymous Coward

        >わざわざCでオブジェクト指向な実装を行う方針がそもそもの間違い.
        逆に、わざわざオブジェクト指向な実装を行う方針がそもそもの間違いだと思うけど。

    • by Anonymous Coward

      その続きにこんなのが。

      > Nonsense. GObject gives you multi-language bindings for free and if you're just an application developer it only makes your life easier. You can develop GNOME programs in C++, Python, Java or whatever suits your tastes.

      s/GObject/COM(or .NET)/g
      s/GNOME/WIN32(or Windows)/g

      してもとても自然に読めたり。むしろいつまでこんな低水準な規約でクロス言語してないといけないんだとかWindows界隈の人に笑われるんじゃなかろうか。

  • by Anonymous Coward on 2011年11月10日 3時31分 (#2047882)

    フレームの元付ける奴は頭悪いと思う。

  • by Anonymous Coward on 2011年11月10日 5時40分 (#2047890)
    また使えるようになるのかな?UnityUnity 2D のように
  • by Anonymous Coward on 2011年11月10日 18時58分 (#2048245)

    結局CPUにその分の負担をかけるので古いマシンだったりすると重くなるんでしょうか。
    新しけりゃそこそこのGPU載ってるからね。

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...