Skip to content

Commit

Permalink
feat(Vulkan) update to 1.3.301
Browse files Browse the repository at this point in the history
  • Loading branch information
Spasi committed Nov 18, 2024
1 parent 0800caf commit 8833e14
Show file tree
Hide file tree
Showing 242 changed files with 5,981 additions and 2,586 deletions.
2 changes: 1 addition & 1 deletion doc/notes/3.3.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ This build includes the following changes:
- SPIRV-Cross: Updated to 0.64.0 (up from 0.61.0)
- stb
* Updated `stb_image_resize` to 2.12 (up from 2.09)
- Vulkan: Updated to 1.3.296 (up from 1.3.289)
- Vulkan: Updated to 1.3.301 (up from 1.3.289)
* Includes MoltenVK 1.2.11 (up from 1.2.10)

#### Improvements
Expand Down
4 changes: 4 additions & 0 deletions modules/lwjgl/core/src/generated/c/org_lwjgl_system_JNI.c
Original file line number Diff line number Diff line change
Expand Up @@ -4511,6 +4511,10 @@ JNIEXPORT void JNICALL Java_org_lwjgl_system_JNI_callCCCCV__SSSSJ(JNIEnv *__env,
UNUSED_PARAMS(__env, clazz)
((void (APIENTRY *) (uint16_t, uint16_t, uint16_t, uint16_t))(uintptr_t)__functionAddress)((uint16_t)param0, (uint16_t)param1, (uint16_t)param2, (uint16_t)param3);
}
JNIEXPORT void JNICALL Java_org_lwjgl_system_JNI_callPJJJV__JJJJJ(JNIEnv *__env, jclass clazz, jlong param0, jlong param1, jlong param2, jlong param3, jlong __functionAddress) {
UNUSED_PARAMS(__env, clazz)
((void (APIENTRY *) (uintptr_t, jlong, jlong, jlong))(uintptr_t)__functionAddress)((uintptr_t)param0, param1, param2, param3);
}
JNIEXPORT void JNICALL Java_org_lwjgl_system_JNI_callPJJPV__JJJJJ(JNIEnv *__env, jclass clazz, jlong param0, jlong param1, jlong param2, jlong param3, jlong __functionAddress) {
UNUSED_PARAMS(__env, clazz)
((void (APIENTRY *) (uintptr_t, jlong, jlong, uintptr_t))(uintptr_t)__functionAddress)((uintptr_t)param0, param1, param2, (uintptr_t)param3);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1165,6 +1165,7 @@ private JNI() {}
public static native void callPPPV(long param0, long param1, int param2, int param3, int param4, int param5, int param6, int param7, long param8, int param9, int param10, int param11, int param12, int param13, int param14, int param15, int param16, int param17, long __functionAddress);
public static native void callBBBBV(byte param0, byte param1, byte param2, byte param3, long __functionAddress);
public static native void callCCCCV(short param0, short param1, short param2, short param3, long __functionAddress);
public static native void callPJJJV(long param0, long param1, long param2, long param3, long __functionAddress);
public static native void callPJJPV(long param0, long param1, long param2, long param3, long __functionAddress);
public static native void callPJPPV(long param0, long param1, long param2, long param3, long __functionAddress);
public static native void callPPPNV(long param0, long param1, long param2, long param3, long __functionAddress);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@
* <dd>180</dd>
* <dt><b>Revision</b></dt>
* <dd>1</dd>
* <dt><b>API Interactions</b></dt>
* <dd><ul>
* <li>Interacts with VK_VERSION_1_3</li>
* <li>Interacts with VK_KHR_synchronization2</li>
* </ul></dd>
* <dt><b>Special Use</b></dt>
* <dd><ul>
* <li><a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse">Developer tools</a></li>
Expand Down Expand Up @@ -158,4 +163,100 @@ public static void vkCmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer, @Nat
callPJJV(commandBuffer.address(), pipelineStage, dstBuffer, dstOffset, marker, __functionAddress);
}

// --- [ vkCmdWriteBufferMarker2AMD ] ---

