vkCreateShaderModule
To create a shader module, call:
VkResult vkCreateShaderModule(
VkDevice device,
const VkShaderModuleCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkShaderModule* pShaderModule);
device
is the logical device that creates the shader module.pCreateInfo
is a pointer to a VkShaderModuleCreateInfo structure.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pShaderModule
is 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