diff --git a/computeshader/computeshader.cpp b/computeshader/computeshader.cpp index fc3a62df..cd3196b6 100644 --- a/computeshader/computeshader.cpp +++ b/computeshader/computeshader.cpp @@ -194,7 +194,7 @@ public: VK_FORMAT_R8G8B8A8_UNORM, &textureColorMap, false, - VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT); + VK_IMAGE_USAGE_SAMPLED_BIT); } void buildCommandBuffers() @@ -424,8 +424,10 @@ public: vkTools::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 2), // Graphics pipeline uses image samplers for display vkTools::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 4), - // Compute pipeline uses storage images image loads and stores - vkTools::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 2), + // Compute pipeline uses a sampled image for reading + vkTools::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1), + // Compute pipelines uses a storage image to write result + vkTools::initializers::descriptorPoolSize(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1), }; VkDescriptorPoolCreateInfo descriptorPoolInfo = @@ -644,7 +646,7 @@ public: std::vector setLayoutBindings = { // Binding 0 : Sampled image (read) vkTools::initializers::descriptorSetLayoutBinding( - VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, + VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_SHADER_STAGE_COMPUTE_BIT, 0), // Binding 1 : Sampled image (write) @@ -705,7 +707,7 @@ public: // Binding 0 : Sampled image (read) vkTools::initializers::writeDescriptorSet( computeDescriptorSet, - VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, + VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 0, &computeTexDescriptors[0]), // Binding 1 : Sampled image (write) diff --git a/data/shaders/computeshader/edgedetect.comp b/data/shaders/computeshader/edgedetect.comp index 0a788d80..4daa99ee 100644 --- a/data/shaders/computeshader/edgedetect.comp +++ b/data/shaders/computeshader/edgedetect.comp @@ -4,7 +4,7 @@ #extension GL_ARB_shading_language_420pack : enable layout (local_size_x = 16, local_size_y = 16) in; -layout (binding = 0, rgba8) uniform image2D inputImage; +layout (binding = 0, rgba8) uniform readonly image2D inputImage; layout (binding = 1, rgba8) uniform image2D resultImage; float conv(in float[9] kernel, in float[9] data, in float denom, in float offset) diff --git a/data/shaders/computeshader/edgedetect.comp.spv b/data/shaders/computeshader/edgedetect.comp.spv index 4902b3a1..4d5da358 100644 Binary files a/data/shaders/computeshader/edgedetect.comp.spv and b/data/shaders/computeshader/edgedetect.comp.spv differ diff --git a/data/shaders/computeshader/emboss.comp b/data/shaders/computeshader/emboss.comp index 4d2c2bcf..8513885d 100644 --- a/data/shaders/computeshader/emboss.comp +++ b/data/shaders/computeshader/emboss.comp @@ -3,8 +3,8 @@ #extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_shading_language_420pack : enable -layout (local_size_x =16, local_size_y = 16) in; -layout (binding = 0, rgba8) uniform image2D inputImage; +layout (local_size_x = 16, local_size_y = 16) in; +layout (binding = 0, rgba8) uniform readonly image2D inputImage; layout (binding = 1, rgba8) uniform image2D resultImage; float conv(in float[9] kernel, in float[9] data, in float denom, in float offset) diff --git a/data/shaders/computeshader/emboss.comp.spv b/data/shaders/computeshader/emboss.comp.spv index 1c63ddc9..2bcadc0d 100644 Binary files a/data/shaders/computeshader/emboss.comp.spv and b/data/shaders/computeshader/emboss.comp.spv differ diff --git a/data/shaders/computeshader/sharpen.comp b/data/shaders/computeshader/sharpen.comp index 066d4f52..3a1ae39b 100644 --- a/data/shaders/computeshader/sharpen.comp +++ b/data/shaders/computeshader/sharpen.comp @@ -3,8 +3,8 @@ #extension GL_ARB_separate_shader_objects : enable #extension GL_ARB_shading_language_420pack : enable -layout (local_size_x =16, local_size_y = 16) in; -layout (binding = 0, rgba8) uniform image2D inputImage; +layout (local_size_x = 16, local_size_y = 16) in; +layout (binding = 0, rgba8) uniform readonly image2D inputImage; layout (binding = 1, rgba8) uniform image2D resultImage; float conv(in float[9] kernel, in float[9] data, in float denom, in float offset) diff --git a/data/shaders/computeshader/sharpen.comp.spv b/data/shaders/computeshader/sharpen.comp.spv index fba4cd87..731324c5 100644 Binary files a/data/shaders/computeshader/sharpen.comp.spv and b/data/shaders/computeshader/sharpen.comp.spv differ diff --git a/data/shaders/computeshader/texture.frag.spv b/data/shaders/computeshader/texture.frag.spv index ea525866..38044a2e 100644 Binary files a/data/shaders/computeshader/texture.frag.spv and b/data/shaders/computeshader/texture.frag.spv differ diff --git a/data/shaders/computeshader/texture.vert b/data/shaders/computeshader/texture.vert index fe704c9c..f6d023e8 100644 --- a/data/shaders/computeshader/texture.vert +++ b/data/shaders/computeshader/texture.vert @@ -14,6 +14,11 @@ layout (binding = 0) uniform UBO layout (location = 0) out vec2 outUV; +out gl_PerVertex +{ + vec4 gl_Position; +}; + void main() { outUV = inUV; diff --git a/data/shaders/computeshader/texture.vert.spv b/data/shaders/computeshader/texture.vert.spv index c8c91f44..dbaf4b66 100644 Binary files a/data/shaders/computeshader/texture.vert.spv and b/data/shaders/computeshader/texture.vert.spv differ