codeType is SHADER_CODE_TYPE_SPIRV_EXT, codeSize must be a multiple of 4codeType is SHADER_CODE_TYPE_SPIRV_EXT, pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V SpecificationcodeType is SHADER_CODE_TYPE_SPIRV_EXT, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendixcodeType is SHADER_CODE_TYPE_SPIRV_EXT, pCode must declare the Shader capability for SPIR-V codecodeType is SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendixcodeType is SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfiedcodeType is SHADER_CODE_TYPE_SPIRV_EXT, pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendixcodeType is SHADER_CODE_TYPE_SPIRV_EXT, and pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfiedstage is not SHADER_STAGE_TASK_BIT_EXT, SHADER_STAGE_MESH_BIT_EXT, SHADER_STAGE_VERTEX_BIT, SHADER_STAGE_TESSELLATION_CONTROL_BIT, SHADER_STAGE_TESSELLATION_EVALUATION_BIT, SHADER_STAGE_GEOMETRY_BIT, or SHADER_STAGE_FRAGMENT_BIT, flags must not include SHADER_CREATE_LINK_STAGE_BIT_EXTstage is not SHADER_STAGE_FRAGMENT_BIT, flags must not include SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXTattachmentFragmentShadingRate feature is not enabled, flags must not include SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXTstage is not SHADER_STAGE_FRAGMENT_BIT, flags must not include SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXTfragmentDensityMap feature is not enabled, flags must not include SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXTflags includes SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, stage must be one of SHADER_STAGE_MESH_BIT_EXT, SHADER_STAGE_TASK_BIT_EXT, or SHADER_STAGE_COMPUTE_BITstage is not SHADER_STAGE_COMPUTE_BIT, flags must not include SHADER_CREATE_DISPATCH_BASE_BIT_EXTstage is not SHADER_STAGE_MESH_BIT_EXT, flags must not include SHADER_CREATE_NO_TASK_SHADER_BIT_EXTflags includes both SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT, the local workgroup size in the X dimension of the shader must be a multiple of maxSubgroupSizeflags includes SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT but not SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT and no VkShaderRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the local workgroup size in the X dimension of the shader must be a multiple of subgroupSizestage must not be SHADER_STAGE_ALL_GRAPHICS or SHADER_STAGE_ALLtessellationShader feature is not enabled, stage must not be SHADER_STAGE_TESSELLATION_CONTROL_BIT or SHADER_STAGE_TESSELLATION_EVALUATION_BITgeometryShader feature is not enabled, stage must not be SHADER_STAGE_GEOMETRY_BITtaskShader feature is not enabled, stage must not be SHADER_STAGE_TASK_BIT_EXTmeshShader feature is not enabled, stage must not be SHADER_STAGE_MESH_BIT_EXTstage must not be SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEIstage must not be SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEIstage is SHADER_STAGE_VERTEX_BIT, nextStage must not include any bits other than SHADER_STAGE_TESSELLATION_CONTROL_BIT, SHADER_STAGE_GEOMETRY_BIT, and SHADER_STAGE_FRAGMENT_BITtessellationShader feature is not enabled, nextStage must not include SHADER_STAGE_TESSELLATION_CONTROL_BIT or SHADER_STAGE_TESSELLATION_EVALUATION_BITgeometryShader feature is not enabled, nextStage must not include SHADER_STAGE_GEOMETRY_BITstage is SHADER_STAGE_TESSELLATION_CONTROL_BIT, nextStage must not include any bits other than SHADER_STAGE_TESSELLATION_EVALUATION_BITstage is SHADER_STAGE_TESSELLATION_EVALUATION_BIT, nextStage must not include any bits other than SHADER_STAGE_GEOMETRY_BIT and SHADER_STAGE_FRAGMENT_BITstage is SHADER_STAGE_GEOMETRY_BIT, nextStage must not include any bits other than SHADER_STAGE_FRAGMENT_BITstage is SHADER_STAGE_FRAGMENT_BIT or SHADER_STAGE_COMPUTE_BIT, nextStage must be 0stage is SHADER_STAGE_TASK_BIT_EXT, nextStage must not include any bits other than SHADER_STAGE_MESH_BIT_EXTstage is SHADER_STAGE_MESH_BIT_EXT, nextStage must not include any bits other than SHADER_STAGE_FRAGMENT_BITcodeType is SHADER_CODE_TYPE_SPIRV_EXT, pName must be the name of an OpEntryPoint in pCode with an execution model that matches stagecodeType is SHADER_CODE_TYPE_BINARY_EXT, pCode must be aligned to 16 bytescodeType is SHADER_CODE_TYPE_SPIRV_EXT, pCode must be aligned to 4 bytescodeType is SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistancescodeType is SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistancescodeType is SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistancescodeType is SHADER_CODE_TYPE_SPIRV_EXT, and the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWordscodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated with CullDistancecodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_TESSELLATION_CONTROL_BIT or SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction specifying a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSizecodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVerticescodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction specifying an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocationscodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitivecodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is a pre-rasterization shader stage, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitivecodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistancecodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, all execution paths that are not exclusive to helper invocations must either discard the fragment, or write or initialize the value of FragDepthcodeType is SHADER_CODE_TYPE_SPIRV_EXT, the shader code in pCode must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constantscodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the type of subdivisioncodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the orientation of triangles generated by the tessellatorcodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the spacing of segments on the edges of tessellated primitivescodeType is SHADER_CODE_TYPE_SPIRV_EXT, and stage is SHADER_STAGE_TESSELLATION_EVALUATION_BIT, pCode must contain an OpExecutionMode instruction specifying the output patch sizesType must be STRUCTURE_TYPE_SHADER_CREATE_INFO_EXTpNext must be NULL or a pointer to a valid instance of VkPipelineShaderStageRequiredSubgroupSizeCreateInfosType value of each struct in the pNext chain must be uniqueflags must be a valid combination of VkShaderCreateFlagBitsEXT valuesstage must be a valid VkShaderStageFlagBits valuenextStage must be a valid combination of VkShaderStageFlagBits valuescodeType must be a valid VkShaderCodeTypeEXT valuepCode must be a valid pointer to an array of codeSize bytespName is not NULL, pName must be a null-terminated UTF-8 stringsetLayoutCount is not 0, and pSetLayouts is not NULL, pSetLayouts must be a valid pointer to an array of setLayoutCount valid VkDescriptorSetLayout handlespushConstantRangeCount is not 0, and pPushConstantRanges is not NULL, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structurespSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structurecodeSize must be greater than 0VkPushConstantRange, VkSpecializationInfo, CreateShadersEXT
struct VkShaderCreateInfoEXT {
VkStructureType sType;
void const * pNext;
VkShaderCreateFlagsEXT flags;
VkShaderStageFlagBits stage;
VkShaderStageFlags nextStage;
VkShaderCodeTypeEXT codeType;
size_t codeSize;
void const * pCode;
char const * pName;
uint32_t setLayoutCount;
VkDescriptorSetLayout const * pSetLayouts;
uint32_t pushConstantRangeCount;
VkPushConstantRange const * pPushConstantRanges;
VkSpecializationInfo const * pSpecializationInfo;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkShaderCreateInfoEXT.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | CODESIZE
The struct member offsets. |
| public static final int | CODETYPE
The struct member offsets. |
| public static final int | FLAGS
The struct member offsets. |
| public static final int | NEXTSTAGE
The struct member offsets. |
| public static final int | PCODE
The struct member offsets. |
| public static final int | PNAME
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | PPUSHCONSTANTRANGES
The struct member offsets. |
| public static final int | PSETLAYOUTS
The struct member offsets. |
| public static final int | PSPECIALIZATIONINFO
The struct member offsets. |
| public static final int | PUSHCONSTANTRANGECOUNT
The struct member offsets. |
| public static final int | SETLAYOUTCOUNT
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STAGE
The struct member offsets. |
| public static final int | STYPE
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkShaderCreateInfoEXT(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkShaderCreateInfoEXT | |
| public static VkShaderCreateInfoEXT. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkShaderCreateInfoEXT | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkShaderCreateInfoEXT. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public long | |
| public int | |
| public VkShaderCreateInfoEXT | |
| protected VkShaderCreateInfoEXT | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkShaderCreateInfoEXT | |
| public static VkShaderCreateInfoEXT | |
| public static VkShaderCreateInfoEXT. | create(int
the buffer capacity capacity)Returns a new |
| public static VkShaderCreateInfoEXT. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkShaderCreateInfoEXT | |
| public static VkShaderCreateInfoEXT. | |
| public int | |
| public VkShaderCreateInfoEXT | |
| public static VkShaderCreateInfoEXT | |
| public static VkShaderCreateInfoEXT. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkShaderCreateInfoEXT | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkShaderCreateInfoEXT. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static long | |
| public static void | ncodeSize(long struct, long value)
Sets the specified value to the |
| public static int | |
| public static void | |
| public int | nextStage()
a bitmask of |
| public VkShaderCreateInfoEXT | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static ByteBuffer | |
| public static void | |
| public static ByteBuffer | |
| public static void | |
| public static String | |
| public static long | |
| public static void | |
| public static VkPushConstantRange. | |
| public static void | npPushConstantRanges(long struct, VkPushConstantRange.
Unsafe version of |
| public static LongBuffer | |
| public static void | |
| public static VkSpecializationInfo | |
| public static void | |
| public static int | |
| public static void | npushConstantRangeCount(long struct, int value)
Sets the specified value to the |
| public static int | |
| public static void | nsetLayoutCount(long struct, int value)
Sets the specified value to the |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public ByteBuffer | |
| public VkShaderCreateInfoEXT | |
| public ByteBuffer | pName()
a pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage. |
| public VkShaderCreateInfoEXT | |
| public String | pNameString()
a pointer to a null-terminated UTF-8 string specifying the entry point name of the shader for this stage. |
| public long | |
| public VkShaderCreateInfoEXT | |
| public VkShaderCreateInfoEXT | pNext(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo value)
Prepends the specified |
| public VkShaderCreateInfoEXT | pNext(VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT value)
Prepends the specified |
| public VkShaderCreateInfoEXT | pNext(VkShaderRequiredSubgroupSizeCreateInfoEXT value)
Prepends the specified |
| public VkPushConstantRange. | pPushConstantRanges()
a pointer to an array of |
| public VkShaderCreateInfoEXT | pPushConstantRanges(VkPushConstantRange.
Sets the address of the specified |
| public LongBuffer | |
| public VkShaderCreateInfoEXT | |
| public VkSpecializationInfo | pSpecializationInfo()
a pointer to a |
| public VkShaderCreateInfoEXT | pSpecializationInfo(VkSpecializationInfo value)
Sets the address of the specified |
| public int | |
| public VkShaderCreateInfoEXT | |
| public VkShaderCreateInfoEXT | set(int sType, long pNext, int flags, int stage, int nextStage, int codeType, ByteBuffer pCode, ByteBuffer pName, int setLayoutCount, LongBuffer pSetLayouts, int pushConstantRangeCount, VkPushConstantRange.
Initializes this struct with the specified values. |
| public VkShaderCreateInfoEXT | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public VkShaderCreateInfoEXT | |
| public int | |
| public int | |
| public VkShaderCreateInfoEXT | |
| public int | |
| public VkShaderCreateInfoEXT | |
| public VkShaderCreateInfoEXT | |
| public static void |