Question about the Vulkan capable emulators
- odroid
- Site Admin
- Posts: 36919
- Joined: Fri Feb 22, 2013 11:14 pm
- languages_spoken: English, Korean
- ODROIDs: ODROID
- Has thanked: 1593 times
- Been thanked: 1069 times
- Contact:
Question about the Vulkan capable emulators
We are trying to add the Vulkan API in to the Mali-G31 GPU driver by helping from Rockchip people.
But we don't know well which emulators(or cores) can utilized the Vulkan feature.
As far as I know, the PPSSPP and Dolphin emulators have an option to choose the Vulkan as a rendering backend.
Is there any other emulators can support the Vulkan backend?
But we don't know well which emulators(or cores) can utilized the Vulkan feature.
As far as I know, the PPSSPP and Dolphin emulators have an option to choose the Vulkan as a rendering backend.
Is there any other emulators can support the Vulkan backend?
- meveric
- Posts: 11441
- Joined: Mon Feb 25, 2013 2:41 pm
- languages_spoken: german, english
- ODROIDs: X2, U2, U3, XU-Lite, XU3, XU3-Lite, C1, XU4, C2, C1+, XU4Q, HC1, N1, Go, H2 (N4100), N2, H2 (J4105), GoA, C4, GoA v1.1, H2+, HC4, GoS
- Has thanked: 63 times
- Been thanked: 459 times
- Contact:
Re: Question about the Vulkan capable emulators.
retroarch can use vulkan as a backend as well, so all emulators running through retroarch should be able to run via vulkan as well.
Donate to support my work on the ODROID GameStation Turbo Image for U2/U3 XU3/XU4 X2 X C1 as well as many other releases.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
Check out the Games and Emulators section to find some of my work or check the files in my repository to find the software i build for ODROIDs.
If you want to add my repository to your image read my HOWTO integrate my repo into your image.
-
- Posts: 5271
- Joined: Tue Dec 30, 2014 8:42 pm
- languages_spoken: english
- ODROIDs: C1
- Has thanked: 0
- Been thanked: 417 times
- Contact:
Re: Question about the Vulkan capable emulators.
The flycast (Dreamcast) libretro core should also support Vulkan:
https://github.com/libretro/flycast/tre ... end/vulkan
https://github.com/libretro/flycast/tre ... end/vulkan
- odroid
- Site Admin
- Posts: 36919
- Joined: Fri Feb 22, 2013 11:14 pm
- languages_spoken: English, Korean
- ODROIDs: ODROID
- Has thanked: 1593 times
- Been thanked: 1069 times
- Contact:
Re: Question about the Vulkan capable emulators.
Thank you for the answers. There are many reasons why we have to keep trying that. 
BTW, is there any simple way to check any actual functionality and performance of the Vulkan?
Is there glmark2-es2-drm or similar one including the Vulkan backend?

BTW, is there any simple way to check any actual functionality and performance of the Vulkan?
Is there glmark2-es2-drm or similar one including the Vulkan backend?
-
- Posts: 5271
- Joined: Tue Dec 30, 2014 8:42 pm
- languages_spoken: english
- ODROIDs: C1
- Has thanked: 0
- Been thanked: 417 times
- Contact:
Re: Question about the Vulkan capable emulators.
There is vkmark. It is similar to glmark2.
https://github.com/vkmark/vkmark
https://github.com/vkmark/vkmark
- These users thanked the author crashoverride for the post (total 2):
- odroid (Mon Jan 25, 2021 11:25 am) • joy (Mon Jan 25, 2021 11:21 pm)
-
- Posts: 86
- Joined: Mon Dec 30, 2019 10:35 am
- languages_spoken: english
- ODROIDs: Odroid-GO
- Has thanked: 4 times
- Been thanked: 35 times
- Contact:
Re: Question about the Vulkan capable emulators.
While you're talking with Rockchip, can you find out if they have a 5.4 (or maybe even a 5.10) kernel in one of their BSPs?
- odroid
- Site Admin
- Posts: 36919
- Joined: Fri Feb 22, 2013 11:14 pm
- languages_spoken: English, Korean
- ODROIDs: ODROID
- Has thanked: 1593 times
- Been thanked: 1069 times
- Contact:
Re: Question about the Vulkan capable emulators.
They have no firm plan to update the kernel version in the Linux BSP.
-
- Posts: 273
- Joined: Tue Jul 16, 2019 12:30 am
- languages_spoken: English, French
- ODROIDs: XU4, N2, N2+, C2, C4, OGA, OGA-BE, H2+, OGS, OGST
- Location: Canada
- Has thanked: 22 times
- Been thanked: 70 times
- Contact:
Re: Question about the Vulkan capable emulators.
Retroarch, PPSSPP, Duckstation, some builds of moonlight, dolphin, MAME has a bgfx vulkan back end.
-
- Posts: 1
- Joined: Thu Jan 28, 2021 7:42 am
- languages_spoken: english
- Has thanked: 1 time
- Been thanked: 0
- Contact:
Re: Question about the Vulkan capable emulators.
Ordered an OGS yesterday, excited to see development on a vulkan driver for the unit!
Would love tinkering with a project of mine running on vulkan on an arm device.
Would love tinkering with a project of mine running on vulkan on an arm device.
-
- Posts: 1544
- Joined: Fri Oct 02, 2015 1:44 pm
- languages_spoken: english
- ODROIDs: ODROID-C1+, XU4, X
- Has thanked: 170 times
- Been thanked: 207 times
- Contact:
Re: Question about the Vulkan capable emulators.
Hi all,
We added patches to support Vulkan API on RK3326.
Please refer to this wiki page.
https://wiki.odroid.com/odroid_go_advan ... _on_rk3326
[ Apply Patches ]
1. Kernel Patch
Kernel patch of bifrost_for_linux is uploaded in HK Github.
https://github.com/hardkernel/linux/com ... ba2a0bfa49
2. libmali Patch
And you need to replace libmali.so a.k.a libmali-bifrost-g31-rxp0-gbm.so with the new so file.
We've confirmed vulkaninfo output, but so far there is no further progress to run vkmark or other benchmark for Vulkan.
We hope many users who are interested in this task join here
and check how related emulators' performance improves with Vulkan.
We added patches to support Vulkan API on RK3326.
Please refer to this wiki page.
https://wiki.odroid.com/odroid_go_advan ... _on_rk3326
[ Apply Patches ]
Code: Select all
release_r13p0_20200103 version
Kernel patch of bifrost_for_linux is uploaded in HK Github.
Code: Select all
drivers/gpu/arm/bifrost_for_linux
2. libmali Patch
And you need to replace libmali.so a.k.a libmali-bifrost-g31-rxp0-gbm.so with the new so file.
Code: Select all
$ wget https://dn.odroid.com/RK3326/ODROID-GO-Advance/rk3326_r13p0_gbm_with_vulkan_and_cl.zip
$ unzip rk3326_r13p0_gbm_with_vulkan_and_cl.zip
$ ls
libmali.so_rk3326_gbm_arm32_r13p0_with_vulkan_and_cl libmali.so_rk3326_gbm_arm64_r13p0_with_vulkan_and_cl
Code: Select all
$ sudo rm /usr/local/lib/aarch64-linux-gnu/libmali-bifrost-g31-rxp0-gbm.so
$ sudo cp libmali.so_rk3326_gbm_arm64_r13p0_with_vulkan_and_cl /usr/local/lib/aarch64-linux-gnu/libmali-bifrost-g31-rxp0-gbm.so
$ sudo rm /usr/local/lib/arm-linux-gnueabihf/libmali-bifrost-g31-rxp0-gbm.so
$ sudo cp libmali.so_rk3326_gbm_arm32_r13p0_with_vulkan_and_cl /usr/local/lib/arm-linux-gnueabihf/libmali-bifrost-g31-rxp0-gbm.so
We hope many users who are interested in this task join here
and check how related emulators' performance improves with Vulkan.

-
- Posts: 1637
- Joined: Sun Jul 07, 2013 3:05 am
- languages_spoken: german, english
- ODROIDs: X2, U3, XU3, C2, HiFi Shield, XU4, XU4Q,
N1, Go, VU5A, Show2, CloudShell2,
H2, N2, VU7A, VuShell, Go2, C4 - Has thanked: 100 times
- Been thanked: 279 times
- Contact:
Re: Question about the Vulkan capable emulators
Looking forward to test it

