aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-01-20loader: remove resolved TODOsCourtney Goeltzenleuchter
2016-01-20loader: Remove CreateInstance and CreateDeviceCourtney Goeltzenleuchter
The new init mechanism always uses GetInstanceProcAddr to query the next layer's CreateInstance or CreateDevice function. Thus no reason to cache those function pointers in the instance dispatch table.
2016-01-20loader: Use ICD's GetInstanceProcAddrCourtney Goeltzenleuchter
Appears there is some difference in behavior between vkCreateDevice addr that we get initially vs. one later. Not sure what difference is yet. -------------------------------
2016-01-20loader: Add util to strip loader extensionsCourtney Goeltzenleuchter
2016-01-20loader: implement new layer init methodCourtney Goeltzenleuchter
New layer init method requires the construction of Link information for CreateInstance and CreateDevice that is accessible to layers via the CreateInfo.pNext pointer. The layer can then use the Get*ProcAddr from the Link structure to initialize their dispatch table if the call down the chain returns successfully. This removes the need to do special initialization work at Get*ProcAddr time. Layer Get*ProcAddr now return their internal function pointers regardless of the value of instance or device. Only need to have valid instance & device when looking up extensions or when passing the request down the chain. This mechanism allows us to remove object wrapping used by the loader previously. Also simplifies the dispatch table setup. Conflicts: layers/device_limits.cpp layers/draw_state.cpp loader/loader.c loader/trampoline.c
2016-01-20layers: fix threading destroy instanceCourtney Goeltzenleuchter
The threading layer was using the generic destroy_instance utility when it should be using the utility that takes a map.
2016-01-20layers: Add utility functions for new layer initCourtney Goeltzenleuchter
These utilities will find the appropriate CreateInfo extension that defines the layer link information.
2016-01-20layers: Update layer info to match jsonCourtney Goeltzenleuchter
2016-01-20loader: Add structures to support new init methodCourtney Goeltzenleuchter
These structures will be used to extend CreateInstance and CreateDevice to support layers. The loader will create a chain of these structures - one per layer - that tells the layer the Get*ProcAddr for the next lower part.
2016-01-20icd: Remove unused reference to vk_sdk_platform.hCourtney Goeltzenleuchter
2016-01-20vkjson: initial commitAntoine Labour
2016-01-20layers: MR148/GL82, Don't memset PIPELINE_NODE in draw_stateTobin Ehlis
Remove memset of PIPELINE_NODE from Compute Pipeline creation. Default constructor handles initialization so no need to memset and this was causing a crash due to corrupting the active_sets std::set.
2016-01-20layers: MR149, Cleanup CMD_NODE use in draw_stateTobin Ehlis
Move pCmds vector<CMD_NODE*> to be cmds vector<CMD_NODE> instead. This simplifies cleanup of the data structure as we don't have to manage the ptr new/delete lifecycle.
2016-01-19WindowsRTInst: Layer registry values are created/removed correctly on Windows7David Pinedo
2016-01-19layers: GL84, Reset vkQueuePresentKHR semaphore state in mem_trackerMark Lobodzinski
2016-01-19layers: GL92, Properly remove cmd buf metadataMark Lobodzinski
When FreeCommandBuffers was called the helper routine was not properly removing the command buffer tracking data.
2016-01-19layers: MR145/GL67, Correctly mirror command buffer inheritance infoTobin Ehlis
Embedded InheritanceInfo struct within command buffer BeginInfo was not correctly mirrored in draw_state. Correctly copy this data as appropriate and correctly clear it when command buffer is reset. Conflicts: layers/draw_state.cpp
2016-01-19layers: MR144, Fix layer namesMichael Lentine
2016-01-19layers: MR143/GL85, Fix draw_state implicit command buffer resetTobin Ehlis
On vkBeginCommandBuffer an implicit reset occurred late and would overwrite the beginInfo. Moved implicit reset earlier so that beginInfo is maintained regardless of whether or not implicit reset is triggered. Also removed some dead code from resetCB().
2016-01-19debug_report: MR141, Change pUserData to match type used elsewhereCourtney Goeltzenleuchter
Other uses of pUserData in Vulkan do not have a const qualifier, remove it for this pUserData.
2016-01-19layers: MR142/GL89, draw_state: check swapchain images during descriptor updatesTobin Ehlis
When vkUpdateDescriptorSets() is called, if an imageView was being updated, we were not including swapchain images in the check to verify a valid image. Adding these to the check to avoid false positives.
2016-01-19layers: Fix object_trackers dereferencing of invalid pointersMark Lobodzinski
vkUpdateDescriptorSets->VkWriteDescriptorSet: object_tracker should only validate array specified by VkDescriptorType.
2016-01-19layers: Fix problems with screenshot to get it working againKarl Schultz
- Set the layerCount member of VkImageSubresourceLayers - Add image transition memory barriers (needed for some drivers) - Add dispatch table to command buffer object created by this layer. This lets it get dispatched by a downstream layer, if present.
2016-01-18layers: MR140, Add get_type_def helper in DrawStateChris Forbes
2016-01-18layers: MR140, Add SPIRV instruction stream iterator helperChris Forbes
2016-01-18layers: MR140, Pass whole shader_module to build_type_def_indexChris Forbes
2016-01-18layers: MR140, Remove some commented merge remnantsChris Forbes
2016-01-18layers: LX257, Validate Uniform/Storage buffer offset alignmentsMark Lobodzinski
2016-01-18loader: Return the loader created instance rather than from the instance chainJon Ashburn
Fix's issue with layers that wrap instance.
2016-01-15installer: Fix LunarXchange issue #287.Mark Young
Apply David's fix to force the registry to be created.
2016-01-15layers: Fix json file for multi layerJon Ashburn
2016-01-15laoder: Fix phys_dev to use unwrapped version in loader_CreateDeviceJon Ashburn
2016-01-15layers: Add minimal actual analysis of interface blocks to DrawStateChris Forbes
There's definitely still room for improvement here (SPIRV-Tools might have some stuff that will make some of these more complex module walks a little clearer); however, this adds enough support for interface blocks for us to generate all the same kinds of mismatch errors we were previously generating for loose inputs and outputs. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14layers: Fix mishandling of VI vs VS validation (Gitlab#69)Chris Forbes
This wasn't quite correct. We'd end up trying to run it_a off beyond attribs.end(), which is invalid and upsets the MS debug stdlib. This is most likely the root cause of the weirdness that caused people to add _at_end, _first, etc to this function long ago, so that can all disappear -- but for now, let's just deal with the actual bug. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Initialize image format propertiesChris Forbes
Previously this was just left uninitialized. Image layer would then randomly fail image creation based on comparisons against junk. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Add more proper support for ShaderModule objectsChris Forbes
Again not OK to claim success but return junk rather than a proper handle. Fixes various layers exploding when running against nulldrv. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Add minimal support for pipeline cache objects.Chris Forbes
It's not really OK to claim success but leave junk in the caller's memory rather than a real handle. This prevents object tracker randomly exploding when running against the null driver. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Claim that our supported image formats can be used as color attachmentsChris Forbes
Previously if an app would be unable to find any color renderable format, so only an app that didn't bother (and wasn't running under validation) would get anywhere. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Expose some present modesChris Forbes
Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Expose some basic formats as presentableChris Forbes
Previously we just left whatever junk the caller had in this memory, which generally crashed a caller. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Claim to support any WSI surface.Chris Forbes
Previously this just left whatever junk the caller had, with unpredictable results. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14nulldrv: Initialize memory types maskChris Forbes
Previously apps would randomly succeed or fail to find a matching memory type based on whatever junk happened to be here. Instead, claim to support all memory types. Signed-off-by: Chris Forbes <chrisforbes@google.com>
2016-01-14layers: gitlab #62, object_tracker allows NULL semaphore in AcquireNextImageJon Ashburn
2016-01-14spirv-tools: update version due to build problems seen by norbertGregF
2016-01-14loader: Fix bad memory ref and CreateInstance fail don't write ouptutJon Ashburn
Gitlab #58 CreateInstance shouldn't update output parameter on failure.
2016-01-14Change api_version to 1.0.1 in json filesTony Barbour
From 0.210.0
2016-01-14layers: Gitlab #71, Fix copy/paste error in mem_trackerMark Lobodzinski
2016-01-14nulldrv: MR131, Update api_version in nulldrv json fileTobin Ehlis
2016-01-14layers: MR130, Handle VK_WHOLE_SIZE properly in ↵Chris Forbes
mem_tracker:initializeAndTrackMemory VK_WHOLE_SIZE is ~0ull. If this were passed as `size`, we'd try to allocate ~1ull bytes, and then memset them all to 0xb. This tends to explode.
2016-01-14layers: MR129, Remove incorrect asserts from param_checker and object_trackerTobin Ehlis
For apps that run with multiple instances, it's perfectly valid to have instances remaining at DestroyInstace() time so removing that assert from param_checker. Also, the assert appears to have been cut-and-pasted into DestroyDevice of both param_checker and object_tracker. The same logic applies for apps that use multiple devices. Running vulkancts with layers enabled found these issues.