Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: Vulkan 1.0 released

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Vulkan 1.0 released

    Yesterday Khronos has released the first version of their Vulkan API, initially refferred as "Next Generation OpenGL initiative" (http://www.anandtech.com/show/8363/k...ngl-initiative).

    Here is their website - https://www.khronos.org/vulkan/
    And here are some examples in C++ - https://github.com/SaschaWillems/Vulkan

  2. #2
    PGDCE Developer Carver413's Avatar
    Join Date
    Jun 2010
    Location
    Spokane,WA,Usa
    Posts
    206
    anyone working on a free pascal version ?

  3. #3
    I hope so, though I guess it will take a while until header translations appear.
    If anyone intends to make Pascal headers, it's worth mentioning that it might be easier to write a parser for their API Registry which is a XML and can be found here - https://github.com/KhronosGroup/Vulk...rc/spec/vk.xml (which would parse the xml and render a pascal header file), instead of manually translating the C headers.

  4. #4
    I'll port the Vulkan headers to pascal on the weekend, because primary for my own usage.

  5. #5
    PGDCE Developer de_jean_7777's Avatar
    Join Date
    Nov 2006
    Location
    Bosnia and Herzegovina (Herzegovina)
    Posts
    287
    Quote Originally Posted by BeRo View Post
    I'll port the Vulkan headers to pascal on the weekend, because primary for my own usage.
    Awesome. You're the man BeRo!

    Unfortunately, all my hardware is a generation before what supports Vulkan. So time to scrape some cash and buy new hardware.
    Existence is pain

  6. #6
    Quote Originally Posted by BeRo View Post
    I'll port the Vulkan headers to pascal on the weekend, because primary for my own usage.
    That would be cool, man

    Earlier today I too tried to make translations. I passed the headers through the GCC preprocessor and then through h2pas. With various hand modifications they succeeded to compile in Free Pascal, but the preprocessor has stripped the comments.
    But it turned out that both of my video cards doesn't support Vulkan so I won't be able to test them.. until I get a new one. So this puts end to my attempts for now.

    Anyway I have attached the files which I managed to produce, in case they make use for anyone
    Attached Files Attached Files
    Last edited by Anton; 19-02-2016 at 09:15 PM.

  7. #7
    Where can I find information about which graphics cards do support Vulkan?

  8. #8
    Found this one, it's a good beginning:
    https://github.com/MaksymTymkovych/Delphi-Vulkan
    Sometimes I secretly divide by zero! - Albert Einstein

  9. #9
    The current state of my vkxml2pas translator tool including output vulkan.pas: https://github.com/BeRo1985/pasvulkan/tree/master/src

    It's so far complete, except the Vulkan library loading part, where I'm working still on it in a vk.xml future-proof compliant way, due to the extensions and so on.

    Edit: Now it generates real enums.
    Last edited by BeRo; 22-02-2016 at 11:49 PM.

  10. #10
    My vkxml2pas-generated header has the followed load interface now:

    Code:
    function LoadVulkanLibrary(const LibraryName:string=VK_DEFAULT_LIB_NAME):boolean;
    function LoadVulkanGlobalCommands:boolean;
    function LoadVulkanInstanceCommands(const GetInstanceProcAddr:TvkGetInstanceProcAddr;const Instance:TVkInstance;out InstanceCommands:TVulkanCommands):boolean;
    function LoadVulkanDeviceCommands(const GetDeviceProcAddr:TvkGetDeviceProcAddr;const Device:TVkDevice;out DeviceCommands:TVulkanCommands):boolean;
    where LoadVulkanLibrary loads only vkGetInstanceProcAddr, and LoadVulkanGlobalCommands loads then the remaining functions with help of vkGetInstanceProcAddr(nil,*) (what the Vulkan spec recommend it also), and what LoadVulkanInstanceCommands and LoadVulkanDeviceCommands does, should be clear, when you've read the Vulkan specs.

    And now. i must buy a Vulkan-ready Android device zu legen, i.e. at best the NVidia Shield TV (which've already a Vulkan-ready Stock AndroidTV ROM), so that I can make the vkxml2pas-generated Vulkan header also Android/armv7a ready and so that I can test it also.

    And a TVulkan class does exist now also, which do also the for-Android/armv7a-target-needed calling-convention-proxying stuff then, because the specs says:

    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.
    And a default-global TVulkan instance with the name vk does exist now also, so that you can use for example instead vkCreateInstance also vk.CreateInstance (with automatic calling-convention-proxing then).
    Last edited by BeRo; 24-02-2016 at 02:20 AM.

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •