PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zsnes viel langsamer als unter Win



PhobosUT
03.02.03, 22:05
Mein System:
SuSE Linux 7.3
XFree86 4.1.0
GeForce2 Pro
Athlon Classic 750Mhz

Ich hab' mir Zsnes installiert und es läuft eigentlich ganz gut, nur nicht so flüssig wie unter Windows. Mit den selben Einstellungen (640x480, Interpolation und auch sonst alles gleich) laufen alle Spiele unter Windows mit 60 FPS. Der fällt nicht einmal auf 59 ab. Unter Linux dagegen nur 30-35, es sei denn das Bild ist schwarz :rolleyes: Es ruckelt nicht, aber es läuft auch einfach nicht wirklich flüssig. Ich würde sagen es 'hakelt'. Wenn man z.B. in 'nem Jump 'n Run eine gerade Strecke läuft dann springt die Figur förmlich. Also läuft schnell, dann wieder langsamer, dann wieder schnell... Wen ich die Auflösung auf den niedrigsten Wert setze, dann läufts genauso sauber wie unter Windows.
Außerdem hab' ich unter Windows bestimmt 20 verschiedene Videomodi von 256 irgendwas bis 1280*1024 während ich unter Linux nur 4 hab' (2 verschiedene Auflösungen einmal als Fesnter und einmal als Vollbild)
Ich hab' mir mal die Prozessorlast unter Linux anzeigen lassen, wenn ich in Zsnes 'n Spiel laufen lasse: 95-100%. Ich hab' auch schon Zsnes alleine ohne KDE laufen lassen, also von der Shell aus gestartet, aber an den FPS hat sich nichts geändert.

Woran kann das liegen?

HackThor
03.02.03, 22:26
Selber kompiliert oder als RPM installiert?
Habe hier einen 850er Athlon mit ner GF1 - keine Probleme. 16 Video-Modi (256x224 WIN bis 1024x768 OGL WIN alles dabei) und die Kiste ist auch verdammt schnell.
Die originalen NVIDIA-Treiber hast du drauf und richtig installiert (glxinfo/glxgears zum schauen und testen)? Alles größer als 640x480 setzt zwingend ein lauffähiges (und schnelles) OpenGL voraus...

ciao

Michael

PhobosUT
04.02.03, 08:50
Na dann weiß ich ja woran's liegt, hab' nämlich noch kein OpenGL drauf. Werd' ich dann demnächst mal einrichten. Gibt's da gute HowTows für OpelGL unter Linux? Wüsste jetzt nämlich spontan gar nicht wie ich anfangen soll :rolleyes:
Danke schonmal für die schnelle Antwort.

jebe
04.02.03, 09:04
howto gibts gleich um die ecke :)

http://holarse.wue.de/index.php?content=treiber_nvidia

PhobosUT
04.02.03, 17:15
Danke!
Eigentlich ist die Installation ja recht einfach aber so ganz scheints noch nicht zu funktionieren. Also ich bin nach diesen beiden HowTos gegangen:

http://www.linuxforen.de/forums/showthread.php?s=&threadid=52084
http://holarse.wue.de/index.php?content=treiber_nvidia

Also X startet auch problemlos, ich bekomm auch ein nVidia Logo beim Start von X also werden die nVidia Treiber wohl geladen :) lsmod zeigt an, dass folgendes Kernel Modul geladen wurde:

nvidia

Das stimmt ja auch soweit. Die XF86Config hab' ich wie folgt abgeändert:

Section "Module":
Load "glx"
Load "extmod"

Section Device:
Load "nvidia"
Option "NvAgp" "1"

Sonst hab' ich nichts verändert. Wenn ich nun bei laufendem X-Server ein Terminal öffne und mich dort per su als root anmelde und dann glxinfo eintippe kommt das:

Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
Error: unable to open display (null)

Also scheints ja nicht richtig zu funktionieren. Auch bei Zsnes hat sich nichts getan. Ich kann immer noch nur 4 Video Modi auswählen und die FPS sind auch gleich geblieben. Muss ich möglichweise Zsnes auch nochmal neu compilieren, fällt mir gerade so ein? Aber glxinfo müsste doch eigentlich funktionieren.

In /usr/lib hab' ich auf jeden Fall diese Einträge:

libGL.so -> GL/libGL.so.1.0.4191.nv_glx
libGL.so.1 -> GL/libGL.so.1.0.4191.nv_glx
libGLU.so.1 -> libGLU.so.1.3
libGLU.so.1.3
libGLcore.so -> libGLcore.so.1.0.4191.nv_glx
libGLcore.so.1 -> libGLcore.so.1.0.4191.nv_glx
libGLcore.so.1.0.4191.nv_glx

