Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions attachments/03_physical_device_selection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ class HelloTriangleApplication
std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRSynchronization2ExtensionName};

void initWindow()
{
Expand Down
3 changes: 1 addition & 2 deletions attachments/04_logical_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,7 @@ class HelloTriangleApplication
std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRSynchronization2ExtensionName};

void initWindow()
{
Expand Down
3 changes: 1 addition & 2 deletions attachments/05_window_surface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ class HelloTriangleApplication
std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRSynchronization2ExtensionName};

void initWindow()
{
Expand Down
3 changes: 1 addition & 2 deletions attachments/06_swap_chain_creation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ class HelloTriangleApplication
std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRSynchronization2ExtensionName};

void initWindow()
{
Expand Down
3 changes: 1 addition & 2 deletions attachments/07_image_views.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ class HelloTriangleApplication
std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRSynchronization2ExtensionName};

void initWindow()
{
Expand Down
3 changes: 1 addition & 2 deletions attachments/08_graphics_pipeline.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,7 @@ class HelloTriangleApplication
std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRSynchronization2ExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/09_shader_modules.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/10_fixed_functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/12_graphics_pipeline_complete.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/14_command_buffers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/15_hello_triangle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/16_frames_in_flight.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/17_swap_chain_recreation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/18_vertex_input.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/19_vertex_buffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/20_staging_buffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/21_index_buffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/22_descriptor_layout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/23_descriptor_sets.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/24_texture_image.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/25_sampler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/26_texture_mapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/27_depth_buffering.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/28_model_loading.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/29_mipmapping.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/30_multisampling.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ class HelloTriangleApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
2 changes: 1 addition & 1 deletion attachments/31_compute_shader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ class ComputeShaderApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
3 changes: 2 additions & 1 deletion attachments/32_ecosystem_utilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,8 @@ class HelloTriangleApplication
bool framebufferResized = false;

std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName};
vk::KHRSwapchainExtensionName,
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
3 changes: 2 additions & 1 deletion attachments/33_vulkan_profiles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,8 @@ class HelloTriangleApplication
};

const std::vector<const char *> requiredDeviceExtension = {
VK_KHR_SWAPCHAIN_EXTENSION_NAME};
vk::KHRSwapchainExtensionName,
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
3 changes: 2 additions & 1 deletion attachments/34_android.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,8 @@ class HelloTriangleApplication

// Required device extensions
const std::vector<const char *> deviceExtensions = {
VK_KHR_SWAPCHAIN_EXTENSION_NAME};
vk::KHRSwapchainExtensionName,
vk::KHRShaderDrawParametersExtensionName};

// Initialize Vulkan
void initVulkan()
Expand Down
2 changes: 1 addition & 1 deletion attachments/35_gltf_ktx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ class VulkanApplication

std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

#if PLATFORM_DESKTOP
void initWindow()
Expand Down
2 changes: 1 addition & 1 deletion attachments/36_multiple_objects.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ class VulkanApplication

std::vector<const char *> requiredDeviceExtension = {
vk::KHRSwapchainExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

#if PLATFORM_DESKTOP
void initWindow()
Expand Down
2 changes: 1 addition & 1 deletion attachments/37_multithreading.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ class MultithreadedApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName};
vk::KHRShaderDrawParametersExtensionName};

// Helper functions
[[nodiscard]] static std::vector<const char *> getRequiredExtensions()
Expand Down
4 changes: 2 additions & 2 deletions attachments/38_ray_tracing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -227,11 +227,11 @@ class VulkanRaytracingApplication
vk::KHRSwapchainExtensionName,
vk::KHRSpirv14ExtensionName,
vk::KHRSynchronization2ExtensionName,
vk::KHRCreateRenderpass2ExtensionName,
vk::KHRAccelerationStructureExtensionName,
vk::KHRBufferDeviceAddressExtensionName,
vk::KHRDeferredHostOperationsExtensionName,
vk::KHRRayQueryExtensionName};
vk::KHRRayQueryExtensionName,
vk::KHRShaderDrawParametersExtensionName};

void initWindow()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -520,13 +520,24 @@ Modifying the structure to suit the fragment shader is easy:
vk::PipelineShaderStageCreateInfo fragShaderStageInfo{ .stage = vk::ShaderStageFlagBits::eFragment, .module = shaderModule, .pName = "fragMain" };
----

Finish by defining an array that contains these two structs, which we'll later use to reference them in the actual pipeline creation step.
Defining an array that contains these two structs, which we'll later use to reference them in the actual pipeline creation step.

[,c++]
----
vk::PipelineShaderStageCreateInfo shaderStages[] = {vertShaderStageInfo, fragShaderStageInfo};
----

Finish by adding DrawParameters to the deviceExtensions. Otherwise the
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's not a good explanation. Can you rephrase this so people understand why this is required when using Slang?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Barely :-) I've just started learning Vulkan - working through the tutorial, fixing things here and there to get it working.
As far as I can understand the SPIR compiler sets a flag or something in the bytecode signaling it's using parameters (though I don't see any at the moment). This cause the validation layer to complain the vk::KHRShaderDrawParametersExtensionName must be added.

What I can offer is to do some more research and come up with a better explanation. However, I can't make it tonight.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be better to open issues for stuff like that instead. We'll then take a look and add a proper explanation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I'll cancel this PR.

validation layers will complain:

[,c++]
----
std::vector<const char*> deviceExtensions = {
...
vk::KHRShaderDrawParametersExtensionName
};
----

That's all there is describing the programmable stages of the pipeline.
In the xref:./02_Fixed_functions.adoc[next chapter,] we'll look at the fixed-function stages.

Expand Down