aboutsummaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)Author
2017-05-08loader: gh1661 - Phys dev exts not loadingLenny Komow
Fix a bug whereby commands from physical device extensions were not being written to the instance extension dispatch table, preventing their terminators from ever being run. Change-Id: I38dab0ae6463674f2a1f572bc0ee1eebe8d0dd13
2017-05-05loader: gh1693 - GPDA override not usedMark Young
In some situations, the loader wouldn't directly use the GetInstanceProcAddr or GetDeviceProcAddr function overrides directly. Instead, the loader would call vkGetInstanceProcAddr with an argument of "vkGetInstanceProcAddr" and vkGetDeviceProcAddr with an argument of "vkGetDeviceProcAddr". This short-cuts that. NOTE: Layers still need to support these queries because if another layer is above you, it may call "vkGetInstanceProcAddr" with to get "vkGetDeviceProcAddr". Change-Id: I810945f45121d42d23b69d0b3334d6bad3a8ed2f
2017-05-03layers: Don't generate T* = reinterpret_cast(T*) new T()Chris Forbes
No need for the cast, these types already line up.
2017-05-03layers: use Unwrap in UO codegenChris Forbes
2017-05-03layers: use WrapNew in UO codegenChris Forbes
2017-05-03layers: hold UO dispatch tables by value in layer_dataChris Forbes
Trims out some allocations; fixes leak of dispatch tables
2017-05-03layers: UO: split device and instance dataChris Forbes
2017-04-22layers: Change obj type conversion routine nameMark Lobodzinski
Change-Id: I3b4208ca3777ac46b2c5ab2839c268ed4381a2ac
2017-04-22scripts: Make object string conversion array constMark Lobodzinski
Prevents unused var warnings by changing to be a constant. Change-Id: Ie8f6cc837dd589074ae2278de34d4bd0a3e66236
2017-04-17header: Update to 1.0.48 Vulkan versionMark Lobodzinski
- 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 Forbes
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 Lobodzinski
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 Lobodzinski
Also fixed a bug with the object type names. Change-Id: Iea3c89a2e53266704aff0727296cce0e460195ce
2017-04-12layers: Allow UO to codegen vkAllocateMemoryMark Lobodzinski
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 Lobodzinski
Change-Id: I86f30aed8a35d91d4c08585210cc0571a27c7430
2017-04-12scripts: Add pNext-chain extension helper functionMark Lobodzinski
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 Lobodzinski
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 Lobodzinski
- 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 Lobodzinski
Change-Id: Ib621d93069912bac6bbdc643c02fe6b711803c6f
2017-04-05scripts: Add object_type header file gen interfaceMark Lobodzinski
Change-Id: I2e4a9be203f13daccc5674d0b8f66729046af46c
2017-04-05scripts: Add object type enum generation to helperMark Lobodzinski
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 Lobodzinski
- 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_helpermizhen
Change-Id: Ia377c52e43442fec17b823c888df6685eff0aca5
2017-03-31layers: Fix WriteDescriptorSet::dstSet validationDustin Graves
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 Graves
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 Lobodzinski
- 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 Lobodzinski
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 Lobodzinski
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 Lobodzinski
- 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 Young
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 Lobodzinski
- 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 Lobodzinski
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 Lobodzinski
Deep copies are needed for some of the new extensions. Change-Id: I7e77fe30a87129aa720225ae16eb87cdba8e626e
2017-03-01scripts: Update loader automationMark Young
Merge a few if's together to make the code easier to follow. Change-Id: I2453c8217da81befb4f44af19241c13c4aaef8af
2017-03-01loader: Fix handling of surface parametersJames Jones
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 Young
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 Lobodzinski
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 Lobodzinski
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 Lobodzinski
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 Lobodzinski
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 Lobodzinski
This will be needed for genvk.py updates. Change-Id: I48e28b3051b367cb883d86f7fc5b217cadecb495
2017-02-14layers: Remove predefined threading object listsMark Lobodzinski
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 Lobodzinski
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 Lobodzinski
These lists are now generated from vk.xml. Change-Id: Id7571d8b18b272c7d7ead905d53e5ff778afcb6e
2017-02-09layers: Added some missing extensions to PVMark Lobodzinski
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 Lobodzinski
Change-Id: Idcacab581775ce95cf11965b417b625df8e12176
2017-02-08build: Add detection for VS2017Karl Schultz
Change-Id: Iefcf43af57fe42f3df7d5f2e37eb826c2764f1bd
2017-02-08layers:Rename get_my_data_ptr to GetLayerDataPtrTobin Ehlis
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 Young
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 Lobodzinski
Change-Id: I158a86639ec802e47f3a87a95af8cf20d1cffbf5