Hallo Besucher, der Thread wurde 18k mal aufgerufen und enthält 130 Antworten

letzter Beitrag von angryking am

VICE 3.x experimental Gtk3 threaded-UI build

  • syshack Der Grundsatz "jeder hat ein Recht auf seine Meinung" ist gut und richtig, bezieht sich aber auf Themen, bei denen es keine objektive Wahrheit gibt, wie die Klassiker Politik und Religion, oder auch Geschmacksfragen und Vorlieben. Ihn darüberhinaus ausdehnen zu wollen ist völlig absurd und führt nur zu Verwirrung, Verbreitung falscher Informationen, und wie bei diesem Thema zu sehen war sogar zu üblen Beschimpfungen. Es ist zwar völlig ok, auch Vermutungen zu äußern – wenn einem dann aber jemand, der sich mit dem Thema etwas besser auskennt, sagt, dass die Vermutung falsch ist, wäre es an der Zeit, es "gut sein" zu lassen.


    Hier muss ich aber nochmal einhaken, weil man einfach bei der Wahrheit bleiben muss im Punkte dessen, was damals die eigentliche Frage war, die den Streit im VICE V3.4 Thread über GTK ausgelöst hatte.


    Es ging damals einzig und allein, was auch jeder dort nachlesen kann, um die Frage, ob diese Ruckelproblematik wie sie in der GTK3VICE Version auftrat (und eben nicht in der nativen WinVICE und der SDL2VICE Version), etwas mit dem dort verwendeten GTK zutun haben könnte oder eben nicht. Genau darum ging die Diskussion damals, die dann zugegebenermaßen etwas aus dem Ruder lief.


    Es wurde von deiner Seite immer vollkommen verneint, dass GTK hier am Problem mit beteiligt ist. Jeder hat jedoch das Recht seine Meinung zu äussern, ob er nun selbst Programmierer oder Spezialist in Sachen Thema GTK ist, was dabei letztendlich vollkommen zweitranging ist. Ich war anderer Meinung und vermutete eine Beteiligung GTK's an dieser Problematik, da diese eben nicht in der SDL2 VICE Version auftrat.


    Liest man sich jetzt etwa dies hier durch:

    The Gtk/Gnome team weren't exactly helpful, as you can read above. Seems we tend to do what the Gnome devs say not to do, or at least don't want to think about.

    (übersetzt: Das GTK/Gnome Team war hier nicht wirklich behilflich, wie du oben lesen kannst. Scheint, wir neigen dazu, das zu tun, von dem die Gnome Entwickler vorschlagen, es besser nicht zu tun und nichtmal darüber nachdenken wollen. (um es hinzubekommen, um den Zusammenhang zum weiteren Text herzustellen))


    oder das:


    GTK is much slower than native UI toolkits which is why some of these problems got worse - but any single threaded code base is going to have these sorts of problems at some level. The architecture was to blame, not GTK, which isn't to say that GTK didn't or doesn't have inherent problems as well.

    (übersetzt: GTK ist viel langsamer als native UI Toolkits, was verursacht hat, das einige dieser Probleme schlimmer wurden - aber jede Anwendung mit einem einzelnen Thread wird auf einer bestimmten Ebene solche Probleme haben. Die Architektur war schuld, nicht GTK, was aber nicht heissen soll, dass GTK nicht auch eigene Probleme hat)



    Das sagt für mich ganz klar aus - der Code von GTK war zwar nicht ursächlich für dieses Problem, doch die Ruckelprobleme die es damals gab, hatten sehr wohl mit GTK und der Art wie es funktioniert, zu tun. Man musste nun komplett neue Wege gehen um das mit GTK gut hinzubekommen, Wege die nichtmal vom GTK Team selbst empfohlen wurden, welches auch einige der dafür erstellten Patches nicht annehmen wollte.



    Und vor dem Hintergrund dieser Ausagen stelle ich nun die damalige Frage in genau derselben Form nochmals. Hatte GTK damals mit der Ruckelproblematik etwas zu tun, ja oder nein? Das kann man sich nun, wenn man ehrlich bleibt, selbst recht einfach beantworten. Es hatte.


    Somit war die damalige Diskussion durchaus gerechtfertigt und es ist keinesfalls so, dass immer nur Programmierer in Foren das Recht haben, sich zu bestimmten Sachen zu äussern. Wäre das so, würden Foren recht schnell zu reinen Nerd-Kammern werden, in denen sich sicher viele Leute welche ihr Retro-Computing als Hobby betreiben, nicht mehr wirklich zuhause fühlen würden. Das Recht seine Meinung und seine Vermutungen zu äussern, ist für alle Leute erlaubt, schließlich ist hier nicht Nordkorea, wo man dafür im Knast landen kann. Will man dann, dass solche Diskussionen einigermaßen sachlich bleiben, ist es nicht gerade hilfreich, dem Gegenüber, egal wer es nun ist, ständig vollkommene Ahnungslosigkeit an den Kopf zu werfen, nur weil dieses eine andere Meinung vertritt als man selbst. Dass da dann schlechte Stimmung entsteht und der andere dann ebenfalls zu härteren Bandagen in der Tonart greift, ist nachvollziehbar. Was nicht heissen soll, dass ich nicht genauso öfter mal über's Ziel hinausschiesse, wenn das Temperament mit einem durchgeht, da war auch nicht alles in Ordnung im Nachhinein gesehen. Aber ich käme nie auf die Idee, anderen Leuten ihre Meinungen/Vermutungen verbieten zu wollen. Man muss sich mit unterschiedlichen Meinungen nunmal auseinandersetzen, das ist im Forum so wie im echten Leben, auch wenn es dabei schwierig ist, immer freundlich zu bleiben (fällt mir auch schwer) wenn man merkt, dass das Gegenüber immernoch nicht überzeugt ist vom dem, was man selbst vertritt und ihm doch nun mehrfach erzählt hat.


    how it could work normally on some Windows-machines even before that update here, cause some people always said, that they had no stutter-problem. They had newer and stronger PC hardware then and don't ran into that problem, or how could that be?

    As for me, I only tried on a (rather modern and powerful) Surface book, so this assumption is probably correct. From what was written here, VICE has always been single-threaded, and GTK hogs the CPU for rendering the GUI more on Windows than it does e.g. on Linux, so it just comes down to how fast a single Core on your machine is. If it's fast enough that the "stalls" introduced by GUI code via GTK are short enough not to affect the emulation, it will work fine. When you have a timing-critical job (like emulating a machine) to do, it's always the wrong design to do it in the same thread as something interactive like a GUI, but multi-threading is much more complex and hard to get correct (especially in C), so, a lot of complex work was done here :thumbup:. The fact that GTK rendering is faster on Linux (or, probably, on systems with X11 backend, which includes e.g. BSDs) lead to the fact that on the same hardware, VICE seemed to work fine on Linux, but maybe not on Windows.

    Möglich, dass es daran liegt. Verwunderlich nur, dass ich die älteren GTK3-VICE Versionen auch mal bei einem meiner Freunde am Rechner testete, dessen PC wirklich das Neueste vom Neuen ist, was Prozessor, Grafikkarte und Monitor betrifft, der aber ebenfalls damals genau diese Ruckelproblematik hatte, wie ich auf meinem schon etwas älteren System. Da hatten wir uns beide damals stark gewundert, wie das sein kann. Aber okay, letztendlich ist diese Ruckelproblematik nun glücklicherweise Geschichte auf Windows Rechnern und diese Versionen sind endlich richtig nutzbar.


    Dem stimme ich uneingeschränkt zu, auch wenn natürlich ich selbst ebenfalls angesprochen bin. Mir ist klar, dass manchmal mein Temperament auch hochkommt, wenn es vielleicht eigentlich besser wäre, ruhig zu bleiben. Das ist nicht immer leicht, denn Menschen sind nunmal verschieden. Ich finde, die Mods hier machen grundsätzlich einen guten Job, weil sie manchmal auch Dinge etwas laufenlassen bevor sie erst eingreifen, was nicht schlecht ist. Es wird zumeist immer erst dann eingegriffen, wenn es dann richtig zur Sache geht und Diskussionen letztendlich dann sinnlos werden. Aber ich finde das so eine gute Herangehensweise, denn im echten Leben kann man auch nicht immer jeder Auseinandersetzung aus dem Wege gehen.


    Aus einigen anderen Foren kennt man das anders, da werden teils schon Sperren angedroht, wenn man einmal bei einem Thema eine andere Meinung vertritt, als die der dortigen Mehrheit, vollkommen egal um was es jetzt auch geht. Oder auch, wenn man einmal in leicht genervten Ton etwas schreibt, wird man abgemahnt. Sowas finde ich verheerend, das Leben ist nunmal auch kein Wattebausch und auch weil man merkt, dass Leute damit mundtot gemacht werden sollen in solchen Foren, wenn sie mit ihrer Meinung mal nicht dem Mainstream entsprechen. Etwas in dieser Art gibt es hier aber überhaupt nicht, was ich sehr gut finde. Generell ist es doch zu begrüßen, in einem Land Leute zu haben, die ihre Meinung äussern und keine auf Linie gebrachten System-Affen.


    Hier im Forum wird grundätzlich wirklich viel laufengelassen solange es einigermaßen im Rahmen bleibt und das begrüsse ich sehr. Dass man aber nicht immer alles laufenlassen kann als "Mod", ist auch nachvollziehbar. Ich kenne ein Forum, das wirklich daran kaputtging, dass sinnlose Diskussionen, in die sich mit der Zeit immer mehr und mehr User dort einmischten, nicht irgendwann unterbunden wurden. Spätestens als dann das Thema Politik noch mit in die Diskussion hineinkam, wäre das notwendig gewesen, fand aber nicht statt und die Mods dort sahen mehr oder weniger nur zu. Das Ende vom Lied war, dass alle Mitglieder dieses Forums irgendwann total zerstritten waren und sich zwei Lager bildeten, die dann letztendlich der Sargnagel dieses Forums waren. (Namen des Forums willl ich jetzt hier nicht öffentlich nennen, aber wer ihn wissen will, kann mir eine PM schreiben, dann erfährt er ihn - das nur zur Info)





    Wie ich eben mitbekam wurde "Zirias" gesperrt. Eine Sperre für "Zirias" war hier jetzt, meiner Meinung nach, nicht notwendig. Ich finde, alles war im Rahmen.

  • Dass Du Zirias sperrst, um eine "Diskussion zu beenden", ist leider genau das Verhalten, das Zirias oben - zu Recht - bemängelt.

    Das ist Deine Meinung (und die derer die Deinen Post geliked haben) - und die lasse ich Dir (Euch) auch.
    Sehe ich aber komplett anders:

    Das Ganze ist eh komplett offtopic hier, damit fängt es an. Dann wird sich zig mal dasselbe an den Kopf geworfen - was eine sicherlich nicht kleine Anzahl User hier nervt - eben WEIL es offtopic ist.
    Dann wird es von einem Mod angesprochen. Daraufhin wird zurückgeschossen.
    Dann bekommt es derjenige nochmal - freundlich - gesagt. Und es wird wieder weiter diskutiert. Und dann wird noch eine Diskussion darüber begonnen, wie man was zu werten habe. Das wäre die zweite völlige Offtopic-Diskussion hier geworden - ich glaube, das wäre exakt genau so gekommen, wenn ich entsprechend darauf eingegangen wäre.


    Deswegen: wenn Du der Meinung bist, dieser Ablauf würde das bestätigen, was Zirias bemängelt, gut. Ich sehe es so, dass schlicht und ergreifend "deutlich hingewiesen" wurde. Wenn dann auf Teufel komm raus weiter diskutiert wird, ist der Ofen irgendwann aus. Das ist meine Meinung. Und unsere Meinungen müssen sich ja nicht decken. :)


    Ich gehe davon aus, dass gleich das Argument kommt: "In den NUBs steht aber, dass den Anweisungen der Mods Folge zu leisten ist" - hier wurden aber keine Anweisungen gegeben, denen nicht Folge geleistet wurde.

    Das finde ich jetzt etwas rosinenzählerisch. Wenn jemand freundlich darauf hingewiesen wird, jetzt doch mal bitte endlich mal entspannt durch die Hose zu atmen, dann ist das keine "Anweisung", sondern eine freundliche Bitte. Sollte eigentlich jeder verstehen - finde ich(!).
    Ich möchte mal erleben, wenn hier ein Mod oder Admin wirklich eine ANWEISUNG geben würde... was dann hier los wäre. :D


    Würden Mods bei Kritik - sowohl an sich selbst als auch an anderen Moderatoren - nicht immer gleich den unerträglichen Korpsgeist auspacken, würden solche Konflikte deutlich weniger ausarten.

    "immer gleich"? Hierzu hätte ich gerne noch ein paar Beispiele... denn im Gegenteil kämpfen hier die Leute ihre Angelegenheiten eigentlich immer alleine aus. Lasse mich gerne vom Gegenteil überzeigen.

    Und im Gegenteil (wieder: meine Meinung!) arten solche Konflikte nach Eingriff durch die Mods auch nicht aus.


    Das waren meine zwei Cents zur Sache. Da habe ich jetzt auch genug Offtopic produziert .... :D

  • I have tried around for about two hours today with the latest GTK3VICE by testing different software (demos/tools/games) and different settings. Really good work "dqh-", the effort you put in to fix the problem, paid off. Good work!

    Thanks :) It's very satisfying to make a meaningful contribution to this project that spans decades.

  • Lipti

    Wie ist denn mit Deiner Version der aktuelle Stand der Dinge?

    Was hast Du denn gefixed, damit Deine Version nicht mehr diese Probleme hat?


    Wäre sehr interessant zu wissen und wäre auch schön, wenn Du Deine "Proof Of Concept"-Version veröffentlichen könntest.

    Hatte mich die letzten Monate nicht mehr mit diesem Teil des Hobbys beschäftigt (viel beruflich zu tun und ansonsten anderen Hobbys nachgegangen).


    Macht das nach der Veröffentlichung von Angrykings Version überhaupt noch Sinn, wenn ich da Arbeit rein investiere? Wenn ich den Thread richtig deute, scheint die GTK-VICE-Version auch geschmeidiger unter Windows geworden zu sein?


    Hätte ich mehr Zeit für andere Hobby-Themen, auch nicht schlecht :-)

  • AW182 By the way, I have been working on the macOS version of the new rendering architecture and hacked together support for PAL / NTSC to 60 fps options to test whether I get perfectly smooth Giana Sisters scrolling (Yes :) ).



    Okay, interesting. Then the PAL game runs a little bit to fast of course, right? One question here - is there a chance, to give the users of the GTK3 Windows-version a possibility, to switch from the normal emulation-speed (50,125Hz) to 99,75% custom-speed, which would mean 50,000Hz and which could maybe improve the scrolling on some types of monitors, the ones which can't do things like "freesync" for example and on which still is one stutter in certain intervals? On mine for example is one about every 30 seconds, the rest scrolls totally smooth now. I guess, this one stutter could be wiped out, when 50,000Hz would be used for the emulated C64? The patch from "Lipti" could be included as a switchable option for example, which can be turned On and Off in the GTK version, like the user wants it. Look for example here, on this native WinVICE version, which has this patch and runs in 50,000Hz by default now:


    Wo finde ich beim VICE Emulator Infos zu den "experimental binaries", bzw was in welcher Version geändert wurde?


    In this version, i have totally smooth scrolling and these soundproblem, which the native WinVICE versions had under 50Hz resolutions, is gone. This soundproblem is gone in the GTK3-version anyway, but I think this patch maybe could be a senseful bonus-feature also when it comes to the scrolling, when users then could decide by their own, in which Hz-value they want to run the emulation, especially when it could improve the scrolling on some monitors? On some screens maybe 50,000Hz could improve scrolling, on others 50,125Hz is better. When the user could choose, both would be possible. Until now, only integer values are possible in the custom-speed field for example and therefore 50,000Hz can not be chosen exactly. "Lipti's Patch", respectively a possibility, to let the emulation run exactly in 50Hz, could be senseful. It could be made as a new click-option called "use 50,000Hz mode" in the VICE speed-settings for example. What you think?

  • Yeah, by the time you wrote I had already replaced this with something that lets you choose to target 60 or 50 Hz, regardless of the machine. A better solution would be an option to sync the emulator to the exact sync rate of the monitor, however this will require moving a few things around or per-platform code to query the exact refresh rate. This thing is just a quick hack for now but i'll at least leave it in the test builds pending discussion with the other VICE devs.


    I can't imagine VICE will ever be anything other than attempting to accurately match the real hardware, by default. But there is of course room for projects of all kinds :)


  • As it happens it was simple enough to make it support custom fps. Unfortunately due to it still being a bit of a hack, it's limited to whole number values for now. But I think good enough for the sensible cases.


    Looks good!!! Will be interesting to test how this works on my monitor, when i choose "50FPS (50,00Hz) 99,75% speed" with this function when it's included in a compiled version. A "sync to monitor" function is the next good alternative-function and exactly what i also suggested for "Lipti's" WinVICE Plus version as an additional feature for the future. Then users would have everything and could choose between different functions to test, what runs best on their certain hardware. One possibility will work good on everybodys hardware then i am sure, either syncing to monitor, or let the emulation run with 50,125Hz or with 50,000Hz.

  • Updated Windows builds ...


    64 bit: https://sourceforge.net/projec…-ui-20200609.zip/download

    32 bit: https://sourceforge.net/projec…-ui-20200609.zip/download


    Mac and linux users can now build this version from the threaded-ui-exp branch of my repo: https://github.com/dqh-github/…ents/tree/threaded-ui-exp . I'll post some macOS binaries soon but for now it appears that the bindist script has a new problem with it.

    Mac users will need to be using an older version of Xcode than the latest - right now we require OpenGL which is missing from the latest SDK. Metal renderer will be implemented soon unless I find another way to target the older SDK for a command line build - I haven't focused on it yet as I still run macOS 10.14.

    The Linux support for the new rendering architecture is very early, however it works on Ubuntu 20.04 X11 & Wayland for me. Environments without OpenGL 3.2 or newer won't work currently as I have not migrated our legacy profile OpenGL code to the new architecture yet.

  • Nice, the quit emulator option finally works properly in Windows 10. The X64(sc).exe isn't listed in the Taskmanager anymore.

    Yeah, that deadlock occurred on all platforms when using the File->Exit or the shortcut for that, rather than the close window button. Whoops. Anyway simple to fix once I could replicate it.