RG
-
- Posts: 1637
- Joined: Sun Jul 07, 2013 3:05 am
- languages_spoken: german, english
- ODROIDs: X2, U3, XU3, C2, HiFi Shield, XU4, XU4Q,
N1, Go, VU5A, Show2, CloudShell2,
H2, N2, VU7A, VuShell, Go2, C4 - Has thanked: 100 times
- Been thanked: 279 times
- Contact:
Re: Question about the Vulkan capable emulators
It doesn't work with current SDL2 and SDL2 test suite
Code: Select all
./testvulkan --info all
Rga built version:1.04 2134dde+2021-01-04 21:35:13
INFO: Built-in video drivers: x11, KMSDRM, dummy
INFO: Couldn't initialize video driver: No available video device
edit: Another question is, did you add the display rotation inside the blob for the vulkan part ? I don't know how to add this with vulkan KMSDRM backend
edit2: I did the test with latest 2.0.14 (devel) SDL2 which has KMSDRM vulkan backend since December last year
RG
-
- Posts: 277
- Joined: Mon Feb 17, 2020 1:35 pm
- languages_spoken: english
- ODROIDs: odroid go advance
- Has thanked: 22 times
- Been thanked: 77 times
- Contact:
Re: Question about the Vulkan capable emulators
@joy thanks for releasing this!
I hastily set this up and noticed the following:
1. glcore in retroarch displays rainbow textures, gl looks OK though
2. vulkaninfo at least in void linux crashes:
I only had a few mins to try this out so it could be something on my side. But posting just in case anyone has the same issue or gets any further.
EDIT: I assume this works in kms/drm and doesn't need us to be in an X11/Wayland context?
I hastily set this up and noticed the following:
1. glcore in retroarch displays rainbow textures, gl looks OK though
2. vulkaninfo at least in void linux crashes:
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) bt
#0 0x0000000000000000 in ?? () <--- blob driver I think
#1 0x00000055555b550c in GetVectorInit<VkLayerProperties, VkResult (*&)(unsigned int*, VkLayerProperties*)> (func_name=func_name@entry=0x55555c4c18 "vkEnumerateInstanceLayerProperties",
f=@0x7fffffe560: 0x0, init=...) at ../../vulkaninfo/vulkaninfo.h:247
#2 0x00000055555b75c8 in GetVector<VkLayerProperties, VkResult (*&)(unsigned int*, VkLayerProperties*)> (f=@0x7fffffe560: 0x0, func_name=0x55555c4c18 "vkEnumerateInstanceLayerProperties")
at ../../vulkaninfo/vulkaninfo.h:259
#3 AppInstance::AppGetInstanceExtensions (this=0x7fffffe550) at ../../vulkaninfo/vulkaninfo.h:694
#4 AppInstance::AppInstance (this=0x7fffffe550) at ../../vulkaninfo/vulkaninfo.h:644
#5 0x00000055555586bc in main (argc=1, argv=0x7ffffff588) at ../../vulkaninfo/vulkaninfo.cpp:931
EDIT: I assume this works in kms/drm and doesn't need us to be in an X11/Wayland context?
-
- Posts: 1637
- Joined: Sun Jul 07, 2013 3:05 am
- languages_spoken: german, english
- ODROIDs: X2, U3, XU3, C2, HiFi Shield, XU4, XU4Q,
N1, Go, VU5A, Show2, CloudShell2,
H2, N2, VU7A, VuShell, Go2, C4 - Has thanked: 100 times
- Been thanked: 279 times
- Contact:
Re: Question about the Vulkan capable emulators
https://github.com/bminor/SDL/search?q= ... AVE_LIBDRM
SDL_KMSDRM_HAVE_LIBDRM and SDL_KMSDRM_HAVE_GBM are not defined anywhere and so this if clause has to be set to
if (1)
to make KMSDRM backend work -> this is a BUG in current SDL2So, if KMSDRM backend is working we have vulkan support for it since December 2020, BUT !! If I start
testvulkan
tool, I get this:Code: Select all
odroid@goadvance:~/SDL2_up/test$ ./testvulkan
Rga built version:1.04 2134dde+2021-01-04 21:35:13
INFO: Couldn't create window: Installed Vulkan doesn't implement the VK_KHR_surface extension
VK_KHR_surface
extension to be supported by the driver, PPSSPP is using SDL2 and so we must have this extension, maybe there is a workaround for it but I do not know oneedit: We also need the
VK_KHR_displayextension
supported by the new binary blobedit2: As suspected PPSSPP reports the same problem
Code: Select all
odroid@goadvance:~/ppsspp/build$ ./PPSSPPSDL
Rga built version:1.04 2134dde+2021-01-04 21:35:13
VulkanMayBeAvailable: Device allowed ('SDL:Linux')
VulkanMayBeAvailable: Library loaded ('libvulkan.so')
VulkanMayBeAvailable: Enumerating instance extensions
VulkanMayBeAvailable: Instance extension count: 4
VulkanMaybeAvailable: Instance extension found: VK_KHR_get_physical_device_properties2 (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_fence_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_semaphore_capabilities (00000001)
VulkanMaybeAvailable: Instance extension found: VK_KHR_external_memory_capabilities (00000001)
Surface extension not found
DEBUG: Vulkan is not available, not using Vulkan.
Info: We compiled against SDL version 2.0.15 and we are linking against SDL version 2.0.15. :)
51:33:840 Core/Config.cpp:542 I[G3D]: Longest display side: -1 pixels. Choosing scale 1
51:33:869 Core/Config.cpp:1306 I[LOADER]: Loading controller config: /home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini
51:33:879 Core/Config.cpp:1339 I[LOADER]: Config loaded: '/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
51:33:945 Core/Config.cpp:1420 I[LOADER]: Config saved (got storage permission): '/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
51:33:947 Core/Config.cpp:1433 I[LOADER]: Controller config saved: /home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini
Pixels: 854 x 480
Virtual pixels: 854 x 480
51:34:148 OpenGL/GLFeatures.cpp:194 I[G3D]: GPU Vendor : ARM ; renderer: Mali-G31 version str: OpenGL ES 3.2 v1.r13p0-01rel0.8747d14aec16ec21ac2b2da252c4ec5f ; GLSL version str: OpenGL ES GLSL ES 3.20
51:34:149 OpenGL/GLFeatures.cpp:305 I[G3D]: OpenGL ES 3.1 support detected!
- odroid
- Site Admin
- Posts: 36919
- Joined: Fri Feb 22, 2013 11:14 pm
- languages_spoken: English, Korean
- ODROIDs: ODROID
- Has thanked: 1593 times
- Been thanked: 1069 times
- Contact:
Re: Question about the Vulkan capable emulators
Thank you for the investigation.
The number of extensions seems to be quite smaller than our expectation.
We will check availability of VK_KHR_surface and VK_KHR_display extensions.
The number of extensions seems to be quite smaller than our expectation.

