diff --git a/computeheadless/computeheadless.cpp b/computeheadless/computeheadless.cpp index 27eab1e1..03be9e15 100644 --- a/computeheadless/computeheadless.cpp +++ b/computeheadless/computeheadless.cpp @@ -328,14 +328,12 @@ public: // Create pipeline VkComputePipelineCreateInfo computePipelineCreateInfo = vks::initializers::computePipelineCreateInfo(pipelineLayout, 0); - // Create specialization constant holding struct - struct SpecializationHolding - { + // Pass SSBO size via specialization constant + struct SpecializationData { uint32_t BUFFER_ELEMENT_COUNT = BUFFER_ELEMENTS; - } specialization; - // create a specialization map entry + } specializationData; VkSpecializationMapEntry specializationMapEntry = vks::initializers::specializationMapEntry(0, 0, sizeof(uint32_t)); - VkSpecializationInfo specializationInfo = vks::initializers::specializationInfo(1, &specializationMapEntry, sizeof(SpecializationHolding), &specialization); + VkSpecializationInfo specializationInfo = vks::initializers::specializationInfo(1, &specializationMapEntry, sizeof(SpecializationData), &specializationData); VkPipelineShaderStageCreateInfo shaderStage = {}; shaderStage.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; diff --git a/data/shaders/computeheadless/headless.comp b/data/shaders/computeheadless/headless.comp index 08c368eb..28be9a6c 100644 --- a/data/shaders/computeheadless/headless.comp +++ b/data/shaders/computeheadless/headless.comp @@ -6,7 +6,7 @@ layout(binding = 0) buffer Pos { layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in; -layout(constant_id = 0) const uint BUFFER_ELEMENTS = 32; +layout (constant_id = 0) const uint BUFFER_ELEMENTS = 32; uint fibonacci(uint n) { if(n <= 1){ diff --git a/data/shaders/computeheadless/headless.comp.spv b/data/shaders/computeheadless/headless.comp.spv index c14ac388..e3ea853c 100644 Binary files a/data/shaders/computeheadless/headless.comp.spv and b/data/shaders/computeheadless/headless.comp.spv differ