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

4 件の脆弱性を修正した X.Org Server 21.1.2、ディスプレイの物理 DPI を報告する機能が廃止に 33

ストーリー by headless
固定 部門より
15 日に公開された X.Org Server 21.1.2 では最近報告された 4 件の脆弱性が修正されたほか、実際に接続されたディスプレイの物理DPIを報告する機能が廃止になっている (Phoronix の記事メーリングリストでのアナウンス)。

リバートされたのは DRM コネクターから得たディスプレイの物理サイズをプログラムへ伝える機能で、X.Org Server 21.1.0 で追加されたものだ。しかし、あまりに破壊的な変更だったことから廃止し、常に 96 DPI と報告する方式へ戻したとのこと。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2021年12月19日 15時27分 (#4172619)

    俺、画面のスクリーンキャプチャをPNGで保存するとき、そのとき使ってたディスプレイの解像度をピクセル毎メートルでわざわざ計算(小数点以下は四捨五入)して、バイナリエディタでpHYsチャンクをいちいち書き込む変態なんだけど、そんな俺しか得をしないような機能を実装するのって大変なんだな、という感想。そりゃ消されるわ。

    # 俺みたいなことをする変態こだわり派って、他に居るのだろうか? いや開発者の若干名がちょっとこだわってみたくなったから、実装したんだろうけど。

    • by uxi (5376) on 2021年12月20日 12時44分 (#4172946)

      偏執狂(へんしゅうきょう) Paranoia [kotobank.jp]なのでは?
      でもまだ、病的レベルではないと思う。

      --
      uxi
      親コメント
    • by Anonymous Coward on 2021年12月19日 15時33分 (#4172621)

      何がアレかって、世の中ディスプレイ側が腐ってる可能性も有るって事よ。
      ディスプレイ切替機とかIPKVMとか。

      親コメント
      • by Anonymous Coward

        誰も使っていない機能はろくにテストもされないからね。

      • by Anonymous Coward

        俺の元コメ#4172619改めて読むと変態って書きすぎたな、って思ったけど、

        結局現在のディスプレイ解像度を取得したい動機って例えば、600dpiの画像(書類)を画素ピッチが0.11mmくらいのディスプレイと0.3mmくらいのディスプレイと印刷結果とで、同じ大きさに表示させたい、ってことなのかな?
        そう考えると、ディスプレイ切替機使われると確かに詰みそう。

        # かくいう私もリモートデスクトップ使いでね。

        • by Anonymous Coward

          とりあえず途中は読み飛ばして変態ってことは把握した

        • by Anonymous Coward

          ディスプレイ切替器はディスプレイ側から引っ張って中継してくれる奴もある。
          でもディスプレイの電源切れてたら引っ張れないとか起きるし、複数ディスプレイで別解像度(dpi)になるだけで詰む。

          • 昨2000年春のテレワーク開始時に、会社PCのアナログ出力を切替器経由でディスプレイに繋いだら、DPIどころかレゾリューションすらネゴれず、XGAな画面に…。
            • by Anonymous Coward

              > 昨2000年
              A.D. 21 年頃か…

        • by Anonymous Coward

          DTP(デスクトップパブリッシング)(印刷物制作)の分野だと、ディスプレイに実寸表示(印刷プレビュー)されたものが、そのまま印刷できたら便利ってことですよね。
          この分野は、まあ、なんだかんだで大まかには達成できていると思うが、精度はまだまだ足りないだろうね。
          私は、電子書籍派ですが、電子書籍等を自家印刷製本して堪能したい派もいるでしょうから、まあ、そういうことですね。
          家庭用プリンタの解像度は300dpiから1000dpi以上へと進化したにも関わらず、ディスプレイは96dpiで進化が止まって、今なお、価格面で優位という状況ですからね。つまり、「

    • by Anonymous Coward on 2021年12月19日 22時21分 (#4172763)

      変態は大変なんだな。

      親コメント
  • by Anonymous Coward on 2021年12月19日 14時48分 (#4172611)

    CLI環境ではdrmエラーが出るだけだったが
    GUI環境では起動が激重だったらしい

    /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULTに
    video=SVIDEO-1:dを追記で回避してた

    # drm:direct rendering manager

    • by Anonymous Coward on 2021年12月19日 15時42分 (#4172624)

      それは関係ない話では?
      そのバグは4年くらい前の話で、すでに修正済みだと思います。

      物理DPIを自動認識する機能が入ったのは X.Org Server 21.1.0 で、公開されたのは 2021年10月27日、つい最近の話です。
      それが今回一時的にリバートにされただけです。

      なぜ一時的にリバートされたかと言うと、
      今までDPIが96で固定だったのに、21.1.0でDPIが自動認識されるようになって、多くのユーザが混乱したためです。
      互換性は保ったほうがいいよねってことで、今回のリリースではとりあえずDPIを96固定に戻しただけです。

      ですから「GUI環境では起動が激重だったらしい」の話は無関係だと思います。

      なお、Phoronix にも書いてありますが、DPIの自動認識機能は近々復活します。具体的には
      デフォルトではDPIは96で固定(従来からの挙動と同じ)で
      コマンドラインオプションで -dpi auto みたいな指定をすると物理DPIの自動認識が有効になる
      という仕様を考えているそうです。

      親コメント
      • by Anonymous Coward

        それは関係ない話では?

        いえKernel 5.15との組み合わせで再燃してましたね
        autoで見失うって状態だったと思われます

      • by Anonymous Coward

        また微妙な主張を、、、
        LTSユーザー向けには正しいが通常向けには間違っています
        最新カーネルでは再発してますので次期LTS更新までに整合性が解消されないとLTS民も再度被ります

        • by Anonymous Coward

          該当するリバートのコミットログをちゃんと読んでください。
          https://github.com/freedesktop/xorg-xserver/commit/35af1299e73483eaf93... [github.com]

          「互換性は保ったほうがいいよねってことで、今回のリリースではとりあえずDPIを96固定に戻した」という内容が書かれています。

          そして「GUI環境では起動が激重だった」という話は全く言及されていません。別の話と考えた方が妥当だと思われます。

  • by Anonymous Coward on 2021年12月19日 15時26分 (#4172618)

    おかしな機能を追加してもそれまでのプログラムはコールしないから影響でないような
    元々固定値を戻す仕様が色々な値を戻すようになったらという話かな
    だとしてもわざわざ取得・利用しておきながら破壊的な動作(たぶん対応バグ)するってのはどうかと

    • by Anonymous Coward on 2021年12月19日 15時39分 (#4172622)

      WindowsがHigh DPI対応のためにどうして新しい関数やマニフェスト項目や互換モードを追加しまくったんだと思う? 理論的にはGetDeviceCaps(hdc, LOGPIXELSY)の戻り値を変えるだけなのに。

      親コメント
      • by Anonymous Coward

        WindowsのそのAPIはLOGFONT構造体についてMSDNライブラリから調べると

        lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

        って式が案内されるからちょいちょい使われてたはずだけど、
        他が96dpi決め打ちで書かれる事例、間違いなく大量にあるだろうからなぁ……

    • by Anonymous Coward

      なぜ正常な値が返ってくると思うのだろうか。
      「DRM コネクターから得たディスプレイの物理サイズ」だぞ。
      きちんと値を返しているH/Wばかりとは思えん。
      0や負数が返ってくる機器が多数だったんだろ。利用側の問題じゃない。

      • 機種特定出来れば、DB 用意してパッチすることは出来るだろうし、
        ユーザーが個別に H/W からの情報上書きして修正する用の config を手動で食わせて適正値にすることは可能なはずですよね。

        これ、現状では 96dpi 返さないと腐るアプリが山のようにあるため、96dpi 以外の値を返すと使い物にならんくらい手間がかかるので一旦(?)元に戻したという話なんじゃないですか?

        --
        uxi
        親コメント
        • by Anonymous Coward

          アプリ側の問題は滅茶苦茶あるだろうけど、ディスプレイ側もあるのは間違いないだろうし、
          DBで個別対応は仕組みの整備とDBのメンテ体制も居るから一朝一夕には無理。

          他ツリーで言及あるけどKVMやマルチディスプレイ、プロジェクタ類だとサイズが不定で、
          その瞬間の正しい値が役に立たない状況は少なくないだろう。
          そもそも離れて見るディスプレイ(やプロジェクタ)のdpiと卓上ディスプレイのdpiが単体では区別出来ないけど、
          一緒くたに表示サイズ調整したらどう考えても離れたディスプレイでの表示が小さすぎる。
          閲覧者から見てどの程度の画角を占めてるのかがGUI上では多分重要だし。

  • by Anonymous Coward on 2021年12月19日 15時28分 (#4172620)

    実質96dpiで固定だった結果、色々な所(含む仕様)でハードコードされちゃったのね……

    • by Anonymous Coward

      歴史に倣うなら、まずはSetProcessDPIAware()みたいな宣言で明示すべきだろうね

    • by Anonymous Coward

      既に動いて使われている物の働きを変えるようなことはせずに、
      「シン・DPI」とか新しい名前を作ってそれで返すようにすればよかったのに。

      • by Anonymous Coward

        こうしてこの世界にまた一つ新たなDPIの定義が生まれた。

        # DPI FINAL WARS

        • by Anonymous Coward

          どいつもこいつも脳みそ空っぽのクソばっかりだな、俺が新しく完璧なDPIの定義を作ってやるぜ!

          こうしてまた非互換なクソが一つ増えたのであった…的な

    • by Anonymous Coward

      XPから使えるようになったHighDPIが、ほぼ標準として使えるようになるのにWin10までかかったという全く同じ先行事例があるのに、なんで全く同じ失敗してんだろうなぁ。

      • by Anonymous Coward on 2021年12月19日 17時08分 (#4172655)

        ディスプレイの画素数ではなく画面上のサイズで表示を指定できるように最初になったのはXPだがそのご実装が二転三転しているわけで…
        なんで全く同じ失敗をするかと言うとあっちを立てるとコッチがたたないみたいな問題が多いからでしょう。
        Windowsにもディスプレイ上の表示サイズを指定するAPIが複数ありカオスなことになってる…

        親コメント
        • by Anonymous Coward

          画面とか音とか文字入力とかホント基本的な部分がままなりませんなぁ…

        • by Anonymous Coward

          ちなみに複数のAPIがあるのでウィンドウズ側でどのAPIで表示サイズを指定するか選べるようになっている。だが既存の表示サイズ調整関連API全てに対応しているソフトは稀。つまりあるソフトが正常に拡大されるようにすると別のソフトが狂うみたいなことになりがち。ソフト毎に細かく設定できた気もするがそんなリバースエンジニアリングに片足突っ込むようなことを一般人にやらせるのは…
          酷いソフトだと世代の異なるAPIの利用が混在してそうだな…

        • by Anonymous Coward

          同じ失敗ってのは、Winodwsがやって駄目で、遣り直すことになった失敗対応を、あえて真似して、やっぱり失敗しましたってことなんだが。
          違うやり方なり、Windowsがまがりなりにも辻褄合わせてきた成果のほうを真似すればいいのに、わざわざ初期に失敗してやりなおすことになった手段を採用して、予想通り同じ結果になってるのが意味わからんって話でしょう。

        • by Anonymous Coward

          Win95の時代(どころか16bitの時代から?)あるGDIでも論理座標自体は扱えてて、
          プリンタへの印刷とかではちゃんと機能して無かったっけか。

typodupeerror

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

読み込み中...