Commit Graph

123 Commits

Author SHA1 Message Date
asuessenbach
5fc91db38d Prepare usage of BestPractices validation layer.
Still disabled by default due to yet to be resolved issues.
2021-01-25 13:34:30 +01:00
Markus Tavenrath
160dc916f9 Change structure member sType to non-const to allow default assignment operator. Make copy constructor and copy assignment default. The latter is required for C++20 designated initializers. Delegate the constructor from C-type to the copy constructor by casting rhs accordingly. Fix warnings on gcc/clang. 2021-01-18 12:25:50 +01:00
asuessenbach
0800990456 Add MSVC 2019 builds again
+ remove breaking project samples/PhysicalDeviceMemoryProperties for MSVC
2020-12-07 16:22:07 +01:00
asuessenbach
53084c9941 Move some samples to VK_API_VERSION_1_1. 2020-11-17 16:42:52 +01:00
asuessenbach
2e95313c1d fix some warnings (errors) on release build. 2020-10-20 10:05:18 +02:00
asuessenbach
8d1c84b3f5 Set warnings as errors for the generator, the samples, and the tests. 2020-10-14 17:44:16 +02:00
asuessenbach
0b8e4cb938 Introduce helper function ResultValue<UniqueHandle<Type, Dispatch>>::asTuple()
Allows coding like this:

    vk::Result         result;
    vk::UniquePipeline pipeline;
    std::tie( result, pipeline ) =
      device->createGraphicsPipelineUnique( nullptr, graphicsPipelineCreateInfo ).asTuple();
