vkCreateShaderModule
To create a shader module, call:
VkResult vkCreateShaderModule(
    VkDevice device,
    const VkShaderModuleCreateInfo* pCreateInfo,
    const VkAllocationCallbacks* pAllocator,
    VkShaderModule* pShaderModule);
- deviceis the logical device that creates the shader module.
- pCreateInfois a pointer to a VkShaderModuleCreateInfo structure.
- pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.
- pShaderModuleis a pointer to a VkShaderModule handle in which the resulting shader module object is returned.
Once a shader module has been created, any entry points it contains can be used in pipeline shader stages as described in Compute Pipelines and Graphics Pipelines.
If
the maintenance5 feature
is enabled, shader module creation can be omitted entirely.
Instead, applications should provide the VkShaderModuleCreateInfo
structure directly in to pipeline creation by chaining it to
VkPipelineShaderStageCreateInfo.
This avoids the overhead of creating and managing an additional object.
Valid Usage
VUID-vkCreateShaderModule-pCreateInfo-06904
If pCreateInfo is not NULL, pCreateInfo→pNext must be
NULL
or a pointer to a valid instance of
Valid Usage (Implicit)
VUID-vkCreateShaderModule-device-parameter
device must be a valid VkDevice handle
VUID-vkCreateShaderModule-pCreateInfo-parameter
pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure
VUID-vkCreateShaderModule-pAllocator-parameter
If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateShaderModule-pShaderModule-parameter
pShaderModule must be a valid pointer to a VkShaderModule handle
::