Code: Select all
Device Extensions: count = 15
-----------------------------
VK_KHR_16bit_storage : extension revision 1
VK_KHR_dedicated_allocation : extension revision 3
VK_KHR_descriptor_update_template : extension revision 1
VK_KHR_external_fence : extension revision 1
VK_KHR_external_fence_fd : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_fd : extension revision 1
VK_KHR_get_memory_requirements2 : extension revision 1
VK_KHR_image_format_list : extension revision 1
VK_KHR_maintenance1 : extension revision 2
VK_KHR_maintenance2 : extension revision 1
VK_KHR_shader_draw_parameters : extension revision 1
VK_KHR_storage_buffer_storage_class : extension revision 1
VK_KHR_variable_pointers : extension revision 1
-
- Posts: 1544
- Joined: Fri Oct 02, 2015 1:44 pm
- languages_spoken: english
- ODROIDs: ODROID-C1+, XU4, X
- Has thanked: 170 times
- Been thanked: 207 times
- Contact:
Re: Question about the Vulkan capable emulators
@AreaScout,
No. I just got the patches, (1) kernel bifrost_for_linux (2) libmali, from rockchip
and didn't modify anything because the library files were delivered to us as 'so' binary type.
Is it new libmali library which should support VK_KHR_displayextension?AreaScout wrote: ↑Thu Feb 04, 2021 12:40 amSo in order to have vulkan support under SDL2 we need theVK_KHR_surface
extension to be supported by the driver, PPSSPP is using SDL2 and so we must have this extension, maybe there is a workaround for it but I do not know one
edit: We also need theVK_KHR_displayextension
supported by the new binary blob
If so, I need to ask the things to Rockchip.
Is there any other reference that we can refer to normal operation for Vulkan,
or you've implemented it with the SDL2 without those errors?
Sorry for my ambiguous question. I don't have much knowledge about Vulkan and related backend.
-
- Posts: 1544
- Joined: Fri Oct 02, 2015 1:44 pm
- languages_spoken: english
- ODROIDs: ODROID-C1+, XU4, X
- Has thanked: 170 times
- Been thanked: 207 times
- Contact:
Re: Question about the Vulkan capable emulators
About the missing extensions of VK_KHR_surface and VK_KHR_display,
we've checked the available extensions on Buildroot to check if this issue is related to Ubuntu library, header or symlink environment,
and found the extensions are shown on Buildroot even though the libmali so file for Buildroot is same with Ubuntu's one.
So, it seems we need to figure out which point is missing to load VK_KHR_surface/display normally on Ubuntu.
Here is the list of Vulkan extension on Buildroot from Vulkaninfo.
On the other hand, just 4 extensions are shown on Ubuntu from Vulkaninfo.
Full output of Vulkaninfo on Buildroot.
Do you have any idea of this? 
we've checked the available extensions on Buildroot to check if this issue is related to Ubuntu library, header or symlink environment,
and found the extensions are shown on Buildroot even though the libmali so file for Buildroot is same with Ubuntu's one.
So, it seems we need to figure out which point is missing to load VK_KHR_surface/display normally on Ubuntu.
Here is the list of Vulkan extension on Buildroot from Vulkaninfo.
Code: Select all
Vulkan Instance Version: 1.2.165
Instance Extensions: count = 19
===============================
VK_EXT_debug_report : extension revision 9
VK_EXT_debug_utils : extension revision 2
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_EXT_headless_surface : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 4
VK_EXT_validation_features : extension revision 4
VK_EXT_validation_flags : extension revision 2
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_NV_external_memory_capabilities : extension revision 1
Code: Select all
Instance Extensions: count = 4
==============================
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 1
Code: Select all
[root@rk3326_64:/]# vulkaninfo
==========
VULKANINFO
==========
Vulkan Instance Version: 1.2.165
Instance Extensions: count = 19
===============================
VK_EXT_debug_report : extension revision 9
VK_EXT_debug_utils : extension revision 2
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_EXT_headless_surface : extension revision 1
VK_EXT_swapchain_colorspace : extension revision 4
VK_EXT_validation_features : extension revision 4
VK_EXT_validation_flags : extension revision 2
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_surface_protected_capabilities : extension revision 1
VK_NV_external_memory_capabilities : extension revision 1
Layers: count = 0
=================
Groups:
=======
No Device Groups Found
Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 4198400 (1.1.0)
driverVersion = 1 (0x0001)
vendorID = 0xba5eba11
deviceID = 0xf005ba11
deviceType = PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
deviceName = Vulkan Mock Device
VkPhysicalDeviceLimits:
-----------------------
maxImageDimension1D = 4096
maxImageDimension2D = 4096
maxImageDimension3D = 256
maxImageDimensionCube = 4096
maxImageArrayLayers = 256
maxTexelBufferElements = 65536
maxUniformBufferRange = 16384
maxStorageBufferRange = 134217728
maxPushConstantsSize = 128
maxMemoryAllocationCount = 4096
maxSamplerAllocationCount = 4000
bufferImageGranularity = 0x00000001
sparseAddressSpaceSize = 0x80000000
maxBoundDescriptorSets = 4
maxPerStageDescriptorSamplers = 16
maxPerStageDescriptorUniformBuffers = 12
maxPerStageDescriptorStorageBuffers = 4
maxPerStageDescriptorSampledImages = 16
maxPerStageDescriptorStorageImages = 4
maxPerStageDescriptorInputAttachments = 4
maxPerStageResources = 128
maxDescriptorSetSamplers = 96
maxDescriptorSetUniformBuffers = 72
maxDescriptorSetUniformBuffersDynamic = 8
maxDescriptorSetStorageBuffers = 24
maxDescriptorSetStorageBuffersDynamic = 4
maxDescriptorSetSampledImages = 96
maxDescriptorSetStorageImages = 24
maxDescriptorSetInputAttachments = 4
maxVertexInputAttributes = 16
maxVertexInputBindings = 16
maxVertexInputAttributeOffset = 2047
maxVertexInputBindingStride = 2048
maxVertexOutputComponents = 64
maxTessellationGenerationLevel = 64
maxTessellationPatchSize = 32
maxTessellationControlPerVertexInputComponents = 64
maxTessellationControlPerVertexOutputComponents = 64
maxTessellationControlPerPatchOutputComponents = 120
maxTessellationControlTotalOutputComponents = 2048
maxTessellationEvaluationInputComponents = 64
maxTessellationEvaluationOutputComponents = 64
maxGeometryShaderInvocations = 32
maxGeometryInputComponents = 64
maxGeometryOutputComponents = 64
maxGeometryOutputVertices = 256
maxGeometryTotalOutputComponents = 1024
maxFragmentInputComponents = 64
maxFragmentOutputAttachments = 4
maxFragmentDualSrcAttachments = 1
maxFragmentCombinedOutputResources = 4
maxComputeSharedMemorySize = 16384
maxComputeWorkGroupCount: count = 3
65535
65535
65535
maxComputeWorkGroupInvocations = 128
maxComputeWorkGroupSize: count = 3
128
128
64
subPixelPrecisionBits = 4
subTexelPrecisionBits = 4
mipmapPrecisionBits = 4
maxDrawIndexedIndexValue = 4294967295
maxDrawIndirectCount = 65535
maxSamplerLodBias = 2
maxSamplerAnisotropy = 16
maxViewports = 16
maxViewportDimensions: count = 2
4096
4096
viewportBoundsRange: count = 2
-8192
8191
viewportSubPixelBits = 0
minMemoryMapAlignment = 64
minTexelBufferOffsetAlignment = 0x00000010
minUniformBufferOffsetAlignment = 0x00000010
minStorageBufferOffsetAlignment = 0x00000010
minTexelOffset = -8
maxTexelOffset = 7
minTexelGatherOffset = -8
maxTexelGatherOffset = 7
minInterpolationOffset = 0
maxInterpolationOffset = 0.5
subPixelInterpolationOffsetBits = 4
maxFramebufferWidth = 4096
maxFramebufferHeight = 4096
maxFramebufferLayers = 256
framebufferColorSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
framebufferDepthSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
framebufferStencilSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
framebufferNoAttachmentsSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
maxColorAttachments = 4
sampledImageColorSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
sampledImageIntegerSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
sampledImageDepthSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
sampledImageStencilSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
storageImageSampleCounts: count = 7
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
SAMPLE_COUNT_32_BIT
SAMPLE_COUNT_64_BIT
maxSampleMaskWords = 1
timestampComputeAndGraphics = true
timestampPeriod = 1
maxClipDistances = 8
maxCullDistances = 8
maxCombinedClipAndCullDistances = 8
discreteQueuePriorities = 2
pointSizeRange: count = 2
1
64
lineWidthRange: count = 2
1
8
pointSizeGranularity = 1
lineWidthGranularity = 1
strictLines = true
standardSampleLocations = true
optimalBufferCopyOffsetAlignment = 0x00000001
optimalBufferCopyRowPitchAlignment = 0x00000001
nonCoherentAtomSize = 0x00000100
VkPhysicalDeviceSparseProperties:
---------------------------------
residencyStandard2DBlockShape = true
residencyStandard2DMultisampleBlockShape = true
residencyStandard3DBlockShape = true
residencyAlignedMipSize = true
residencyNonResidentStrict = true
VkPhysicalDeviceAccelerationStructurePropertiesKHR:
---------------------------------------------------
maxGeometryCount = 0
maxInstanceCount = 0
maxPrimitiveCount = 0
maxPerStageDescriptorAccelerationStructures = 0
maxPerStageDescriptorUpdateAfterBindAccelerationStructures = 0
maxDescriptorSetAccelerationStructures = 0
maxDescriptorSetUpdateAfterBindAccelerationStructures = 0
minAccelerationStructureScratchOffsetAlignment = 0
VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT:
----------------------------------------------------
advancedBlendMaxColorAttachments = 0
advancedBlendIndependentBlend = false
advancedBlendNonPremultipliedSrcColor = false
advancedBlendNonPremultipliedDstColor = false
advancedBlendCorrelatedOverlap = false
advancedBlendAllOperations = false
VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
-------------------------------------------------------
primitiveOverestimationSize = 0
maxExtraPrimitiveOverestimationSize = 0
extraPrimitiveOverestimationSizeGranularity = 0
primitiveUnderestimation = false
conservativePointAndLineRasterization = false
degenerateTrianglesRasterized = false
degenerateLinesRasterized = false
fullyCoveredFragmentShaderInputVariable = false
conservativeRasterizationPostDepthCoverage = false
VkPhysicalDeviceCustomBorderColorPropertiesEXT:
-----------------------------------------------
maxCustomBorderColorSamplers = 0
VkPhysicalDeviceDepthStencilResolvePropertiesKHR:
-------------------------------------------------
supportedDepthResolveModes: count = 1
RESOLVE_MODE_SAMPLE_ZERO_BIT
supportedStencilResolveModes: count = 1
RESOLVE_MODE_SAMPLE_ZERO_BIT
independentResolveNone = false
independentResolve = false
VkPhysicalDeviceDescriptorIndexingPropertiesEXT:
------------------------------------------------
maxUpdateAfterBindDescriptorsInAllPools = 500000
shaderUniformBufferArrayNonUniformIndexingNative = false
shaderSampledImageArrayNonUniformIndexingNative = false
shaderStorageBufferArrayNonUniformIndexingNative = false
shaderStorageImageArrayNonUniformIndexingNative = false
shaderInputAttachmentArrayNonUniformIndexingNative = false
robustBufferAccessUpdateAfterBind = true
quadDivergentImplicitLod = true
maxPerStageDescriptorUpdateAfterBindSamplers = 500000
maxPerStageDescriptorUpdateAfterBindUniformBuffers = 500000
maxPerStageDescriptorUpdateAfterBindStorageBuffers = 500000
maxPerStageDescriptorUpdateAfterBindSampledImages = 500000
maxPerStageDescriptorUpdateAfterBindStorageImages = 500000
maxPerStageDescriptorUpdateAfterBindInputAttachments = 500000
maxPerStageUpdateAfterBindResources = 500000
maxDescriptorSetUpdateAfterBindSamplers = 500000
maxDescriptorSetUpdateAfterBindUniformBuffers = 96
maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
maxDescriptorSetUpdateAfterBindStorageBuffers = 500000
maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 4
maxDescriptorSetUpdateAfterBindSampledImages = 500000
maxDescriptorSetUpdateAfterBindStorageImages = 500000
maxDescriptorSetUpdateAfterBindInputAttachments = 500000
VkPhysicalDeviceDiscardRectanglePropertiesEXT:
----------------------------------------------
maxDiscardRectangles = 0
VkPhysicalDeviceDriverPropertiesKHR:
------------------------------------
driverID = UNKNOWN_VkDriverId
driverName =
driverInfo =
conformanceVersion = 0.0.0.0
VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
minImportedHostPointerAlignment = 0x00000000
VkPhysicalDeviceFloatControlsPropertiesKHR:
-------------------------------------------
denormBehaviorIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
roundingModeIndependence = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
shaderSignedZeroInfNanPreserveFloat16 = false
shaderSignedZeroInfNanPreserveFloat32 = false
shaderSignedZeroInfNanPreserveFloat64 = false
shaderDenormPreserveFloat16 = false
shaderDenormPreserveFloat32 = false
shaderDenormPreserveFloat64 = false
shaderDenormFlushToZeroFloat16 = false
shaderDenormFlushToZeroFloat32 = false
shaderDenormFlushToZeroFloat64 = false
shaderRoundingModeRTEFloat16 = false
shaderRoundingModeRTEFloat32 = false
shaderRoundingModeRTEFloat64 = false
shaderRoundingModeRTZFloat16 = false
shaderRoundingModeRTZFloat32 = false
shaderRoundingModeRTZFloat64 = false
VkPhysicalDeviceFragmentDensityMap2PropertiesEXT:
-------------------------------------------------
subsampledLoads = false
subsampledCoarseReconstructionEarlyAccess = false
maxSubsampledArrayLayers = 0
maxDescriptorSetSubsampledSamplers = 0
VkPhysicalDeviceFragmentDensityMapPropertiesEXT:
------------------------------------------------
minFragmentDensityTexelSize:
width = 0
height = 0
maxFragmentDensityTexelSize:
width = 0
height = 0
fragmentDensityInvocations = false
VkPhysicalDeviceFragmentShadingRatePropertiesKHR:
-------------------------------------------------
minFragmentShadingRateAttachmentTexelSize:
width = 0
height = 0
maxFragmentShadingRateAttachmentTexelSize:
width = 0
height = 0
maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 0
primitiveFragmentShadingRateWithMultipleViewports = false
layeredShadingRateAttachments = false
fragmentShadingRateNonTrivialCombinerOps = false
maxFragmentSize:
width = 0
height = 0
maxFragmentSizeAspectRatio = 0
maxFragmentShadingRateCoverageSamples = 0
maxFragmentShadingRateRasterizationSamples = None
fragmentShadingRateWithShaderDepthStencilWrites = false
fragmentShadingRateWithSampleMask = false
fragmentShadingRateWithShaderSampleMask = false
fragmentShadingRateWithConservativeRasterization = false
fragmentShadingRateWithFragmentShaderInterlock = false
fragmentShadingRateWithCustomSampleLocations = false
fragmentShadingRateStrictMultiplyCombiner = false
VkPhysicalDeviceIDProperties:
-----------------------------
deviceUUID = 00000000-0000-0000-0000-000000000000
driverUUID = 00000000-0000-0000-0000-000000000000
deviceNodeMask = 0
deviceLUIDValid = false
VkPhysicalDeviceInlineUniformBlockPropertiesEXT:
------------------------------------------------
maxInlineUniformBlockSize = 0
maxPerStageDescriptorInlineUniformBlocks = 0
maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 0
maxDescriptorSetInlineUniformBlocks = 0
maxDescriptorSetUpdateAfterBindInlineUniformBlocks = 0
VkPhysicalDeviceLineRasterizationPropertiesEXT:
-----------------------------------------------
lineSubPixelPrecisionBits = 0
VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
maxPerSetDescriptors = 0
maxMemoryAllocationSize = 0x00000000
VkPhysicalDeviceMultiviewProperties:
------------------------------------
maxMultiviewViewCount = 0
maxMultiviewInstanceIndex = 0
VkPhysicalDevicePCIBusInfoPropertiesEXT:
----------------------------------------
pciDomain = 0
pciBus = 0
pciDevice = 0
pciFunction = 0
VkPhysicalDevicePerformanceQueryPropertiesKHR:
----------------------------------------------
allowCommandBufferQueryCopies = false
VkPhysicalDevicePointClippingProperties:
----------------------------------------
pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
VkPhysicalDeviceProtectedMemoryProperties:
------------------------------------------
protectedNoFault = false
VkPhysicalDevicePushDescriptorPropertiesKHR:
--------------------------------------------
maxPushDescriptors = 256
VkPhysicalDeviceRayTracingPipelinePropertiesKHR:
------------------------------------------------
shaderGroupHandleSize = 0
maxRayRecursionDepth = 0
maxShaderGroupStride = 0
shaderGroupBaseAlignment = 0
shaderGroupHandleCaptureReplaySize = 0
maxRayDispatchInvocationCount = 0
shaderGroupHandleAlignment = 0
maxRayHitAttributeSize = 0
VkPhysicalDeviceRobustness2PropertiesEXT:
-----------------------------------------
robustStorageBufferAccessSizeAlignment = 0x00000000
robustUniformBufferAccessSizeAlignment = 0x00000000
VkPhysicalDeviceSampleLocationsPropertiesEXT:
---------------------------------------------
sampleLocationSampleCounts: count = 0
None
maxSampleLocationGridSize:
width = 0
height = 0
sampleLocationCoordinateRange: count = 2
0
0
sampleLocationSubPixelBits = 0
variableSampleLocations = false
VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT:
-------------------------------------------------
filterMinmaxSingleComponentFormats = false
filterMinmaxImageComponentMapping = false
VkPhysicalDeviceSubgroupProperties:
-----------------------------------
subgroupSize = 0
supportedStages: count = 0
None
supportedOperations: count = 0
None
quadOperationsInAllStages = false
VkPhysicalDeviceSubgroupSizeControlPropertiesEXT:
-------------------------------------------------
minSubgroupSize = 0
maxSubgroupSize = 0
maxComputeWorkgroupSubgroups = 0
requiredSubgroupSizeStages: count = 0
None
VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT:
--------------------------------------------------
storageTexelBufferOffsetAlignmentBytes = 0x00000000
storageTexelBufferOffsetSingleTexelAlignment = false
uniformTexelBufferOffsetAlignmentBytes = 0x00000000
uniformTexelBufferOffsetSingleTexelAlignment = false
VkPhysicalDeviceTimelineSemaphorePropertiesKHR:
-----------------------------------------------
maxTimelineSemaphoreValueDifference = 0
VkPhysicalDeviceTransformFeedbackPropertiesEXT:
-----------------------------------------------
maxTransformFeedbackStreams = 0
maxTransformFeedbackBuffers = 0
maxTransformFeedbackBufferSize = 0x00000000
maxTransformFeedbackStreamDataSize = 0
maxTransformFeedbackBufferDataSize = 0
maxTransformFeedbackBufferDataStride = 0
transformFeedbackQueries = false
transformFeedbackStreamsLinesTriangles = false
transformFeedbackRasterizationStreamSelect = false
transformFeedbackDraw = false
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
----------------------------------------------------
maxVertexAttribDivisor = 0
Device Extensions: count = 187
------------------------------
VK_AMD_buffer_marker : extension revision 1
VK_AMD_device_coherent_memory : extension revision 1
VK_AMD_display_native_hdr : extension revision 1
VK_AMD_draw_indirect_count : extension revision 2
VK_AMD_gcn_shader : extension revision 1
VK_AMD_gpu_shader_half_float : extension revision 2
VK_AMD_gpu_shader_int16 : extension revision 2
VK_AMD_memory_overallocation_behavior : extension revision 1
VK_AMD_mixed_attachment_samples : extension revision 1
VK_AMD_negative_viewport_height : extension revision 1
VK_AMD_pipeline_compiler_control : extension revision 1
VK_AMD_rasterization_order : extension revision 1
VK_AMD_shader_ballot : extension revision 1
VK_AMD_shader_core_properties : extension revision 2
VK_AMD_shader_core_properties2 : extension revision 1
VK_AMD_shader_explicit_vertex_parameter : extension revision 1
VK_AMD_shader_fragment_mask : extension revision 1
VK_AMD_shader_image_load_store_lod : extension revision 1
VK_AMD_shader_info : extension revision 1
VK_AMD_shader_trinary_minmax : extension revision 1
VK_AMD_texture_gather_bias_lod : extension revision 1
VK_ANDROID_external_memory_android_hardware_buffer : extension revision 3
VK_EXT_4444_formats : extension revision 1
VK_EXT_astc_decode_mode : extension revision 1
VK_EXT_blend_operation_advanced : extension revision 2
VK_EXT_buffer_device_address : extension revision 2
VK_EXT_calibrated_timestamps : extension revision 1
VK_EXT_conditional_rendering : extension revision 2
VK_EXT_conservative_rasterization : extension revision 1
VK_EXT_custom_border_color : extension revision 12
VK_EXT_debug_marker : extension revision 4
VK_EXT_depth_clip_enable : extension revision 1
VK_EXT_depth_range_unrestricted : extension revision 1
VK_EXT_descriptor_indexing : extension revision 2
VK_EXT_device_memory_report : extension revision 1
VK_EXT_discard_rectangles : extension revision 1
VK_EXT_display_control : extension revision 1
VK_EXT_extended_dynamic_state : extension revision 1
VK_EXT_external_memory_dma_buf : extension revision 1
VK_EXT_external_memory_host : extension revision 1
VK_EXT_filter_cubic : extension revision 3
VK_EXT_fragment_density_map : extension revision 1
VK_EXT_fragment_density_map2 : extension revision 1
VK_EXT_fragment_shader_interlock : extension revision 1
VK_EXT_full_screen_exclusive : extension revision 4
VK_EXT_global_priority : extension revision 2
VK_EXT_hdr_metadata : extension revision 2
VK_EXT_host_query_reset : extension revision 1
VK_EXT_image_drm_format_modifier : extension revision 1
VK_EXT_image_robustness : extension revision 1
VK_EXT_index_type_uint8 : extension revision 1
VK_EXT_inline_uniform_block : extension revision 1
VK_EXT_line_rasterization : extension revision 1
VK_EXT_memory_budget : extension revision 1
VK_EXT_memory_priority : extension revision 1
VK_EXT_pci_bus_info : extension revision 2
VK_EXT_pipeline_creation_cache_control : extension revision 3
VK_EXT_pipeline_creation_feedback : extension revision 1
VK_EXT_post_depth_coverage : extension revision 1
VK_EXT_private_data : extension revision 1
VK_EXT_queue_family_foreign : extension revision 1
VK_EXT_robustness2 : extension revision 1
VK_EXT_sample_locations : extension revision 1
VK_EXT_sampler_filter_minmax : extension revision 2
VK_EXT_scalar_block_layout : extension revision 1
VK_EXT_separate_stencil_usage : extension revision 1
VK_EXT_shader_atomic_float : extension revision 1
VK_EXT_shader_demote_to_helper_invocation : extension revision 1
VK_EXT_shader_image_atomic_int64 : extension revision 1
VK_EXT_shader_stencil_export : extension revision 1
VK_EXT_shader_subgroup_ballot : extension revision 1
VK_EXT_shader_subgroup_vote : extension revision 1
VK_EXT_shader_viewport_index_layer : extension revision 1
VK_EXT_subgroup_size_control : extension revision 2
VK_EXT_texel_buffer_alignment : extension revision 1
VK_EXT_texture_compression_astc_hdr : extension revision 1
VK_EXT_tooling_info : extension revision 1
VK_EXT_transform_feedback : extension revision 1
VK_EXT_vertex_attribute_divisor : extension revision 3
VK_EXT_ycbcr_image_arrays : extension revision 1
VK_GGP_frame_token : extension revision 1
VK_GOOGLE_decorate_string : extension revision 1
VK_GOOGLE_display_timing : extension revision 1
VK_GOOGLE_hlsl_functionality1 : extension revision 1
VK_GOOGLE_user_type : extension revision 1
VK_IMG_filter_cubic : extension revision 1
VK_IMG_format_pvrtc : extension revision 1
VK_INTEL_performance_query : extension revision 2
VK_INTEL_shader_integer_functions2 : extension revision 1
VK_KHR_16bit_storage : extension revision 1
VK_KHR_8bit_storage : extension revision 1
VK_KHR_acceleration_structure : extension revision 11
VK_KHR_bind_memory2 : extension revision 1
VK_KHR_buffer_device_address : extension revision 1
VK_KHR_copy_commands2 : extension revision 1
VK_KHR_create_renderpass2 : extension revision 1
VK_KHR_dedicated_allocation : extension revision 3
VK_KHR_deferred_host_operations : extension revision 4
VK_KHR_depth_stencil_resolve : extension revision 1
VK_KHR_descriptor_update_template : extension revision 1
VK_KHR_device_group : extension revision 4
VK_KHR_display_swapchain : extension revision 10
VK_KHR_draw_indirect_count : extension revision 1
VK_KHR_driver_properties : extension revision 1
VK_KHR_external_fence : extension revision 1
VK_KHR_external_fence_fd : extension revision 1
VK_KHR_external_fence_win32 : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_memory_fd : extension revision 1
VK_KHR_external_memory_win32 : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_fd : extension revision 1
VK_KHR_external_semaphore_win32 : extension revision 1
VK_KHR_fragment_shading_rate : extension revision 1
VK_KHR_get_memory_requirements2 : extension revision 1
VK_KHR_image_format_list : extension revision 1
VK_KHR_imageless_framebuffer : extension revision 1
VK_KHR_incremental_present : extension revision 1
VK_KHR_maintenance1 : extension revision 2
VK_KHR_maintenance2 : extension revision 1
VK_KHR_maintenance3 : extension revision 1
VK_KHR_multiview : extension revision 1
VK_KHR_performance_query : extension revision 1
VK_KHR_pipeline_executable_properties : extension revision 1
VK_KHR_pipeline_library : extension revision 1
VK_KHR_push_descriptor : extension revision 2
VK_KHR_ray_query : extension revision 1
VK_KHR_ray_tracing_pipeline : extension revision 1
VK_KHR_relaxed_block_layout : extension revision 1
VK_KHR_sampler_mirror_clamp_to_edge : extension revision 3
VK_KHR_sampler_ycbcr_conversion : extension revision 14
VK_KHR_separate_depth_stencil_layouts : extension revision 1
VK_KHR_shader_atomic_int64 : extension revision 1
VK_KHR_shader_clock : extension revision 1
VK_KHR_shader_draw_parameters : extension revision 1
VK_KHR_shader_float16_int8 : extension revision 1
VK_KHR_shader_float_controls : extension revision 4
VK_KHR_shader_non_semantic_info : extension revision 1
VK_KHR_shader_subgroup_extended_types : extension revision 1
VK_KHR_shader_terminate_invocation : extension revision 1
VK_KHR_shared_presentable_image : extension revision 1
VK_KHR_spirv_1_4 : extension revision 1
VK_KHR_storage_buffer_storage_class : extension revision 1
VK_KHR_swapchain : extension revision 70
VK_KHR_swapchain_mutable_format : extension revision 1
VK_KHR_timeline_semaphore : extension revision 2
VK_KHR_uniform_buffer_standard_layout : extension revision 1
VK_KHR_variable_pointers : extension revision 1
VK_KHR_vulkan_memory_model : extension revision 3
VK_KHR_win32_keyed_mutex : extension revision 1
VK_NVX_image_view_handle : extension revision 2
VK_NVX_multiview_per_view_attributes : extension revision 1
VK_NV_clip_space_w_scaling : extension revision 1
VK_NV_compute_shader_derivatives : extension revision 1
VK_NV_cooperative_matrix : extension revision 1
VK_NV_corner_sampled_image : extension revision 2
VK_NV_coverage_reduction_mode : extension revision 1
VK_NV_dedicated_allocation : extension revision 1
VK_NV_dedicated_allocation_image_aliasing : extension revision 1
VK_NV_device_diagnostic_checkpoints : extension revision 2
VK_NV_device_diagnostics_config : extension revision 1
VK_NV_device_generated_commands : extension revision 3
VK_NV_external_memory : extension revision 1
VK_NV_external_memory_win32 : extension revision 1
VK_NV_fill_rectangle : extension revision 1
VK_NV_fragment_coverage_to_color : extension revision 1
VK_NV_fragment_shader_barycentric : extension revision 1
VK_NV_fragment_shading_rate_enums : extension revision 1
VK_NV_framebuffer_mixed_samples : extension revision 1
VK_NV_geometry_shader_passthrough : extension revision 1
VK_NV_glsl_shader : extension revision 1
VK_NV_mesh_shader : extension revision 1
VK_NV_ray_tracing : extension revision 3
VK_NV_representative_fragment_test : extension revision 2
VK_NV_sample_mask_override_coverage : extension revision 1
VK_NV_scissor_exclusive : extension revision 1
VK_NV_shader_image_footprint : extension revision 2
VK_NV_shader_sm_builtins : extension revision 1
VK_NV_shader_subgroup_partitioned : extension revision 1
VK_NV_shading_rate_image : extension revision 3
VK_NV_viewport_array2 : extension revision 1
VK_NV_viewport_swizzle : extension revision 1
VK_NV_win32_keyed_mutex : extension revision 2
VK_QCOM_render_pass_shader_resolve : extension revision 4
VK_QCOM_render_pass_store_ops : extension revision 2
VK_QCOM_render_pass_transform : extension revision 1
VK_QCOM_rotated_copy_commands : extension revision 0
VkQueueFamilyProperties:
========================
queueProperties[0]:
-------------------
minImageTransferGranularity = (1,1,1)
queueCount = 1
queueFlags = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
timestampValidBits = 0
present support = false
VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 2
memoryHeaps[0]:
size = 8000000000 (0x1dcd65000) (7.45 GiB)
budget = 0 (0x00000000) (0.00 B)
usage = 0 (0x00000000) (0.00 B)
flags: count = 0
None
memoryHeaps[1]:
size = 8000000000 (0x1dcd65000) (7.45 GiB)
budget = 0 (0x00000000) (0.00 B)
usage = 0 (0x00000000) (0.00 B)
flags: count = 1
MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 2
memoryTypes[0]:
heapIndex = 0
propertyFlags = 0x0006: count = 2
MEMORY_PROPERTY_HOST_VISIBLE_BIT
MEMORY_PROPERTY_HOST_COHERENT_BIT
usable for:
IMAGE_TILING_OPTIMAL:
color images
FORMAT_D16_UNORM
FORMAT_X8_D24_UNORM_PACK32
FORMAT_D32_SFLOAT
FORMAT_S8_UINT
FORMAT_D16_UNORM_S8_UINT
FORMAT_D24_UNORM_S8_UINT
FORMAT_D32_SFLOAT_S8_UINT
(non-sparse)
IMAGE_TILING_LINEAR:
color images
(non-sparse)
memoryTypes[1]:
heapIndex = 1
propertyFlags = 0x000f: count = 4
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
MEMORY_PROPERTY_HOST_VISIBLE_BIT
MEMORY_PROPERTY_HOST_COHERENT_BIT
MEMORY_PROPERTY_HOST_CACHED_BIT
usable for:
IMAGE_TILING_OPTIMAL:
color images
FORMAT_D16_UNORM
FORMAT_X8_D24_UNORM_PACK32
FORMAT_D32_SFLOAT
FORMAT_S8_UINT
FORMAT_D16_UNORM_S8_UINT
FORMAT_D24_UNORM_S8_UINT
FORMAT_D32_SFLOAT_S8_UINT
(non-sparse)
IMAGE_TILING_LINEAR:
color images
(non-sparse)
VkPhysicalDeviceFeatures:
=========================
robustBufferAccess = true
fullDrawIndexUint32 = true
imageCubeArray = true
independentBlend = true
geometryShader = true
tessellationShader = true
sampleRateShading = true
dualSrcBlend = true
logicOp = true
multiDrawIndirect = true
drawIndirectFirstInstance = true
depthClamp = true
depthBiasClamp = true
fillModeNonSolid = true
depthBounds = true
wideLines = true
largePoints = true
alphaToOne = true
multiViewport = true
samplerAnisotropy = true
textureCompressionETC2 = true
textureCompressionASTC_LDR = true
textureCompressionBC = true
occlusionQueryPrecise = true
pipelineStatisticsQuery = true
vertexPipelineStoresAndAtomics = true
fragmentStoresAndAtomics = true
shaderTessellationAndGeometryPointSize = true
shaderImageGatherExtended = true
shaderStorageImageExtendedFormats = true
shaderStorageImageMultisample = true
shaderStorageImageReadWithoutFormat = true
shaderStorageImageWriteWithoutFormat = true
shaderUniformBufferArrayDynamicIndexing = true
shaderSampledImageArrayDynamicIndexing = true
shaderStorageBufferArrayDynamicIndexing = true
shaderStorageImageArrayDynamicIndexing = true
shaderClipDistance = true
shaderCullDistance = true
shaderFloat64 = true
shaderInt64 = true
shaderInt16 = true
shaderResourceResidency = true
shaderResourceMinLod = true
sparseBinding = true
sparseResidencyBuffer = true
sparseResidencyImage2D = true
sparseResidencyImage3D = true
sparseResidency2Samples = true
sparseResidency4Samples = true
sparseResidency8Samples = true
sparseResidency16Samples = true
sparseResidencyAliased = true
variableMultisampleRate = true
inheritedQueries = true
VkPhysicalDevice16BitStorageFeatures:
-------------------------------------
storageBuffer16BitAccess = false
uniformAndStorageBuffer16BitAccess = false
storagePushConstant16 = false
storageInputOutput16 = false
VkPhysicalDevice4444FormatsFeaturesEXT:
---------------------------------------
formatA4R4G4B4 = false
formatA4B4G4R4 = false
VkPhysicalDevice8BitStorageFeaturesKHR:
---------------------------------------
storageBuffer8BitAccess = false
uniformAndStorageBuffer8BitAccess = false
storagePushConstant8 = false
VkPhysicalDeviceASTCDecodeFeaturesEXT:
--------------------------------------
decodeModeSharedExponent = false
VkPhysicalDeviceAccelerationStructureFeaturesKHR:
-------------------------------------------------
accelerationStructure = false
accelerationStructureCaptureReplay = false
accelerationStructureIndirectBuild = false
accelerationStructureHostCommands = false
descriptorBindingAccelerationStructureUpdateAfterBind = false
VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT:
--------------------------------------------------
advancedBlendCoherentOperations = true
VkPhysicalDeviceBufferDeviceAddressFeaturesKHR:
-----------------------------------------------
bufferDeviceAddress = false
bufferDeviceAddressCaptureReplay = false
bufferDeviceAddressMultiDevice = false
VkPhysicalDeviceBufferDeviceAddressFeaturesEXT:
-----------------------------------------------
bufferDeviceAddress = false
bufferDeviceAddressCaptureReplay = false
bufferDeviceAddressMultiDevice = false
VkPhysicalDeviceConditionalRenderingFeaturesEXT:
------------------------------------------------
conditionalRendering = false
inheritedConditionalRendering = false
VkPhysicalDeviceCustomBorderColorFeaturesEXT:
---------------------------------------------
customBorderColors = false
customBorderColorWithoutFormat = false
VkPhysicalDeviceDepthClipEnableFeaturesEXT:
-------------------------------------------
depthClipEnable = false
VkPhysicalDeviceDescriptorIndexingFeaturesEXT:
----------------------------------------------
shaderInputAttachmentArrayDynamicIndexing = true
shaderUniformTexelBufferArrayDynamicIndexing = true
shaderStorageTexelBufferArrayDynamicIndexing = true
shaderUniformBufferArrayNonUniformIndexing = true
shaderSampledImageArrayNonUniformIndexing = true
shaderStorageBufferArrayNonUniformIndexing = true
shaderStorageImageArrayNonUniformIndexing = true
shaderInputAttachmentArrayNonUniformIndexing = true
shaderUniformTexelBufferArrayNonUniformIndexing = true
shaderStorageTexelBufferArrayNonUniformIndexing = true
descriptorBindingUniformBufferUpdateAfterBind = true
descriptorBindingSampledImageUpdateAfterBind = true
descriptorBindingStorageImageUpdateAfterBind = true
descriptorBindingStorageBufferUpdateAfterBind = true
descriptorBindingUniformTexelBufferUpdateAfterBind = true
descriptorBindingStorageTexelBufferUpdateAfterBind = true
descriptorBindingUpdateUnusedWhilePending = true
descriptorBindingPartiallyBound = true
descriptorBindingVariableDescriptorCount = true
runtimeDescriptorArray = true
VkPhysicalDeviceDeviceMemoryReportFeaturesEXT:
----------------------------------------------
deviceMemoryReport = false
VkPhysicalDeviceExtendedDynamicStateFeaturesEXT:
------------------------------------------------
extendedDynamicState = false
VkPhysicalDeviceFragmentDensityMap2FeaturesEXT:
-----------------------------------------------
fragmentDensityMapDeferred = false
VkPhysicalDeviceFragmentDensityMapFeaturesEXT:
----------------------------------------------
fragmentDensityMap = false
fragmentDensityMapDynamic = false
fragmentDensityMapNonSubsampledImages = false
VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:
---------------------------------------------------
fragmentShaderSampleInterlock = false
fragmentShaderPixelInterlock = false
fragmentShaderShadingRateInterlock = false
VkPhysicalDeviceFragmentShadingRateFeaturesKHR:
-----------------------------------------------
pipelineFragmentShadingRate = false
primitiveFragmentShadingRate = false
attachmentFragmentShadingRate = false
VkPhysicalDeviceHostQueryResetFeaturesEXT:
------------------------------------------
hostQueryReset = false
VkPhysicalDeviceImageRobustnessFeaturesEXT:
-------------------------------------------
robustImageAccess = false
VkPhysicalDeviceImagelessFramebufferFeaturesKHR:
------------------------------------------------
imagelessFramebuffer = false
VkPhysicalDeviceIndexTypeUint8FeaturesEXT:
------------------------------------------
indexTypeUint8 = false
VkPhysicalDeviceInlineUniformBlockFeaturesEXT:
----------------------------------------------
inlineUniformBlock = false
descriptorBindingInlineUniformBlockUpdateAfterBind = false
VkPhysicalDeviceLineRasterizationFeaturesEXT:
---------------------------------------------
rectangularLines = false
bresenhamLines = false
smoothLines = false
stippledRectangularLines = false
stippledBresenhamLines = false
stippledSmoothLines = false
VkPhysicalDeviceMemoryPriorityFeaturesEXT:
------------------------------------------
memoryPriority = false
VkPhysicalDeviceMultiviewFeatures:
----------------------------------
multiview = false
multiviewGeometryShader = false
multiviewTessellationShader = false
VkPhysicalDevicePerformanceQueryFeaturesKHR:
--------------------------------------------
performanceCounterQueryPools = false
performanceCounterMultipleQueryPools = false
VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT:
--------------------------------------------------------
pipelineCreationCacheControl = false
VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
--------------------------------------------------------
pipelineExecutableInfo = false
VkPhysicalDevicePrivateDataFeaturesEXT:
---------------------------------------
privateData = false
VkPhysicalDeviceProtectedMemoryFeatures:
----------------------------------------
protectedMemory = false
VkPhysicalDeviceRayQueryFeaturesKHR:
------------------------------------
rayQuery = false
VkPhysicalDeviceRayTracingPipelineFeaturesKHR:
----------------------------------------------
rayTracingPipeline = false
rayTracingPipelineShaderGroupHandleCaptureReplay = false
rayTracingPipelineShaderGroupHandleCaptureReplayMixed = false
rayTracingPipelineTraceRaysIndirect = false
rayTraversalPrimitiveCulling = false
VkPhysicalDeviceRobustness2FeaturesEXT:
---------------------------------------
robustBufferAccess2 = false
robustImageAccess2 = false
nullDescriptor = false
VkPhysicalDeviceSamplerYcbcrConversionFeatures:
-----------------------------------------------
samplerYcbcrConversion = false
VkPhysicalDeviceScalarBlockLayoutFeaturesEXT:
---------------------------------------------
scalarBlockLayout = false
VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR:
-------------------------------------------------------
separateDepthStencilLayouts = false
VkPhysicalDeviceShaderAtomicFloatFeaturesEXT:
---------------------------------------------
shaderBufferFloat32Atomics = false
shaderBufferFloat32AtomicAdd = false
shaderBufferFloat64Atomics = false
shaderBufferFloat64AtomicAdd = false
shaderSharedFloat32Atomics = false
shaderSharedFloat32AtomicAdd = false
shaderSharedFloat64Atomics = false
shaderSharedFloat64AtomicAdd = false
shaderImageFloat32Atomics = false
shaderImageFloat32AtomicAdd = false
sparseImageFloat32Atomics = false
sparseImageFloat32AtomicAdd = false
VkPhysicalDeviceShaderAtomicInt64FeaturesKHR:
---------------------------------------------
shaderBufferInt64Atomics = false
shaderSharedInt64Atomics = false
VkPhysicalDeviceShaderClockFeaturesKHR:
---------------------------------------
shaderSubgroupClock = false
shaderDeviceClock = false
VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
----------------------------------------------------------
shaderDemoteToHelperInvocation = false
VkPhysicalDeviceShaderDrawParametersFeatures:
---------------------------------------------
shaderDrawParameters = false
VkPhysicalDeviceFloat16Int8FeaturesKHR:
---------------------------------------
shaderFloat16 = false
shaderInt8 = false
VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT:
--------------------------------------------------
shaderImageInt64Atomics = false
sparseImageInt64Atomics = false
VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR:
-------------------------------------------------------
shaderSubgroupExtendedTypes = false
VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR:
-----------------------------------------------------
shaderTerminateInvocation = false
VkPhysicalDeviceSubgroupSizeControlFeaturesEXT:
-----------------------------------------------
subgroupSizeControl = false
computeFullSubgroups = false
VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:
------------------------------------------------
texelBufferAlignment = false
VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT:
-----------------------------------------------------
textureCompressionASTC_HDR = false
VkPhysicalDeviceTimelineSemaphoreFeaturesKHR:
---------------------------------------------
timelineSemaphore = false
VkPhysicalDeviceTransformFeedbackFeaturesEXT:
---------------------------------------------
transformFeedback = false
geometryStreams = false
VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR:
-------------------------------------------------------
uniformBufferStandardLayout = false
VkPhysicalDeviceVariablePointersFeatures:
-----------------------------------------
variablePointersStorageBuffer = false
variablePointers = false
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
vertexAttributeInstanceRateDivisor = false
vertexAttributeInstanceRateZeroDivisor = false
VkPhysicalDeviceVulkanMemoryModelFeaturesKHR:
---------------------------------------------
vulkanMemoryModel = false
vulkanMemoryModelDeviceScope = false
vulkanMemoryModelAvailabilityVisibilityChains = false
VkPhysicalDeviceYcbcrImageArraysFeaturesEXT:
--------------------------------------------
ycbcrImageArrays = false

