Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mär 28, 2024 09:42

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Vulkan.pas
BeitragVerfasst: Mo Feb 22, 2016 18:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Meinungs-Thread zum Projekt Vulkan.pas

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Mo Feb 22, 2016 19:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Hier : https://github.com/MaksymTymkovych/Delphi-Vulkan
arbeitet auch schon jemand an einem (Delphi) Header für Vulkan. Aber soweit ich das erkennen kann ohne Generator.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Mo Feb 22, 2016 20:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Jap, bei dem hab ich auch schon abgeguckt und nen Bug bei mir gefixt :mrgreen:

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Mo Feb 22, 2016 22:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 218
Programmiersprache: Lazarus/FPC
Eine Vulkan-Instanz lässt sich damit schon mal nach ein paar Abänderungen fehlerlos mit FPC erstellen das ist schon mal ein guter Start.

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Di Feb 23, 2016 03:25 
Offline
DGL Member

Registriert: Di Aug 26, 2003 20:08
Beiträge: 81
Wohnort: Mönchengladbach
Programmiersprache: ObjPas ASM C C++ etc
Hier: https://github.com/BeRo1985/pasvulkan Das ist generator-basiert und soweit komplett, wobei ich da noch am Loading-Part arbeite.

_________________
Behindert ist man nicht, behindert wird man.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Di Feb 23, 2016 09:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

warum hast du dir deinen eigenen XML-Interpreter geschrieben? Gibts da in Delphi nichts fertiges? :shock:
Für die ganzen Loading-Methoden hab ich mir ein Template geschrieben, welches dann nur noch mit den Daten aus der vk.xml gefüllt wird. Das ist - finde ich - unkomplizierter und macht den Code nicht so unübersichtlich: http://git.ccs-baumann.de/bitspace/Vulk ... vulkan.tpl

MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Di Feb 23, 2016 10:14 
Offline
DGL Member

Registriert: Di Aug 26, 2003 20:08
Beiträge: 81
Wohnort: Mönchengladbach
Programmiersprache: ObjPas ASM C C++ etc
Zum einen heißt es XML-Parser und nicht XML-Interpreter :) und zum anderen soll es auch mit FreePascal, älteren Delphi Versionen (ab D7) und sowie mit meinem eigenen ObjectPascal Compiler namens CrossPascal kompilierbar sein, und zudem soll für meinen Geschmack die vkxml2pas.dpr eigenständig ohne externe Single-Compiler-Ecosystem-Only-Abhängigkeiten (z.B. fpxml) herkommen und sowie cross-plattform sein, und zudem habe ich über die Jahre hinweg (also ungefähr seit ca. 1993/1994, obwohl ich erst Baujahr 1985 bin) schon nahezu alles mögliche selbst implementiert, darunter halt auch mehrere XML-Parser, so dass ich für meinen vkxml2pas Translator quasi nur noch irgendeinen alten XML-Parser von mir heraussuchen musste und dann nur noch ein copy&paste machen musste.

Ich hoffe, dass ich damit deine "warum" Frage zufriedenstellend beantworten konnte :)

_________________
Behindert ist man nicht, behindert wird man.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Di Feb 23, 2016 12:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Hehe, der Krieg um DEN Vulkan Header für Object Pascal ist entbrannt :D
Ihr seit alle ja richtig fleißig, bin mal gespannt, wann ich die erste Demo sehen kann.

Bei bero bin ich eher gespannt, wie klein er das executable quetscht.

Selten dominiert der den besten Header schreibt sondern der mit der einfachsten integration in ein einfaches Beispiel.
Glew ist z.B. ziemlich verbreitet bei OpenGL aber es gibt viele Header die viel sauberer, linkerfreundlicher und Bugfrei sind und völlig unter dem Radar laufen.
Diese sind auch umständlicher zu nutzen und in der Regel kann man nicht alles in einem Header vereinen.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Di Feb 23, 2016 19:29 
Offline
DGL Member

Registriert: Di Aug 26, 2003 20:08
Beiträge: 81
Wohnort: Mönchengladbach
Programmiersprache: ObjPas ASM C C++ etc
Mein vkxml2pas-generierter Vulkan Header wird halt dann für alle Vulkan-supported Targets sein, inkl. Android, wo u.A. die Spec folgendes sagt:

Zitat:
On Android/ARMv7a, Vulkan functions use the armeabi-v7a-hard calling convention, even if the application's native code is compiled with the armeabi-v7a calling convention.


Da aber weder der Delphi NextGen Mobile Compiler noch FreePascal momentan verschiedene ARM Calling Conventions gleichzeitig in einer einzelnen Unit unterstützen (im Gegensatz z.B. zum x86-32 Target), erarbeite ich momentan eine Lösung für meinen vkxml2pas-generierten Vulkan Header mithilfe etwas Calling-Convention-Proxy Inline Assembler Magie, wo diese Lösung für Android/ARMv7a dann nur für FreePascal gelten wird, da der Delphi NextGen Mobile Compiler, glaube ich zumindest, keine Inline Assembler Codeparts zulässt (zumindest steht in den Delphi Docs "The Delphi mobile compilers do not support a built-in assembler.").

_________________
Behindert ist man nicht, behindert wird man.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Di Feb 23, 2016 20:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2621
Wohnort: Berlin
Programmiersprache: Go, C/C++
Ich baue ja aktuell ein cluster aus allwinner h3 und noch h8, die h8 haben eing vulkan fähige gpu mit treibern. Wenn ich das h8 devboard habe würde ich auch mal gerne vulkan probieren. Auf pc reizt mich das wenig.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Mi Feb 24, 2016 00:52 
Offline
DGL Member

Registriert: Di Aug 26, 2003 20:08
Beiträge: 81
Wohnort: Mönchengladbach
Programmiersprache: ObjPas ASM C C++ etc
So mein vkxml2pas-generierter Header hat nun folgendes Ladeinterface:

Code:
  1.  
  2. function LoadVulkanLibrary(const LibraryName:string=VK_DEFAULT_LIB_NAME):boolean;
  3. function LoadVulkanGlobalCommands:boolean;
  4. function LoadVulkanInstanceCommands(const GetInstanceProcAddr:TvkGetInstanceProcAddr;const Instance:TVkInstance;out InstanceCommands:TVulkanCommands):boolean;
  5. function LoadVulkanDeviceCommands(const GetDeviceProcAddr:TvkGetDeviceProcAddr;const Device:TVkDevice;out DeviceCommands:TVulkanCommands):boolean;
  6.  


wo LoadVulkanLibrary nur vkGetInstanceProcAddr lädt, und LoadVulkanGlobalCommands lädt dann den Rest mithilfe vkGetInstanceProcAddr(nil,*) (wie die Vulkan Spec irgendwo es empfiehlt), und LoadVulkanInstanceCommands und LoadVulkanDeviceCommands sollen klar sein, wofür die da sind, wenn man die Vulkan Spec gelesen hat.

Nun muss ich mir ein Vulkan-taugliches Android-Gerät zu legen, sprich am besten das NVidia Shield TV (wofür bereits ein Vulkan-taugliches Stock AndroidTV ROM gibt), damit ich den generierten Header dann direkt auch Android/armv7a tauglich machen kann und auch es direkt testen kann.

Zudem gibt es nun auch eine TVulkan Klasse, worüber zukünftig auch dann das fürs Android/armv7a Target erforderliche Calling-Convention-Proxy ablaufen wird. Und es gibt zudem auch nun eine default-globale TVulkan Instanz namens vk, so dass man statt z.B. vkCreateInstance auch vk.CreateInstance verwenden kann (mit automatischem Calling-Convention-Proxing-Krams dann).

_________________
Behindert ist man nicht, behindert wird man.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Mi Feb 24, 2016 07:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
bero hat geschrieben:
Nun muss ich mir ein Vulkan-taugliches Android-Gerät zu legen, sprich am besten das NVidia Shield TV (wofür bereits ein Vulkan-taugliches Stock AndroidTV ROM gibt), damit ich den generierten Header dann direkt auch Android/armv7a tauglich machen kann und auch es direkt testen kann.


Für Vulkan ist das Shield TV perfekt, hab damit ja auch entwickelt. Alternativ (und etwas günstiger) wäre der Nexus Player, da gibts von Imagination auch ein (x86) Image mit Vulkansupport.

Wenn es um mehr als nur den Header geht sollte man aber eh auf mehreren IHVs testen, grade NVIDIA (egal ob Desktop oder Shield, ist ja beides teilweise die gleiche Architektur) nehmen das mit den Image Barrieren nicht so wichtig, während man auf AMD stark drauf achten muss.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Mi Feb 24, 2016 08:33 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 218
Programmiersprache: Lazarus/FPC
Für alle die schon eine Vulkan.pas haben und Starthilfe brauchen, Ich hab ein super Tutorial entdeckt:
https://gist.github.com/graphitemaster/ ... 379af840d4

Und für alle die wie Ich unterwegs an Vulkan rumprobieren wollen und einen Laptop mit IntelHD-GPU haben, es hieß zwar Intel hat auch zum Release Vulkan-Treiber veröffentlicht, aber wie sich eben herrausstellte nur für LINUX
Bild

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Mi Feb 24, 2016 08:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Auch ein guter Startpunkt : Vulkan in 30 Minutes

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Vulkan.pas
BeitragVerfasst: Sa Feb 27, 2016 17:36 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie sieht es eigentlich mit dem Rest der Tools aus? Werdet ihr auch die SPIR-V Tools übersetzen?

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 45 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 18 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.033s | 18 Queries | GZIP : On ]