summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2017-05-17Add VK_KEITHP_kms_display extensionKeith Packard2-1/+30
This allows the application to provide an existing DRM device file descriptor into the vulkan drivers instead of having the driver open the device itself. There is additional information provided about the desired mode to set on the device; that will be used to apply a mode set on the first presentation request and to restore the mode after a VT switch has occurred. Signed-off-by: Keith Packard <keithp@keithp.com>
2017-04-22layers: Change obj type conversion routine nameMark Lobodzinski1-1/+1
Change-Id: I3b4208ca3777ac46b2c5ab2839c268ed4381a2ac
2017-04-22scripts: Make object string conversion array constMark Lobodzinski1-1/+1
Prevents unused var warnings by changing to be a constant. Change-Id: Ie8f6cc837dd589074ae2278de34d4bd0a3e66236
2017-04-17header: Update to 1.0.48 Vulkan versionMark Lobodzinski1-1/+1
- updated include/vulkan/vulkan.h - updated scripts/vk.xml - updated layers json files - updated tests json files - updated vulkan.hpp Change-Id: I90407d181ad6a4652e1d1f210ee9b9d21c7857b0
2017-04-18layers: Special-case UO generation of QueuePresentKHRChris Forbes1-0/+1
VkPresentInfo::pResults is an /output/ array. The generated code makes a copy on the way in (pointlessly, but other clients of safe_* might find this reasonable), but neglects to copy it back on the way out. Lift the current code generated for QueuePresentKHR back into the special cases, and add the correct post-call copy. Fixes #1670. V3: Just open-code the loop. I don't want to turn off MSVC's fussy mode, and it's convinced both std::copy and std::copy_n are unsafe with all raw pointers. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2017-04-13scripts: Convert ugly case statment to nice arrayMark Lobodzinski1-13/+6
Since this was codegen'd, we can just create a static array for the object type conversion and do away with all of the switch statement mess. Change-Id: I5fb20778d64f0675afa9c1563e2d44d22d5b4a02
2017-04-13scripts: Add object type string helper funcMark Lobodzinski1-2/+14
Also fixed a bug with the object type names. Change-Id: Iea3c89a2e53266704aff0727296cce0e460195ce
2017-04-12layers: Allow UO to codegen vkAllocateMemoryMark Lobodzinski1-1/+0
This was a special case, manually written as it contained a pnext extension chain containing Vulkan handles. Codegen now covers this case. Change-Id: I086d4314aeb9968c3f151e4e7134de7846c1c8d0
2017-04-12scripts: Add extension unwrapping support routinesMark Lobodzinski1-22/+48
Change-Id: I86f30aed8a35d91d4c08585210cc0571a27c7430
2017-04-12scripts: Add pNext-chain extension helper functionMark Lobodzinski1-6/+94
Unique-objects layer did not handle extension structs or chains of extension structs. Automated generation and handling of unwrapped struct chains. Change-Id: I8cc813c9bf7290bbcec257245848e54e1ce8a0f7
2017-04-10scripts: Defer unique_objects processingMark Lobodzinski1-88/+113
Codegen created wrap/unwrap code on the fly as commands were processed by the XML. Deferred codegen until all the data was complete and collected. Change-Id: I295ab59ad5dd24a5321e348cb18f96f2d0eed824
2017-04-10header: Update to 1.0.47 Vulkan versionMark Lobodzinski1-5/+38
- updated include/vulkan/vulkan.h - updated scripts/vk.xml - updated layers json files - updated tests json files - updated vulkan.hpp Change-Id: I0da07ad3d623d0f249593fa2d7d8e336e6ee8ad7
2017-04-05scripts: Add external/internal object type xlationMark Lobodzinski1-2/+39
Change-Id: Ib621d93069912bac6bbdc643c02fe6b711803c6f
2017-04-05scripts: Add object_type header file gen interfaceMark Lobodzinski1-0/+23
Change-Id: I2e4a9be203f13daccc5674d0b8f66729046af46c
2017-04-05scripts: Add object type enum generation to helperMark Lobodzinski1-1/+31
Extended the helper_file_generator to produce an object type enum header file. Change-Id: I8013091b34028522d8f50ef3941d7021b262613c
2017-04-03header: Update to 1.0.46 Vulkan versionMark Lobodzinski1-20/+131
- updated include/vulkan/vulkan.h - updated scripts/vk.xml - updated layers json files - updated tests json files - fixed include/vulkan/vulkan.hpp -- see Note Note: The Vulkan.hpp generator asserted when processing the 1.0.46 header files. Added a temporary workaround for this issue, but it may affect use of the vulkan.hpp header file. Change-Id: Iab296bf2004fbf6099baaab148994b15b0392381
2017-04-03scripts: Add ceiling function to vk_struct_size_helpermizhen1-2/+10
Change-Id: Ia377c52e43442fec17b823c888df6685eff0aca5
2017-03-31layers: Fix WriteDescriptorSet::dstSet validationDustin Graves1-1/+7
VkWriteDescriptorSet::dstSet is ignored by vkCmdPushDescriptorSetsKHR, so the 'must not be a null handle' validation for dstSet has been moved from the code validating the VkWriteDescriptor struct members to the code validating the vkUpdateDescriptorSets function parameters. Change-Id: Ia6f11d33e4d57d4c848aab72cfd91da5d5a15a30
2017-03-29layers: Fix extension func/core struct codegenDustin Graves2-18/+1
Fix code generation for extension functions receiving struct parameter types defined by core Vulkan. Extensions are processed as separate features by the code generator, and the type info required for structure generation was not being shared across features. The code generator has been modified to share type info across features so that the validation code generated for extension functions includes validation for core structures: - Prevent unique objects and parameter validation code generators from clearing struct type info data structures at the start of feature processing. - Remove unused data structures from unique objects code generator. - Adds handle unwrapping and parameter validation for elements in the vkCmdPushDescriptorSetKHR pDescriptorWrites parameter. - Adds handle unwrapping and parameter validation for elements in the vkCreateSharedSwapCHainsKHR pCreateInfos parameter. - Adds VkAllocationCallback parameter validation to the WSI and descriptor update template extensions functions. Change-Id: I016aa6550681dbf7d6bda834272374ce63ed1940
2017-03-28header: Update to 1.0.45 Vulkan versionMark Lobodzinski1-41/+51
- updated include/vulkan/vulkan.h - updated scripts/vk.xml - updated layers json files - updated tests json files - updated include/vulkan/vulkan.hpp - FIXED scripts/vk.xml (see note) NOTE: This commit also includes an unofficial change to vk.xml. The 1.0.45 header update broke the structure definition for device_features2. The mangled line has been replaced in this update. Change-Id: If646355a5b211ca90484d449a1c55412decc3de6
2017-03-28loader: Fix loader_extensions codegen for name defsMark Lobodzinski1-14/+12
Codegen attempted to infer name definitions instead of pulling from the source XML, causing errors in new header updates. Change-Id: I04e03b45dacf7c943b91e47f6ecffc82354c6f1b
2017-03-22layers: GH1592, Fix unique_objects DebugMarker ExtMark Lobodzinski1-0/+2
CodeGen ignored these APIs as they contain handles which are embedded in a structure and aliased. Added manual coverage. Change-Id: I81cf1945981a8e0b69966a9d0e190e49ff728ea8
2017-03-21header: Update to 1.0.44 Vulkan versionMark Lobodzinski2-14/+18
- updated include/vulkan/vulkan.h - updated scripts/generator.py - updated scripts/vk.xml - updated layers json files - updated tests json files - updated include/vulkan/vulkan.hpp Change-Id: I1d18921f75ec74484918be6cfdba394fc397d2f5
2017-03-16loader: Fix vkEnumeratePhysicalDeviceGroupsKHXMark Young1-178/+8
vkEnumeratePhysicalDeviceGroupsKHX was not properly generating the physical device information or groups. Several changes resolve most of the issue, however, I'm still seeing issues when certain layers enabled. Change-Id: Id8d4553da25491a3d0a97e8d44e21340b41bc09c
2017-03-14header: Update to 1.0.43 header versionMark Lobodzinski2-440/+468
- updated include/vulkan/vulkan.h - updated scripts/cgenerator.py - updated scripts/vk.xml - updated layers json files - updated tests json files - updated loader SOVERSION - updated include/vulkan/vulkan.hpp - updated parameter_validation.cpp with new APIs - updated object_tracker.cpp with new APIs Change-Id: I1fd812cb376d5cddee5ab4acf2e4f8fe6d33b761
2017-03-07layers: Move DescriptorUpdateTemplate functionsMark Lobodzinski1-0/+4
In unique_objects, moved these functions from being auto-generated to being manually written. Change-Id: Iae7ccac0ad51d57826104bd0532742a098c673ce
2017-03-07scripts: Allow safe_structs to handle KHR extensionsMark Lobodzinski1-1/+10
Deep copies are needed for some of the new extensions. Change-Id: I7e77fe30a87129aa720225ae16eb87cdba8e626e
2017-03-01scripts: Update loader automationMark Young1-10/+6
Merge a few if's together to make the code easier to follow. Change-Id: I2453c8217da81befb4f44af19241c13c4aaef8af
2017-03-01loader: Fix handling of surface parametersJames Jones1-10/+11
The loader code generation scripts had a bug that caused all the surface->ICD surface translation C code to be placed inside a block that only ran if the ICD didn't support the extension function, making it effectively a no-op. ICDs that supported the extension were instead called with the un-translated surface handle, which could cause a crash if they were expecting their local surface handle. Also, speculatively fix up return handling in this same class of functions by handling the void return type.
2017-03-01vulkan: update to header 1.0.42Mark Young6-115/+2505
Updated all necessary files to 1.0.42. This includes the various headers as well as the loader, and the parameter validation, object tracking, and threading layers. Additionally, bump all layer JSON files to 1.0.42. Also, in this change: - Enable loader extension automation so that the loader now generates all extension entry-points automatically during build to reduce likelihood of missing a critical piece on header update. - Enable layer dispatch table extension automation for the same reason. - Fixes from Mark Lobodzinski and Tony Barbour to resolve crash in loader when working with Intel's Windows driver due to GetInstanceProcAddr getting called on inappropriate command names. Change-Id: Ic18d3fac2e145c386c0192031deb5089c91a00d8
2017-02-28layers: Special-case threading GetSwapchainImagesMark Lobodzinski1-0/+1
This API is a special-case for the code-gen in that it sometimes returns an array of images. These do not need to be counted by start/finishReadObject and so were moved into the non-generated part of the layer source. Change-Id: Iaaab9143abadbf025b5f3c118aa26dae3c6f1bec
2017-02-17header: Update to Vulkan 1.0.41Mark Lobodzinski1-2/+28
updated: - include/vulkan/vk_platform.h - include/vulkan/vulkan.h - scripts/generator.py - scripts/cgenerator.py - scripts/lvl_genvk.py - scripts/reg.py - scripts/vk.xml - include/vulkan/vulkan.hpp - layers/tests json files - loader SOVERSION Change-Id: I1e7c3e39206be3c6d2c12b46c438a1fb9343945e
2017-02-16layers: Fix AllocateDescriptorSets in threadingMark Lobodzinski1-0/+1
Needed to special case this routine to skip validating objects before creation. Caught in CTS testing. Change-Id: Ic1c1b69bd1d75a5742c8b709624153db6af71885
2017-02-14header: Update to Vulkan 1.0.40Mark Lobodzinski6-38/+80
fixed: - generators for latex math changes updated: - include/vulkan/vk_platform.h - include/vulkan/vulkan.h - scripts/generator.py - scripts/lvl_genvk.py - scripts/reg.py - scripts/vk.xml - include/vulkan/vulkan.hpp - layers/tests json files - loader SOVERSION Change-Id: Id7d6f9dee73888877f2e7528f5701871f54ece79
2017-02-14scripts: Add copy of cgenerator.py to LVL repoMark Lobodzinski1-0/+345
This will be needed for genvk.py updates. Change-Id: I48e28b3051b367cb883d86f7fc5b217cadecb495
2017-02-14layers: Remove predefined threading object listsMark Lobodzinski1-37/+20
These lists were hard-coded in the generator. Added on-the-fly detection of handles to reduce maintenance. Change-Id: I8a897da731d96c2f70f00e479a17c355f03a7486
2017-02-14Layers: Add KHR/KHX/NN extensions to threading layerMark Lobodzinski1-15/+16
These were skipped due to problems in codegen. Added support for new objects into the layer, fixed codegen. Change-Id: Iaf4fcaa229664f7d3118da4db35649fbdf36e2eb
2017-02-10layers: Codegen unique-objects extension whitelistsMark Lobodzinski1-1/+30
These lists are now generated from vk.xml. Change-Id: Id7571d8b18b272c7d7ead905d53e5ff778afcb6e
2017-02-09layers: Added some missing extensions to PVMark Lobodzinski1-8/+1
Added the display control and indirect count extensions. Support is now included for all 1.0.39 extensions. Change-Id: I299ffd939da0571920c401fb298bc3b8773a394b
2017-02-09scripts: Automate intercepts for parameter validationMark Lobodzinski1-0/+36
Change-Id: Idcacab581775ce95cf11965b417b625df8e12176
2017-02-08build: Add detection for VS2017Karl Schultz1-0/+2
Change-Id: Iefcf43af57fe42f3df7d5f2e37eb826c2764f1bd
2017-02-08layers:Rename get_my_data_ptr to GetLayerDataPtrTobin Ehlis2-2/+2
Change utility function get_my_data_ptr() to be named GetLayerDataPtr() which is more descriptive and capital camel case in-line with coding standard.
2017-01-24loader: Update the loader to 1.0.39Mark Young4-67/+441
Add new extensions for 1.0.39. Also, updated layers to include minimal set of functionality for 1.0.39 extensions. Extensions include: - VK_KHR_get_physical_device_properties2 - VK_KHR_shader_draw_parameters - VK_EXT_direct_mode_display - VK_EXT_display_surface_counter - VK_EXT_display_control Also, redo the LoaderAndLayerIf document. Change-Id: I10412086da7a798afe832a3892e18f606259b5af
2017-01-18scripts: GH1383, Fix Dota2 issue with safe_structsMark Lobodzinski1-1/+1
Change-Id: I158a86639ec802e47f3a87a95af8cf20d1cffbf5
2017-01-11scripts: Remove vulkan.pyMark Lobodzinski1-1536/+0
Change-Id: I95b1c346d3611c6d6b3a22f108b4b5ff9c313e0c
2017-01-11scripts: Remove vk_helper.pyMark Lobodzinski1-886/+0
This functionality is now generated entirely from vk.xml. Change-Id: Ie3385f924b6ec9a8d74f2ad6fed7064ab0dc0534
2017-01-11scripts: Update copyright notice dates for 2017Mark Lobodzinski2-5/+6
Change-Id: I6adc6a8ac07f2ac11814a6f8cd06b7d5b0c49797
2017-01-11scripts: Initial version of safe_struct cpp genMark Lobodzinski1-49/+187
Change-Id: I1f3c28b7737e58731206e93af50fb1d18cd4f937
2017-01-11scripts: Update comments in helper generatorMark Lobodzinski1-2/+2
Change-Id: Ie4171bb18ff499e54bdbd8ff7237e7026e6cf3e9
2017-01-11scripts: Complete safe_struct header generationMark Lobodzinski1-11/+29
Change-Id: I87de80173ff414202f6e876db3da688466f3598d