-
- Posts: 277
- Joined: Mon Feb 17, 2020 1:35 pm
- languages_spoken: english
- ODROIDs: odroid go advance
- Has thanked: 22 times
- Been thanked: 77 times
- Contact:
Re: Question about the Vulkan capable emulators
Code: Select all
deviceType = PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
deviceName = Vulkan Mock Device
Void Linux is also only showing 4 extensions.
-
- Posts: 1544
- Joined: Fri Oct 02, 2015 1:44 pm
- languages_spoken: english
- ODROIDs: ODROID-C1+, XU4, X
- Has thanked: 170 times
- Been thanked: 207 times
- Contact:
Re: Question about the Vulkan capable emulators
Here is the information of libvulkan.so path.
Code: Select all
root@goadvance:~# ls -al /usr/lib/aarch64-linux-gnu/libvulkan*
lrwxrwxrwx 1 root root 64 Feb 1 10:22 /usr/lib/aarch64-linux-gnu/libvulkan.so -> /usr/local/lib/aarch64-linux-gnu/libmali-bifrost-g31-rxp0-gbm.so
lrwxrwxrwx 1 root root 64 Feb 1 10:22 /usr/lib/aarch64-linux-gnu/libvulkan.so.1 -> /usr/local/lib/aarch64-linux-gnu/libmali-bifrost-g31-rxp0-gbm.so
BTW, have you tested this run_loader_tests.sh?
https://github.com/KhronosGroup/Vulkan- ... ster/tests
Is there any missing path setup?