Das müsste ja auch richtig sein. Hat jemand 'ne Idee worans liegen könnte? Was mich hat halt am meisten irritiert, ist, dass glxinfo nicht funktioniert.

Nachtrag:
Hab' gerade nochmal bei Zsnes das configure Script ausgeführt und der schreibt mir:

checking for OpenGL support... no

Das ist doch auch komisch...

HackThor
04.02.03, 18:15
Daß du dich als root nicht an den X-Server des Users "anklinken" kannst ist normal. Schau mal da nach, da steht wie es gemacht wird:
http://www.linuxforen.de/forums/showthread.php?threadid=64594

Und beim "./configure":
Mach mal "./configure --help" ob du irgendwo angeben kannst wo nach den OpenGL-Headern/Libs zu suchen ist - eventuell findet das Script das nicht von alleine (liegt z.B. an einem "ungewöhnlichen" Ort - ich hatte auch schon daß in einem Verzeichnis "auf dem Weg dahin" die Rechte falsch gesetzt waren und es deshalb nicht gefunden wurde...). Wenn du das probierst (falls es die Option(en) gibt): Lösche vorher die "config.cache" - sonst findet er wieder nur die Hälfte.

ciao

Michael

Edit: das "./configure-script bietet das nicht an, es sicht aber nach der "GL/gl.h" - unterhalb von "/usr/include". Schau mal nach ob es das Verzeichnis und die Datei gibt, ansonsten mach mal ein "find / gl.h" und gib den (wahrscheinlich) gefundenen Pfad bei bei der Option "--x-includes=DIR" an.

PhobosUT
04.02.03, 22:06
Besten dank!
Das mit xauth hat geklappt :)
Und die Header Dateien wurden nach /usr/share/doc/packages/nv_glx/usr/include/GL installiert :ugly: Hab das gesamte GL Verzeichnis nach /usr/include kopiert und jetzt findet das configure Script OpenGL.

Naja werd' jetzt nochmal neu kompilieren und dann mal sehen ob nun die FPS stimmen.

PhobosUT
04.02.03, 22:43
Ist schon ein großer Fortschritt aber funktioniert immer noch nicht richtig :ugly: Ich hab' jetzt auf jeden Fall sehr viele Video Modi zur Auswahl von denen die meisten mit OGL gekennzeichnet sind. :D:D Aber wenn ich nun einen dieser OpenGL Modi auswähle, dann bleibt das Bild schwarz, aber er kehrt aber nach einer gewissen Zeit wieder zu dem voherigen Modus zurück. Als Fehlermeldung kommt das:

Could not set 640x480-GL video mode.

Das ist jetzt für 640x480 OGL FULL

Muss ich noch was zusätzlich einstellen, damit das funktioniert?

PhobosUT
05.02.03, 17:59
Hab' jetzt noch tuxracer ausprobiert in der Hoffnung da eine deutlichere Fehlermeldung zu erhalten. Beim Start kam das:

%%% tuxracer warning: Failed to set video mode Couldn't find matching GLX visual
*** tuxracer error: Couldn't initialize video: Couldn't find matching GLX visual (Success)

