Giter Site home page Giter Site logo

saschawillems / vulkancapsviewer Goto Github PK

View Code? Open in Web Editor NEW
286.0 23.0 64.0 4.46 MB

Vulkan hardware capability viewer

License: GNU Lesser General Public License v3.0

C++ 99.16% QMake 0.12% Objective-C++ 0.02% PHP 0.56% Batchfile 0.01% CMake 0.13%
vulkan vulkan-api

vulkancapsviewer's Introduction

Vulkan Hardware Capability Viewer

Client application to display hardware implementation details for GPUs supporting the Vulkan API by Khronos.

The hardware reports can be submitted to a public online database that allows comparing different devices, browsing available features, extensions, formats, etc.

Supported platforms

A Vulkan compatible device is required

  • Windows (x64)
  • Linux (x64)
  • Android (Including Android TV)
  • Mac OS X

Building

Build Project

The repository includes a project file for the Qt Creator IDE that has been tested to work with Windows, Linux and Android. This is the preferred (and easiest) way of building the application if you want to build it yourself. Using the Qt Visual Studio Tools, it's also possible to use a current Visual Studio version. Alternatively, you can simply run qmake followed by make in the source directory.

Linux

When building for Linux, specify the desired windowing system to enable its support.

X11 support

qmake5 -config release DEFINES+=X11

Wayland support

qmake5 -config release DEFINES+=WAYLAND

Note: Do not enable both flags simultaneously.

Releases

Current releases for all platforms will be provided on a regular basis at vulkan.gpuinfo.org/download.php.

Dependencies

vulkancapsviewer's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vulkancapsviewer's Issues

Ideas for (further) improved formatting

Ideas for future formatting improvements (exported from #82):

  • show large numbers with a thousands separator
  • show large byte values in Ki, Mi, Gi
  • show large hex values with a 8b separator
  • show Memory Types under a Memory Heap
  • Apply prexisting improvements to Formats and Extensions tabs (which use StandardItem model unlike the other tabs)

Add PVRTC formats

The VK_IMG_format_pvrtc adds new PVRTC formats. The caps viewer should be able to check and submit support for these formats too.

Driver version conversion

Driver versions are currently converted with the same convention as the Vulkan versions, which may yield wrong results depending on vendor.

combinedImageSamplerDescriptorCount is 0

The combinedImageSamplerDescriptorCount value in the Extended -> Properties for VK_KHR_sampler_ycbcr_conversion seems to be 0 for everyone. This is a per-format property and curious if this is a bug as the spec says

combinedImageSamplerDescriptorCount is the number of combined image sampler descriptors that the implementation uses to access the format.

Database sorting of API versions is incorrect

If you sort by API version, it turns out that 1.0.11 is considered to be less than 1.0.8. I assume you're just doing a basic string sort rather than a numeric sorting algorithm.

Modifications for building on Ubuntu 18.04 bionic-dev with Qt5.9..

Ok,
just build it too see new extensions info you worked few days ago..
on Ubuntu 18.04 with included qt5.9 in bionic repos is strange but your code seems qt4 compatible and qt5 incompatible in same ways:

just to fix it require:
change QtGUI/.. to QtWidgets in following ui_vulkankcapsviewer.h:

#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QTabWidget>
#include <QtWidgets/QToolButton>
#include <QtWidgets/QTreeView>
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>

remove/replace , QApplication::UnicodeUTF8 with /* , QApplication::UnicodeUTF8*/
now compiles OK..

Add support for new limits, properties and features

Header 1.0.42 introduced new extensions and along with them new properties that need to be added:

  • maxDiscardRectangles via VkPhysicalDeviceDiscardRectanglePropertiesEXT
  • ``perViewPositionAllComponents```` via VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX

Bot are depending on extensions, so those need to be checked before reading the values.

As these rely on new functionality (VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2) other new features etc. introduced by these should be added too.

boringssl libcrypto and libssl

How to build libcrypto.so and libssl.so for Android x86 using boringssl?. If any one is having static libs please share with us. It is very helpful

(windows) Crashes with `gfx-portability-icd` and `swiftshader-icd` registered

Pretty self-explanatory, both the latest build of vulkanCapsViewer and the last Vulkan 1.0 only builds ( 1.4 ) refuse to start on Windows 10 x64, experiencing a segfault, if either the ICD for gfx-portability ( subset of Vulkan on top of DX12 and other APIs) or swiftshader ( CPU-only software implementation ) ICD's are present.

I registered those in HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\Drivers, vulkaninfo sees them just fine. Removing them (or setting the dword value for them to something different than 0 ) allows vulkancapsviewer to proceed as normal and display the gui.

I build both those from source this week so reproducing should just be a matter of cloning them and registering their ICDs.

Vulkan API headers 1.1.95

I would like to ask for support for Vulkan API 1.1.95, and I am writing this for several reasons...

  • In reports already has VK_KHR_shader_float16_int8 and VK_KHR_shader_float_controls (0% supported), so want to ask just add support of reporting about support float16 and int8 by these extensions
  • NVIDIA recently released Vulkan API beta driver with these extensions support
  • We doesn't want to sending report without that information (reports can't be overridden)