-
- Posts: 1
- Joined: Tue Feb 25, 2020 9:43 pm
- languages_spoken: english
- ODROIDs: N2, GO-Advance
- Has thanked: 0
- Been thanked: 0
- Contact:
Re: Question about the Vulkan capable emulators
Hi there! Thanks for looking into Vulkan support, it would be fantastic if it could be supported.
Like valadaa48 said, that output from the buildroot looks like it's from a stub driver. For example, it shows support for BC texture compression, which as far as I'm aware isn't supported on Mali GPUs (usually only desktop), fp64, int64, etc.
Looking at the driver linked in the wiki article:
I'm no expert on the Mali blob, but I suspect this might be a compute-only driver. It seems to be missing the surface extensions, or it was perhaps not compiled with the correct WSI enabled? (gbm/wayland/etc)
Some entry points do exist, e.g. `vkCreateDisplayPlaneSurfaceKHR` (for VK_KHR_display), but are simply stub functions and return `VK_ERROR_EXTENSION_NOT_PRESENT`.
So, as best I can tell, we are unable to use this driver for graphics.
Like valadaa48 said, that output from the buildroot looks like it's from a stub driver. For example, it shows support for BC texture compression, which as far as I'm aware isn't supported on Mali GPUs (usually only desktop), fp64, int64, etc.
Looking at the driver linked in the wiki article:
I'm no expert on the Mali blob, but I suspect this might be a compute-only driver. It seems to be missing the surface extensions, or it was perhaps not compiled with the correct WSI enabled? (gbm/wayland/etc)
Some entry points do exist, e.g. `vkCreateDisplayPlaneSurfaceKHR` (for VK_KHR_display), but are simply stub functions and return `VK_ERROR_EXTENSION_NOT_PRESENT`.
So, as best I can tell, we are unable to use this driver for graphics.
-
- Posts: 1544
- Joined: Fri Oct 02, 2015 1:44 pm
- languages_spoken: english
- ODROIDs: ODROID-C1+, XU4, X
- Has thanked: 170 times
- Been thanked: 207 times
- Contact:
Re: Question about the Vulkan capable emulators
@Stenzek,Stenzek wrote: ↑Thu Feb 04, 2021 2:09 pmHi there! Thanks for looking into Vulkan support, it would be fantastic if it could be supported.
Like valadaa48 said, that output from the buildroot looks like it's from a stub driver. For example, it shows support for BC texture compression, which as far as I'm aware isn't supported on Mali GPUs (usually only desktop), fp64, int64, etc.
Looking at the driver linked in the wiki article:
I'm no expert on the Mali blob, but I suspect this might be a compute-only driver. It seems to be missing the surface extensions, or it was perhaps not compiled with the correct WSI enabled? (gbm/wayland/etc)
Some entry points do exist, e.g. `vkCreateDisplayPlaneSurfaceKHR` (for VK_KHR_display), but are simply stub functions and return `VK_ERROR_EXTENSION_NOT_PRESENT`.
So, as best I can tell, we are unable to use this driver for graphics.
Thank you for very detailed explanation.

