![]() |
ENGLISH VERSION |
|
![]() |
Links | | | Forum | | | Kommentare | | | News melden |
![]() |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
![]() |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
whose
Nutzer
22.02.2007, 22:07 Uhr [ - Direktlink - ] |
Thema: Verkabelungen?!
Brett: Amiga, AmigaOS 4 Zitat: Du versuchst nicht zufällig, eine 2,5"-Platte zusammen mit anderen Geräten an dem 3,5"-Anschluß in nächster Nähe zum 2,5"-Anschluß zu betreiben? Wenn ja, änder das mal besser. Die anderen Geräte solltest Du dann an den zweiten 3,5"-Port hängen (also der, der am weitesten von dem 2,5"-Anschluß weg ist). Bei dem 3,5"-Anschluß nahe dem 2,5"-Anschluß handelt es sich um eine Parallelschaltung. Das heißt, dort kannst Du nur dann Geräte problemlos anschließen, wenn der 2,5"-Anschluß unbelegt ist. Hast Du da schon eine 2,5"-Platte dran, mußt Du den anderen 3,5"-Anschluß für weitere Geräte benutzen. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
22.02.2007, 12:13 Uhr [ - Direktlink - ] |
Thema: Verkabelungen?!
Brett: Amiga, AmigaOS 4 @noizejunk: Da müßte ein 44poliger Anschluß für 2,5"-Festplatten drauf sein. Der 40polige Port, der diesem Anschluß am nächsten liegt, ist der Primary. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
22.02.2007, 11:28 Uhr [ - Direktlink - ] |
Thema: Workbench ohne Maus nutzen?!
Brett: Amiga, AmigaOS 4 @pinguin: Wenn Du die linke Amiga-Taste gedrückt hältst und dann die Cursor-Tasten benutzt, kannst Du den Mauszeiger bewegen. Für die Maustasten hältst Du die linke Amiga-Taste gedrückt und mit der linken oder rechten Alt-Taste erreichst Du die Funktionen der beiden Mausknöpfe. Wirklich Spaß macht das aber nicht, versuch besser, so schnell wie möglich eine Maus zu bekommen ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
22.02.2007, 02:46 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung @Holger: Im Moment streiten wir uns irgendwie recht sinnlos über Dinge, die beim Thema nicht weiterhelfen. Daß ein LockBitMap() Der_Wanderer nicht besonders weit bringt, haben wir doch schon längst festgestellt. Sogar ich habe das erwähnt. Zum Thema "ins Fast RAM kopieren" hat auch Georg etwas gesagt. Der Sinn von WritePixelArray() steht außer Frage, ich benutze es selbst, wenn ich mit Hilfe der CPU Bitmaps bearbeite und diese dann zur Grafikkarte übertragen muß. Einfacher und sicherer gehts kaum. Zu der CV64 kann ich recht wenig sagen, ich kenne die Karte kaum und alles, was ich dazu geschrieben habe, ist (teilweise unsichtbar) mit "meines Wissens" untertitelt. Es ist gut möglich, daß die tatsächlich eine Formatkonvertierung in Hardware durchführen konnte, eine Art Overlay vielleicht. Ich habe halt dunkel in Erinnerung, daß für diese Zwecke eigentlich der Roxxler vorgesehen war. Obs 100% stimmt, weiß ich nicht. Ich kann aber gern nochmal in den alten Zeitschriften nachschlagen, wenn ich dran denke. Absichtlichen Ringtausch der ausgelagerten Bitmaps habe ich in Zweifel gezogen. Hast Du denn dazu noch eine Idee? Ich mein, klingt das denn plausibel für Dich? Wenn ja, wie würdest Du Dir so ein Vorgehen erklären? Ich z.B. tendiere eher dazu, das mit "Fragmentierung" des VRAMs bei zu vielen, kleinen Bitmaps zu erklären, also, daß es in Wirklichkeit kein Ringtausch ist, sondern eine unglücklich Reihenfolge bei der Nutzung der Bitmaps, die P96/CGFX zum ständigen Austausch aller möglichen Bitmaps zwingt. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
21.02.2007, 16:56 Uhr [ - Direktlink - ] |
Thema: Anfängerfrage: Wie linke ich eine .a Datei ?
Brett: Programmierung Zitat: Ähem, nicht böse sein, aber die Suche im Forum ergibt exakt einen Treffer bei "libnix AND libauto". Und genau diesen Thread habe ich z.B. nicht mitbekommen. Also nix x-mal... Zitat: Ok, und ich hatte verpennt, nochmal darauf hinzuweisen. Wie gesagt, mein Versäumnis. Zitat:Zitat:Nix Gefahr, solche Automatismen greifen nicht (ohne weiteres) in einer shared library. Kannst Du das evtl. mal näher erläutern? Also, wie die Automatismen funktionieren und aus welchen Gründen die in Amiga shared-Libraries nicht greifen? Auch auf die Gefahr hin, daß Du Dich da wiederholen mußt? Wenn ich da mal offen sprechen darf, genau diese Informationen sind nur sehr schwer (wenn überhaupt) zu finden, wenn man sich die einschlägigen Dokumentationen ansieht... Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
21.02.2007, 13:39 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung Zitat: Nur die Harten komm' in' Garten ![]() Zitat: Flackern oder Durchlauf? Ich wollt Dir sowieso mal ein kleines Programm schicken, das mit ChangeScreenBuffer() arbeitet und auf dem WinUAE sowie OS4 recht ordentlich aussieht. Ich hoffe, ich denke heut Nachmittag dran. Zitat: Das ist normal ![]() Zitat: Jup, damit arbeite ich auch. Im Fenster recht schnell, egal, in welcher Farbtiefe. Nur mit maskiertem Blit muß man höllisch aufpassen, habe ich gemerkt. Da sind Offscreen-Bitmaps in Objektgröße immer von Vorteil, aus denen heraus man nach dem Mask-Blit ins sichtbare Bild blittet. Da dürften sich wohl evtl. auftretende Offsets (also abseits von jeweils vollen 16 Pixeln) unangenehm bemerkbar machen... Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
21.02.2007, 13:10 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung Zitat: Kein Problem. Zitat: Doch, wenn man die Technik darunter nicht vernachlässigt. Im Fall von Grafikkarten und deren allgemein durchgesetztem Aufbau ist es eben nicht wurscht, ob die CPU über den Bus relativ langsam auf Teile der Bitmap im VRAM zugreift oder zuvor genauso relativ langsam aus dem VRAM diese Bitmap komplett ins Fast RAM kopiert, die kleinen Änderungen durchführt und dann den ganzen Käse mit etwas weniger Aufwand wieder zurückschiebt. Direkt ändern ist da sinnvoller. Zitat:Zitat:Gewiss doch interessant, aber daraus ergibt sich ja keine Lösung. Deshalb ist mir nicht klar, warum Du an dieser Stelle darauf hinweisen musstest. Wenn er eine Lösung hätte, hätte er vermutlich nicht gefragt. Eine Notlösung habe ich angeboten. Und durch seine Frage wieder etwas mehr über das Verhalten von GraKas erfahren, was mir irgendwann sicher von Nutzen ist. Deshalb habe ich das erwähnt. Zitat: Inwiefern? Wegen dem mutmaßlichen Ringtausch (an den ich nicht so ganz glaube, weil auch das keinen Sinn ergäbe) oder weil es durch die CPU zu bearbeitende Bitmaps nicht ins Fast RAM kopiert? Zitat: Bedenke, diese Routinen nutzen oft genug bestimmte Voraussetzungen, die nicht überall gegeben sein müssen. Die WritePixelArray()-Implementation ist schon recht flott. Bei den RGB-Varianten kann man sicher darüber streiten (wurde meines Wissens auch oft getan), aber gar so grottig sind auch die nicht. Zitat: Gabs den Roxxler denn überhaupt? Soweit ich mich erinnern kann, war der angekündigt, kam aber nie. Eine blanke CV64 kann das meines Wissens nach nicht. Ansonsten bleibt nur noch Akiko im CD32. Zitat: Mögliche Kandidaten sind nur reine Zorro3-Karten, alle anderen würden auf den meisten Zorro-Busboards ihren Dienst versagen. Von den beiden reinen Z3-Karten, die es gibt (CV64 und RetinaBLT Z3) weiß ich, daß sie dazu nicht fähig sind. Die C/BVisionPPC muß man dabei außen vor lassen, da ist es schwer von außen feststellbar, ob die DMA-Fähigkeiten betreffs des Mini-PCI-Busses auf der CS/Blizzard-PPC haben. Ich denke aber, daß das nicht der Fall ist. Ist DMA denn bei PC-Grafikkarten üblich? @Der_Wanderer: Bevor ichs vergesse: Hast Du einmal darüber nachgedacht, "unwichtige" kleine Bitmaps im Fast RAM zu halten (mehrere, wenns geht), Dir einen Platz im VRAM für EINE dieser Bitmaps zu sichern (halbwegs, garantiert ist das ja nie) und die Bitmaps bei Bedarf mittels WritePixelArray() in diesen Platz im VRAM zu schieben, bevor sie geblittet werden (oder direkt an ihren Platz zu kopieren)? Je weniger kleine und kleinste Bitmaps Du im VRAM "zwischenlagerst", auch wenn sie nicht gebraucht werden, desto geringer wird die Wahrscheinlichkeit für eine Auslagerung "im Ringtausch" (wie gesagt, an den Ringtausch glaube ich nicht so ganz. Eher an ein Fragmentierungsproblem). Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
21.02.2007, 12:45 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung Zitat: Ja, das kenne ich auch. Was auf dem WinUAE oder OS4 sehr flott läuft, kann auf dem Classic schon wieder ordentlich haken. Und umgekehrt (bizarr, aber hatte ich auch schon). Gibt halt ne Menge zu beachten und abzuwägen dabei. Aber in den meisten Fällen klappts ganz gut mit GraKa. Zitat: Naja, viele setzen AmiBlitz vermutlich nicht ein, daher dürfte das kommen. Ein Blick in Deine Includes könnte vielen C-Proggern aber den einen oder anderen Tipp geben, wie man ein halbwegs flottes Spiel für GraKa programmiert. Was kam eigentlich bei Deinen Versuchen in Sachen Doublebuffering mit ChangeVPBitMap() und ChangeScreenBuffer() heraus? Zitat: Meist ist 320 * 200 schon kaum noch zu ertragen. Zitat: Das kam durch eine mehr theoretische Betrachtung des Fast RAM-Themas. Wenn das Programm genau aufs Bitmap-Format zugeschnitten rendert, bringt WritePixelArray() keine Vorteile, weil es dann auch nur zu einem CopyMem() führt. Nachteil ist halt, daß noch ein Einsprung mehr nötig ist. Es spielt erst dann seine Stärken aus, wenn man eben nicht direkt für die betreffende Bitmap berechnet und WritePixelArray() zur Wandlung nutzt. Allgemein ist das auch der schlauere Weg, den man auf jeden Fall nutzen sollte. Der winzige Nachteil bei direkt passendem Format der Bitmap ist da absolut vernachlässigbar. Die Hardware-Unterstützung würde sich, sofern die Hardware vorhanden ist, vor allem bei c2p-Konvertierung bemerkbar machen, aber selbst dafür gibt es inzwischen Software-Lösungen, die die Geschwindigkeit des Akiko erreichen (auf der gleichen Maschine) oder manchmal sogar übertreffen. Hardware für die Wandlung von Chunky-Formaten gabs ja nie (war da nicht mal was für die CV64 vorgesehen? Roxxler hieß das Ding, glaube ich). Streng betrachtet braucht das auch kaum noch jemand, es sei denn, er programmiert direkt für ECS/AGA und rendert im Chunky-Format (Voxelspace-Klamotten fallen mir da auf Anhieb ein). Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 23:42 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung Zitat: Hm, eigentlich warst Du es ja, der "landet im Fast RAM" quasi wie ein Gesetz propagiert hat ![]() Aber die ganze Diskussion, und welches Ergebnis die letztendlich hat, hilft beim Thema relativ wenig weiter. Ein Lock auf die Bitmap nützt ihm halt nichts, weil er mit höchster Wahrscheinlichkeit BltBitMapRastPort() o.Ä. einsetzt, von deren Verwendung generell abgeraten wird. Soweit sind wir immerhin schon mal. Zitat: So pauschal kann man das eigentlich nicht sagen. Wenn die Berechnungen einem üblichen Chunky-Format abgepaßt sind, ist der Weg über WritePixelArray & Co. in fast allen Fällen etwas bis einiges ineffizienter. Aber einfacher zu handhaben, weil man sich halt nicht weiter um das Format der Display-Bitmap kümmern muß, was ja durchaus eine Menge Sinn hat. Zitat:Zitat:In welcher Hinsicht? Was willst Du damit sagen? Das er sich für z.B. AsteroidsTR sehr eingehend mit dem Thema "Grafikkarten und deren Geschwindigkeit" auseinandergesetzt hat. Und wenn Du Dir das Ergebnis anschaust, sagst Du vielleicht, genau wie ich: "Wow!" Also, wenn er etwas zu dem Thema sagt oder fragt, lese ich schon recht aufmerksam mit. Es ist fast immer etwas dabei, was mir bei meinen Vorhaben helfen kann. So auch die Sache mit der Auslagerei der Bitmaps. Bisher habe ich die Auswirkungen davon zwar nicht direkt zu spüren bekommen, aber Gedanken habe ich mir darüber schon gemacht. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 21:26 Uhr [ - Direktlink - ] |
Thema: Anfängerfrage: Wie linke ich eine .a Datei ?
Brett: Programmierung Zitat: Äh, zum Thema Standard-C-Lib-Funktionen und Amiga-Shared-Libraries habt ihr doch schon einiges gesagt. Und Der_Wanderer scheint mit dem GCC noch nicht richtig klarzukommen. Nachher fragt er bei einem ganz normalen Programm nochmal nach, wie man diese Referenzen auflöst. Da kann man doch mal erwähnen, daß er die meisten dieser Referenzen per -lauto "erschlagen" kann, wenn er die Libbases nicht von Hand deklarieren und initialisieren will? Das ich auf die Gefahr dieser Lösung bei Amiga-Shared-Libs nicht eingegangen bin, war aber mein Versäumnis. Verzeihung. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 21:16 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung Zitat: Hm, ich denke mal, diese Möglichkeit hat durchaus ihren Sinn, sonst wäre sie nicht bei den "öffentlichen" Funktionen aufgeführt. Über die Ratsamkeit kann man in einigen Fällen sicherlich prima streiten und ich bestreite gar nicht, daß es Grafikkarten geben mag, die ohne Transfer der Daten ins Fast RAM gar nicht klarkommen. Mir persönlich ist eine solche aber nie untergekommen. Gehört habe ich mal von einer GraKa, die Zorro-Zugriffe auch über ein 64K-"Fenster" abwickeln kann (PicassoII?), um u.A. verträglicher mit Turbokarten in Z2-Systemen zu sein. Das ändert aber nichts daran, daß ein kompletter Transfer ins Fast RAM und zurück das ineffizienteste ist, was man sich vorstellen kann. Grafikkarten für den Amiga unterstützen seltenst DMA-Zugriffe ![]() Was ich z.B. bemerkt habe ist ein ziemlich lahmer Lesezugriff über den Zorro-Bus bei verschiedenen Grafikkarten. Und ein recht fixer Schreibzugriff z.B. auf die CVisionPPC, sofern man selbst eine "Kopie" der zu bearbeitenden Bitmap im Fast RAM hält und diese dann mittels z.B. CopyMem() ins Video-RAM transferiert. So arbeiten übrigens viele der Ego-Shooter-Ports. Und die sind sogar so nett, vor dem CopyMem() die Bitmap zu locken, damit sie an die Adresse herankommen. Wo wäre der Sinn dieser Vorgehensweise (eine Extra-Bitmap im FastRAM zusammenbasteln und diese dann an die Adresse zu kopieren, die der Lock ergibt), wenn sie (die Bitmap) nach einem Lock doch eh schon im Fast RAM zu finden ist? Ich weiß ehrlich gesagt nicht, ob es klug ist, zu sagen "das ist nirgendwo spezifiziert, aber gelockte Bitmaps liegen dann im Fast RAM". Da wäre es klüger zu sagen: "Locks nützen Dir nicht viel, es sei denn, Du willst die Heidenarbeit auf Dich nehmen, alle nur denkbaren Pixelformate zu unterstützen und noch dazu statt des Blitters auf die vergleichsweise langsame CPU setzen". Und bei Der_Wanderer gehe ich davon aus, daß er ein bißchen mehr Durchblick beim Thema hat. Seine Projekte sprechen da eigentlich eine recht deutliche Sprache. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 20:13 Uhr [ - Direktlink - ] |
Thema: Anfängerfrage: Wie linke ich eine .a Datei ?
Brett: Programmierung @Der_Wanderer: Uff, wie war das nochmal? "-lm" dürfte die Referenzen zu pow etc. auflösen. Wie Du an die DOSBase kommst, müßtest Du eigentlich wissen ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 15:17 Uhr [ - Direktlink - ] |
Thema: Anfängerfrage: Wie linke ich eine .a Datei ?
Brett: Programmierung Zitat: Ah, ok ![]() Zitat:Zitat:Eventuell lag es an fdopen, das ist keine ANSI/ISO Funktion. Jap, das wars. @Der_Wanderer: Für malloc() und Konsorten muß ich hier (vbcc) z.B. nur mit der vc.lib linken, darin sind die Funktionen der Standard-Bibliothek. Beim GCC weiß ich das gar nicht so genau, weil ich den nur extrem selten via Shell eingesetzt habe. Könnte aber libgcc oder so sein, da weiß gni aber wesentlich mehr drüber ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 15:03 Uhr [ - Direktlink - ] |
Thema: Anfängerfrage: Wie linke ich eine .a Datei ?
Brett: Programmierung Zitat: Hmm auch fopen()? Ich frage so dumm, weil ich mich wirklich nur dunkel erinnere... ich hatte die zlib vor ein paar Wochen "mal eben" für den vbcc präpariert und mußte mir dann noch die posixlib besorgen, weil ich eben nicht fertig linken konnte. Und ich meine, das Problem wäre fopen & Co. gewesen. Kann aber auch gut sein, daß ich das falsch in Erinnerung habe. Ich habe mit diesen Funktionen eher selten zu tun. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 14:51 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung Zitat: Ja, das ist dann natürlich nicht ganz einfach und für manche Grafikaufbauten sicher auch enorm unpraktisch. Wenn Du allerdings feste Positionen in Deinem Aufbau der Grafik ausmachen kannst, böten die sich für eine Unterteilung an. Wie gesagt, alles recht theoretisch und, so oder so, nur eine Notlösung. Zitat: Wie ich schon schrieb, ich kann mir genau das beim besten Willen nicht vorstellen. Man kann ja, wie schon erwähnt, auch eine im sichtbaren Bild befindliche Bitmap locken und darin herummalen, wie wird die denn dann dargestellt, wenn sie sich doch ab dem LockBitMap() im Fast RAM befindet? Der Videochip bzw. die D/A-Konverter können doch dann gar nicht direkt darauf zugreifen und es gäbe ein Riesen-Hin- und Hergeschiebe. Für so beschränkt halte ich die RTG-Entwickler nun wahrlich nicht. Umgekehrt ist der direkte Zugriff aufs Video-RAM via Zorro für die CPU kein großes Problem, wenn man mal von der arg reduzierten Geschwindigkeit absieht. Die Karten blenden sich mit ihrem Speicher ja meist komplett in den Zorro-Adressraum ein, anders könnten die sichtbaren Bilddaten ja auch gar nicht ins Video-RAM kommen, wenn man mal von "Speicherfenstern" wie z.B. bei den XT/AT-Emulatorkarten (und die PicassoII bot, glaube ich, auch einen 64K-Paging-Modus an, oder irre ich mich da?) absieht und enormer Zeitaufwand beim Übertragen der Daten vermieden werden soll. Abgesehen davon steht z.B. im P96-Autodoc kein Wort davon, daß die Bitmap beim Lock ins Fast RAM ausgelagert wird, sondern nur, daß eine Aus- bzw. Verlagerung durch den Lock verhindert wird und man sich sputen soll, da ab dem Lock ein Screen-Switching und andere Bitmap-relevante Funktionen, die eine Auslagerung auslösen könnten, bis zum UnlockBitMap() nicht mehr möglich sind. Das könnte ich mir u.A. auch als Grund für die Nicht-Empfehlung der Benutzung der Funktionen der graphics.library vorstellen. Klingt auch logisch, wenn man bedenkt, daß bei einem Screen-Switch die gerade noch sichtbare Bitmap möglicherweise aus Speichermangel auf der Karte ins Fast RAM ausgelagert werden muß, um die des nun ganz vorn liegenden Screens sichtbar machen zu können. Ohne die garantierte Nicht-Auslagerung durch den Lock würde das RTG-System der CPU die Beine unterm Hintern wegziehen, wenn ein Direktzugriff auf die erstere Bitmap ausgeführt wird, während genau diese Bitmap gerade vom RTG-System ins Fast RAM ausgelagert wird, weil Platz für die neu sichtbare Bitmap geschaffen werden muß. Die CPU würde dann die gerade neu sichtbar gewordene Bitmap beschreiben, aber nicht die, die sie ursprünglich beschreiben sollte. Was ich aber in der Tat hinderlich für die Lock-Lösung finde, ist das ausdrückliche Abraten von der Benutzung der Funktionen der graphics.library, obwohl es nicht verboten wurde. Und natürlich, wie Du schon sagtest, daß man ein Auslagern einer bestimmten Bitmap ins Fast RAM nicht ausdrücklich verhindern kann. Vermutlich hast Du Recht und es geht nur mit der "Holzhammer-Methode" einigermaßen flott, sprich: Höhere Voraussetzungen für die Grafikkarte. Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 20.02.2007 um 14:57 Uhr geändert. ] |
|||||
whose
Nutzer
20.02.2007, 14:20 Uhr [ - Direktlink - ] |
Thema: Anfängerfrage: Wie linke ich eine .a Datei ?
Brett: Programmierung Zitat: Hmm *kopfkratz* wenn ich mich recht entsinne, gehören diese Funktionen zu denen, die beim vbcc in der posixlib vorhanden sind. Beim gcc wäre das Pendant dann wohl ixemul oder libnix. Da Du ohne ixemul kompilieren willst, würde ich es an Deiner Stelle mit der libnix probieren, also laut gni dann vermutlich -lnix beim Linken. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
20.02.2007, 01:47 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung Zitat: Hmm... kann sein, daß ich die P96- wie auch die CGFX-Autodocs da falsch interpretiere, das will ich nicht ausschließen. Ich habe daraus bisher immer nur gelesen, daß (p96)LockBitMap() verhindert, daß die Bitmap während eines Direktzugriffes möglicherweise ausgelagert wird, eben um einen direkten Zugriff überhaupt erst zu ermöglichen. Man kann ja auch eine sich bereits im Display befindliche Bitmap locken. Wird die dann wirklich ins Fast RAM ausgelagert für die Dauer des Locks? Irgendwie kann ich mir das nicht vorstellen. @Der_Wanderer: Einen Notnagel könnte ich mir zumindest in der Theorie vorstellen (ich gebe aber keine Garantie für die Anwendbarkeit in der Praxis, ich ahbe das noch nie ausprobiert): Unterteile die Riesen-Hintergrund-Bitmap in mehrere Teile, 4 z.B. Der Mehrverbrauch an Zeit für die 3 zusätzlichen Blits zzgl. der evt. vorkommenden Swaps für eins oder zwei der Teile könnte dann evtl. unter dem Zeitaufwand für den Riesen-Swap liegen, Zorro z.B. ist ja kein Geschwindigkeitswunder. Ich gehe mal davon aus, daß die Hintergrund-Bitmap eine Offscreen-Bitmap ist, richtig? Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 20.02.2007 um 02:05 Uhr geändert. ] |
|||||
whose
Nutzer
20.02.2007, 00:52 Uhr [ - Direktlink - ] |
Thema: AGA<->CyberGraphX: Buffer
Brett: Programmierung @Ralf27: Wenn ich Zeit finde, übersetze ich das Programm mal so gut wie möglich nach C und teste es auf meinen Maschinen. Derweil kannst Du ja noch etwas testen, was ich vorher übersehen hatte: Gib der Offscreen-Bitmap doch bitte noch das Flag BMF_DISPLAYABLE mit und probiers nochmal. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
19.02.2007, 23:29 Uhr [ - Direktlink - ] |
Thema: AGA<->CyberGraphX: Buffer
Brett: Programmierung @Ralf27: Nimm da mal BMF_INTERLEAVED heraus, die wenigsten RTG-GraKas bieten Interleaved-Bitmap-Unterstützung. Für AGA-Screenmodes sollte Interleaved automagisch der Fall sein (auch ohne das Tag), sofern die Screen-Bitmap für einen AGA-Screenmode angelegt (also entsprechende DisplayID im Requester gewählt) und für Deine Offscreen-Bitmap als Friend genutzt wird. So, wie es derzeit ist, wird die Bitmap wohl AGA-freundlich planar interleaved angelegt, da muß dann für eine RTG-Zielbitmap ständig gewandelt werden, was heftig bremsen kann. Ich weiß jetzt aus dem Stegreif nicht, was mit solchen RTG-unfreundlichen Bitmaps speichertechnisch passiert, aber ich könnte mir gut vorstellen, daß diese im Fast RAM oder gar im Chip RAM landen, weil die so oder so nicht direkt darstellbar sind, wenn der von Dir benutzte RTG-Grafikchip keine interleaved-Bitmaps unterstützt. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
19.02.2007, 23:14 Uhr [ - Direktlink - ] |
Thema: Anfängerfrage: Wie linke ich eine .a Datei ?
Brett: Programmierung @Der_Wanderer: Welchen Compiler benutzt Du denn? Meist lautet die entsprechende Option -l"name der lib ohne extension". Du mußt auch darauf achten, daß die Lib sich im Suchpfad des Compilers findet, sonst mosert er weiter. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
19.02.2007, 16:15 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung @malte2: In den P96-Autodocs steht es etwas anders. Laut diesen kann man Funktionen der graphics.library nutzen, es wird jedoch davon abgeraten, da einige graphics.library-Funktionen die betroffene Bitmap selbst locken. Zitat: Naja, gehopst wie gesprungen... eine wirkliche Lösung ist das ja somit nicht. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
19.02.2007, 15:53 Uhr [ - Direktlink - ] |
Thema: Swappen von Bitmaps
Brett: Programmierung @Der_Wanderer: Hast Du mal über LockBitMap() nachgedacht? Also, die Riesen-Hintergrund-Bitmap locken, wenn Du die kleineren Bitmaps der Objekte blittest und nach dem Blit der Objekte die Hintergrund-Bitmap wieder unlocken? Ok, Du wirst es nicht verhindern können, daß die Hintergrund-Bitmap in Extremfällen doch wieder im FastRAM landet (und, noch schlimmer, daß Du sie dann dort festhältst), aber im Allgemeinen sollte die Hintergrund-Bitmap bei der Methode im Video-RAM bleiben. Blöderweise ist über den Swap-Mechanismus der RTG-Systeme wenig dokumentiert (obwohl das eigentlich in manchen Belangen nötig wäre)... Edit: Blöde Idee, sehe ich gerade. Man kann zwar graphics.library-Funktionen benutzen, es wird aber nicht gerade empfohlen... Vertrackte Kiste! Eventuell wäre Holgers Idee, sich über das verfügbare Video-RAM zu informieren, doch ein Weg? Hat CGFX eine Möglichkeit, über die man an das noch freie Video-RAM kommt? Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
18.02.2007, 23:43 Uhr [ - Direktlink - ] |
Thema: AGA<->CyberGraphX: Buffer
Brett: Programmierung Zitat: Du bist aber auch ein unverbesserlicher Pessimist ![]() Ralf hat meines Wissens eine BlizzardPPC samt zugehöriger BVisionPPC. Wenn er die Linien per Move() und Draw() zeichnen läßt, ist diese Kombo garantiert um ein Vielfaches flotter als AGA, auch ohne Offscreen-Bitmap ![]() Das ist selbst die CyberVision64/3D in meinem 1200er im Zorro2-Modus. Geswapt wird da auch nichts, die 8MB RAM der BVisionPPC reichen für einige Spielereien. Er sollte wirklich mal schauen, wie er seine Offscreen-Bitmap zusammenbaut und vor allem zusehen, daß sie wirklich der Screen-Bitmap entspricht vom Aufbau her. Eventuell könnte es helfen, die entsprechenden Stellen in seinem Programm zu posten. @Ralf27: Zeig doch einmal, wie Du die Bitmap anlegst. Eventuell zeigt sich das Problem dann ohne viel Diskussion. Eigentlich ist das gar nicht so schwierig mit den Offscreen-Bitmaps. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
18.02.2007, 20:07 Uhr [ - Direktlink - ] |
Thema: AGA<->CyberGraphX: Buffer
Brett: Programmierung Zitat: Nicht "auf einmal". Im Extremfall. Aber Dein Hinweis auf Offscreen-Tiefe = Screen-Tiefe könnte wohl hilfreich sein ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
18.02.2007, 19:42 Uhr [ - Direktlink - ] |
Thema: AGA<->CyberGraphX: Buffer
Brett: Programmierung @Der_Wanderer: Wenn Du bei AsteroidsTR auch einen doppelt hohen Screen fürs DoubleBuffering verwendest, brauchst Du Dich über häufiges Swappen bei wenig Speicher und vielen kleinen Offscreen-Bitmaps nicht zu wundern. Rechne doch mal zusammen, wie viel Video-RAM alle Bitmaps verbrauchen, die in einem Frame-Zyklus zum Einsatz kommen. Das könnte Dich erstaunen ![]() Bei einem Programm, daß ich gerade in Arbeit habe, komme ich schon bei einer Fenster-Größe von 480*320 Pixeln in Schwulitäten, wenn es auf 24Bit laufen soll und die GraKa "nur" 4MB hat. Zitat: Ja, das ist logisch. Aber was willst Du damit sagen? ![]() Aber wenns anders geht, wäre es ja Blödsinn, nur den (scheinbar) sichtbaren Teil ins Video-RAM zu bringen. Für so schlau halte ich die RTG-Macher schon ![]() Grüße -- --- ![]() ![]() [ Dieser Beitrag wurde von whose am 18.02.2007 um 19:50 Uhr geändert. ] |
|||||
whose
Nutzer
18.02.2007, 19:37 Uhr [ - Direktlink - ] |
Thema: AGA<->CyberGraphX: Buffer
Brett: Programmierung Zitat: Nein, bei "doppelt hohem Screen" gibt es keine "zweite Hälfte". Da gibt es nur eine durchgehende Bitmap von bspw. 960 Pixeln Höhe statt 480 sichtbaren und 480 unsichtbaren Pixeln in jeweils eigenen Bitmaps. Entweder liegt diese komplett im Video-RAM oder gar nicht. Es kann durchaus passieren, daß diese Gesamtbitmap einmal ausgelagert wird, aber spätestens, wenn sie wieder (teilweise) sichtbar im Bild ist, wird sie wieder komplett ins Video-RAM verlagert und andere Bitmaps werden dafür im Fast RAM "geparkt". Sollte das nicht möglich sein, bleibt sie im Fast (mit entsprechenden Einbußen in Sachen Geschwindigkeit). ChangeScreenBuffers() könnte da was anderes ergeben, ist aber auch ein anderes Thema. Ralfs Problem sieht verdächtig nach fehlendem BMF_MINPLANES aus, ich könnte mir gut vorstellen, daß seine Bitmap im Chip RAM landet, was diese Geschwindigkeitsunterschiede prima erklären würde. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
15.02.2007, 09:50 Uhr [ - Direktlink - ] |
Thema: Wer macht mal bitte MegaLoMania2
Brett: Amiga, AmigaOS 4 Zitat: In der Tat, ich spiels auch ab und an gern auf WinUAE, zum Entspannen ![]() Zitat: Da ist was dran. Zitat: Ja, wenn Du noch eine Weile warten kannst... im Moment hat Anderes Priorität, was Dir sicher auch gefallen wird, wenns fertig ist. Genaues kann ich nicht verraten (auch keinen Termin), aber lange dauerts nicht mehr, wir sind sehr weit fortgeschritten ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
14.02.2007, 01:42 Uhr [ - Direktlink - ] |
Thema: Prelude Soundkarte!
Brett: Amiga, AmigaOS 4 Zitat: Das habe ich nicht gesagt. Aber schau Dir mal den Verlauf der Leitungen auf der Platine an, dann weißt Du, was ich meine ![]() Der Crystal hat keinerlei Verbindung zum Zorro-Bus und die RAMs auf der Karte ebenfalls nicht. Alles geht in den DSP, der übrigens eine Art "Grundprogrammierung" besitzt, die das "Durchschleifen" (besser: die Initialisierung des Crystal-Chips) wohl erledigt. Zitat: Aber nicht, was die grundsätzlichen Funktionen der Karte betrifft. Das geht nur dann los, wenn der DSP zum "erweiterten" Einsatz kommt, sprich, Daten durchreichen, Mixen, Filtern, Modulieren usw., was auch von AHI teilweise genutzt wird (da geht nix ohne die Library). Zitat: Wie meinen? ![]() Zitat: Schlimm genug. Bei der reinen Initialisierung sollte sie eigentlich überhaupt nicht "abschmieren", von daher kann man schon sagen, daß die Delfina zwar zu den guten, aber sicherlich nicht zu den besten Karten zählt. Klanglich wird sie bei mir jedenfalls von der Toccata deutlich übertroffen. Funktionell sowieso, die Toccata schmiert ja nicht ab ![]() Über die Prelude z.B. habe ich nur Gutes gehört und ich hätte eine erworben, wenn ich eine angeboten bekommen hätte. Aber die Dinger werden ja nur alle Jubeljahre mal angeboten, da ists schwierig dranzukommen. Repulse kriegt man so gut wie gar nicht. Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
13.02.2007, 20:07 Uhr [ - Direktlink - ] |
Thema: Prelude Soundkarte!
Brett: Amiga, AmigaOS 4 Zitat: Tja, wenns nur so einfach wäre... ich habe alle Library-Versionen durch und bei allen das gleiche Ergebnis. DelfInit oder DelfMem, spielt überhaupt keine Rolle. Mal davon ab, der DSP kommt immer zum Einsatz, nicht nur, wenn Du etwas damit dekodieren läßt oder Filter anwendest oder so. Im simpelsten Fall macht der nichts weiter, als die Daten an den Wandler durchzureichen. Dieser hat nämlich gar keinen direkten Kontakt zum Bus ![]() Grüße -- --- ![]() ![]() |
|||||
whose
Nutzer
13.02.2007, 16:38 Uhr [ - Direktlink - ] |
Thema: Prelude Soundkarte!
Brett: Amiga, AmigaOS 4 Zitat: Im Grunde läßt sich die tatsächliche Ursache nicht orten, solange ich die Karte nicht im 1200er im Betrieb habe. Bei meiner Karte ist es jedenfalls so, daß damit MP3-Abspielen auf Dauer nicht ohne Einfrieren des gesamten Systems geht und ich häng diesem Problem nun schon so lange hinterher, wie ich die Karte habe (1997). Die Toccata hingegen läuft astrein und ohne Hänger/Einfrierer o.Ä. Zitat: Da kann ich auch wieder nur mit meinen Karten vergleichen, und in dieser Hinsicht ist klangmäßig die Toccata die eindeutig bessere Karte. Klingt schön "frei" und "luftig", wie die HiFi-Freaks sagen. Wenn Du es selbst hören und vergleichen könntest, wüßtest Du, was ich meine ![]() Eventuell hat meine Delfina ja auch einen Defekt, man weiß es nicht. Zitat: Allerdings. Eine Prelude ist ähnlich schwer zu bekommen, weswegen ich bei der Toccata gelandet bin. Bereut habe ich das bisher nicht, auch wenn man einen "Bogen" anstöpseln muß, um intern-Sound mitzubekommen. Es gibt schlimmere "Nachteile" ![]() Grüße -- --- ![]() ![]() |
|||||
|
![]() |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |
![]() |