Und hier noch die Ausgabe von glxinfo (vielleicht hilft's):

name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.3
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer
client glx vendor string: NVIDIA Corporation
client glx version string: 1.3
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_SGIX_swap_group, GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_NV_float_buffer
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce2 GTS/AGP/3DNOW!
OpenGL version string: 1.4.0 NVIDIA 41.91
OpenGL extensions:
GL_ARB_imaging, GL_ARB_multitexture, GL_ARB_point_parameters,
GL_ARB_texture_compression, GL_ARB_texture_cube_map,
GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
GL_ARB_transpose_matrix, GL_ARB_vertex_program, GL_ARB_window_pos,
GL_S3_s3tc, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint,
GL_EXT_compiled_vertex_array, GL_EXT_draw_range_elements,
GL_EXT_fog_coord, GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels,
GL_EXT_paletted_texture, GL_EXT_point_parameters, GL_EXT_rescale_normal,
GL_EXT_secondary_color, GL_EXT_separate_specular_color,
GL_EXT_shared_texture_palette, GL_EXT_stencil_wrap,
GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod,
GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_vertex_array,
GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square,
GL_NV_fence, GL_NV_fog_distance, GL_NV_light_max_exponent,
GL_NV_packed_depth_stencil, GL_NV_pixel_data_range, GL_NV_point_sprite,
GL_NV_register_combiners, GL_NV_texgen_reflection,
GL_NV_texture_env_combine4, GL_NV_texture_rectangle,
GL_NV_vertex_array_range, GL_NV_vertex_array_range2, GL_NV_vertex_program,
GL_NV_vertex_program1_1, GL_NVX_ycrcb, GL_SGIS_generate_mipmap,
GL_SGIS_multitexture, GL_SGIS_texture_lod
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x21 16 tc 0 16 0 r y . 5 6 5 0 0 16 0 16 16 16 16 0 0 None
0x22 16 dc 0 16 0 r y . 5 6 5 0 0 16 0 16 16 16 16 0 0 None
0x23 16 tc 0 16 0 r . . 5 6 5 0 0 16 0 16 16 16 16 0 0 None
0x24 16 tc 0 16 0 r y . 5 6 5 0 0 0 0 16 16 16 16 0 0 None
0x25 16 tc 0 16 0 r . . 5 6 5 0 0 0 0 16 16 16 16 0 0 None
0x26 16 dc 0 16 0 r . . 5 6 5 0 0 16 0 16 16 16 16 0 0 None
0x27 16 dc 0 16 0 r y . 5 6 5 0 0 0 0 16 16 16 16 0 0 None
0x28 16 dc 0 16 0 r . . 5 6 5 0 0 0 0 16 16 16 16 0 0 None

Iggi
05.02.03, 23:24
Überprüfe bitte einmal, welche Grafikmodi in der /etc/X11/XF86Config eingetragen sind (eventuell lautet das Verzeichnis bei Dir ein wenig anders). Mit sax2 können bei Bedarf bequem weitere Modi aktiviert werden.

Iggi

PhobosUT
05.02.03, 23:55
Meine "Screen" Section sieht so aus:



Section "Screen"
DefaultDepth 24
SubSection "Display"
Depth 15
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 32
Modes "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "640x480"
EndSubSection
Device "Device[0]"
Identifier "Screen[0]"
Monitor "Monitor[0]"
EndSection

Iggi
06.02.03, 18:12
Hm, ich probier's nochmal - da die Angaben oben alle in Ordnung sein sollten, folgende Frage: Hast Du die Anweisungen auf der Seite http://home.mayn.de/comrad/?content=treiber_nvidia ganz unten befolgt (Abschnitt "SuSE spezifische Installation")?

Ich habe selber keine Nvidia-Karte, deswegen kann ich Dir mit der Konfiguration wahrscheinlich auch nicht recht viel weiter helfen...

PhobosUT
06.02.03, 19:48
Danke, das hat was gebracht!
Das einzige was switch2nvidia noch gemacht hat, ist ein paar devices angelegt. Wenn ich ich in /dev ls -l nvidia* eingeben kommt nun folgendes:

crw-rw-rw- 1 root video 195, 0 Okt 25 2001 nvidia0
crw-rw-rw- 1 root video 195, 0 Okt 25 2001 nvidia00
crw-rw-rw- 1 root video 195, 1 Okt 25 2001 nvidia01
crw-rw-rw- 1 root video 195, 2 Okt 25 2001 nvidia02
crw-rw-rw- 1 root video 195, 3 Okt 25 2001 nvidia03
crw-rw-rw- 1 root video 195, 1 Okt 25 2001 nvidia1
crw-rw-rw- 1 root video 195, 2 Okt 25 2001 nvidia2
crw-rw-rw- 1 root video 195, 3 Okt 25 2001 nvidia3
crw-rw-rw- 1 root video 195, 255 Okt 25 2001 nvidiactl

tuxracer funktioniert jetzt auch :D:D:D Aber Zsnes noch nicht :ugly: Da kommt der altbekannte Fehler. Könnte es sein, dass Zsnes auf ein Device zugreift, welches bei mir nicht existiert. Und tuxracer könnte ja funktionieren, weil es unter anderem nach diesen nividia devices sucht. Das würde erklären warum tuxracer jetzt läuft und vorher nicht.

Weiß jemand auf welches Device Zsnes für OpenGL zugreift? Vielleicht kann man das durch einen Link beheben.

PhobosUT
07.02.03, 13:39
Ich hab's geschafft :D:D:D:D
Das Problem war, dass SDL, welches von zsnes benötigt wird, compiliert wurde als noch kein OpenGL verfügbar war. Demnach wurde keine OpenGL Unterstützung in die Library mit einkompiliert. Ist mir heute so spontan eingefallen, als ich den Begriff SDL gelesen hab' :)
Uns Zsnes läuft jetzt unter Linux genauso flott wie unter Windows. Die FPS fallen nie unter 60 :D

Naja, nochmals besten danke für die ganze Hilfe!!!