/**
* Execute a pipelined write of a marker value into a buffer.
*
* <h5>C Specification</h5>
*
* <p>To write a 32-bit marker value into a buffer as a pipelined operation, call:</p>
*
* <pre><code>
* void vkCmdWriteBufferMarker2AMD(
* VkCommandBuffer commandBuffer,
* VkPipelineStageFlags2 stage,
* VkBuffer dstBuffer,
* VkDeviceSize dstOffset,
* uint32_t marker);</code></pre>
*
* <h5>Description</h5>
*
* <p>The command will write the 32-bit marker value into the buffer only after all preceding commands have finished executing up to at least the specified pipeline stage. This includes the completion of other preceding {@code vkCmdWriteBufferMarker2AMD} commands so long as their specified pipeline stages occur either at the same time or earlier than this command’s specified {@code stage}.</p>
*
* <p>While consecutive buffer marker writes with the same {@code stage} parameter implicitly complete in submission order, memory and execution dependencies between buffer marker writes and other operations <b>must</b> still be explicitly ordered using synchronization commands. The access scope for buffer marker writes falls under the {@link VK10#VK_ACCESS_TRANSFER_WRITE_BIT ACCESS_TRANSFER_WRITE_BIT}, and the pipeline stages for identifying the synchronization scope <b>must</b> include both {@code stage} and {@link VK10#VK_PIPELINE_STAGE_TRANSFER_BIT PIPELINE_STAGE_TRANSFER_BIT}.</p>
*
* <div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
*
* <p>Similar to {@code vkCmdWriteTimestamp2}, if an implementation is unable to write a marker at any specific pipeline stage, it <b>may</b> instead do so at any logically later stage.</p>
* </div>
*
* <div style="margin-left: 26px; border-left: 1px solid gray; padding-left: 14px;"><h5>Note</h5>
*
* <p>Implementations <b>may</b> only support a limited number of pipelined marker write operations in flight at a given time. Thus an excessive number of marker write operations <b>may</b> degrade command execution performance.</p>
* </div>
*
* <h5>Valid Usage</h5>
*
* <ul>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-geometryShader">{@code geometryShader}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link VK13#VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-tessellationShader">{@code tessellationShader}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link VK13#VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT} or {@link VK13#VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-conditionalRendering">{@code conditionalRendering}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link KHRSynchronization2#VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fragmentDensityMap">{@code fragmentDensityMap}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link KHRSynchronization2#VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedback">{@code transformFeedback}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link KHRSynchronization2#VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-meshShader">{@code meshShader}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link KHRSynchronization2#VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-taskShader">{@code taskShader}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link KHRSynchronization2#VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT}</li>
* <li>If neither the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shadingRateImage">{@code shadingRateImage}</a> or <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-attachmentFragmentShadingRate">{@code attachmentFragmentShadingRate}</a> are enabled, {@code stage} <b>must</b> not contain {@link KHRSynchronization2#VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading">{@code subpassShading}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link HUAWEISubpassShading#VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI}</li>
* <li>If the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-invocationMask">{@code invocationMask}</a> feature is not enabled, {@code stage} <b>must</b> not contain {@link HUAWEIInvocationMask#VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI}</li>
* <li>If neither the {@link NVRayTracing VK_NV_ray_tracing} extension or <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rayTracingPipeline">{@code rayTracingPipeline} feature</a> are enabled, {@code stage} <b>must</b> not contain {@link KHRSynchronization2#VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR}</li>
* <li>The <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-synchronization2">{@code synchronization2}</a> feature <b>must</b> be enabled</li>
* <li>{@code stage} <b>must</b> include only a single pipeline stage</li>
* <li>{@code stage} <b>must</b> include only stages that are valid for the queue family that was used to create the command pool that {@code commandBuffer} was allocated from</li>
* <li>{@code dstOffset} <b>must</b> be less than or equal to the size of {@code dstBuffer} minus 4</li>
* <li>{@code dstBuffer} <b>must</b> have been created with the {@link VK10#VK_BUFFER_USAGE_TRANSFER_DST_BIT BUFFER_USAGE_TRANSFER_DST_BIT} usage flag</li>
* <li>If {@code dstBuffer} is non-sparse then it <b>must</b> be bound completely and contiguously to a single {@code VkDeviceMemory} object</li>
* <li>{@code dstOffset} <b>must</b> be a multiple of 4</li>
* </ul>
*
* <h5>Valid Usage (Implicit)</h5>
*
* <ul>
* <li>{@code commandBuffer} <b>must</b> be a valid {@code VkCommandBuffer} handle</li>
* <li>{@code stage} <b>must</b> be a valid combination of {@code VkPipelineStageFlagBits2} values</li>
* <li>{@code dstBuffer} <b>must</b> be a valid {@code VkBuffer} handle</li>
* <li>{@code commandBuffer} <b>must</b> be in the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle">recording state</a></li>
* <li>The {@code VkCommandPool} that {@code commandBuffer} was allocated from <b>must</b> support transfer, graphics, or compute operations</li>
* <li>This command <b>must</b> only be called outside of a video coding scope</li>
* <li>Both of {@code commandBuffer}, and {@code dstBuffer} <b>must</b> have been created, allocated, or retrieved from the same {@code VkDevice}</li>
* </ul>
*
* <h5>Host Synchronization</h5>
*
* <ul>
* <li>Host access to {@code commandBuffer} <b>must</b> be externally synchronized</li>
* <li>Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from <b>must</b> be externally synchronized</li>
* </ul>
*
* <h5>Command Properties</h5>
*
* <table class="lwjgl">
* <thead><tr><th><a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VkCommandBufferLevel">Command Buffer Levels</a></th><th><a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vkCmdBeginRenderPass">Render Pass Scope</a></th><th><a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR">Video Coding Scope</a></th><th><a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VkQueueFlagBits">Supported Queue Types</a></th><th><a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-queueoperation-command-types">Command Type</a></th></tr></thead>
* <tbody><tr><td>Primary Secondary</td><td>Both</td><td>Outside</td><td>Transfer Graphics Compute</td><td>Action</td></tr></tbody>
* </table>
*
* @param commandBuffer the command buffer into which the command will be recorded.
* @param stage specifies the pipeline stage whose completion triggers the marker write.
* @param dstBuffer the buffer where the marker will be written.
* @param dstOffset the byte offset into the buffer where the marker will be written.
* @param marker the 32-bit value of the marker.
*/
public static void vkCmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer, @NativeType("VkPipelineStageFlags2") long stage, @NativeType("VkBuffer") long dstBuffer, @NativeType("VkDeviceSize") long dstOffset, @NativeType("uint32_t") int marker) {
long __functionAddress = commandBuffer.getCapabilities().vkCmdWriteBufferMarker2AMD;
if (CHECKS) {
check(__functionAddress);
}
callPJJJV(commandBuffer.address(), stage, dstBuffer, dstOffset, marker, __functionAddress);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
*
* <h5>Deprecation by {@code VK_KHR_shader_float16_int8}</h5>
*
* <p>Functionality in this extension was included in {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when {@link VkPhysicalDeviceShaderFloat16Int8FeaturesKHR}{@code ::shaderFloat16} is enabled.</p>
* <p>Functionality in this extension is included in the {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderFloat16">{@code shaderFloat16}</a> feature is enabled.</p>
*
* <dl>
* <dt><b>Name String</b></dt>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
*
* <h5>Deprecation by {@code VK_KHR_shader_float16_int8}</h5>
*
* <p>Functionality in this extension was included in {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when {@link VkPhysicalDeviceFeatures}{@code ::shaderInt16} and {@link VkPhysicalDeviceShaderFloat16Int8FeaturesKHR}{@code ::shaderFloat16} are enabled.</p>
* <p>Functionality in this extension is included in the {@link KHRShaderFloat16Int8 VK_KHR_shader_float16_int8} extension, when the <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderInt16">{@code shaderInt16}</a> and <a href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-shaderFloat16">{@code shaderFloat16}</a> features are enabled.</p>
*
* <dl>
* <dt><b>Name String</b></dt>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
* <dd>137</dd>
* <dt><b>Revision</b></dt>
* <dd>1</dd>
* <dt><b>API Interactions</b></dt>
* <dd><ul>
* <li>Interacts with VK_VERSION_1_3</li>
* <li>Interacts with VK_KHR_dynamic_rendering</li>
* </ul></dd>
* <dt><b>Contact</b></dt>
* <dd><ul>
* <li>Matthaeus G. Chajdas <a href="https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_AMD_mixed_attachment_samples]%20@anteru%250A*Here%20describe%20the%20issue%20or%20question%20you%20have%20about%20the%20VK_AMD_mixed_attachment_samples%20extension*">anteru</a></li>
Expand Down Expand Up @@ -45,6 +50,9 @@ public final class AMDMixedAttachmentSamples {
/** The extension name. */
public static final String VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME = "VK_AMD_mixed_attachment_samples";

/** Extends {@code VkStructureType}. */
public static final int VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008;

private AMDMixedAttachmentSamples() {}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
*
* <h5>Obsoletion by {@code VK_KHR_maintenance1} and Vulkan 1.1</h5>
*
* <p>Functionality in this extension is included in {@code VK_KHR_maintenance1} and subsequently Vulkan 1.1. Due to some slight behavioral differences, this extension <b>must</b> not be enabled alongside {@code VK_KHR_maintenance1}, or in an instance created with version 1.1 or later requested in {@link VkApplicationInfo}{@code ::apiVersion}.</p>
* <p>Functionality in this extension is included in the {@link KHRMaintenance1 VK_KHR_maintenance1} extension and subsequently Vulkan 1.1. Due to some slight behavioral differences, this extension <b>must</b> not be enabled alongside {@code VK_KHR_maintenance1}, or in an instance created with version 1.1 or later requested in {@link VkApplicationInfo}{@code ::apiVersion}.</p>
*
* <dl>
* <dt><b>Name String</b></dt>
Expand Down
Loading

0 comments on commit 8833e14

Please sign in to comment.