1999/07/11    Xengine and Spice


PB G3 で X を起動する際に、アクセラレーションのために -mach64 をつけることは知っていたが、色がなんとなく白っぽいのを回避するのに

$ startx -- -mach64 -nomacgamma

とするのだということを今頃になって知った。だいぶましになった。
 

おきまりの X のベンチマークテスト用のアプリケーション。JRPM より取ってきて、rebuild してみたが、何故かエンジンブローしている。

ソースを見ると、どうも良く理解できない部分があった。また、コンパイル時にタイプミスマッチの warning も出ていたので、以下のようなパッチをあてた。エンジンブローは直ったように見える(パッチの前ではウイジェットの width と height がめちゃくちゃの値になって、それをもとに大きさを決めて描かれているコンロッドがクランクシャフトケースを突き破っていたと思われる)。

----<ここから>----
--- xengine-j/xengine.c.ORIG    Sat Jul 10 05:08:34 1999
+++ xengine-j/xengine.c Sat Jul 10 16:55:34 1999
@@ -47,7 +47,7 @@
        Arg             args[10];
        XtTranslations  newTranslations;
        static XtActionsRec redrawActions[] = {
-               {"expose", (XtCallbackProc) redraw_callback},
+               {"expose", (XtActionProc) redraw_callback},
        };

        static char    *overrideTranslations =
@@ -165,7 +165,7 @@
        enginePixmap = XCreatePixmap(XtDisplay(engine), XtWindow(engine), width, height, DefaultDepthOfScreen(XtScreen(engine)));

        /* Interval timer start  */
-       XtAddTimeOut(1, Cycle, NULL);
+       XtAddTimeOut(1, (XtTimerCallbackProc)Cycle, NULL);

        XtMainLoop();
 }
@@ -179,10 +179,9 @@
 {

        Arg             args[10];
-
-       XtSetArg(args[0], XtNwidth, &width);
-       XtSetArg(args[1], XtNheight, &height);
-       XtGetValues(w, args, 2);
+       XtSetArg(args[0], XtNwidth, (XtArgVal)width);
+       XtSetArg(args[1], XtNheight, (XtArgVal)height);
+       XtSetValues(w, args, 2);

        XFreePixmap(XtDisplay(engine), enginePixmap);
        enginePixmap = XCreatePixmap(XtDisplay(engine), XtWindow(engine), width, height, DefaultDepthOfScreen(XtScreen(engine)));
@@ -217,7 +216,7 @@
                mean = 0.0;
        }
        mean += DrawEngine();
-       XtAddTimeOut(1, Cycle, NULL);
+       XtAddTimeOut(1, (XtTimerCallbackProc)Cycle, NULL);
 }

 double

----<ここまで>----

パッチのあたった RPM は

        xengine-1.10pl1-4a.ppc.rpm
        xengine-1.10pl1-4a.src.rpm

PB G3 では、後ろで何が走っているかに依るが 1000~1600 rpm くらい。8115/100 は、これはビデオが特に遅く、200 rpm くらいで、これぐらいになると、xengine の回転や、ガスの爆発がしっかり見て取れて、かえって楽しい。速すぎると何が起こっているのか分からない。ちなみに HP/C100 では、400 rpm くらい。

-mach64 の有無で顕著な差が出ないのは何故だろう?
 

回路計算の定番ソフト Spice は、最新版(3f5sfix)では、今までのパッチが全てあたっており、全くすんなりと rpm になった。

        spice-3f5sfix-1a.ppc.rpm
        spice-3f5sfix-1a.src.rpm

ただし、最新版には例題が含まれていない。
 


Back to Keisuke Fujii's MkLinux/LinuxPPC Life