From 432638ea0d2314c324f21813867fe099529c5914 Mon Sep 17 00:00:00 2001 From: swinston Date: Thu, 16 Oct 2025 18:25:38 -0700 Subject: [PATCH 1/9] Add compute shader derivatives sample for Vulkan extension Introduce a sample demonstrating the `VK_KHR_compute_shader_derivatives` extension. Includes new shader, CMake, and Vulkan application files showcasing the use of derivative instructions in compute shaders with quad-based derivative groups. --- antora/modules/ROOT/nav.adoc | 1 + framework/vulkan_type_mapping.h | 6 + samples/extensions/README.adoc | 8 +- .../compute_shader_derivatives/CMakeLists.txt | 30 ++ .../compute_shader_derivatives/README.adoc | 46 +++ .../compute_shader_derivatives.cpp | 269 ++++++++++++++++++ .../compute_shader_derivatives.h | 55 ++++ samples/tooling/profiles/vulkan_profiles.hpp | 8 +- .../slang/derivatives.comp.slang | 39 +++ .../slang/derivatives.comp.spv | Bin 0 -> 976 bytes third_party/spirv-cross | 2 +- third_party/volk | 2 +- third_party/vulkan | 2 +- 13 files changed, 458 insertions(+), 10 deletions(-) create mode 100644 samples/extensions/compute_shader_derivatives/CMakeLists.txt create mode 100644 samples/extensions/compute_shader_derivatives/README.adoc create mode 100644 samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp create mode 100644 samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h create mode 100644 shaders/compute_shader_derivatives/slang/derivatives.comp.slang create mode 100644 shaders/compute_shader_derivatives/slang/derivatives.comp.spv diff --git a/antora/modules/ROOT/nav.adoc b/antora/modules/ROOT/nav.adoc index cc1aec5f1d..66c1601615 100644 --- a/antora/modules/ROOT/nav.adoc +++ b/antora/modules/ROOT/nav.adoc @@ -53,6 +53,7 @@ ** xref:samples/extensions/buffer_device_address/README.adoc[Buffer device address] ** xref:samples/extensions/calibrated_timestamps/README.adoc[Calibrated timestamps] ** xref:samples/extensions/conditional_rendering/README.adoc[Conditional rendering] +** xref:samples/extensions/compute_shader_derivatives/README.adoc[Compute shader derivatives] ** xref:samples/extensions/conservative_rasterization/README.adoc[Conservative rasterization] ** xref:samples/extensions/debug_utils/README.adoc[Debug utils] ** xref:samples/extensions/descriptor_buffer_basic/README.adoc[Descriptor buffer basic] diff --git a/framework/vulkan_type_mapping.h b/framework/vulkan_type_mapping.h index ecd744f685..6042f2774b 100644 --- a/framework/vulkan_type_mapping.h +++ b/framework/vulkan_type_mapping.h @@ -266,6 +266,12 @@ struct HPPType using Type = vk::PhysicalDeviceTimelineSemaphoreFeaturesKHR; }; +template <> +struct HPPType +{ + using Type = vk::PhysicalDeviceComputeShaderDerivativesFeaturesKHR; +}; + template <> struct HPPType { diff --git a/samples/extensions/README.adoc b/samples/extensions/README.adoc index 18b09ca8ba..c14c0daaae 100644 --- a/samples/extensions/README.adoc +++ b/samples/extensions/README.adoc @@ -1,5 +1,5 @@ //// -- Copyright (c) 2021-2024, The Khronos Group +- Copyright (c) 2021-2025, The Khronos Group - - SPDX-License-Identifier: Apache-2.0 - @@ -302,3 +302,9 @@ Demonstrate the use of the host image extension to directly copy from a host buf *Extensions:* https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html[`VK_EXT_line_rasterization`], https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html[`VK_EXT_extended_dynamic_state3`] Demonstrate how to use dynamic multisample rasterization (MSAA) + +=== xref:./{extension_samplespath}compute_shader_derivatives/README.adoc[Compute shader derivatives] + +*Extension*: https://docs.vulkan.org/features/latest/features/proposals/VK_KHR_compute_shader_derivatives.html[`VK_KHR_compute_shader_derivatives`] + +Demonstrate how to use derivatives (dFdx/dFdy) in compute shaders via derivative groups and how to request/enable the corresponding device feature. diff --git a/samples/extensions/compute_shader_derivatives/CMakeLists.txt b/samples/extensions/compute_shader_derivatives/CMakeLists.txt new file mode 100644 index 0000000000..307424d9c6 --- /dev/null +++ b/samples/extensions/compute_shader_derivatives/CMakeLists.txt @@ -0,0 +1,30 @@ +# Copyright (c) 2025, Holochip Inc. + +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 the "License"; +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +get_filename_component(FOLDER_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +get_filename_component(PARENT_DIR ${CMAKE_CURRENT_LIST_DIR} PATH) +get_filename_component(CATEGORY_NAME ${PARENT_DIR} NAME) + +add_sample( + ID ${FOLDER_NAME} + CATEGORY ${CATEGORY_NAME} + AUTHOR "Holochip" + NAME "Compute shader derivatives" + DESCRIPTION "Demonstrates VK_KHR_compute_shader_derivatives with a minimal compute dispatch using dFdx/dFdy in compute" + SHADER_FILES_SLANG + "compute_shader_derivatives/slang/derivatives.comp.slang" + ) \ No newline at end of file diff --git a/samples/extensions/compute_shader_derivatives/README.adoc b/samples/extensions/compute_shader_derivatives/README.adoc new file mode 100644 index 0000000000..d68ce74ed9 --- /dev/null +++ b/samples/extensions/compute_shader_derivatives/README.adoc @@ -0,0 +1,46 @@ +//// +- Copyright (c) 2025, Holochip Inc. +- +- SPDX-License-Identifier: Apache-2.0 +- +- Licensed under the Apache License, Version 2.0 the "License"; +- you may not use this file except in compliance with the License. +- You may obtain a copy of the License at +- +- http://www.apache.org/licenses/LICENSE-2.0 +- +- Unless required by applicable law or agreed to in writing, software +- distributed under the License is distributed on an "AS IS" BASIS, +- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- See the License for the specific language governing permissions and +- limitations under the License. +- +//// += VK_KHR_compute_shader_derivatives — Derivatives in compute shaders + +This sample demonstrates VK_KHR_compute_shader_derivatives, which enables the use of derivative instructions (like dFdx/dFdy) inside compute shaders. Traditionally, derivatives are only available in fragment shaders, but this extension defines derivative groups in compute and how invocations are paired for derivative computations. + +== What is it? +- SPIR-V: The companion SPIR-V extension allows derivative instructions in the Compute execution model. +- Vulkan: The device feature is exposed via `VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR` with two booleans: + * `computeDerivativeGroupQuads` — enables quad-based derivative groups. + * `computeDerivativeGroupLinear` — enables linearly mapped derivative groups. +- GLSL: Use `#extension GL_KHR_compute_shader_derivatives : enable` and a layout qualifier to choose the grouping: + * `layout(derivative_group_quadsNV) in;` + * `layout(derivative_group_linearNV) in;` + (The `NV` suffix is retained in the GLSL tokens for compatibility.) + +== Why/when to use it +- Port algorithms that rely on derivatives (e.g., LOD selection, filtering, gradients) to compute for flexibility or performance. +- Keep consistent behavior with fragment-stage derivatives by choosing an appropriate grouping mode (quads vs. linear). + +== What this sample does +- Requests and requires the feature `computeDerivativeGroupQuads`. +- Builds a minimal compute pipeline with a shader that calls `dFdx`/`dFdy` in compute. +- Runs a small per-frame command buffer that dispatches once and then transitions the swapchain image to `PRESENT` so presentation is validation-clean. The compute shader has no resource bindings; it exists to demonstrate that derivative instructions are accepted and execute in compute. + +== Required Vulkan extensions and features +- Instance extension: `VK_KHR_get_physical_device_properties2` (for feature chaining). +- Device extension: `VK_KHR_compute_shader_derivatives` (required). +- Device feature: `VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR::computeDerivativeGroupQuads = VK_TRUE`. + diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp new file mode 100644 index 0000000000..8d3e2a9f93 --- /dev/null +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -0,0 +1,269 @@ +/* Copyright (c) 2025, Holochip Inc. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "compute_shader_derivatives.h" + +#include "common/vk_common.h" +#include "common/vk_initializers.h" +#include "core/util/logging.hpp" + +ComputeShaderDerivatives::ComputeShaderDerivatives() +{ + title = "Compute shader derivatives (VK_KHR_compute_shader_derivatives)"; + + // Use Vulkan 1.2 instance so SPIR-V 1.4 modules produced by Slang are valid under validation + set_api_version(VK_API_VERSION_1_2); + + // Needed for feature chaining + add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); + // Device extension providing the feature + add_device_extension(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); + // Toolchains may still emit SPV_NV_compute_shader_derivatives; enable NV extension if available to satisfy validation + add_device_extension(VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, /*optional*/ true); +} + +ComputeShaderDerivatives::~ComputeShaderDerivatives() +{ + if (has_device()) + { + VkDevice device = get_device().get_handle(); + + if (compute_pipeline) + { + vkDestroyPipeline(device, compute_pipeline, nullptr); + } + if (pipeline_layout) + { + vkDestroyPipelineLayout(device, pipeline_layout, nullptr); + } + if (descriptor_pool) + { + vkDestroyDescriptorPool(device, descriptor_pool, nullptr); + } + if (descriptor_set_layout) + { + vkDestroyDescriptorSetLayout(device, descriptor_set_layout, nullptr); + } + if (result_buffer) + { + vkDestroyBuffer(device, result_buffer, nullptr); + } + if (result_memory) + { + vkFreeMemory(device, result_memory, nullptr); + } + } +} + +void ComputeShaderDerivatives::create_output_buffer_and_descriptors() +{ + auto device = get_device().get_handle(); + + // Create host-visible buffer to store 16 float4 entries + VkBufferCreateInfo buf_ci{VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO}; + buf_ci.size = result_size; + buf_ci.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + buf_ci.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + VK_CHECK(vkCreateBuffer(device, &buf_ci, nullptr, &result_buffer)); + + VkMemoryRequirements mem_req{}; + vkGetBufferMemoryRequirements(device, result_buffer, &mem_req); + + VkMemoryAllocateInfo alloc_info{VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO}; + alloc_info.allocationSize = mem_req.size; + alloc_info.memoryTypeIndex = get_device().get_gpu().get_memory_type(mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); + VK_CHECK(vkAllocateMemory(device, &alloc_info, nullptr, &result_memory)); + VK_CHECK(vkBindBufferMemory(device, result_buffer, result_memory, 0)); + + // Create descriptor pool for one storage buffer descriptor + VkDescriptorPoolSize pool_size{}; + pool_size.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + pool_size.descriptorCount = 1; + + VkDescriptorPoolCreateInfo pool_ci{VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO}; + pool_ci.maxSets = 1; + pool_ci.poolSizeCount = 1; + pool_ci.pPoolSizes = &pool_size; + VK_CHECK(vkCreateDescriptorPool(device, &pool_ci, nullptr, &descriptor_pool)); +} + +void ComputeShaderDerivatives::request_gpu_features(vkb::core::PhysicalDeviceC &gpu) +{ + // Require quads derivative group (the sample shader uses layout(derivative_group_quadsNV/derivative_group_quads_khr)) + REQUEST_REQUIRED_FEATURE(gpu, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, computeDerivativeGroupQuads); + // Users may switch to the linear mode by changing the shader qualifier +} + +void ComputeShaderDerivatives::create_compute_pipeline() +{ + auto device = get_device().get_handle(); + + // Descriptor set layout: binding 0 as storage buffer for results + VkDescriptorSetLayoutBinding binding{}; + binding.binding = 0; + binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + binding.descriptorCount = 1; + binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; + binding.pImmutableSamplers = nullptr; + + VkDescriptorSetLayoutCreateInfo set_layout_ci{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + set_layout_ci.bindingCount = 1; + set_layout_ci.pBindings = &binding; + VK_CHECK(vkCreateDescriptorSetLayout(device, &set_layout_ci, nullptr, &descriptor_set_layout)); + + // Pipeline layout uses the descriptor set layout at set 0 + VkPipelineLayoutCreateInfo layout_ci{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + layout_ci.setLayoutCount = 1; + layout_ci.pSetLayouts = &descriptor_set_layout; + VK_CHECK(vkCreatePipelineLayout(device, &layout_ci, nullptr, &pipeline_layout)); + + // Allocate and update descriptor set now that layout exists + VkDescriptorSetAllocateInfo alloc_info{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO}; + alloc_info.descriptorPool = descriptor_pool; + alloc_info.descriptorSetCount = 1; + alloc_info.pSetLayouts = &descriptor_set_layout; + VK_CHECK(vkAllocateDescriptorSets(device, &alloc_info, &descriptor_set)); + + VkDescriptorBufferInfo buffer_info{}; + buffer_info.buffer = result_buffer; + buffer_info.offset = 0; + buffer_info.range = result_size; + + VkWriteDescriptorSet write{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + write.dstSet = descriptor_set; + write.dstBinding = 0; + write.dstArrayElement = 0; + write.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + write.descriptorCount = 1; + write.pBufferInfo = &buffer_info; + vkUpdateDescriptorSets(device, 1, &write, 0, nullptr); + + // Load compute shader explicitly from slang path to ensure SPV_KHR_compute_shader_derivatives is used + VkPipelineShaderStageCreateInfo stage = load_shader("compute_shader_derivatives/slang/derivatives.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + + VkComputePipelineCreateInfo compute_ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; + compute_ci.stage = stage; + compute_ci.layout = pipeline_layout; + VK_CHECK(vkCreateComputePipelines(device, pipeline_cache, 1, &compute_ci, nullptr, &compute_pipeline)); +} + +bool ComputeShaderDerivatives::prepare(const vkb::ApplicationOptions &options) +{ + if (!ApiVulkanSample::prepare(options)) + { + return false; + } + + // Create buffer + descriptors first, then the pipeline/layout that reference the set layout + create_output_buffer_and_descriptors(); + create_compute_pipeline(); + + prepared = true; + return true; +} + +void ComputeShaderDerivatives::build_command_buffers() +{ + // Not used; this sample records per-frame in render() +} + +void ComputeShaderDerivatives::render(float delta_time) +{ + if (!prepared) + { + return; + } + + // Acquire swapchain image and signal acquired_image_ready + prepare_frame(); + + // Recreate and record the current frame's command buffer + recreate_current_command_buffer(); + VkCommandBuffer cmd = draw_cmd_buffers[current_buffer]; + + VkCommandBufferBeginInfo begin_info = vkb::initializers::command_buffer_begin_info(); + VK_CHECK(vkBeginCommandBuffer(cmd, &begin_info)); + + // Dispatch a single workgroup; shader has local_size 4x4 + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, compute_pipeline); + vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, pipeline_layout, 0, 1, &descriptor_set, 0, nullptr); + vkCmdDispatch(cmd, 1, 1, 1); + + // Transition the acquired swapchain image to PRESENT so presentation is valid + VkImageSubresourceRange range{}; + range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + range.baseMipLevel = 0; + range.levelCount = 1; + range.baseArrayLayer = 0; + range.layerCount = 1; + vkb::image_layout_transition(cmd, + swapchain_buffers[current_buffer].image, + VK_IMAGE_LAYOUT_UNDEFINED, + VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, + range); + + VK_CHECK(vkEndCommandBuffer(cmd)); + + // Submit: wait on acquire semaphore, signal render_complete for present + VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + VkSubmitInfo submit_info{}; + submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; + submit_info.waitSemaphoreCount = 1; + submit_info.pWaitSemaphores = &semaphores.acquired_image_ready; + submit_info.pWaitDstStageMask = &wait_stage; + submit_info.commandBufferCount = 1; + submit_info.pCommandBuffers = &cmd; + submit_info.signalSemaphoreCount = 1; + submit_info.pSignalSemaphores = &semaphores.render_complete; + + { + auto &queue = get_device().get_queue_by_present(0); + VkQueue q = static_cast(queue.get_handle()); + VK_CHECK(vkQueueSubmit(q, 1, &submit_info, VK_NULL_HANDLE)); + + // One-time readback and print results after the compute dispatch completes + if (!printed_once) + { + VK_CHECK(vkQueueWaitIdle(q)); + void *mapped = nullptr; + VK_CHECK(vkMapMemory(get_device().get_handle(), result_memory, 0, result_size, 0, &mapped)); + float *data = static_cast(mapped); + // Each entry is float4: v, ddx, ddy, pad + for (uint32_t y = 0; y < 4; ++y) + { + for (uint32_t x = 0; x < 4; ++x) + { + uint32_t idx = y * 4 + x; + float v = data[idx * 4 + 0]; + float ddx = data[idx * 4 + 1]; + float ddy = data[idx * 4 + 2]; + LOGI("compute-derivatives CPU: tid=({}, {}) v={} ddx={} ddy={}", x, y, v, ddx, ddy); + } + } + vkUnmapMemory(get_device().get_handle(), result_memory); + printed_once = true; + } + } + + // Present (waits on render_complete) + submit_frame(); +} + +std::unique_ptr create_compute_shader_derivatives() +{ + return std::make_unique(); +} diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h new file mode 100644 index 0000000000..eaafa3ee5e --- /dev/null +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h @@ -0,0 +1,55 @@ +/* Copyright (c) 2025, Holochip Inc. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include "api_vulkan_sample.h" + +class ComputeShaderDerivatives : public ApiVulkanSample +{ + public: + ComputeShaderDerivatives(); + ~ComputeShaderDerivatives() override; + + void build_command_buffers() override; // unused, per-frame recording + bool prepare(const vkb::ApplicationOptions &options) override; + void render(float delta_time) override; + void request_gpu_features(vkb::core::PhysicalDeviceC &gpu) override; + + private: + void create_output_buffer_and_descriptors(); + void create_compute_pipeline(); + + // Pipeline objects + VkPipelineLayout pipeline_layout{VK_NULL_HANDLE}; + VkPipeline compute_pipeline{VK_NULL_HANDLE}; + + // Descriptor objects + VkDescriptorSetLayout descriptor_set_layout{VK_NULL_HANDLE}; + VkDescriptorPool descriptor_pool{VK_NULL_HANDLE}; + VkDescriptorSet descriptor_set{VK_NULL_HANDLE}; + + // Result buffer (host-visible) + VkBuffer result_buffer{VK_NULL_HANDLE}; + VkDeviceMemory result_memory{VK_NULL_HANDLE}; + uint32_t result_count{16}; // 4x4 local size + uint32_t result_stride{16}; // 3 floats (v,dx,dy) + padding -> 16 bytes + VkDeviceSize result_size{result_stride * result_count}; + bool printed_once{false}; +}; + +std::unique_ptr create_compute_shader_derivatives(); diff --git a/samples/tooling/profiles/vulkan_profiles.hpp b/samples/tooling/profiles/vulkan_profiles.hpp index b8658164e0..cdd3a2a1b8 100644 --- a/samples/tooling/profiles/vulkan_profiles.hpp +++ b/samples/tooling/profiles/vulkan_profiles.hpp @@ -1,7 +1,7 @@ /* - * Copyright (C) 2021-2024 Valve Corporation - * Copyright (C) 2021-2024 LunarG, Inc. + * Copyright (C) 2021-2025 Valve Corporation + * Copyright (C) 2021-2025 LunarG, Inc. * * Licensed under the Apache License, Version 2.0 (the "License") * you may not use this file except in compliance with the License. @@ -12170,7 +12170,6 @@ struct FeaturesChain { #ifdef VK_USE_PLATFORM_ANDROID_KHR VkPhysicalDeviceExternalFormatResolveFeaturesANDROID physicalDeviceExternalFormatResolveFeaturesANDROID{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID, nullptr }; #endif - VkPhysicalDeviceCudaKernelLaunchFeaturesNV physicalDeviceCudaKernelLaunchFeaturesNV{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV, nullptr }; VkPhysicalDeviceSchedulingControlsFeaturesARM physicalDeviceSchedulingControlsFeaturesARM{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM, nullptr }; VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG physicalDeviceRelaxedLineRasterizationFeaturesIMG{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG, nullptr }; VkPhysicalDeviceRenderPassStripedFeaturesARM physicalDeviceRenderPassStripedFeaturesARM{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM, nullptr }; @@ -12382,7 +12381,6 @@ struct FeaturesChain { #ifdef VK_USE_PLATFORM_ANDROID_KHR this->structureSize.insert({ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID, size() }); #endif - this->structureSize.insert({ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV, size() }); this->structureSize.insert({ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM, size() }); this->structureSize.insert({ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG, size() }); this->structureSize.insert({ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM, size() }); @@ -12775,8 +12773,6 @@ struct FeaturesChain { physicalDeviceExternalFormatResolveFeaturesANDROID.pNext = pNext; pNext = &physicalDeviceExternalFormatResolveFeaturesANDROID; #endif - physicalDeviceCudaKernelLaunchFeaturesNV.pNext = pNext; - pNext = &physicalDeviceCudaKernelLaunchFeaturesNV; physicalDeviceSchedulingControlsFeaturesARM.pNext = pNext; pNext = &physicalDeviceSchedulingControlsFeaturesARM; physicalDeviceRelaxedLineRasterizationFeaturesIMG.pNext = pNext; diff --git a/shaders/compute_shader_derivatives/slang/derivatives.comp.slang b/shaders/compute_shader_derivatives/slang/derivatives.comp.slang new file mode 100644 index 0000000000..7693281553 --- /dev/null +++ b/shaders/compute_shader_derivatives/slang/derivatives.comp.slang @@ -0,0 +1,39 @@ +/* Copyright (c) 2025, Holochip Inc + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Minimal Slang compute shader demonstrating derivatives in compute. +// Note: ddx/ddy in compute require VK_KHR_compute_shader_derivatives at runtime. +// Slang will emit the appropriate SPIR-V instructions/capabilities when targeting SPIR-V. + +// Result buffer: each invocation writes { v, ddx(v), ddy(v), padding } +[[vk::binding(0, 0)]] RWStructuredBuffer gResults : register(u0, space0); + +// 4x4 local size so derivatives over 2x2 quads are well-defined in the group +[shader("compute")] +[numthreads(4, 4, 1)] +void main(uint3 tid : SV_DispatchThreadID) +{ + float v = float(tid.x) + float(tid.y) * 4.0; + + // Compute derivatives across the derivative group (quads on most implementations) + float dx = ddx(v); + float dy = ddy(v); + + // Write results to SSBO for CPU-side printing + uint index = tid.y * 4 + tid.x; + gResults[index] = float4(v, dx, dy, 0.0); +} diff --git a/shaders/compute_shader_derivatives/slang/derivatives.comp.spv b/shaders/compute_shader_derivatives/slang/derivatives.comp.spv new file mode 100644 index 0000000000000000000000000000000000000000..dbe9abb22773a6e26cc72a1978647d35fec314da GIT binary patch literal 976 zcmY+CTT2^Z5QfJbjEAa`dbrVcQ?#hkvqmTX{Kbo=1r?%_gmgGWt(h#mdqJ$wkz; zl(KJ^yZG%bM~prys&_V%CBLydpg;sd`-h4;S4$dK{@gvw2Gc(_O75JQaVdmrGqJi*;Gx#i0u4Xp};Jg?2 zq&Kqz3H8LmIbUWi3)6#qX0iVV3I0XRVt?#Uve_3*-kLOd_;MZ_vU$6T! Date: Sun, 19 Oct 2025 10:45:40 -0700 Subject: [PATCH 2/9] - Add UI overlay to display compute shader derivative results - Store and format compute results for GUI display - Update README with GitHub repository link for sample --- .../compute_shader_derivatives/README.adoc | 4 +++ .../compute_shader_derivatives.cpp | 27 +++++++++++++++++-- .../compute_shader_derivatives.h | 6 +++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/samples/extensions/compute_shader_derivatives/README.adoc b/samples/extensions/compute_shader_derivatives/README.adoc index d68ce74ed9..ed18c43762 100644 --- a/samples/extensions/compute_shader_derivatives/README.adoc +++ b/samples/extensions/compute_shader_derivatives/README.adoc @@ -16,6 +16,10 @@ - limitations under the License. - //// +ifdef::site-gen-antora[] +TIP: The source for this sample can be found in the https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/extensions/compute_shader_derivatives[Khronos Vulkan samples github repository]. +endif::[] + = VK_KHR_compute_shader_derivatives — Derivatives in compute shaders This sample demonstrates VK_KHR_compute_shader_derivatives, which enables the use of derivative instructions (like dFdx/dFdy) inside compute shaders. Traditionally, derivatives are only available in fragment shaders, but this extension defines derivative groups in compute and how invocations are paired for derivative computations. diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp index 8d3e2a9f93..a5db091dad 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -17,6 +17,8 @@ #include "compute_shader_derivatives.h" +#include + #include "common/vk_common.h" #include "common/vk_initializers.h" #include "core/util/logging.hpp" @@ -235,13 +237,14 @@ void ComputeShaderDerivatives::render(float delta_time) VkQueue q = static_cast(queue.get_handle()); VK_CHECK(vkQueueSubmit(q, 1, &submit_info, VK_NULL_HANDLE)); - // One-time readback and print results after the compute dispatch completes + // One-time readback and collect results after the compute dispatch completes if (!printed_once) { VK_CHECK(vkQueueWaitIdle(q)); void *mapped = nullptr; VK_CHECK(vkMapMemory(get_device().get_handle(), result_memory, 0, result_size, 0, &mapped)); float *data = static_cast(mapped); + log_text_.clear(); // Each entry is float4: v, ddx, ddy, pad for (uint32_t y = 0; y < 4; ++y) { @@ -251,7 +254,12 @@ void ComputeShaderDerivatives::render(float delta_time) float v = data[idx * 4 + 0]; float ddx = data[idx * 4 + 1]; float ddy = data[idx * 4 + 2]; - LOGI("compute-derivatives CPU: tid=({}, {}) v={} ddx={} ddy={}", x, y, v, ddx, ddy); + // Store as human-readable line for GUI and also keep LOGI for debug environments + char buf[160]; + snprintf(buf, sizeof(buf), "tid=(%u,%u) v=%.6f ddx=%.6f ddy=%.6f", x, y, v, ddx, ddy); + log_text_ += buf; + log_text_ += '\n'; + LOGI("compute-derivatives CPU: {}", buf); } } vkUnmapMemory(get_device().get_handle(), result_memory); @@ -263,6 +271,21 @@ void ComputeShaderDerivatives::render(float delta_time) submit_frame(); } +void ComputeShaderDerivatives::on_update_ui_overlay(vkb::Drawer &drawer) +{ + if (drawer.header("Compute shader derivatives")) + { + if (log_text_.empty()) + { + drawer.text("Results will be shown here after first dispatch."); + } + else + { + drawer.text("%s", log_text_.c_str()); + } + } +} + std::unique_ptr create_compute_shader_derivatives() { return std::make_unique(); diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h index eaafa3ee5e..e2ab2cec16 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h @@ -17,6 +17,8 @@ #pragma once +#include + #include "api_vulkan_sample.h" class ComputeShaderDerivatives : public ApiVulkanSample @@ -29,6 +31,7 @@ class ComputeShaderDerivatives : public ApiVulkanSample bool prepare(const vkb::ApplicationOptions &options) override; void render(float delta_time) override; void request_gpu_features(vkb::core::PhysicalDeviceC &gpu) override; + void on_update_ui_overlay(vkb::Drawer &drawer) override; private: void create_output_buffer_and_descriptors(); @@ -50,6 +53,9 @@ class ComputeShaderDerivatives : public ApiVulkanSample uint32_t result_stride{16}; // 3 floats (v,dx,dy) + padding -> 16 bytes VkDeviceSize result_size{result_stride * result_count}; bool printed_once{false}; + + // Cached log text to show in GUI + std::string log_text_; }; std::unique_ptr create_compute_shader_derivatives(); From e47059e9bba34e83b89355e814aa3a31e9fdf98d Mon Sep 17 00:00:00 2001 From: swinston Date: Wed, 31 Dec 2025 16:26:44 -0800 Subject: [PATCH 3/9] Enhance compute shader derivatives sample with practical visualization Extends the compute shader derivatives sample to demonstrate a practical use case: gradient-based edge detection on a procedural radial pattern. Adds a two-stage rendering pipeline where a compute shader calculates spatial derivatives and gradient magnitude, writing to a storage image, then a graphics pipeline displays the result using a fullscreen triangle technique. Includes comprehensive documentation explaining derivative computation, rendering architecture, and the fullscreen triangle optimization. Requires shader storage image read/write features and shader draw parameters extension. --- .../compute_shader_derivatives/CMakeLists.txt | 2 + .../compute_shader_derivatives/README.adoc | 46 +- .../compute_shader_derivatives.cpp | 438 +++++++++++++----- .../compute_shader_derivatives.h | 44 +- .../slang/derivatives.comp.slang | 66 ++- .../slang/derivatives.comp.spv | Bin 976 -> 2208 bytes .../slang/fullscreen.frag.slang | 35 ++ .../slang/fullscreen.frag.spv | Bin 0 -> 748 bytes .../slang/fullscreen.vert.slang | 40 ++ .../slang/fullscreen.vert.spv | Bin 0 -> 820 bytes 10 files changed, 529 insertions(+), 142 deletions(-) create mode 100644 shaders/compute_shader_derivatives/slang/fullscreen.frag.slang create mode 100644 shaders/compute_shader_derivatives/slang/fullscreen.frag.spv create mode 100644 shaders/compute_shader_derivatives/slang/fullscreen.vert.slang create mode 100644 shaders/compute_shader_derivatives/slang/fullscreen.vert.spv diff --git a/samples/extensions/compute_shader_derivatives/CMakeLists.txt b/samples/extensions/compute_shader_derivatives/CMakeLists.txt index 307424d9c6..993f771339 100644 --- a/samples/extensions/compute_shader_derivatives/CMakeLists.txt +++ b/samples/extensions/compute_shader_derivatives/CMakeLists.txt @@ -27,4 +27,6 @@ add_sample( DESCRIPTION "Demonstrates VK_KHR_compute_shader_derivatives with a minimal compute dispatch using dFdx/dFdy in compute" SHADER_FILES_SLANG "compute_shader_derivatives/slang/derivatives.comp.slang" + "compute_shader_derivatives/slang/fullscreen.vert.slang" + "compute_shader_derivatives/slang/fullscreen.frag.slang" ) \ No newline at end of file diff --git a/samples/extensions/compute_shader_derivatives/README.adoc b/samples/extensions/compute_shader_derivatives/README.adoc index ed18c43762..429ad17f98 100644 --- a/samples/extensions/compute_shader_derivatives/README.adoc +++ b/samples/extensions/compute_shader_derivatives/README.adoc @@ -40,8 +40,50 @@ This sample demonstrates VK_KHR_compute_shader_derivatives, which enables the us == What this sample does - Requests and requires the feature `computeDerivativeGroupQuads`. -- Builds a minimal compute pipeline with a shader that calls `dFdx`/`dFdy` in compute. -- Runs a small per-frame command buffer that dispatches once and then transitions the swapchain image to `PRESENT` so presentation is validation-clean. The compute shader has no resource bindings; it exists to demonstrate that derivative instructions are accepted and execute in compute. +- Builds a compute pipeline with a shader that calls `ddx`/`ddy` (derivative instructions) in compute. +- Computes a procedural 2D radial function and uses derivatives to calculate gradient magnitude, demonstrating a practical use case for spatial analysis and edge detection. +- Renders a fullscreen visualization showing: + * Blue: The base procedural radial pattern + * Red/Yellow: Edges detected via high gradient magnitude + * The compute shader writes the visualization to a storage image, which is then displayed via a graphics pipeline +- Displays a GUI overlay explaining the visualization and the practical applications of compute shader derivatives. +- The sample demonstrates how compute shader derivatives enable algorithms that traditionally required fragment shaders (like gradient-based filtering or LOD selection) to run in compute shaders for greater flexibility. + +== Rendering architecture + +This sample uses a two-stage rendering pipeline to demonstrate compute shader derivatives and display the results: + +=== Stage 1: Compute shader (derivative calculation) +The compute shader (`derivatives.comp.slang`) executes with an 8×8 local workgroup size and the `[DerivativeGroupQuad]` attribute, which enables quad-based derivative computation. For each pixel in a 512×512 output image: + +1. Computes a procedural radial function based on distance from center +2. Calls `ddx()` and `ddy()` to calculate spatial derivatives of the function +3. Computes gradient magnitude: `sqrt(dx² + dy²)` to detect edges +4. Writes a color visualization to a storage image (VK_FORMAT_R8G8B8A8_UNORM) + +The storage image serves as the output buffer for the compute shader and the input texture for the graphics pipeline. + +=== Stage 2: Graphics pipeline (fullscreen display) +After a pipeline barrier synchronizes the compute write with the fragment shader read, the graphics pipeline displays the computed image: + +1. **Vertex shader** (`fullscreen.vert.slang`): Generates a fullscreen triangle using only vertex IDs (no vertex buffer required) + * Vertex 0: `(-1, -1)` with UV `(0, 0)` — bottom-left corner + * Vertex 1: `(3, -1)` with UV `(2, 0)` — extends far right (off-screen) + * Vertex 2: `(-1, 3)` with UV `(0, 2)` — extends far up (off-screen) + * The oversized triangle covers the entire viewport; hardware automatically clips the parts outside the screen +2. **Fragment shader** (`fullscreen.frag.slang`): Samples the storage image using interpolated UV coordinates and outputs the color +3. **GUI overlay**: Drawn on top using ImGui to explain the visualization + +=== Why use a fullscreen triangle instead of a quad? +The fullscreen triangle is a common optimization technique for post-processing and fullscreen effects: + +- **Fewer vertices**: Only 3 vertices instead of 4 (quad) or 6 (two triangles) +- **No vertex buffer**: Positions and UVs are generated procedurally from `SV_VertexID` +- **Simpler setup**: Single draw call with `vkCmdDraw(cmd, 3, 1, 0, 0)` +- **Automatic clipping**: The GPU clips the oversized triangle to the viewport bounds +- **Better cache behavior**: Single triangle primitive instead of two + +This technique is widely used in modern rendering engines for fullscreen passes like tone mapping, bloom, and other post-processing effects. == Required Vulkan extensions and features - Instance extension: `VK_KHR_get_physical_device_properties2` (for feature chaining). diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp index a5db091dad..cdeb05acb5 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -36,6 +36,8 @@ ComputeShaderDerivatives::ComputeShaderDerivatives() add_device_extension(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); // Toolchains may still emit SPV_NV_compute_shader_derivatives; enable NV extension if available to satisfy validation add_device_extension(VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, /*optional*/ true); + // Shader draw parameters (required for SV_VertexID in Slang-generated vertex shader SPIR-V) + add_device_extension(VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, /*optional*/ true); } ComputeShaderDerivatives::~ComputeShaderDerivatives() @@ -44,63 +46,128 @@ ComputeShaderDerivatives::~ComputeShaderDerivatives() { VkDevice device = get_device().get_handle(); + // Compute pipeline resources if (compute_pipeline) { vkDestroyPipeline(device, compute_pipeline, nullptr); } - if (pipeline_layout) + if (compute_pipeline_layout) { - vkDestroyPipelineLayout(device, pipeline_layout, nullptr); + vkDestroyPipelineLayout(device, compute_pipeline_layout, nullptr); } - if (descriptor_pool) + if (compute_descriptor_pool) { - vkDestroyDescriptorPool(device, descriptor_pool, nullptr); + vkDestroyDescriptorPool(device, compute_descriptor_pool, nullptr); } - if (descriptor_set_layout) + if (compute_descriptor_set_layout) { - vkDestroyDescriptorSetLayout(device, descriptor_set_layout, nullptr); + vkDestroyDescriptorSetLayout(device, compute_descriptor_set_layout, nullptr); } - if (result_buffer) + + // Graphics pipeline resources + if (graphics_pipeline) + { + vkDestroyPipeline(device, graphics_pipeline, nullptr); + } + if (graphics_pipeline_layout) + { + vkDestroyPipelineLayout(device, graphics_pipeline_layout, nullptr); + } + if (graphics_descriptor_pool) + { + vkDestroyDescriptorPool(device, graphics_descriptor_pool, nullptr); + } + if (graphics_descriptor_set_layout) + { + vkDestroyDescriptorSetLayout(device, graphics_descriptor_set_layout, nullptr); + } + + // Storage image resources + if (storage_image_sampler) + { + vkDestroySampler(device, storage_image_sampler, nullptr); + } + if (storage_image_view) + { + vkDestroyImageView(device, storage_image_view, nullptr); + } + if (storage_image) { - vkDestroyBuffer(device, result_buffer, nullptr); + vkDestroyImage(device, storage_image, nullptr); } - if (result_memory) + if (storage_image_memory) { - vkFreeMemory(device, result_memory, nullptr); + vkFreeMemory(device, storage_image_memory, nullptr); } } } -void ComputeShaderDerivatives::create_output_buffer_and_descriptors() +void ComputeShaderDerivatives::create_storage_image() { auto device = get_device().get_handle(); - // Create host-visible buffer to store 16 float4 entries - VkBufferCreateInfo buf_ci{VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO}; - buf_ci.size = result_size; - buf_ci.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; - buf_ci.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - VK_CHECK(vkCreateBuffer(device, &buf_ci, nullptr, &result_buffer)); + // Create storage image for compute shader output + VkImageCreateInfo image_ci{VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO}; + image_ci.imageType = VK_IMAGE_TYPE_2D; + image_ci.format = VK_FORMAT_R8G8B8A8_UNORM; + image_ci.extent.width = image_width; + image_ci.extent.height = image_height; + image_ci.extent.depth = 1; + image_ci.mipLevels = 1; + image_ci.arrayLayers = 1; + image_ci.samples = VK_SAMPLE_COUNT_1_BIT; + image_ci.tiling = VK_IMAGE_TILING_OPTIMAL; + image_ci.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + image_ci.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + image_ci.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + VK_CHECK(vkCreateImage(device, &image_ci, nullptr, &storage_image)); VkMemoryRequirements mem_req{}; - vkGetBufferMemoryRequirements(device, result_buffer, &mem_req); + vkGetImageMemoryRequirements(device, storage_image, &mem_req); VkMemoryAllocateInfo alloc_info{VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO}; alloc_info.allocationSize = mem_req.size; - alloc_info.memoryTypeIndex = get_device().get_gpu().get_memory_type(mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); - VK_CHECK(vkAllocateMemory(device, &alloc_info, nullptr, &result_memory)); - VK_CHECK(vkBindBufferMemory(device, result_buffer, result_memory, 0)); + alloc_info.memoryTypeIndex = get_device().get_gpu().get_memory_type(mem_req.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); + VK_CHECK(vkAllocateMemory(device, &alloc_info, nullptr, &storage_image_memory)); + VK_CHECK(vkBindImageMemory(device, storage_image, storage_image_memory, 0)); + + // Create image view + VkImageViewCreateInfo view_ci{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; + view_ci.image = storage_image; + view_ci.viewType = VK_IMAGE_VIEW_TYPE_2D; + view_ci.format = VK_FORMAT_R8G8B8A8_UNORM; + view_ci.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + view_ci.subresourceRange.baseMipLevel = 0; + view_ci.subresourceRange.levelCount = 1; + view_ci.subresourceRange.baseArrayLayer = 0; + view_ci.subresourceRange.layerCount = 1; + VK_CHECK(vkCreateImageView(device, &view_ci, nullptr, &storage_image_view)); + + // Create sampler for graphics pipeline + VkSamplerCreateInfo sampler_ci{VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO}; + sampler_ci.magFilter = VK_FILTER_LINEAR; + sampler_ci.minFilter = VK_FILTER_LINEAR; + sampler_ci.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + sampler_ci.addressModeU = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + sampler_ci.addressModeV = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + sampler_ci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + VK_CHECK(vkCreateSampler(device, &sampler_ci, nullptr, &storage_image_sampler)); +} - // Create descriptor pool for one storage buffer descriptor +void ComputeShaderDerivatives::create_output_buffer_and_descriptors() +{ + auto device = get_device().get_handle(); + + // Create descriptor pool for compute: 1 storage image only VkDescriptorPoolSize pool_size{}; - pool_size.type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + pool_size.type = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; pool_size.descriptorCount = 1; VkDescriptorPoolCreateInfo pool_ci{VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO}; pool_ci.maxSets = 1; pool_ci.poolSizeCount = 1; pool_ci.pPoolSizes = &pool_size; - VK_CHECK(vkCreateDescriptorPool(device, &pool_ci, nullptr, &descriptor_pool)); + VK_CHECK(vkCreateDescriptorPool(device, &pool_ci, nullptr, &compute_descriptor_pool)); } void ComputeShaderDerivatives::request_gpu_features(vkb::core::PhysicalDeviceC &gpu) @@ -108,16 +175,20 @@ void ComputeShaderDerivatives::request_gpu_features(vkb::core::PhysicalDeviceC & // Require quads derivative group (the sample shader uses layout(derivative_group_quadsNV/derivative_group_quads_khr)) REQUEST_REQUIRED_FEATURE(gpu, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, computeDerivativeGroupQuads); // Users may switch to the linear mode by changing the shader qualifier + + // Storage image read/write without format (required for storage images without explicit format qualifiers) + gpu.get_mutable_requested_features().shaderStorageImageReadWithoutFormat = VK_TRUE; + gpu.get_mutable_requested_features().shaderStorageImageWriteWithoutFormat = VK_TRUE; } void ComputeShaderDerivatives::create_compute_pipeline() { auto device = get_device().get_handle(); - // Descriptor set layout: binding 0 as storage buffer for results + // Descriptor set layout: binding 0 = storage image VkDescriptorSetLayoutBinding binding{}; binding.binding = 0; - binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + binding.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; binding.descriptorCount = 1; binding.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT; binding.pImmutableSamplers = nullptr; @@ -125,44 +196,169 @@ void ComputeShaderDerivatives::create_compute_pipeline() VkDescriptorSetLayoutCreateInfo set_layout_ci{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; set_layout_ci.bindingCount = 1; set_layout_ci.pBindings = &binding; - VK_CHECK(vkCreateDescriptorSetLayout(device, &set_layout_ci, nullptr, &descriptor_set_layout)); + VK_CHECK(vkCreateDescriptorSetLayout(device, &set_layout_ci, nullptr, &compute_descriptor_set_layout)); // Pipeline layout uses the descriptor set layout at set 0 VkPipelineLayoutCreateInfo layout_ci{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; layout_ci.setLayoutCount = 1; - layout_ci.pSetLayouts = &descriptor_set_layout; - VK_CHECK(vkCreatePipelineLayout(device, &layout_ci, nullptr, &pipeline_layout)); + layout_ci.pSetLayouts = &compute_descriptor_set_layout; + VK_CHECK(vkCreatePipelineLayout(device, &layout_ci, nullptr, &compute_pipeline_layout)); - // Allocate and update descriptor set now that layout exists + // Allocate descriptor set VkDescriptorSetAllocateInfo alloc_info{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO}; - alloc_info.descriptorPool = descriptor_pool; + alloc_info.descriptorPool = compute_descriptor_pool; alloc_info.descriptorSetCount = 1; - alloc_info.pSetLayouts = &descriptor_set_layout; - VK_CHECK(vkAllocateDescriptorSets(device, &alloc_info, &descriptor_set)); - - VkDescriptorBufferInfo buffer_info{}; - buffer_info.buffer = result_buffer; - buffer_info.offset = 0; - buffer_info.range = result_size; + alloc_info.pSetLayouts = &compute_descriptor_set_layout; + VK_CHECK(vkAllocateDescriptorSets(device, &alloc_info, &compute_descriptor_set)); + + // Update descriptor: storage image only + VkDescriptorImageInfo image_info{}; + image_info.imageView = storage_image_view; + image_info.imageLayout = VK_IMAGE_LAYOUT_GENERAL; + + VkWriteDescriptorSet write{}; + write.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; + write.pNext = nullptr; + write.dstSet = compute_descriptor_set; + write.dstBinding = 0; + write.dstArrayElement = 0; + write.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + write.descriptorCount = 1; + write.pImageInfo = &image_info; + write.pBufferInfo = nullptr; + write.pTexelBufferView = nullptr; - VkWriteDescriptorSet write{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; - write.dstSet = descriptor_set; - write.dstBinding = 0; - write.dstArrayElement = 0; - write.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; - write.descriptorCount = 1; - write.pBufferInfo = &buffer_info; vkUpdateDescriptorSets(device, 1, &write, 0, nullptr); - // Load compute shader explicitly from slang path to ensure SPV_KHR_compute_shader_derivatives is used + // Load compute shader VkPipelineShaderStageCreateInfo stage = load_shader("compute_shader_derivatives/slang/derivatives.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); VkComputePipelineCreateInfo compute_ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; compute_ci.stage = stage; - compute_ci.layout = pipeline_layout; + compute_ci.layout = compute_pipeline_layout; VK_CHECK(vkCreateComputePipelines(device, pipeline_cache, 1, &compute_ci, nullptr, &compute_pipeline)); } +void ComputeShaderDerivatives::create_graphics_pipeline() +{ + auto device = get_device().get_handle(); + + // Create descriptor pool for graphics: 1 combined image sampler + VkDescriptorPoolSize pool_size{}; + pool_size.type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + pool_size.descriptorCount = 1; + + VkDescriptorPoolCreateInfo pool_ci{VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO}; + pool_ci.maxSets = 1; + pool_ci.poolSizeCount = 1; + pool_ci.pPoolSizes = &pool_size; + VK_CHECK(vkCreateDescriptorPool(device, &pool_ci, nullptr, &graphics_descriptor_pool)); + + // Descriptor set layout: binding 0 = combined image sampler + VkDescriptorSetLayoutBinding binding{}; + binding.binding = 0; + binding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + binding.descriptorCount = 1; + binding.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; + binding.pImmutableSamplers = nullptr; + + VkDescriptorSetLayoutCreateInfo set_layout_ci{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO}; + set_layout_ci.bindingCount = 1; + set_layout_ci.pBindings = &binding; + VK_CHECK(vkCreateDescriptorSetLayout(device, &set_layout_ci, nullptr, &graphics_descriptor_set_layout)); + + // Pipeline layout + VkPipelineLayoutCreateInfo layout_ci{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; + layout_ci.setLayoutCount = 1; + layout_ci.pSetLayouts = &graphics_descriptor_set_layout; + VK_CHECK(vkCreatePipelineLayout(device, &layout_ci, nullptr, &graphics_pipeline_layout)); + + // Allocate descriptor set + VkDescriptorSetAllocateInfo alloc_info{VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO}; + alloc_info.descriptorPool = graphics_descriptor_pool; + alloc_info.descriptorSetCount = 1; + alloc_info.pSetLayouts = &graphics_descriptor_set_layout; + VK_CHECK(vkAllocateDescriptorSets(device, &alloc_info, &graphics_descriptor_set)); + + // Update descriptor set with storage image sampler + VkDescriptorImageInfo image_info{}; + image_info.sampler = storage_image_sampler; + image_info.imageView = storage_image_view; + image_info.imageLayout = VK_IMAGE_LAYOUT_GENERAL; + + VkWriteDescriptorSet write{VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET}; + write.dstSet = graphics_descriptor_set; + write.dstBinding = 0; + write.dstArrayElement = 0; + write.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + write.descriptorCount = 1; + write.pImageInfo = &image_info; + vkUpdateDescriptorSets(device, 1, &write, 0, nullptr); + + // Load shaders for fullscreen quad + VkPipelineShaderStageCreateInfo shader_stages[2]; + shader_stages[0] = load_shader("compute_shader_derivatives/slang/fullscreen.vert.spv", VK_SHADER_STAGE_VERTEX_BIT); + shader_stages[1] = load_shader("compute_shader_derivatives/slang/fullscreen.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT); + + // Vertex input state: no vertex buffers (fullscreen triangle generated in vertex shader) + VkPipelineVertexInputStateCreateInfo vertex_input_ci{VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO}; + + // Input assembly + VkPipelineInputAssemblyStateCreateInfo input_assembly_ci{VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO}; + input_assembly_ci.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; + + // Viewport and scissor (dynamic) + VkPipelineViewportStateCreateInfo viewport_ci{VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO}; + viewport_ci.viewportCount = 1; + viewport_ci.scissorCount = 1; + + // Rasterization + VkPipelineRasterizationStateCreateInfo rasterization_ci{VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO}; + rasterization_ci.polygonMode = VK_POLYGON_MODE_FILL; + rasterization_ci.cullMode = VK_CULL_MODE_NONE; + rasterization_ci.frontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE; + rasterization_ci.lineWidth = 1.0f; + + // Multisample + VkPipelineMultisampleStateCreateInfo multisample_ci{VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO}; + multisample_ci.rasterizationSamples = VK_SAMPLE_COUNT_1_BIT; + + // Depth stencil + VkPipelineDepthStencilStateCreateInfo depth_stencil_ci{VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO}; + + // Color blend + VkPipelineColorBlendAttachmentState blend_attachment{}; + blend_attachment.colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT; + + VkPipelineColorBlendStateCreateInfo color_blend_ci{VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO}; + color_blend_ci.attachmentCount = 1; + color_blend_ci.pAttachments = &blend_attachment; + + // Dynamic state + VkDynamicState dynamic_states[] = {VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; + VkPipelineDynamicStateCreateInfo dynamic_ci{VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO}; + dynamic_ci.dynamicStateCount = 2; + dynamic_ci.pDynamicStates = dynamic_states; + + // Create graphics pipeline + VkGraphicsPipelineCreateInfo pipeline_ci{VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO}; + pipeline_ci.stageCount = 2; + pipeline_ci.pStages = shader_stages; + pipeline_ci.pVertexInputState = &vertex_input_ci; + pipeline_ci.pInputAssemblyState = &input_assembly_ci; + pipeline_ci.pViewportState = &viewport_ci; + pipeline_ci.pRasterizationState = &rasterization_ci; + pipeline_ci.pMultisampleState = &multisample_ci; + pipeline_ci.pDepthStencilState = &depth_stencil_ci; + pipeline_ci.pColorBlendState = &color_blend_ci; + pipeline_ci.pDynamicState = &dynamic_ci; + pipeline_ci.layout = graphics_pipeline_layout; + pipeline_ci.renderPass = render_pass; + pipeline_ci.subpass = 0; + + VK_CHECK(vkCreateGraphicsPipelines(device, pipeline_cache, 1, &pipeline_ci, nullptr, &graphics_pipeline)); +} + bool ComputeShaderDerivatives::prepare(const vkb::ApplicationOptions &options) { if (!ApiVulkanSample::prepare(options)) @@ -170,9 +366,11 @@ bool ComputeShaderDerivatives::prepare(const vkb::ApplicationOptions &options) return false; } - // Create buffer + descriptors first, then the pipeline/layout that reference the set layout + // Create resources in order: image, buffer, then pipelines + create_storage_image(); create_output_buffer_and_descriptors(); create_compute_pipeline(); + create_graphics_pipeline(); prepared = true; return true; @@ -200,28 +398,83 @@ void ComputeShaderDerivatives::render(float delta_time) VkCommandBufferBeginInfo begin_info = vkb::initializers::command_buffer_begin_info(); VK_CHECK(vkBeginCommandBuffer(cmd, &begin_info)); - // Dispatch a single workgroup; shader has local_size 4x4 + // Transition storage image to GENERAL layout for compute shader write + VkImageMemoryBarrier image_barrier{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER}; + image_barrier.srcAccessMask = 0; + image_barrier.dstAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + image_barrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; + image_barrier.newLayout = VK_IMAGE_LAYOUT_GENERAL; + image_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + image_barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + image_barrier.image = storage_image; + image_barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + image_barrier.subresourceRange.levelCount = 1; + image_barrier.subresourceRange.layerCount = 1; + vkCmdPipelineBarrier(cmd, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + 0, 0, nullptr, 0, nullptr, 1, &image_barrier); + + // Dispatch compute shader: 512x512 image with 8x8 local size = 64x64 workgroups vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, compute_pipeline); - vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, pipeline_layout, 0, 1, &descriptor_set, 0, nullptr); - vkCmdDispatch(cmd, 1, 1, 1); - - // Transition the acquired swapchain image to PRESENT so presentation is valid - VkImageSubresourceRange range{}; - range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - range.baseMipLevel = 0; - range.levelCount = 1; - range.baseArrayLayer = 0; - range.layerCount = 1; - vkb::image_layout_transition(cmd, - swapchain_buffers[current_buffer].image, - VK_IMAGE_LAYOUT_UNDEFINED, - VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, - range); + vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_COMPUTE, compute_pipeline_layout, 0, 1, &compute_descriptor_set, 0, nullptr); + vkCmdDispatch(cmd, image_width / 8, image_height / 8, 1); + + // Barrier: compute write → fragment shader read + VkImageMemoryBarrier compute_to_frag_barrier{VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER}; + compute_to_frag_barrier.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT; + compute_to_frag_barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; + compute_to_frag_barrier.oldLayout = VK_IMAGE_LAYOUT_GENERAL; + compute_to_frag_barrier.newLayout = VK_IMAGE_LAYOUT_GENERAL; + compute_to_frag_barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + compute_to_frag_barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + compute_to_frag_barrier.image = storage_image; + compute_to_frag_barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + compute_to_frag_barrier.subresourceRange.levelCount = 1; + compute_to_frag_barrier.subresourceRange.layerCount = 1; + vkCmdPipelineBarrier(cmd, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + 0, 0, nullptr, 0, nullptr, 1, &compute_to_frag_barrier); + + // Begin render pass to display the computed image and GUI + VkClearValue clear_values[2]; + clear_values[0].color = {{0.0f, 0.0f, 0.0f, 1.0f}}; // Clear to black (will be covered by image) + clear_values[1].depthStencil = {1.0f, 0}; + + VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); + render_pass_begin_info.renderPass = render_pass; + render_pass_begin_info.framebuffer = framebuffers[current_buffer]; + render_pass_begin_info.renderArea.extent.width = width; + render_pass_begin_info.renderArea.extent.height = height; + render_pass_begin_info.clearValueCount = 2; + render_pass_begin_info.pClearValues = clear_values; + + vkCmdBeginRenderPass(cmd, &render_pass_begin_info, VK_SUBPASS_CONTENTS_INLINE); + + // Set viewport and scissor for graphics rendering + VkViewport viewport{}; + viewport.width = static_cast(width); + viewport.height = static_cast(height); + viewport.minDepth = 0.0f; + viewport.maxDepth = 1.0f; + vkCmdSetViewport(cmd, 0, 1, &viewport); + + VkRect2D scissor{}; + scissor.extent.width = width; + scissor.extent.height = height; + vkCmdSetScissor(cmd, 0, 1, &scissor); + + // Render the computed image as a fullscreen quad + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline); + vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline_layout, 0, 1, &graphics_descriptor_set, 0, nullptr); + vkCmdDraw(cmd, 3, 1, 0, 0); // Draw fullscreen triangle (3 vertices) + + // Draw the GUI overlay on top + draw_ui(cmd); + + vkCmdEndRenderPass(cmd); VK_CHECK(vkEndCommandBuffer(cmd)); // Submit: wait on acquire semaphore, signal render_complete for present - VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; VkSubmitInfo submit_info{}; submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; submit_info.waitSemaphoreCount = 1; @@ -232,40 +485,8 @@ void ComputeShaderDerivatives::render(float delta_time) submit_info.signalSemaphoreCount = 1; submit_info.pSignalSemaphores = &semaphores.render_complete; - { - auto &queue = get_device().get_queue_by_present(0); - VkQueue q = static_cast(queue.get_handle()); - VK_CHECK(vkQueueSubmit(q, 1, &submit_info, VK_NULL_HANDLE)); - - // One-time readback and collect results after the compute dispatch completes - if (!printed_once) - { - VK_CHECK(vkQueueWaitIdle(q)); - void *mapped = nullptr; - VK_CHECK(vkMapMemory(get_device().get_handle(), result_memory, 0, result_size, 0, &mapped)); - float *data = static_cast(mapped); - log_text_.clear(); - // Each entry is float4: v, ddx, ddy, pad - for (uint32_t y = 0; y < 4; ++y) - { - for (uint32_t x = 0; x < 4; ++x) - { - uint32_t idx = y * 4 + x; - float v = data[idx * 4 + 0]; - float ddx = data[idx * 4 + 1]; - float ddy = data[idx * 4 + 2]; - // Store as human-readable line for GUI and also keep LOGI for debug environments - char buf[160]; - snprintf(buf, sizeof(buf), "tid=(%u,%u) v=%.6f ddx=%.6f ddy=%.6f", x, y, v, ddx, ddy); - log_text_ += buf; - log_text_ += '\n'; - LOGI("compute-derivatives CPU: {}", buf); - } - } - vkUnmapMemory(get_device().get_handle(), result_memory); - printed_once = true; - } - } + VkQueue queue = get_device().get_queue_by_present(0).get_handle(); + VK_CHECK(vkQueueSubmit(queue, 1, &submit_info, VK_NULL_HANDLE)); // Present (waits on render_complete) submit_frame(); @@ -273,16 +494,17 @@ void ComputeShaderDerivatives::render(float delta_time) void ComputeShaderDerivatives::on_update_ui_overlay(vkb::Drawer &drawer) { - if (drawer.header("Compute shader derivatives")) + if (drawer.header("Compute Shader Derivatives")) { - if (log_text_.empty()) - { - drawer.text("Results will be shown here after first dispatch."); - } - else - { - drawer.text("%s", log_text_.c_str()); - } + drawer.text("Visualization:"); + drawer.text("- Blue: Base procedural radial pattern"); + drawer.text("- Red/Yellow: Edges (high gradient magnitude)"); + drawer.text("- Gradient magnitude = sqrt(dx^2 + dy^2)"); + drawer.text(""); + + drawer.text("This demonstrates edge detection using compute shader"); + drawer.text("derivatives, useful for LOD selection, filtering, and"); + drawer.text("spatial analysis in compute pipelines."); } } diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h index e2ab2cec16..eda84fde3f 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h @@ -34,28 +34,38 @@ class ComputeShaderDerivatives : public ApiVulkanSample void on_update_ui_overlay(vkb::Drawer &drawer) override; private: + void create_storage_image(); void create_output_buffer_and_descriptors(); void create_compute_pipeline(); + void create_graphics_pipeline(); - // Pipeline objects - VkPipelineLayout pipeline_layout{VK_NULL_HANDLE}; + // Image dimensions for visualization + static constexpr uint32_t image_width{512}; + static constexpr uint32_t image_height{512}; + + // Compute pipeline objects + VkPipelineLayout compute_pipeline_layout{VK_NULL_HANDLE}; VkPipeline compute_pipeline{VK_NULL_HANDLE}; - // Descriptor objects - VkDescriptorSetLayout descriptor_set_layout{VK_NULL_HANDLE}; - VkDescriptorPool descriptor_pool{VK_NULL_HANDLE}; - VkDescriptorSet descriptor_set{VK_NULL_HANDLE}; - - // Result buffer (host-visible) - VkBuffer result_buffer{VK_NULL_HANDLE}; - VkDeviceMemory result_memory{VK_NULL_HANDLE}; - uint32_t result_count{16}; // 4x4 local size - uint32_t result_stride{16}; // 3 floats (v,dx,dy) + padding -> 16 bytes - VkDeviceSize result_size{result_stride * result_count}; - bool printed_once{false}; - - // Cached log text to show in GUI - std::string log_text_; + // Graphics pipeline objects (for displaying the image) + VkPipelineLayout graphics_pipeline_layout{VK_NULL_HANDLE}; + VkPipeline graphics_pipeline{VK_NULL_HANDLE}; + + // Compute descriptor objects + VkDescriptorSetLayout compute_descriptor_set_layout{VK_NULL_HANDLE}; + VkDescriptorPool compute_descriptor_pool{VK_NULL_HANDLE}; + VkDescriptorSet compute_descriptor_set{VK_NULL_HANDLE}; + + // Graphics descriptor objects (for sampling the image) + VkDescriptorSetLayout graphics_descriptor_set_layout{VK_NULL_HANDLE}; + VkDescriptorPool graphics_descriptor_pool{VK_NULL_HANDLE}; + VkDescriptorSet graphics_descriptor_set{VK_NULL_HANDLE}; + + // Storage image for compute shader output + VkImage storage_image{VK_NULL_HANDLE}; + VkDeviceMemory storage_image_memory{VK_NULL_HANDLE}; + VkImageView storage_image_view{VK_NULL_HANDLE}; + VkSampler storage_image_sampler{VK_NULL_HANDLE}; }; std::unique_ptr create_compute_shader_derivatives(); diff --git a/shaders/compute_shader_derivatives/slang/derivatives.comp.slang b/shaders/compute_shader_derivatives/slang/derivatives.comp.slang index 7693281553..cdd70954f2 100644 --- a/shaders/compute_shader_derivatives/slang/derivatives.comp.slang +++ b/shaders/compute_shader_derivatives/slang/derivatives.comp.slang @@ -15,25 +15,61 @@ * limitations under the License. */ -// Minimal Slang compute shader demonstrating derivatives in compute. +// Compute shader demonstrating derivatives in compute with a practical use case. +// This shader computes a procedural 2D function and uses derivatives to calculate +// gradient magnitude - demonstrating edge detection and spatial analysis capabilities. // Note: ddx/ddy in compute require VK_KHR_compute_shader_derivatives at runtime. -// Slang will emit the appropriate SPIR-V instructions/capabilities when targeting SPIR-V. -// Result buffer: each invocation writes { v, ddx(v), ddy(v), padding } -[[vk::binding(0, 0)]] RWStructuredBuffer gResults : register(u0, space0); +// Output image for gradient magnitude visualization +[[vk::binding(0, 0)]] RWTexture2D gOutputImage : register(u0, space0); -// 4x4 local size so derivatives over 2x2 quads are well-defined in the group +// 8x8 local size for efficient compute with proper derivative quad coverage [shader("compute")] -[numthreads(4, 4, 1)] +[numthreads(8, 8, 1)] +[DerivativeGroupQuad] // Enable quad-based derivative computation void main(uint3 tid : SV_DispatchThreadID) { - float v = float(tid.x) + float(tid.y) * 4.0; - - // Compute derivatives across the derivative group (quads on most implementations) - float dx = ddx(v); - float dy = ddy(v); - - // Write results to SSBO for CPU-side printing - uint index = tid.y * 4 + tid.x; - gResults[index] = float4(v, dx, dy, 0.0); + // Get image dimensions + uint2 dims; + gOutputImage.GetDimensions(dims.x, dims.y); + + if (tid.x >= dims.x || tid.y >= dims.y) + return; + + // Normalized coordinates [0, 1] + float2 uv = float2(tid.xy) / float2(dims - 1); + + // Create an interesting procedural function: radial gradient with modulation + // This demonstrates a practical use case for derivatives in compute + float2 center = float2(0.5, 0.5); + float2 delta = uv - center; + float dist = length(delta); + + // Procedural function with spatial variation + float value = sin(dist * 10.0) * 0.5 + 0.5; + value *= (1.0 - smoothstep(0.0, 0.7, dist)); + + // Compute derivatives of the function - this is the key feature! + // These derivatives tell us how quickly the function changes spatially + float dx = ddx(value); + float dy = ddy(value); + + // Gradient magnitude - useful for edge detection, LOD selection, and filtering + // High gradient = rapid spatial changes (edges) + float gradientMag = sqrt(dx * dx + dy * dy); + + // Visualize gradient magnitude as edge detection + // Scale up the gradient for better visibility + float edgeIntensity = saturate(gradientMag * 10.0); + + // Create a color visualization: + // - Base pattern in blue channel + // - Edges (high gradient) in red/yellow + float3 color; + color.r = edgeIntensity; // Red for edges + color.g = edgeIntensity * 0.5; // Some yellow for strong edges + color.b = value * (1.0 - edgeIntensity); // Blue for the base pattern + + // Write visualization to output image + gOutputImage[tid.xy] = float4(color, 1.0); } diff --git a/shaders/compute_shader_derivatives/slang/derivatives.comp.spv b/shaders/compute_shader_derivatives/slang/derivatives.comp.spv index dbe9abb22773a6e26cc72a1978647d35fec314da..cdddf7b9bcbf8c6dd604c1ffbc32744a0c0e6a1f 100644 GIT binary patch literal 2208 zcmZvcYfn^H6o$70LRBhQuT7c=SYy4R7O!m;Pz$11RFZzHRZ4U1ayI z&b5^(Ig6oeGWlG#ljDpBfomsr4^qy(2C;jQLVg?UhJxQ%@Y*}5*_ZKojW5x)y-jOu zMp{GOJ+>p=Bm6tj?M?n`cG!(HU(P;ag>KEEf;4tNmF&YeX?@?Q`Nki_cCVj+^|bY! z2duF}c#WR`aw1|T(K*3H*jF<9fBy{j=;-KJ_M75X?_KNw_N?uk2Z24;vF*>dKM1bVoBjLt zztH8)kv~VT){>9BedzY-3T{8TF|HSM=G!;`jMeA)ze2j+(WgGY9|ORdDx=mRbnCl+ zoar#SeMHO%x|}hw-w||k_1U*~A@`R0?(IJA89v|cTAwlQXYVI~`S!gP>9TKmK7ko$ zJ$uyZ~I>^o*-Z_DKP*3SU_ah@O0J5dVyxkJ%sTRa7Th?x z`~>KulJEZlxCqXJaqxs#`JaKlNf5D9=*Ie;&>yjv(Dhm4QIS85E-%+d_tv}&%s&SF zt#hkvqmTX{Kbo=1r?%_gmgGWt(h#mdqJ$wkz; zl(KJ^yZG%bM~prys&_V%CBLydpg;sd`-h4;S4$dK{@gvw2Gc(_O75JQaVdmrGqJi*;Gx#i0u4Xp};Jg?2 zq&Kqz3H8LmIbUWi3)6#qX0iVV3I0XRVt?#Uve_3*-kLOd_;MZ_vU$6T!5 zQrpzSev+-$#l`wlOEE21|FTR)#;^Bj^cFilbejM8hbUdW$9YwEpv8xy{>r2m*l5cO zhia%)=lM1|AIc4 onfPze2QzO^j{c*xn49lU4*Zi8n3Hc0j}~^T?#uxHqY19$zwNFu)&Kwi literal 0 HcmV?d00001 diff --git a/shaders/compute_shader_derivatives/slang/fullscreen.vert.slang b/shaders/compute_shader_derivatives/slang/fullscreen.vert.slang new file mode 100644 index 0000000000..a3376a88fe --- /dev/null +++ b/shaders/compute_shader_derivatives/slang/fullscreen.vert.slang @@ -0,0 +1,40 @@ +/* Copyright (c) 2025, Holochip Inc. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Fullscreen triangle vertex shader (no vertex buffers needed) +// Generates a large triangle that covers the entire screen + +struct VSOutput +{ + float4 position : SV_Position; + float2 uv : TEXCOORD0; +}; + +[shader("vertex")] +VSOutput main(uint vertexID : SV_VertexID) +{ + VSOutput output; + + // Generate fullscreen triangle using vertex ID + // Vertex 0: (-1, -1) -> UV (0, 0) + // Vertex 1: ( 3, -1) -> UV (2, 0) + // Vertex 2: (-1, 3) -> UV (0, 2) + output.uv = float2((vertexID << 1) & 2, vertexID & 2); + output.position = float4(output.uv * 2.0 - 1.0, 0.0, 1.0); + + return output; +} diff --git a/shaders/compute_shader_derivatives/slang/fullscreen.vert.spv b/shaders/compute_shader_derivatives/slang/fullscreen.vert.spv new file mode 100644 index 0000000000000000000000000000000000000000..7fc4259c3468e4e196e6d8fd7b564294094d2890 GIT binary patch literal 820 zcmYk4OH0E*6os!zv=z0rR;_PRgIctTZo~&Zb_#Ct4c(dyh}LkJRn2)|D_d$iLPMVCsUmWnlV&Szvmv zIb_yUHTt&Q6vYhl^2fx*vXC|0RgaltPAs)!8FgaeDeuE`KjV09T01^|RzC4y z?iXd$1Jf&!X5jD6cAC16W z_abJ;@|giU6h|)evWWW@LZ373eD|b`o+Yl!r{|k;xz|(azfr`!C7 literal 0 HcmV?d00001 From cb59615ed2f9d251162a690c831f039a9a200a56 Mon Sep 17 00:00:00 2001 From: swinston Date: Wed, 31 Dec 2025 20:47:21 -0800 Subject: [PATCH 4/9] Fix code alignment and remove trailing whitespace Aligns variable declarations and inline comments to improve code readability. Removes trailing whitespace from empty lines. Human: [Commits history] Update: Support more than one joint in .arm files Also adds names to the joints based on the Blender names. Add support for loading .arm files from Blender/Armory for GPU skinning # Conflicts: # framework/rendering/subpasses/forward_subpass.cpp # framework/scene_graph/components/sub_mesh.cpp Fix compute shader derivatives sample descriptor set update timing Moves descriptor set writes to prepare() to ensure resources are updated before first use, addressing potential rendering issues from accessing uninitialized descriptors. Enhance compute shader derivatives sample with practical visualization Extends the compute shader derivatives sample to demonstrate a practical use case: gradient-based edge detection on a procedural radial pattern. Adds a two-stage rendering pipeline where a compute shader calculates spatial derivatives and gradient magnitude, writing to a storage image, then a graphics pipeline displays the result using a fullscreen triangle technique. Includes comprehensive documentation explaining derivative computation, rendering architecture, and the fullscreen triangle optimization. Requires shader storage image read/write features and shader draw parameters extension. Revert "add shader quad control sample demonstrating VK_KHR_shader_quad_control features." This reverts commit d9524ac1e14e24d8b2aa23f345fbb2bba11163e3. add shader quad control sample demonstrating VK_KHR_shader_quad_control features. Add compute shader derivatives sample for Vulkan extension Introduce a sample demonstrating the `VK_KHR_compute_shader_derivatives` extension. Includes new shader, CMake, and Vulkan application files showcasing the use of derivative instructions in compute shaders with quad-based derivative groups. bash might not work with nmake let's try nmake try to diagnose what's happening. try to diagnose what's happening. astc can't find sys/time.h when using sccache. [Message] [Diff] --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -175,9 +175,9 @@ // Require quads derivative group (the sample shader uses layout(derivative_group_quadsNV/derivative_group_quads_khr)) REQUEST_REQUIRED_FEATURE(gpu, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, computeDerivativeGroupQuads); // Users may switch to the linear mode by changing the shader qualifier - + // Storage image read/write without format (required for storage images without explicit format qualifiers) - gpu.get_mutable_requested_features().shaderStorageImageReadWithoutFormat = VK_TRUE; + gpu.get_mutable_requested_features().shaderStorageImageReadWithoutFormat = VK_TRUE; gpu.get_mutable_requested_features().shaderStorageImageWriteWithoutFormat = VK_TRUE; } @@ -335,7 +335,7 @@ color_blend_ci.pAttachments = &blend_attachment; // Dynamic state - VkDynamicState dynamic_states[] = {VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; + VkDynamicState dynamic_states[] = {VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; VkPipelineDynamicStateCreateInfo dynamic_ci{VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO}; dynamic_ci.dynamicStateCount = 2; dynamic_ci.pDynamicStates = dynamic_states; @@ -435,7 +435,7 @@ // Begin render pass to display the computed image and GUI VkClearValue clear_values[2]; - clear_values[0].color = {{0.0f, 0.0f, 0.0f, 1.0f}}; // Clear to black (will be covered by image) + clear_values[0].color = {{0.0f, 0.0f, 0.0f, 1.0f}}; // Clear to black (will be covered by image) clear_values[1].depthStencil = {1.0f, 0}; VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); @@ -464,7 +464,7 @@ // Render the computed image as a fullscreen quad vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline); vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline_layout, 0, 1, &graphics_descriptor_set, 0, nullptr); - vkCmdDraw(cmd, 3, 1, 0, 0); // Draw fullscreen triangle (3 vertices) + vkCmdDraw(cmd, 3, 1, 0, 0); // Draw fullscreen triangle (3 vertices) // Draw the GUI overlay on top draw_ui(cmd); @@ -501,7 +501,7 @@ drawer.text("- Red/Yellow: Edges (high gradient magnitude)"); drawer.text("- Gradient magnitude = sqrt(dx^2 + dy^2)"); drawer.text(""); - + drawer.text("This demonstrates edge detection using compute shader"); drawer.text("derivatives, useful for LOD selection, filtering, and"); drawer.text("spatial analysis in compute pipelines."); --- .../compute_shader_derivatives.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp index cdeb05acb5..9e635e7abd 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -175,9 +175,9 @@ void ComputeShaderDerivatives::request_gpu_features(vkb::core::PhysicalDeviceC & // Require quads derivative group (the sample shader uses layout(derivative_group_quadsNV/derivative_group_quads_khr)) REQUEST_REQUIRED_FEATURE(gpu, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, computeDerivativeGroupQuads); // Users may switch to the linear mode by changing the shader qualifier - + // Storage image read/write without format (required for storage images without explicit format qualifiers) - gpu.get_mutable_requested_features().shaderStorageImageReadWithoutFormat = VK_TRUE; + gpu.get_mutable_requested_features().shaderStorageImageReadWithoutFormat = VK_TRUE; gpu.get_mutable_requested_features().shaderStorageImageWriteWithoutFormat = VK_TRUE; } @@ -335,7 +335,7 @@ void ComputeShaderDerivatives::create_graphics_pipeline() color_blend_ci.pAttachments = &blend_attachment; // Dynamic state - VkDynamicState dynamic_states[] = {VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; + VkDynamicState dynamic_states[] = {VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR}; VkPipelineDynamicStateCreateInfo dynamic_ci{VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO}; dynamic_ci.dynamicStateCount = 2; dynamic_ci.pDynamicStates = dynamic_states; @@ -435,7 +435,7 @@ void ComputeShaderDerivatives::render(float delta_time) // Begin render pass to display the computed image and GUI VkClearValue clear_values[2]; - clear_values[0].color = {{0.0f, 0.0f, 0.0f, 1.0f}}; // Clear to black (will be covered by image) + clear_values[0].color = {{0.0f, 0.0f, 0.0f, 1.0f}}; // Clear to black (will be covered by image) clear_values[1].depthStencil = {1.0f, 0}; VkRenderPassBeginInfo render_pass_begin_info = vkb::initializers::render_pass_begin_info(); @@ -464,7 +464,7 @@ void ComputeShaderDerivatives::render(float delta_time) // Render the computed image as a fullscreen quad vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline); vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline_layout, 0, 1, &graphics_descriptor_set, 0, nullptr); - vkCmdDraw(cmd, 3, 1, 0, 0); // Draw fullscreen triangle (3 vertices) + vkCmdDraw(cmd, 3, 1, 0, 0); // Draw fullscreen triangle (3 vertices) // Draw the GUI overlay on top draw_ui(cmd); @@ -501,7 +501,7 @@ void ComputeShaderDerivatives::on_update_ui_overlay(vkb::Drawer &drawer) drawer.text("- Red/Yellow: Edges (high gradient magnitude)"); drawer.text("- Gradient magnitude = sqrt(dx^2 + dy^2)"); drawer.text(""); - + drawer.text("This demonstrates edge detection using compute shader"); drawer.text("derivatives, useful for LOD selection, filtering, and"); drawer.text("spatial analysis in compute pipelines."); From 11ee2fba60e93203d81d50c1328e7f25184c31ba Mon Sep 17 00:00:00 2001 From: swinston Date: Wed, 31 Dec 2025 20:52:25 -0800 Subject: [PATCH 5/9] Update copyright years to 2026 Updates copyright year ranges across multiple files to include 2026. Also fixes a typo in one header (202 -> 2026) and aligns code formatting for improved readability. Happy New Year! --- antora/modules/ROOT/nav.adoc | 6 +++--- framework/vulkan_type_mapping.h | 4 ++-- samples/extensions/README.adoc | 4 ++-- .../extensions/compute_shader_derivatives/CMakeLists.txt | 2 +- samples/extensions/compute_shader_derivatives/README.adoc | 2 +- .../compute_shader_derivatives.cpp | 2 +- .../compute_shader_derivatives/compute_shader_derivatives.h | 2 +- .../compute_shader_derivatives/slang/derivatives.comp.slang | 2 +- .../compute_shader_derivatives/slang/fullscreen.frag.slang | 2 +- .../compute_shader_derivatives/slang/fullscreen.vert.slang | 2 +- 10 files changed, 14 insertions(+), 14 deletions(-) diff --git a/antora/modules/ROOT/nav.adoc b/antora/modules/ROOT/nav.adoc index ebf0228670..e3dc676eec 100644 --- a/antora/modules/ROOT/nav.adoc +++ b/antora/modules/ROOT/nav.adoc @@ -1,7 +1,7 @@ //// -- Copyright (c) 2023-2025, Holochip Inc -- Copyright (c) 2023-2025, Sascha Willems -- Copyright (c) 2025, Arm Limited and Contributors +- Copyright (c) 2023-2026, Holochip Inc +- Copyright (c) 2023-2026, Sascha Willems +- Copyright (c) 2026, Arm Limited and Contributors - - SPDX-License-Identifier: Apache-2.0 - diff --git a/framework/vulkan_type_mapping.h b/framework/vulkan_type_mapping.h index 60c8f48bc8..15ebb1c391 100644 --- a/framework/vulkan_type_mapping.h +++ b/framework/vulkan_type_mapping.h @@ -1,5 +1,5 @@ -/* Copyright (c) 2025, Arm Limited and Contributors - * Copyright (c) 2024-2025, NVIDIA CORPORATION. All rights reserved. +/* Copyright (c) 2026, Arm Limited and Contributors + * Copyright (c) 2024-2026, NVIDIA CORPORATION. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * diff --git a/samples/extensions/README.adoc b/samples/extensions/README.adoc index 813cc035a2..64388a2e6e 100644 --- a/samples/extensions/README.adoc +++ b/samples/extensions/README.adoc @@ -1,6 +1,6 @@ //// -- Copyright (c) 2025, Arm Limited and Contributors -- Copyright (c) 2021-2025, The Khronos Group +- Copyright (c) 2026, Arm Limited and Contributors +- Copyright (c) 2021-2026, The Khronos Group - - SPDX-License-Identifier: Apache-2.0 - diff --git a/samples/extensions/compute_shader_derivatives/CMakeLists.txt b/samples/extensions/compute_shader_derivatives/CMakeLists.txt index 993f771339..ba62b73460 100644 --- a/samples/extensions/compute_shader_derivatives/CMakeLists.txt +++ b/samples/extensions/compute_shader_derivatives/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2025, Holochip Inc. +# Copyright (c) 2026, Holochip Inc. # SPDX-License-Identifier: Apache-2.0 # diff --git a/samples/extensions/compute_shader_derivatives/README.adoc b/samples/extensions/compute_shader_derivatives/README.adoc index 429ad17f98..ff3dd6152f 100644 --- a/samples/extensions/compute_shader_derivatives/README.adoc +++ b/samples/extensions/compute_shader_derivatives/README.adoc @@ -1,5 +1,5 @@ //// -- Copyright (c) 2025, Holochip Inc. +- Copyright (c) 2025-2026, Holochip Inc. - - SPDX-License-Identifier: Apache-2.0 - diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp index 9e635e7abd..0ab1e24585 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2025, Holochip Inc. +/* Copyright (c) 2026, Holochip Inc. * * SPDX-License-Identifier: Apache-2.0 * diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h index eda84fde3f..97a9c7819e 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2025, Holochip Inc. +/* Copyright (c) 202, Holochip Inc. * * SPDX-License-Identifier: Apache-2.0 * diff --git a/shaders/compute_shader_derivatives/slang/derivatives.comp.slang b/shaders/compute_shader_derivatives/slang/derivatives.comp.slang index cdd70954f2..f3bb9643f7 100644 --- a/shaders/compute_shader_derivatives/slang/derivatives.comp.slang +++ b/shaders/compute_shader_derivatives/slang/derivatives.comp.slang @@ -1,4 +1,4 @@ -/* Copyright (c) 2025, Holochip Inc +/* Copyright (c) 2026, Holochip Inc * * SPDX-License-Identifier: Apache-2.0 * diff --git a/shaders/compute_shader_derivatives/slang/fullscreen.frag.slang b/shaders/compute_shader_derivatives/slang/fullscreen.frag.slang index 0ea25dd952..2b4a0dffa9 100644 --- a/shaders/compute_shader_derivatives/slang/fullscreen.frag.slang +++ b/shaders/compute_shader_derivatives/slang/fullscreen.frag.slang @@ -1,4 +1,4 @@ -/* Copyright (c) 2025, Holochip Inc. +/* Copyright (c) 2026, Holochip Inc. * * SPDX-License-Identifier: Apache-2.0 * diff --git a/shaders/compute_shader_derivatives/slang/fullscreen.vert.slang b/shaders/compute_shader_derivatives/slang/fullscreen.vert.slang index a3376a88fe..c5168093b7 100644 --- a/shaders/compute_shader_derivatives/slang/fullscreen.vert.slang +++ b/shaders/compute_shader_derivatives/slang/fullscreen.vert.slang @@ -1,4 +1,4 @@ -/* Copyright (c) 2025, Holochip Inc. +/* Copyright (c) 2026, Holochip Inc. * * SPDX-License-Identifier: Apache-2.0 * From c15713f19d7295df519ebf673d5f0b1f86568e73 Mon Sep 17 00:00:00 2001 From: swinston Date: Wed, 31 Dec 2025 20:54:27 -0800 Subject: [PATCH 6/9] missed one --- .../compute_shader_derivatives/compute_shader_derivatives.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h index 97a9c7819e..1a4ae795b2 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h @@ -1,4 +1,4 @@ -/* Copyright (c) 202, Holochip Inc. +/* Copyright (c) 2026, Holochip Inc. * * SPDX-License-Identifier: Apache-2.0 * From dc33a84ce8a4ca6426908ec1fc7cd2379ae07acf Mon Sep 17 00:00:00 2001 From: swinston Date: Wed, 7 Jan 2026 15:41:49 -0800 Subject: [PATCH 7/9] Support both quad and linear derivative group modes in compute shader derivatives sample Enhances the compute shader derivatives sample to support both derivative group modes (quads and linear) with runtime fallback. Splits shader into two variants (quad/linear), selects appropriate shader based on device capabilities, and prioritizes quads when available. Adds validation for required storage image features and updates documentation to clarify KHR extension requirement over deprecated NV variant. --- .../compute_shader_derivatives/CMakeLists.txt | 3 +- .../compute_shader_derivatives.cpp | 64 +++++++++++++---- .../compute_shader_derivatives.h | 4 ++ .../slang/derivatives_linear.comp.slang | 68 ++++++++++++++++++ .../slang/derivatives_linear.comp.spv | Bin 0 -> 2208 bytes ...comp.slang => derivatives_quad.comp.slang} | 12 ++-- ...ves.comp.spv => derivatives_quad.comp.spv} | Bin 7 files changed, 127 insertions(+), 24 deletions(-) create mode 100644 shaders/compute_shader_derivatives/slang/derivatives_linear.comp.slang create mode 100644 shaders/compute_shader_derivatives/slang/derivatives_linear.comp.spv rename shaders/compute_shader_derivatives/slang/{derivatives.comp.slang => derivatives_quad.comp.slang} (84%) rename shaders/compute_shader_derivatives/slang/{derivatives.comp.spv => derivatives_quad.comp.spv} (100%) diff --git a/samples/extensions/compute_shader_derivatives/CMakeLists.txt b/samples/extensions/compute_shader_derivatives/CMakeLists.txt index ba62b73460..ba96f3ca20 100644 --- a/samples/extensions/compute_shader_derivatives/CMakeLists.txt +++ b/samples/extensions/compute_shader_derivatives/CMakeLists.txt @@ -26,7 +26,8 @@ add_sample( NAME "Compute shader derivatives" DESCRIPTION "Demonstrates VK_KHR_compute_shader_derivatives with a minimal compute dispatch using dFdx/dFdy in compute" SHADER_FILES_SLANG - "compute_shader_derivatives/slang/derivatives.comp.slang" + "compute_shader_derivatives/slang/derivatives_quad.comp.slang" + "compute_shader_derivatives/slang/derivatives_linear.comp.slang" "compute_shader_derivatives/slang/fullscreen.vert.slang" "compute_shader_derivatives/slang/fullscreen.frag.slang" ) \ No newline at end of file diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp index 0ab1e24585..047b75edb1 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -32,10 +32,12 @@ ComputeShaderDerivatives::ComputeShaderDerivatives() // Needed for feature chaining add_instance_extension(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); - // Device extension providing the feature + // Device extension providing the feature (KHR is required) add_device_extension(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); - // Toolchains may still emit SPV_NV_compute_shader_derivatives; enable NV extension if available to satisfy validation - add_device_extension(VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, /*optional*/ true); + // Note for developers/tooling: + // If your shader compiler/toolchain only emits SPV_NV_compute_shader_derivatives instead of SPV_KHR, + // please update to a newer Vulkan SDK, glslang, and SPIR-V Tools that support the KHR variant. + // This sample intentionally does not enable the NV extension and only targets VK_KHR_compute_shader_derivatives. // Shader draw parameters (required for SV_VertexID in Slang-generated vertex shader SPIR-V) add_device_extension(VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, /*optional*/ true); } @@ -172,13 +174,28 @@ void ComputeShaderDerivatives::create_output_buffer_and_descriptors() void ComputeShaderDerivatives::request_gpu_features(vkb::core::PhysicalDeviceC &gpu) { - // Require quads derivative group (the sample shader uses layout(derivative_group_quadsNV/derivative_group_quads_khr)) - REQUEST_REQUIRED_FEATURE(gpu, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, computeDerivativeGroupQuads); - // Users may switch to the linear mode by changing the shader qualifier + // Request both derivative group modes as OPTIONAL, prefer Quads if available at runtime. + // Some implementations only support computeDerivativeGroupLinear. + REQUEST_OPTIONAL_FEATURE(gpu, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, computeDerivativeGroupQuads); + REQUEST_OPTIONAL_FEATURE(gpu, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, computeDerivativeGroupLinear); // Storage image read/write without format (required for storage images without explicit format qualifiers) - gpu.get_mutable_requested_features().shaderStorageImageReadWithoutFormat = VK_TRUE; - gpu.get_mutable_requested_features().shaderStorageImageWriteWithoutFormat = VK_TRUE; + if (gpu.get_features().shaderStorageImageReadWithoutFormat) + { + gpu.get_mutable_requested_features().shaderStorageImageReadWithoutFormat = VK_TRUE; + } + else + { + throw std::runtime_error("GPU does not support shaderStorageImageReadWithoutFormat feature, which is required for this sample."); + } + if (gpu.get_features().shaderStorageImageWriteWithoutFormat) + { + gpu.get_mutable_requested_features().shaderStorageImageWriteWithoutFormat = VK_TRUE; + } + else + { + throw std::runtime_error("GPU does not support shaderStorageImageWriteWithoutFormat feature, which is required for this sample."); + } } void ComputeShaderDerivatives::create_compute_pipeline() @@ -230,8 +247,11 @@ void ComputeShaderDerivatives::create_compute_pipeline() vkUpdateDescriptorSets(device, 1, &write, 0, nullptr); - // Load compute shader - VkPipelineShaderStageCreateInfo stage = load_shader("compute_shader_derivatives/slang/derivatives.comp.spv", VK_SHADER_STAGE_COMPUTE_BIT); + // Load compute shader based on selected derivative group mode + const char *comp_path = use_quads_ ? + "compute_shader_derivatives/slang/derivatives_quad.comp.spv" : + "compute_shader_derivatives/slang/derivatives_linear.comp.spv"; + VkPipelineShaderStageCreateInfo stage = load_shader(comp_path, VK_SHADER_STAGE_COMPUTE_BIT); VkComputePipelineCreateInfo compute_ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; compute_ci.stage = stage; @@ -361,15 +381,29 @@ void ComputeShaderDerivatives::create_graphics_pipeline() bool ComputeShaderDerivatives::prepare(const vkb::ApplicationOptions &options) { - if (!ApiVulkanSample::prepare(options)) + if (!ApiVulkanSample::prepare(options)) + { + return false; + } + + // Decide which derivative group to use at runtime based on enabled device features. + // Prefer Quads when available; otherwise, fall back to Linear. + VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR csd_features{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR}; + VkPhysicalDeviceFeatures2 features2{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2}; + features2.pNext = &csd_features; + vkGetPhysicalDeviceFeatures2(get_device().get_gpu().get_handle(), &features2); + use_quads_ = (csd_features.computeDerivativeGroupQuads == VK_TRUE); + if (!use_quads_ && csd_features.computeDerivativeGroupLinear != VK_TRUE) { + // Neither mode is available: cannot run this sample. + LOGE("VK_KHR_compute_shader_derivatives present but neither quads nor linear derivative groups are reported as supported."); return false; } - // Create resources in order: image, buffer, then pipelines - create_storage_image(); - create_output_buffer_and_descriptors(); - create_compute_pipeline(); + // Create resources in order: image, buffer, then pipelines + create_storage_image(); + create_output_buffer_and_descriptors(); + create_compute_pipeline(); create_graphics_pipeline(); prepared = true; diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h index 1a4ae795b2..8c3c697012 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.h @@ -39,6 +39,10 @@ class ComputeShaderDerivatives : public ApiVulkanSample void create_compute_pipeline(); void create_graphics_pipeline(); + // Which derivative group mode the sample will use at runtime. + // Prefer quads when available; otherwise fall back to linear. + bool use_quads_{false}; + // Image dimensions for visualization static constexpr uint32_t image_width{512}; static constexpr uint32_t image_height{512}; diff --git a/shaders/compute_shader_derivatives/slang/derivatives_linear.comp.slang b/shaders/compute_shader_derivatives/slang/derivatives_linear.comp.slang new file mode 100644 index 0000000000..19980c5d78 --- /dev/null +++ b/shaders/compute_shader_derivatives/slang/derivatives_linear.comp.slang @@ -0,0 +1,68 @@ +/* Copyright (c) 2026, Holochip Inc + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 the "License"; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Compute shader demonstrating derivatives in compute (Linear mode). +// Many implementations only support computeDerivativeGroupLinear. +// Mapping 1D lanes to 2D coordinates for linear groups follows the DX SM 6.6 spec: +// https://microsoft.github.io/DirectX-Specs/d3d/HLSL_SM_6_6_Derivatives.html +// Intuition: lanes are ordered linearly across the group; hardware derives a +// consistent local 2D mapping to evaluate ddx/ddy even when quads aren't supported. +// Note: ddx/ddy in compute require VK_KHR_compute_shader_derivatives at runtime. +// Tooling note: If your toolchain emits SPV_NV_compute_shader_derivatives instead of SPV_KHR, +// please update to a newer Vulkan SDK, glslang, and SPIR-V Tools that support the KHR variant. + +// Output image for gradient magnitude visualization +[[vk::binding(0, 0)]] RWTexture2D gOutputImage : register(u0, space0); + +// 8x8 local size; derivative groups are defined by implementation in Linear mode +[shader("compute")] +[numthreads(8, 8, 1)] +[DerivativeGroupLinear] // Enable linear-based derivative computation +void main(uint3 tid : SV_DispatchThreadID) +{ + // Get image dimensions + uint2 dims; + gOutputImage.GetDimensions(dims.x, dims.y); + + if (tid.x >= dims.x || tid.y >= dims.y) + return; + + // Normalized coordinates [0, 1] + float2 uv = float2(tid.xy) / float2(dims - 1); + + // Procedural function (same as Quad variant) to produce identical output + float2 center = float2(0.5, 0.5); + float2 delta = uv - center; + float dist = length(delta); + + float value = sin(dist * 10.0) * 0.5 + 0.5; + value *= (1.0 - smoothstep(0.0, 0.7, dist)); + + // Derivatives of the function + float dx = ddx(value); + float dy = ddy(value); + + float gradientMag = sqrt(dx * dx + dy * dy); + float edgeIntensity = saturate(gradientMag * 10.0); + + float3 color; + color.r = edgeIntensity; + color.g = edgeIntensity * 0.5; + color.b = value * (1.0 - edgeIntensity); + + gOutputImage[tid.xy] = float4(color, 1.0); +} diff --git a/shaders/compute_shader_derivatives/slang/derivatives_linear.comp.spv b/shaders/compute_shader_derivatives/slang/derivatives_linear.comp.spv new file mode 100644 index 0000000000000000000000000000000000000000..c133d4fa0ebc4fa8fcf41644c4b034aa6503dcdd GIT binary patch literal 2208 zcmZvcYfn^H6o$70LRBhQuT7c=SYy4R7O!m;Pz$11RFZzHZ@FQe~kQb@rfiYV&iA2eoXUZ?Vhw8`V}l z-)FCOz1CQ$xA1qRG3<6H_l=`hYm2Q4(jKRgoyua{;@Y#H*lTAoh2L3t#&3YO^BDrJ zu;pA^nUb>@$|jS~Wji^}co4XDV)r2B+-nfK7b)bo!EPw{jRmj0gPMIApV#;jUEABV z#%82730O~C z-+90qJA~Kx2_PpTW)htfOoV+Uv;X(cV2_TDj)ni1%)dHj4^4FU=>|XY-!pn&_MmP5 z!@y;}J>Ji(l^Wo7R3!b{pw>kM6!a z$*i98EcxEW4q(sP&Up~na~<3MeEWmoI=$JyZ(q)3jxmpbeciy)ehiG0cSY`AbaU5% zi2Vy)-W>UJ^lB~n$lHf*pRVBcqZ{M;m(F|}2Y|8qJpWfn*E{;u=l5d(I8$ZRI)rY0 z_m49jMz@cM89|pbCiXjmZmvH2_Acb!Qs2GZ$34U6+g+9+?L72F{y*sQ)+qtsvAxJ&W8O{Va$!f$p7|~q2J@Uj-FIl5Z{Kf{ P@7OoJ)|UT3m#4vh+-;x~ literal 0 HcmV?d00001 diff --git a/shaders/compute_shader_derivatives/slang/derivatives.comp.slang b/shaders/compute_shader_derivatives/slang/derivatives_quad.comp.slang similarity index 84% rename from shaders/compute_shader_derivatives/slang/derivatives.comp.slang rename to shaders/compute_shader_derivatives/slang/derivatives_quad.comp.slang index f3bb9643f7..95718b2e4e 100644 --- a/shaders/compute_shader_derivatives/slang/derivatives.comp.slang +++ b/shaders/compute_shader_derivatives/slang/derivatives_quad.comp.slang @@ -15,10 +15,12 @@ * limitations under the License. */ -// Compute shader demonstrating derivatives in compute with a practical use case. +// Compute shader demonstrating derivatives in compute (Quad mode). // This shader computes a procedural 2D function and uses derivatives to calculate // gradient magnitude - demonstrating edge detection and spatial analysis capabilities. // Note: ddx/ddy in compute require VK_KHR_compute_shader_derivatives at runtime. +// Tooling note: If your toolchain emits SPV_NV_compute_shader_derivatives instead of SPV_KHR, +// please update to a newer Vulkan SDK, glslang, and SPIR-V Tools that support the KHR variant. // Output image for gradient magnitude visualization [[vk::binding(0, 0)]] RWTexture2D gOutputImage : register(u0, space0); @@ -40,7 +42,6 @@ void main(uint3 tid : SV_DispatchThreadID) float2 uv = float2(tid.xy) / float2(dims - 1); // Create an interesting procedural function: radial gradient with modulation - // This demonstrates a practical use case for derivatives in compute float2 center = float2(0.5, 0.5); float2 delta = uv - center; float dist = length(delta); @@ -50,21 +51,16 @@ void main(uint3 tid : SV_DispatchThreadID) value *= (1.0 - smoothstep(0.0, 0.7, dist)); // Compute derivatives of the function - this is the key feature! - // These derivatives tell us how quickly the function changes spatially float dx = ddx(value); float dy = ddy(value); // Gradient magnitude - useful for edge detection, LOD selection, and filtering - // High gradient = rapid spatial changes (edges) float gradientMag = sqrt(dx * dx + dy * dy); // Visualize gradient magnitude as edge detection - // Scale up the gradient for better visibility float edgeIntensity = saturate(gradientMag * 10.0); - // Create a color visualization: - // - Base pattern in blue channel - // - Edges (high gradient) in red/yellow + // Create a color visualization float3 color; color.r = edgeIntensity; // Red for edges color.g = edgeIntensity * 0.5; // Some yellow for strong edges diff --git a/shaders/compute_shader_derivatives/slang/derivatives.comp.spv b/shaders/compute_shader_derivatives/slang/derivatives_quad.comp.spv similarity index 100% rename from shaders/compute_shader_derivatives/slang/derivatives.comp.spv rename to shaders/compute_shader_derivatives/slang/derivatives_quad.comp.spv From 448582ef18c93415893885c3cd9b24cb6f2fd3e8 Mon Sep 17 00:00:00 2001 From: swinston Date: Wed, 7 Jan 2026 15:50:38 -0800 Subject: [PATCH 8/9] Add screenshot to compute shader derivatives sample README --- .../compute_shader_derivatives/README.adoc | 4 ++++ .../shader_derivatives.png | Bin 0 -> 370717 bytes 2 files changed, 4 insertions(+) create mode 100644 samples/extensions/compute_shader_derivatives/shader_derivatives.png diff --git a/samples/extensions/compute_shader_derivatives/README.adoc b/samples/extensions/compute_shader_derivatives/README.adoc index ff3dd6152f..88d5c2ad4a 100644 --- a/samples/extensions/compute_shader_derivatives/README.adoc +++ b/samples/extensions/compute_shader_derivatives/README.adoc @@ -24,6 +24,10 @@ endif::[] This sample demonstrates VK_KHR_compute_shader_derivatives, which enables the use of derivative instructions (like dFdx/dFdy) inside compute shaders. Traditionally, derivatives are only available in fragment shaders, but this extension defines derivative groups in compute and how invocations are paired for derivative computations. +// Screenshot of the sample output +.Compute shader derivatives output +image::shader_derivatives.png[align=center,alt="Compute shader derivatives output"] + == What is it? - SPIR-V: The companion SPIR-V extension allows derivative instructions in the Compute execution model. - Vulkan: The device feature is exposed via `VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR` with two booleans: diff --git a/samples/extensions/compute_shader_derivatives/shader_derivatives.png b/samples/extensions/compute_shader_derivatives/shader_derivatives.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0f8de9c10d8d73e2f833bf7471503cc7219223 GIT binary patch literal 370717 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

lDAGq5iVZQ61? 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≤am^h>6t(rd_&CCA5STQ8*=dQhSLV>3? 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≫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

3G%-o0W)JvhueI9I%v0j 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

hHJ$mb>m*k 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 Date: Wed, 7 Jan 2026 15:53:45 -0800 Subject: [PATCH 9/9] Fix code formatting and alignment in compute shader derivatives sample Aligns variable declarations, adjusts whitespace, and removes trailing spaces to improve code readability and maintain consistent formatting throughout the sample. --- .../compute_shader_derivatives.cpp | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp index 047b75edb1..e10992d37f 100644 --- a/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp +++ b/samples/extensions/compute_shader_derivatives/compute_shader_derivatives.cpp @@ -248,10 +248,10 @@ void ComputeShaderDerivatives::create_compute_pipeline() vkUpdateDescriptorSets(device, 1, &write, 0, nullptr); // Load compute shader based on selected derivative group mode - const char *comp_path = use_quads_ ? - "compute_shader_derivatives/slang/derivatives_quad.comp.spv" : - "compute_shader_derivatives/slang/derivatives_linear.comp.spv"; - VkPipelineShaderStageCreateInfo stage = load_shader(comp_path, VK_SHADER_STAGE_COMPUTE_BIT); + const char *comp_path = use_quads_ ? + "compute_shader_derivatives/slang/derivatives_quad.comp.spv" : + "compute_shader_derivatives/slang/derivatives_linear.comp.spv"; + VkPipelineShaderStageCreateInfo stage = load_shader(comp_path, VK_SHADER_STAGE_COMPUTE_BIT); VkComputePipelineCreateInfo compute_ci{VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO}; compute_ci.stage = stage; @@ -381,15 +381,15 @@ void ComputeShaderDerivatives::create_graphics_pipeline() bool ComputeShaderDerivatives::prepare(const vkb::ApplicationOptions &options) { - if (!ApiVulkanSample::prepare(options)) - { - return false; - } + if (!ApiVulkanSample::prepare(options)) + { + return false; + } // Decide which derivative group to use at runtime based on enabled device features. // Prefer Quads when available; otherwise, fall back to Linear. VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR csd_features{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR}; - VkPhysicalDeviceFeatures2 features2{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2}; + VkPhysicalDeviceFeatures2 features2{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2}; features2.pNext = &csd_features; vkGetPhysicalDeviceFeatures2(get_device().get_gpu().get_handle(), &features2); use_quads_ = (csd_features.computeDerivativeGroupQuads == VK_TRUE); @@ -400,10 +400,10 @@ bool ComputeShaderDerivatives::prepare(const vkb::ApplicationOptions &options) return false; } - // Create resources in order: image, buffer, then pipelines - create_storage_image(); - create_output_buffer_and_descriptors(); - create_compute_pipeline(); + // Create resources in order: image, buffer, then pipelines + create_storage_image(); + create_output_buffer_and_descriptors(); + create_compute_pipeline(); create_graphics_pipeline(); prepared = true;