Vulkan 1.2 support

Vulkan 1.2 introduced dedicated structs for new properties and features for 1.1 and 1.2. While all the data is already present somewhere, and uploaded 1.2 reports contain all relevant information, the app should make use of the dedicated structs in the future and store them directly in the database.

pQueuePriorities not set

The VulkanCapsViewer requests all available queues at startup, but doesn't assign queue priorities. This may lead to crashes on some implementations like the Intel ICD from LunarG and according to spec must be set anyway.

Linker error on Linux /usr/bin/ld: cannot find -lvulkan-1

Hi,

I cloned the repo on Arch Linux and made a build directory inside of it. I entered the build directory and ran cmake .. to generate the Unix Makefiles. However, when running make it fails at the linker step with the error in the title.

I had to go into CMakeFiles/vulkancapsviewer.dir/link.txt and change -lvulkan-1 to -lvulkan to get it to build the vulkancapsviewer binary. I have the vulkan loader installed aswell as the NVIDIA 355.00.26 driver with its ICD manifest in /etc/vulkan/icd.d/nvidia_icd.json and the vulkan header files form the official Arch Linux package.

I'm not familiar with the inner workings of cmake and how it tries to figure out the link commands. Is that something that can be fixed in the codebase of this repo?

Proposed method for building on Linux

Hi,

The README file mentions that the easiest way to build the viewer is to use QtCreator. I'm not an expert but I've called qmake followed by make and it build just fine (apart from the fact that the executable was in a directory named Win32).

Maybe it's worth mentioning that way as well.

Adding MacOS and IOS support..

Hi..
I'm providing a diff file vs current master adding MacOS and IOS support..

maciosupport.diff.zip

Really adding Mac only support is very simple.. once adding "macx" platform pro custom libs and defines only a fix is needed if we don't want surface info:
it's a matter of adding and if(surface) on readSurfaceInfo as we haven't created one..

then for surface info we need the code in #ifdef GETSURFACEINFO (which also adds one mm file for creating a CAMetalLayer for view).. note this view has to be removed eventually for app being rendered correctly.. (this has been helpful : KhronosGroup/MoltenVK#78)
the code for that is different from MacOS or IOS so a BUILD_FOR_MAC define..
for MacOS works nice.. for IOS well the code is adapted from the link which has been recently shared how to use right on Qt+MoltenVK+IOS.. right now code now doesn't work (doesn't create surface correctly MoltenVK says error with the view passed), but I believe or it's already correct and MoltenVK need to be updated accordingly or some minor fix is still needed.. I'm asking on that thread so perhaps MoltenVK can gave a look and fix it..

I know there should be a builtin definition to difference platforms (IOS vs MacOS) but I use mine (BUILD_FOR_MAC)..
also in #idef BUILD_FOR_MAC diff you can find some copy&paste code from Internet to save json on folder with permissions on IOS, with that IOS program also is able to also send report to DB..

for .pro file I'm unable to use correctly platform settings although from quick read should be macx and ios so I keep commenting as needed although should be as clean as:

macx{
    #LIBS += /lib/libvulkan.1.dylib -framework Cocoa -framework QuartzCore
    LIBS += /Library/Frameworks/vulkan.framework/Versions/A/vulkan -framework Cocoa -framework QuartzCore
    DEFINES +=  VK_USE_PLATFORM_MACOS_MVK GETSURFACEINFO BUILD_FOR_MAC

}
ios
{
LIBS +=/Users/oscarbarenysgarcia/Downloads/vulkansdk-macos-1.0.69.0/MoltenVK/iOS/MoltenVK.framework/MoltenVK -framework UIKit -framework IOSurface -framework Metal
  DEFINES +=  VK_USE_PLATFORM_IOS_MVK GETSURFACEINFO
}