I don't have much knowledge of it, but thanks to you, now I can understand what we need.
We will share test results and our discussion with Rockchip soon and ask to check the availability again.
@valadaa48,
Sorry. I misunderstood what you asked me to check.

-
- Posts: 1637
- Joined: Sun Jul 07, 2013 3:05 am
- languages_spoken: german, english
- ODROIDs: X2, U3, XU3, C2, HiFi Shield, XU4, XU4Q,
N1, Go, VU5A, Show2, CloudShell2,
H2, N2, VU7A, VuShell, Go2, C4 - Has thanked: 100 times
- Been thanked: 279 times
- Contact:
Re: Question about the Vulkan capable emulators
You are right joy seems to test against a virtual GPU, I also run vulkaninfo and it shows MALI-G31 and it does not have the two extensions that for sure ! They are missing and without them we are out of luck - zero hero, Rockchip must provide them in order to proceed
Code: Select all
Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 4194412 (1.0.108)
driverVersion = 54525952 (0x3400000)
vendorID = 0x13b5
deviceID = 0x70930000
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = Mali-G31
Code: Select all
odroid@goadvance:~/Vulkan-Tools/build/vulkaninfo$ ./vulkaninfo
'DISPLAY' environment variable not set... skipping surface info
error: XDG_RUNTIME_DIR not set in the environment.
==========
VULKANINFO
==========
Vulkan Instance Version: 1.0.108
Instance Extensions: count = 4
==============================
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 1
Layers: count = 0
=================
Presentable Surfaces:
=====================
Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 4194412 (1.0.108)
driverVersion = 54525952 (0x3400000)
vendorID = 0x13b5
deviceID = 0x70930000
deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
deviceName = Mali-G31
VkPhysicalDeviceLimits:
-----------------------
maxImageDimension1D = 16384
maxImageDimension2D = 8192
maxImageDimension3D = 4096
maxImageDimensionCube = 8192
maxImageArrayLayers = 256
maxTexelBufferElements = 65536
maxUniformBufferRange = 65536
maxStorageBufferRange = 268435456
maxPushConstantsSize = 256
maxMemoryAllocationCount = 4294967295
maxSamplerAllocationCount = 4294967295
bufferImageGranularity = 0x00001000
sparseAddressSpaceSize = 0x00000000
maxBoundDescriptorSets = 4
maxPerStageDescriptorSamplers = 128
maxPerStageDescriptorUniformBuffers = 12
maxPerStageDescriptorStorageBuffers = 35
maxPerStageDescriptorSampledImages = 16
maxPerStageDescriptorStorageImages = 8
maxPerStageDescriptorInputAttachments = 4
maxPerStageResources = 83
maxDescriptorSetSamplers = 768
maxDescriptorSetUniformBuffers = 72
maxDescriptorSetUniformBuffersDynamic = 8
maxDescriptorSetStorageBuffers = 210
maxDescriptorSetStorageBuffersDynamic = 4
maxDescriptorSetSampledImages = 96
maxDescriptorSetStorageImages = 48
maxDescriptorSetInputAttachments = 4
maxVertexInputAttributes = 16
maxVertexInputBindings = 16
maxVertexInputAttributeOffset = 2047
maxVertexInputBindingStride = 2048
maxVertexOutputComponents = 128
maxTessellationGenerationLevel = 64
maxTessellationPatchSize = 32
maxTessellationControlPerVertexInputComponents = 128
maxTessellationControlPerVertexOutputComponents = 128
maxTessellationControlPerPatchOutputComponents = 120
maxTessellationControlTotalOutputComponents = 4096
maxTessellationEvaluationInputComponents = 128
maxTessellationEvaluationOutputComponents = 128
maxGeometryShaderInvocations = 32
maxGeometryInputComponents = 64
maxGeometryOutputComponents = 128
maxGeometryOutputVertices = 256
maxGeometryTotalOutputComponents = 1024
maxFragmentInputComponents = 128
maxFragmentOutputAttachments = 8
maxFragmentDualSrcAttachments = 0
maxFragmentCombinedOutputResources = 51
maxComputeSharedMemorySize = 32768
maxComputeWorkGroupCount: count = 3
65536
65536
65536
maxComputeWorkGroupInvocations = 256
maxComputeWorkGroupSize: count = 3
256
256
256
subPixelPrecisionBits = 8
subTexelPrecisionBits = 8
mipmapPrecisionBits = 8
maxDrawIndexedIndexValue = 4294967295
maxDrawIndirectCount = 1
maxSamplerLodBias = 255
maxSamplerAnisotropy = 16
maxViewports = 1
maxViewportDimensions: count = 2
8192
8192
viewportBoundsRange: count = 2
-16384
16383
viewportSubPixelBits = 0
minMemoryMapAlignment = 64
minTexelBufferOffsetAlignment = 0x00000100
minUniformBufferOffsetAlignment = 0x00000010
minStorageBufferOffsetAlignment = 0x00000100
minTexelOffset = -8
maxTexelOffset = 7
minTexelGatherOffset = -8
maxTexelGatherOffset = 7
minInterpolationOffset = -0.5
maxInterpolationOffset = 0.5
subPixelInterpolationOffsetBits = 4
maxFramebufferWidth = 8192
maxFramebufferHeight = 8192
maxFramebufferLayers = 256
framebufferColorSampleCounts: count = 3
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
framebufferDepthSampleCounts: count = 3
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
framebufferStencilSampleCounts: count = 3
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
framebufferNoAttachmentsSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
SAMPLE_COUNT_16_BIT
maxColorAttachments = 8
sampledImageColorSampleCounts: count = 3
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
sampledImageIntegerSampleCounts: count = 1
SAMPLE_COUNT_1_BIT
sampledImageDepthSampleCounts: count = 3
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
sampledImageStencilSampleCounts: count = 3
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
storageImageSampleCounts: count = 1
SAMPLE_COUNT_1_BIT
maxSampleMaskWords = 1
timestampComputeAndGraphics = false
timestampPeriod = 0
maxClipDistances = 0
maxCullDistances = 0
maxCombinedClipAndCullDistances = 0
discreteQueuePriorities = 2
pointSizeRange: count = 2
1
1024
lineWidthRange: count = 2
1
1
pointSizeGranularity = 0.0625
lineWidthGranularity = 0
strictLines = true
standardSampleLocations = true
optimalBufferCopyOffsetAlignment = 0x00000040
optimalBufferCopyRowPitchAlignment = 0x00000040
nonCoherentAtomSize = 0x00000040
VkPhysicalDeviceSparseProperties:
---------------------------------
residencyStandard2DBlockShape = false
residencyStandard2DMultisampleBlockShape = false
residencyStandard3DBlockShape = false
residencyAlignedMipSize = false
residencyNonResidentStrict = false
VkPhysicalDeviceIDPropertiesKHR:
--------------------------------
deviceUUID = 00009370-0100-0000-0000-000000000000
driverUUID = 734b89eb-81c9-403d-1f26-81b26a1806a1
deviceNodeMask = 0
deviceLUIDValid = false
VkPhysicalDevicePointClippingPropertiesKHR:
-------------------------------------------
pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
Device Extensions: count = 15
-----------------------------
VK_KHR_16bit_storage : extension revision 1
VK_KHR_dedicated_allocation : extension revision 3
VK_KHR_descriptor_update_template : extension revision 1
VK_KHR_external_fence : extension revision 1
VK_KHR_external_fence_fd : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_fd : extension revision 1
VK_KHR_get_memory_requirements2 : extension revision 1
VK_KHR_image_format_list : extension revision 1
VK_KHR_maintenance1 : extension revision 2
VK_KHR_maintenance2 : extension revision 1
VK_KHR_shader_draw_parameters : extension revision 1
VK_KHR_storage_buffer_storage_class : extension revision 1
VK_KHR_variable_pointers : extension revision 1
VkQueueFamilyProperties:
========================
queueProperties[0]:
-------------------
minImageTransferGranularity = (1,1,1)
queueCount = 2
queueFlags = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
timestampValidBits = 0
present support = false
VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
memoryHeaps[0]:
size = 932577280 (0x37960000) (889.38 MiB)
budget = 0 (0x00000000) (0.00 B)
usage = 0 (0x00000000) (0.00 B)
flags: count = 1
MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 3
memoryTypes[0]:
heapIndex = 0
propertyFlags = 0x0007: count = 3
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
MEMORY_PROPERTY_HOST_VISIBLE_BIT
MEMORY_PROPERTY_HOST_COHERENT_BIT
usable for:
IMAGE_TILING_OPTIMAL:
color images
FORMAT_D16_UNORM
FORMAT_X8_D24_UNORM_PACK32
FORMAT_D32_SFLOAT
FORMAT_S8_UINT
FORMAT_D24_UNORM_S8_UINT
(non-sparse)
IMAGE_TILING_LINEAR:
color images
(non-sparse)
memoryTypes[1]:
heapIndex = 0
propertyFlags = 0x000b: count = 3
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
MEMORY_PROPERTY_HOST_VISIBLE_BIT
MEMORY_PROPERTY_HOST_CACHED_BIT
usable for:
IMAGE_TILING_OPTIMAL:
color images
FORMAT_D16_UNORM
FORMAT_X8_D24_UNORM_PACK32
FORMAT_D32_SFLOAT
FORMAT_S8_UINT
FORMAT_D24_UNORM_S8_UINT
(non-sparse)
IMAGE_TILING_LINEAR:
color images
(non-sparse)
memoryTypes[2]:
heapIndex = 0
propertyFlags = 0x0011: count = 2
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
usable for:
IMAGE_TILING_OPTIMAL:
None
IMAGE_TILING_LINEAR:
None
VkPhysicalDeviceFeatures:
=========================
robustBufferAccess = true
fullDrawIndexUint32 = true
imageCubeArray = true
independentBlend = true
geometryShader = true
tessellationShader = true
sampleRateShading = true
dualSrcBlend = false
logicOp = false
multiDrawIndirect = false
drawIndirectFirstInstance = true
depthClamp = false
depthBiasClamp = true
fillModeNonSolid = false
depthBounds = false
wideLines = false
largePoints = true
alphaToOne = false
multiViewport = false
samplerAnisotropy = true
textureCompressionETC2 = true
textureCompressionASTC_LDR = true
textureCompressionBC = false
occlusionQueryPrecise = true
pipelineStatisticsQuery = false
vertexPipelineStoresAndAtomics = false
fragmentStoresAndAtomics = true
shaderTessellationAndGeometryPointSize = false
shaderImageGatherExtended = true
shaderStorageImageExtendedFormats = true
shaderStorageImageMultisample = false
shaderStorageImageReadWithoutFormat = true
shaderStorageImageWriteWithoutFormat = true
shaderUniformBufferArrayDynamicIndexing = true
shaderSampledImageArrayDynamicIndexing = true
shaderStorageBufferArrayDynamicIndexing = true
shaderStorageImageArrayDynamicIndexing = true
shaderClipDistance = false
shaderCullDistance = false
shaderFloat64 = false
shaderInt64 = false
shaderInt16 = true
shaderResourceResidency = false
shaderResourceMinLod = false
sparseBinding = false
sparseResidencyBuffer = false
sparseResidencyImage2D = false
sparseResidencyImage3D = false
sparseResidency2Samples = false
sparseResidency4Samples = false
sparseResidency8Samples = false
sparseResidency16Samples = false
sparseResidencyAliased = false
variableMultisampleRate = false
inheritedQueries = false
VkPhysicalDevice16BitStorageFeaturesKHR:
----------------------------------------
storageBuffer16BitAccess = true
uniformAndStorageBuffer16BitAccess = true
storagePushConstant16 = true
storageInputOutput16 = true
VkPhysicalDeviceVariablePointersFeaturesKHR:
--------------------------------------------
variablePointersStorageBuffer = true
variablePointers = false
-
- Posts: 14
- Joined: Tue Jan 10, 2017 6:04 am
- languages_spoken: english, french
- ODROIDs: ODROID XU4
- Has thanked: 0
- Been thanked: 0
- Contact:
Re: Question about the Vulkan capable emulators
Have been implementing this new libmali drop for OGA/OGS batocera.linux support.
Either using libvulkan.so (symlinked to new libmali) or through proper vulkan-loader + ICD to libmali I do confirm the same issue, and we need to have at least those two extensions in order to use it for rendering :
VK_KHR_surface
VK_KHR_display (depends on VK_KHR_surface)
Is it handled by odroid or rockchip (so I can create an issue on their GitHub) ?
Either using libvulkan.so (symlinked to new libmali) or through proper vulkan-loader + ICD to libmali I do confirm the same issue, and we need to have at least those two extensions in order to use it for rendering :
VK_KHR_surface
VK_KHR_display (depends on VK_KHR_surface)
Is it handled by odroid or rockchip (so I can create an issue on their GitHub) ?
- odroid
- Site Admin
- Posts: 36919
- Joined: Fri Feb 22, 2013 11:14 pm
- languages_spoken: English, Korean
- ODROIDs: ODROID
- Has thanked: 1593 times
- Been thanked: 1069 times
- Contact:
Re: Question about the Vulkan capable emulators
We've asked about the missing extensions to Rockchip. They likely forward the questions to ARM GPU driver developers.
But, China has started their very long holidays and we will have an answer a couple of weeks later.
But, China has started their very long holidays and we will have an answer a couple of weeks later.
- These users thanked the author odroid for the post (total 3):
- AreaScout (Mon Feb 08, 2021 6:45 pm) • darkclone (Tue Feb 09, 2021 12:23 am) • davidb2111 (Tue Feb 23, 2021 2:23 am)
-
- Posts: 14
- Joined: Tue Jan 10, 2017 6:04 am
- languages_spoken: english, french
- ODROIDs: ODROID XU4
- Has thanked: 0
- Been thanked: 0
- Contact:
Re: Question about the Vulkan capable emulators
Thanks a lot for that.
No hurry, that's a big win for everyone if we got this, whatever timing it is.
-
- Posts: 2
- Joined: Wed Feb 17, 2021 7:43 pm
- languages_spoken: english spanish
- ODROIDs: ODROID GO Super
- Has thanked: 0
- Been thanked: 0
- Contact:
Re: Question about the Vulkan capable emulators
Hi all. I'm trying to reproduce the steps from https://wiki.odroid.com/odroid_go_advan ... _on_rk3326. I have managed to build the kernel branch https://github.com/hardkernel/linux/tre ... dgoA-4.4.y like it says the page but when i run it in my odroid go super then my wifi dongle doesn't work anymore and some buttons like volume control don't work. What kernel branch is used to build https://wiki.odroid.com/odroid_go_advan ... ntu_es#v21 ?
Regards
Regards
- odroid
- Site Admin
- Posts: 36919
- Joined: Fri Feb 22, 2013 11:14 pm
- languages_spoken: English, Korean
- ODROIDs: ODROID
- Has thanked: 1593 times
- Been thanked: 1069 times
- Contact:
Re: Question about the Vulkan capable emulators
@GoonieSlacker, You probably didn't install kernel driver modules since that branch is correct one.
-
- Posts: 2
- Joined: Wed Feb 17, 2021 7:43 pm
- languages_spoken: english spanish
- ODROIDs: ODROID GO Super
- Has thanked: 0
- Been thanked: 0
- Contact:
Who is online
Users browsing this forum: No registered users and 0 guests