| name | update-chameleon |
| description | Use this skill to update chameleon to the latest Khronos specs |
| metadata | {"short-description":"Use whenever we update our Khronos headers submodule to also update Chameleon to match"} |
Update Chameleon
Overview
Use git to update the Vulkan headers dependency, then build the source to find issues caused by the update.
Typical issues include missing implementations of new functions defined in the Vulkan spec.
Instructions
git submodule update --force --remote --recursive external/Vulkan-Headers
- If sandboxed auth status fails, rerun the command with
sandbox_permissions=require_escalated to allow network/keyring access.
( cd build ; make -j 6 )
- Build with the updated submodule and look for issues. Typically problems would be due to missing functions.
- Create function stubs in
src/chameleon/vulkan.cpp for any missing functions defined in the Vulkan spec and not implemented yet by us.
Minimal example stub function that is not vkCmd type:
VKAPI_ATTR VkResult VKAPI_CALL vk<name>(<function parameters>)
{
ENTRY(vk<name>);
cVkDevice* cdevice = device_cast(device);
TBD_UNSUPPORTED;
return VK_SUCCESS;
}
Minimal example stub function that is vkCmd type:
VKAPI_ATTR void VKAPI_CALL vkCmd<name>(VkCommandBuffer commandBuffer, <rest of function parameters>)
{
ENTRY(vkCmd<name>);
cVkCommandBuffer* ccommandBuffer = commandbuffer_cast(commandBuffer);
TBD_UNSUPPORTED;
}
- Build again with ``( cd build ; make -j 6 )` and verify that it now works correctly.