2020-09-16 09:36:37 +02:00
asuessenbach
77b401d4a9 correct enhanced version of vkGetQueryPoolResults
- mark wrong version as deprecated (C++14)
- introduce new version returning ResultValue<vector<T,Allocator>>
- introduce new singular version returning ResultValue<T>
2020-09-03 14:20:32 +02:00
asuessenbach
0db791c687 Special handling for commands that get a size and a void-pointer to write data into
- marked previous function that got an ArrayProxy as deprecated (C++14)
- introduce a new function returning a std::vector of the given size
- introduce a new function returning a single value
2020-09-02 15:00:06 +02:00
Markus Tavenrath
6f4e1e41a7 Add documentation on how to build the generator, tests, and samples. 2020-08-13 11:38:21 +02:00
asuessenbach
2571778a4e [Samples][Ray Tracing] Correct offsets/sizes in the shader binding table. 2020-08-12 11:38:42 +02:00
asuessenbach
fba2516d9c Remove implicit cast operators on ResultValue<T>
As it turned out to not provide a complete solution to the C++-API-change issue on logical-change of the C-API, we simply remove those implicit cast operators. That is, accessing the result and the value need to be explicit.
2020-07-22 16:49:42 +02:00
asuessenbach
4cdc51ba0f Introduce usage of [[nodiscard]] with C++17 2020-07-22 10:59:12 +02:00
asuessenbach
d86303c0e4 Introduce structure constructors using ArrayProxyNoTemporaries 2020-07-09 12:03:03 +02:00
Andreas Süßenbach
5da023d17a
Merge pull request #650 from mocabe/ArrayWrapper1D-conversion
Small fix for ArrayWrapper1D's conversion operators
2020-07-02 09:20:02 +02:00
mocabe
9aa21f85fc [samples] Fix compilation of InstanceLayerExtensionProperties 2020-07-02 12:16:14 +09:00
asuessenbach
ec205306c6 New sample DebugUtilsObjectName 2020-06-25 11:43:26 +02:00
Markus Tavenrath
57555edfb2 Fix warnings and errors on clang-3.9 2020-05-18 14:05:51 +02:00
asuessenbach
f5e59484a6 Introduce usage of clang-format to format vulkan.hpp and the other sources. 2020-04-23 10:55:02 +02:00
asuessenbach
a5e8a7ccb8 Update to and adjustments for VK_HEADER_VERSION 136. 2020-03-30 12:13:07 +02:00
asuessenbach
0ea8a527ba Introduce ArrayWrapper?D, replacing ConstExpression?DArrayCopy
+ no explicit copy constructor of structs needed any more
+ removed assignment operator of structs that don't hold a const sType member (for those, we still need the assignment operator!)
+ simplified operator==() of structs (pre C++20)
+ resolved some 32bit warnings
2020-03-25 12:35:35 +01:00
mocabe
9f5885ea52 [CMake] Disable tests in external libraries 2020-03-20 05:12:25 +09:00
mocabe
62667a6b4b [samples] Add missing explicit casts 2020-03-20 03:59:14 +09:00
mocabe
2f4ca1d168 [samples][PhysicalDeviceGroups] Fix device name output 2020-03-20 03:57:46 +09:00
mocabe
590fc89fb5 [samples] Add missing VKAPI_ATTR and VKAPI_CALL for debug callback functions 2020-03-20 03:56:18 +09:00
asuessenbach
947583a1e5 Replace explicit template parameter MaskType for Flags types by std::underlying_type<BitType>::type and specify the underlying type for the FlagBits types
Resolves #507
2020-02-25 13:36:05 +01:00
mocabe
837aac5499 Fix formatting 2020-02-06 10:12:08 +01:00
mocabe
32d0bc6843 samples: Remove C++14 codes 2020-02-06 10:12:08 +01:00
mocabe
1572c0b1ba Clean EOF of some files 2020-02-06 10:12:08 +01:00
mocabe
891ca21334 CMake: Enable C++14 for samples 2020-02-06 10:12:08 +01:00
mocabe
a7e2cf152e CMake: Add SAMPLES_BUILD_ONLY_DYNAMIC option 2020-02-06 10:12:08 +01:00
mocabe
b6a190f4a2 Building samples for Linux (#491)
* CMake: Fix SAMPLES_BUILD and TESTS_BUILD

* CMake: Enable sample build on linux

* samples: Use glfw for window creation

* samples: Fix include order

* samples: Support new window handling

* samples: Add build target for util

* samples: Update CMake scripts to use util target

* samples: Add WindowData to manage unique window

* samples: Surface handling using WIndowData

* sampels: Remove call for vk::su::destroyWindow()

* CMake: FIx more options

* samples: Build SurfaceCapabilities only on WIN32

* samples: Fixed RayTracing sample to build on Linux

* samples: Fix wrong check on SurfaceProtectedCapabilitiesKHR

This also fixes compilation with MinGW gcc/clang

* CMake: check CMAKE_SYSTEM_NAME for Linux samples

* CMake: Add source group for utils

* samples: Fix potential bugs

* samples: Reduce warnings on gcc/clang

* samples: Fix missmatched new/free() which is UB

* samples: Add missing initialization for dynamic dispatcher

* samples: Remove unnecessary  dispacther construct

Co-authored-by: Andreas Süßenbach <asuessenbach@nvidia.com>
2020-01-28 10:16:10 +01:00
Andreas Süßenbach
f1668a6e28 Remove template parameter defaultValue from Flags. (#492)
Flags always default to just no FlagBits set.
2020-01-21 12:01:35 +01:00
Andreas Süßenbach
33b244859b Add specific initialization of Flags and FlagBits. (#489)
Resolves #488.
2020-01-16 12:12:31 +01:00
Arthur Brainville
4320950db1 Update EnableValidationWithCallback.cpp (#466)
Quick patch that fixes the `EnableValidationWithCallback` sample:
  There's no `str()` method here, should use `c_str()`;  
  *but* also, you can print the std::string directly to `std::cout`.

Patches remove `.str()` from printing line when WIN32 is not defined.
2020-01-06 12:16:35 +01:00
nvaara
196de24461 fixed vertexBindingDescription (#465) 2020-01-06 12:12:12 +01:00
Andreas Süßenbach
021c7499a0 Cleanup on usage of static vs. dynamic loading (#462) 2019-12-23 08:45:40 +01:00
Andreas Süßenbach
18febd6237 Add usage of DebugUtilsMessenger in vk::su::createInstance (#461) 2019-12-19 14:00:51 +01:00
Andreas Süßenbach
0280efc78c Corrected image layout and descriptor set handling in RayTracing sample. (#460) 2019-12-19 13:59:48 +01:00
Andreas Süßenbach
7da1c8baf0
Samples: Explicitly set vk::PipelineMultisampleStateCreateInfo::rasterizationSamples (#459) 2019-12-16 14:51:29 +01:00
Andreas Süßenbach
0b01a8a74c
Introduce default initializers for member variables, simplify default values for constructor arguments (#455) 2019-12-12 11:40:21 +01:00
takiyu
7fc627d6b9 Fix lableName typo. (#440) 2019-11-26 11:28:57 +01:00
Andreas Süßenbach
e850963599 Extend functions returning a std::vector<vk::StructureChain> to use an additional local vector for getting the information, and then copy the heads of the StructureChains over to the return vector (#432)
Fixes #400
2019-11-13 10:04:50 +01:00
Andreas Süßenbach
c06a3300f6 Add a couple of new samples, improved some others: (#414)
new:
- InstanceVersion: print out the instance version
- PhysicalDeviceExtensions: print out the device specific extensions
- PhysicalDeviceFeatures: print out the device specific features
- PhysicalDeviceGroups: print out the device groups (interesting with SLI)
- PhysicalDeviceMemoryProperties: print out the device specific memory properties
- PhysicalDeviceQueueFamilyProperties: print out the device specific queue family properties
- SurfaceCapabilities: print out the surface specific capabilities
- SurfaceFormats: print out the supported surface specific formats
improved:
- InstanceExtensionProperties: print out the instance extensions alphabetically
- InstanceLayerProperties: removed an unused local function
- RayTracing: improved fence usage
2019-10-28 15:36:21 +01:00
Andreas Süßenbach
7f51d1a724
Correct error message usage in CMakeLists.txt. (#404) 2019-10-08 10:35:51 +02:00
Andreas Süßenbach
becef43315 Change (most of) the samples to use the DispatchLoaderDynamic by default. (#392) 2019-09-26 09:55:15 +02:00
Andreas Süßenbach
9df0fac638 Use VK_EXT_debug_utils instead of deprecated VK_EXT_debug_report. (#389) 2019-09-25 11:56:46 +02:00
Andreas Süßenbach
ecfaf9a0df Add sample RayTracing. (#361) 2019-07-25 13:52:09 +02:00
Andreas Süßenbach
36691e4946 Add sample ValidationCache; slightly adjust vk::su::createInstance. (#357) 2019-07-09 09:25:48 +02:00
Andreas Süßenbach
5414a2e232 Add sample TexelBuffer; adjust vk::su::updateDescriptorSets (#352) 2019-07-03 09:23:56 +02:00
Andreas Süßenbach
d811c3a7e2 Add sample Template; some generalization in utils; some minor improvements in some samples. (#349)
* Add samples SecondaryCommandBuffer and SeparateImageSampler.

+ made some helper functions more explicit.

* Add sample Template, some generalizations in utils, some minor improvements in various samples.
2019-06-25 09:47:27 +02:00
Andreas Süßenbach
a6ad0f1eff Re-introduce vulkan/vulkan.hpp; adjust include order to use that header in samples and tests (#340) 2019-06-11 13:25:36 +02:00
Markus Tavenrath
50e0a941e9
Use new Vulkan-Headers repository. Don't generate createReturnValue function call if the return type is void. (#335) 2019-06-06 13:13:38 +02:00
Andreas Süßenbach
7900c655f3 Add samples SecondaryCommandBuffer and SeparateImageSampler. (#331)
+ made some helper functions more explicit.
2019-05-21 15:44:52 +02:00
Andreas Süßenbach
5ce8ae7fd0 Add samples OcclusionQuery, PipelineCache, PipelineDerivative, PushConstants, and PushDescriptors. (#325)
+ some minor changes in some samples, math, shaders, and utils.
2019-05-09 15:25:40 +02:00
Andreas Süßenbach
39d204839d [VulkanHpp] changed to "VK_LAYER_KHRONOS_validation" as validation layer (#324)
+ fixed one issue caught by that layer in InputAttachment.
2019-04-30 17:03:26 +02:00
Andreas Süßenbach
1a7779e75b Add samples InstanceExtensionProperties, InstanceLayerExtensionProperties, InstanceLayerProperties, MultipleSets (#320)
+ slightly adjust some other files.
2019-04-15 10:18:58 +02:00
Andreas Süßenbach
d965a74cc0 Add samples ImmutableSampler, InitTexture, InputAttachment (#315)
+ slightly adjust some other samples.
2019-04-09 15:19:18 +02:00
Andreas Süßenbach
f7ec6041b3 Add samples DynamicUniform, EnableValidationWithCallback, EnumerateDevicesAdvanced, Events (#313)
+ slightly adjust some other samples.
2019-04-01 10:06:49 +02:00
Andreas Süßenbach
fba738079a Use CMake's find_package to locate vulkan for samples and tests. (#308) 2019-04-01 08:52:22 +02:00
Andreas Süßenbach
2d8483e06f Add samples 16_Vulkan_1_1, CopyBlitImage, CreateDebugReportCallback, DrawTexturedCube (#304)
+ slightly adjust some other samples.
2019-03-26 12:24:36 +01:00
Andreas Süßenbach
45590a9bd7 Change include paths and argument type on main functions to ease linux adoption (#307) 2019-03-19 15:35:08 +01:00
Andreas Süßenbach
cd8e5283c3 Extend set of samples (#296)
+ 12_InitFrameBuffers, 13_InitVertexBuffer, 14_InitPipeline, 15_DrawCube;
+ extend utilities and add utilities on geometries, math, and shaders
+ slightly adjust some other samples
2019-03-15 10:40:45 +01:00
Andreas Süßenbach
f0dc8d6f38 Cleanup on Samples (#295)
- introduced samples/utils functions in namespace vk::su (vulkan sample utils)
- introduced usage of debugReportCallback
2019-03-05 08:59:40 +01:00
Andreas Süßenbach
65e1f8ac31 Add sample 11_InitShaders (#288)
+ add submodule glslang
2019-02-13 12:17:22 +01:00
Andreas Süßenbach
05497cb191
Changed from using outdated environment variable VK_SDK_PATH to VULKAN_SDK. (#286) 2019-01-28 14:47:13 +01:00
Andreas Süßenbach
d53fdf3bce samples/10_InitRenderPass: added missing device extensions on device creation. (#281) 2019-01-14 10:08:38 +01:00
Andreas Süßenbach
a9b5b68572 Switch to warning level 4 (#240) 2018-08-17 17:47:48 +02:00
Andreas Süßenbach
4c9b1f87b3 Samples on vulkan.hpp: 09_InitDescriptorSet.cpp, 10_InitRenderPass. (#211)
+ add some missing exit code to some samples.
2018-05-07 14:28:11 +02:00
Andreas Süßenbach
9efc002efd Sample on vulkan.hpp: 08_InitPipelineLayout. (#210) 2018-04-25 07:53:09 -04:00
Markus Tavenrath
4b179131e6
When using local version of vulkan.hpp use local version of vulkan.h … (#207)
* When using local version of vulkan.hpp use local version of vulkan.h too so that the headers do match.
* Update to Vulkan 1.1.74
2018-04-23 15:16:32 +02:00
Andreas Süßenbach
33c7954b6e Sample on vulkan.hpp: 07_InitUniformBuffer. (#203) 2018-04-09 10:53:55 +02:00
Andreas Süßenbach
bbaa5956c6 First samples on using vulkan.hpp: 01_InitInstance, 02_EnumerateDevices, 03_InitDevice, 04_InitCommandBuffer, 05_InitSwapchain, 06_InitDepthBuffer. (#197) 2018-03-31 01:09:50 -07:00