on MacOS I comment #LIBS += /lib/libvulkan.1.dylib although is the correct loader ICD so should be independent of newer versions of MoltenVK lib and also this loader should be updatable provided user updates file on this location..
there is a reason.. code compiles nice but for debugging from Qt Creator doesn't work due to @rpath issues..
of course for redistribution you should use that commented line..
for fixing the @rpath you should use the install_name_tool detailed below..

other problem is releasing as a redistributable executable for Macos for people without Qt SDK..
some quick notes.. for including needed libs in executable you should do something like:

$QTDIR/bin/macdeployqt /Users/oscarbarenysgarcia/build-vulkanCapsViewer-Desktop_Qt_5_10_1_clang_64bit-Release/Win32/Release/vulkanCapsViewer.app -executable=/Users/oscarbarenysgarcia/build-vulkanCapsViewer-Desktop_Qt_5_10_1_clang_64bit-Release/Win32/Release/vulkanCapsViewer.app/Contents/MacOS/vulkanCapsViewer

This copies but doesn’t fix references to libraries inside the app folder so I created a script and run:

./installfwkchange.sh QtCore
./installfwkchange.sh QtGui
./installfwkchange.sh QtWidgets
./installfwkchange.sh QtNetwork

Script is like:
install_name_tool -change @rpath/$1.framework/Versions/5/$1 @executable_path/../Frameworks/$1.framework/Versions/5/$1 /Users/oscarbarenysgarcia/build-vulkanCapsViewer-Desktop_Qt_5_10_1_clang_64bit-Release/Win32/Release/vulkanCapsViewer.app/Contents/MacOS/vulkanCapsViewer

I don't remember if libqcocoa if copied by macdeployqt if not have to locate plugins/platforms..

then you need to fix included libqcocoa.dylib in app frameworks folder:
You need to fix also libqcocoa.dylib:

install_name_tool -change @rpath/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui /Users/oscarbarenysgarcia/build-vulkanCapsViewer-Desktop_Qt_5_10_1_clang_64bit-Release/Win32/Release/vulkanCapsViewer.app/Contents/MacOS/qt_plugins/platforms/libqcocoa.dylib

install_name_tool -change @rpath/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore /Users/oscarbarenysgarcia/build-vulkanCapsViewer-Desktop_Qt_5_10_1_clang_64bit-Release/Win32/Release/vulkanCapsViewer.app/Contents/MacOS/qt_plugins/platforms/libqcocoa.dylib

install_name_tool -change @rpath/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets /Users/oscarbarenysgarcia/build-vulkanCapsViewer-Desktop_Qt_5_10_1_clang_64bit-Release/Win32/Release/vulkanCapsViewer.app/Contents/MacOS/qt_plugins/platforms/libqcocoa.dylib

install_name_tool -change @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport @executable_path/../Frameworks/QtPrintSupport.framework/Versions/5/QtPrintSupport /Users/oscarbarenysgarcia/build-vulkanCapsViewer-Desktop_Qt_5_10_1_clang_64bit-Release/Win32/Release/vulkanCapsViewer.app/Contents/MacOS/qt_plugins/platforms/libqcocoa.dylib

To have icon file your ico file is converted to icns
https://findicons.com/convert ico to icns online
Generates 3 files I use the largest 256
Copy to resources folder..

in your info.plist add
CFBundleIconFile
iconfile
with icon file iconfile.icns in your Resources directory

phew..
feel free to ask questions you need..

Translation support

Hello! Could you make translation support for VulkanCapsViewer?
I can make some translations to another languages if this support will be created.

Very inconsistent results

Are nvidia vulkan drivers unstable or what is going on ? I checked the website, and results dont make any sense - older nvidia driver versions are showing newer vulkan version support for the same graphic card and so on.

No dependencies for Linux

./vulkanCapsViewer: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12' not found (required by ./vulkanCapsViewer)

Libraries are not shipped with the executable so program won't run on Ubuntu 18.04 (qt 5.9)
Under Windows you are shipping libraries alongside the executable so there is no problem.

Vulkan caps viewer doesnt start

Time ago this worked as expected but now its not working. This on intel haswell (hd 4600). I use manjaro, and I already have all the vulkan-related packages installed. This is the terminal output:

libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Violación de segmento (`core' generado)

Patch for support for new Vulkan 1.1 subgroups information

Ok just added support for seeing 1.1 drivers subrgoup support..
screenshots on my twitter.. I'm lazy to repost here..
all needed is updating Vulkan headers in external..
also changing all KHX_multiview to KHR_multiview to build with Vulkan 1.1 headers and then
putting below vulkandeviceinfo.hpp:

// VK_KHR_sampler_ycbcr_conversion
            if (extensionSupported(VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME)) {
..
}

this

#define VK_KHR_SUBGROUPS_EXTENSION_NAME "VK_KHR_subgroups"
            int majorver=(props.apiVersion >> 22);
            int minorver=((props.apiVersion >> 12) & 0x3ff);
            if((majorver>1)||((majorver==1)&&(minorver>=1))){
                            VkPhysicalDeviceProperties2KHR deviceProps2{};
                            VkPhysicalDeviceSubgroupProperties extProps{};
                            extProps.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
                            deviceProps2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
                            deviceProps2.pNext = &extProps;
                            pfnGetPhysicalDeviceProperties2KHR(device, &deviceProps2);
                            properties2.push_back(Property2("subgroupSize", QVariant(extProps.subgroupSize), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages", QVariant(extProps.supportedStages), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_VERTEX_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_VERTEX_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_GEOMETRY_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_GEOMETRY_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_FRAGMENT_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_FRAGMENT_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_COMPUTE_BIT", QVariant((extProps.supportedStages&VK_SHADER_STAGE_COMPUTE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_ALL_GRAPHICS", QVariant((extProps.supportedStages&VK_SHADER_STAGE_ALL_GRAPHICS)==VK_SHADER_STAGE_ALL_GRAPHICS), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedStages.VK_SHADER_STAGE_ALL", QVariant((extProps.supportedStages&VK_SHADER_STAGE_ALL)==VK_SHADER_STAGE_ALL), VK_KHR_SUBGROUPS_EXTENSION_NAME));

                            properties2.push_back(Property2("supportedOperations", QVariant(extProps.supportedOperations), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_BASIC_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_BASIC_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_VOTE_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_VOTE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_ARITHMETIC_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_ARITHMETIC_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_BALLOT_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_BALLOT_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_SHUFFLE_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_SHUFFLE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_CLUSTERED_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_CLUSTERED_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));
                            properties2.push_back(Property2("supportedOperations.VK_SUBGROUP_FEATURE_QUAD_BIT", QVariant((extProps.supportedOperations&VK_SUBGROUP_FEATURE_QUAD_BIT)>0), VK_KHR_SUBGROUPS_EXTENSION_NAME));

                            properties2.push_back(Property2("quadOperationsInAllStages", QVariant(extProps.quadOperationsInAllStages), VK_KHR_SUBGROUPS_EXTENSION_NAME));
              }

Some extensions are missing

When I run vulkaninfo it says I have more extensions than using vulkanCapsViewer.

My graphic card:
https://vulkan.gpuinfo.org/displayreport.php?id=5401#extensions

All of this are missing:

VK_EXT_display_control
VK_KHR_external_memory
VK_KHR_external_semaphore
VK_KHR_external_fence
VK_KHR_external_memory_fd
VK_KHR_external_semaphore_fd
VK_KHR_external_fence_fd
VK_EXT_external_memory_dma_buf
VK_EXT_external_memory_host 
VK_KHR_device_group

 vulkaninfo |grep extension
ERROR: [Loader Message] Code 0 : /usr/lib32/libvulkan_radeon.so: wrong ELF class: ELFCLASS32
        VK_EXT_acquire_xlib_display         : extension revision  1
        VK_EXT_debug_report                 : extension revision  9
        VK_EXT_debug_utils                  : extension revision  1
        VK_EXT_direct_mode_display          : extension revision  1
        VK_EXT_display_surface_counter      : extension revision  1
        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  1
        VK_KHR_get_surface_capabilities2    : extension revision  1
        VK_KHR_surface                      : extension revision 25
        VK_KHR_wayland_surface              : extension revision  6
        VK_KHR_xcb_surface                  : extension revision  6
        VK_KHR_xlib_surface                 : extension revision  6
        VK_AMD_draw_indirect_count          : extension revision  1
        VK_AMD_gcn_shader                   : extension revision  1
        VK_AMD_rasterization_order          : extension revision  1
        VK_AMD_shader_core_properties       : extension revision  1
        VK_AMD_shader_info                  : extension revision  1
        VK_AMD_shader_trinary_minmax        : extension revision  1
        VK_EXT_calibrated_timestamps        : extension revision  1
        VK_EXT_conditional_rendering        : extension revision  1
        VK_EXT_depth_range_unrestricted     : extension revision  1
        VK_EXT_descriptor_indexing          : extension revision  2
        VK_EXT_discard_rectangles           : extension revision  1
        VK_EXT_display_control              : extension revision  1
        VK_EXT_external_memory_dma_buf      : extension revision  1
        VK_EXT_external_memory_host         : extension revision  1
        VK_EXT_global_priority              : 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_sampler_filter_minmax        : extension revision  1
        VK_EXT_scalar_block_layout          : extension revision  1
        VK_EXT_shader_stencil_export        : extension revision  1
        VK_EXT_shader_viewport_index_layer  : extension revision  1
        VK_EXT_transform_feedback           : extension revision  1
        VK_EXT_vertex_attribute_divisor     : extension revision  3
        VK_GOOGLE_decorate_string           : extension revision  1
        VK_GOOGLE_hlsl_functionality1       : extension revision  1
        VK_KHR_16bit_storage                : extension revision  1
        VK_KHR_bind_memory2                 : extension revision  1
        VK_KHR_create_renderpass2           : extension revision  1
        VK_KHR_dedicated_allocation         : extension revision  1
        VK_KHR_descriptor_update_template   : extension revision  1
        VK_KHR_device_group                 : extension revision  1
        VK_KHR_draw_indirect_count          : extension revision  1
        VK_KHR_driver_properties            : extension revision  1
        VK_KHR_external_memory              : extension revision  1
        VK_KHR_external_memory_fd           : extension revision  1
        VK_KHR_get_memory_requirements2     : extension revision  1
        VK_KHR_image_format_list            : extension revision  1
        VK_KHR_incremental_present          : extension revision  1
        VK_KHR_maintenance1                 : extension revision  1
        VK_KHR_maintenance2                 : extension revision  1
        VK_KHR_maintenance3                 : extension revision  1
        VK_KHR_multiview                    : extension revision  1
        VK_KHR_push_descriptor              : extension revision  1
        VK_KHR_relaxed_block_layout         : extension revision  1
        VK_KHR_sampler_mirror_clamp_to_edge : extension revision  1
        VK_KHR_shader_draw_parameters       : extension revision  1
        VK_KHR_storage_buffer_storage_class : extension revision  1
        VK_KHR_swapchain                    : extension revision 68
        VK_KHR_variable_pointers            : extension revision  1

Headless support?

Hi,

I am quite surprised as everybody is pointing to different issues but nobody is asking for a Headless version. So, how difficult would be to generate a report that either goes directly to STDOUT or at max an HTML report dump file?

Thank you in advance,
Julian

False positive for device already in database

Hi,Sascha

I'd like to report that current version report a false positive for device already in database.
I guess its using only deviceID / VendorID and, possibly, driverversion. I guess AMD is using same values for several cards.
Attached is my AMD R7 240 (Gigabyte) json report, with different values when compared to current one available at database ( http://vulkan.gpuinfo.org/displayreport.php?id=219 ) , but Vulkan Cap viewer insists that is the same one already in database. It is a false positive report.
I'd like to suggest using another keys to compare reports. Maybe a 32 bit hash code from entire json report.
vulkanreport.json.txt

Pre-built binary for Linux64 doesn't start on CentOS 7 x64

Just tried running the prebuilt binary for Linux 64 (1.92), on CentOS 7 (1810). It fails with:

$ ./vulkanCapsViewer 
./vulkanCapsViewer: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./vulkanCapsViewer)
$

Tried compiling (using the master branch), but that's also failing:

$ qmake vulkanCapsViewer.pro
$ make
../../Qt/5.11.3/gcc_64/include/QtCore/qvariant.h:207:5: note:   no known conversion for argument 1 from ‘uint64_t {aka long unsigned int}’ to ‘QVariant::Type’
In file included from vulkancapsviewer.h:14:0,
                 from main.cpp:1:
vulkanDeviceInfo.hpp:596:92: error: call of overloaded ‘QVariant(uint64_t&)’ is ambiguous
             pushProperty2(extension, "maxInstanceCount", QVariant(extProps.maxInstanceCount));

That's with Qt 5.11.3, though the same error occurs with Qt 5.12.0.

Any ideas?

App crash when ICD list is invalid

VulkanCapsViewer 1.4 on Windows 10 x86_64:
Crash in ucrtbase.dll if \HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\Drivers contains enabled entries which reference non-existing files.

Clean up views before changing GPU selection

The views are not getting cleaned before reading implementation information. If there are multiple devices available, switching between them will result in multiple entries in the different views.

Missing information about platform-dependant surface extensions

It would be great to see what presentation platform can a driver handle. I mean the VK_KHR_*_surface extensions.

For PC Linux it might be one or more of: VK_KHR_wayland_surface, VK_KHR_xcb_surface, VK_KHR_xlib_surface. Android and Windows are easier cases here.

I know these are tricky to probe, as those are instance extensions announced by the loader, but might be supported or not by a driver. There are vkGetPhysicalDevice*PresentationSupportKHR() and vkGetPhysicalDeviceWaylandPresentationSupportKHR() functions, but they all need some initialization for the given platform (like a connection to the display server or compositor).

Additionally information about supported surface capabilities could be collected.

sampled counts as VkSampleCountFlagBits

Sampled counts are currently display as the integer value read from the physical device property, but it's actually a bit field that contains flags for all supported sample counts.

Regarding "fake" database entries for Fermi based GPUs

Hi there!

i just wanted to document how the Caps Viewer behaves when having a mobile Fermi GTX560M installed in conjuction with NVidias Vulkan-supporting Beta driver for Windows (356.39) and LunarG's Vulkan SDK. The Version of the Caps Viewer is an unmodified version (Beta 1.0 (64-Bit) (2016-02-16, API-Version 1.0.3)) I downloaded from vulkan.gpuinfo.org:

Starting the Viewer gives me:
1
But then, after klicking OK, it gives me:
2
and
3
Formats are empty and Layers show the LunarG stuff.
I don't know what happens when I press "Upload", but my guess is that it will probably push the data I'm seeing there and thus might be the cause of the "fake" entries.

Cheers,
Gwani

Issue submitting results from an experimental Android x86 ISO with Vulkan support..

Hi,
since a week approx. @maurossi provides Android x86 experimental ISOs with Vulkan support..
these are for Oreo 8.1:
https://drive.google.com/drive/folders/0B_OFHiIqgpSFTFpkQWc1eXV3ME0
and also as today one for Nougat:
https://drive.google.com/drive/folders/0B_OFHiIqgpSFMlk4bkhaMnAwbDA
note that seems Vulkan has no ICD today for Android and driver is hardcoded and set in property in ro.hardware.vulkan..
so with every ISO can test only one GPU vendor..
so Mauro has provided Oreo ones hardcoded to use ANVIL Intel HD graphics and Nougat to use RADV for AMD cards..
I have a PC with Vega and Intel HD 530 graphics so can test both..
here a captures running on Vega (showing I don't lie :-) ):

(please open it in separate window to not see up to down)..

img_1946
img_1945

really the Vulkan support with these ISOs is very early.. any app that creates a swapchain I believe doesn't work correctly..
anyway as you see your apps seems to work correctly (I downloaded your x86 apk from your site as first I downloaded from Play store and seen some HOUDINI things via logcat so assumed Play Store app is only for ARM)..

was trying to submit a report for future reference.. but says an error saying something about parsing/reading extension list.. altough as you can see device extensions list seems normal with no strange characters and the like..

could explore the app being open source but maybe you can provide a clue and perhaps help catch bug in the Vulkan support on these ISOs..
thanks..

[Android] "unauthorized access to libcrypto.so"

Detected problems with app native libraries (please consult log for detail):
libQt5Core.so: unauthorized access to libcrypto.so
libQt5Core.so: unauthorized access to libssl.so

(I don't have access to the logcat, unless I don't need to plug the USB cable to a computer anymore… Haven't done any Android dev in a few years :)

From my quick googling, it looks like Qt5 is doing something it shouldn't:

Android is moving away from OpenSSL to the BoringSSL library. If you’re using the Android NDK in your app, don't link against cryptographic libraries that are not a part of the NDK API, such as libcrypto.so and libssl.so. These libraries are not public APIs, and may change or break without notice across releases and devices.

I couldn't find anything on Qt's bug tracker. If I find some time, I might file a bug over there.
I don't know if there's anything you can do, besides re-compiling with the latest Qt version when they fix it…

As a side note, the UI of you app looks weird on my Nexus 5X running NDP2 (as you can see in the screenshot). I can open an issue with a better screenshot if you want to have a look, and I can test it for you 👍

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.