From 2b7e887bfc80a7bee65ccf30b341f455ba2279a3 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Mon, 23 May 2016 20:11:42 +0200 Subject: [PATCH] Changed descriptor type for compute shader image read, updated shaders --- computeshader/computeshader.cpp | 12 +++++++----- data/shaders/computeshader/edgedetect.comp | 2 +- .../shaders/computeshader/edgedetect.comp.spv | Bin 4000 -> 4012 bytes data/shaders/computeshader/emboss.comp | 4 ++-- data/shaders/computeshader/emboss.comp.spv | Bin 4016 -> 4028 bytes data/shaders/computeshader/sharpen.comp | 4 ++-- data/shaders/computeshader/sharpen.comp.spv | Bin 4504 -> 4516 bytes data/shaders/computeshader/texture.frag.spv | Bin 640 -> 640 bytes data/shaders/computeshader/texture.vert | 5 +++++ data/shaders/computeshader/texture.vert.spv | Bin 1508 -> 1304 bytes 10 files changed, 17 insertions(+), 10 deletions(-) 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 4902b3a1675dbc3c0f9afdc7321314439bd0b07e..4d5da358dc3229ec79eb7e8d7a9109f610fd7002 100644 GIT binary patch delta 20 bcmZ1=zeavT6%#u%Lm&eKgT&@iCT(5-IX?u9 delta 12 TcmZ1@zd(LN71QQ6CN*9FAD{#! 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 1c63ddc95c2c80328941f995bc66785484784163..2bcadc0d03e6d9157e602f772e846a295e106341 100644 GIT binary patch delta 20 bcmdlWzej#U6%#u%Lm&eKgT&@iCTm^*JHG_H delta 12 TcmdlZzd?RO71QQ6CNo|DAs_@* 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 fba4cd870e248c289e6a7881dd287fef68d5f7af..731324c5a42b75293a95b8dd562a4e272e555055 100644 GIT binary patch delta 20 bcmbQCyhM3}6f-+BLm&eKgT!W0=4L(sGC>3% delta 12 TcmZ3YJVSYd6!T^^<~lwA8`=Z7 diff --git a/data/shaders/computeshader/texture.frag.spv b/data/shaders/computeshader/texture.frag.spv index ea525866b938c73b8f3e3c769a8bdb98d67e2706..38044a2e5d55eb3c06d38cca6ebfbb5129257050 100644 GIT binary patch delta 12 TcmZo*ZD5^{!pOccRhkI^7XSk~ delta 12 TcmZo*ZD5^{!pN~PRhkI^7X<@5 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 c8c91f448a15e00e34ce64baffefbe589d6a4e51..dbaf4b667cef2cf68c1e0119e144d7a8251fc931 100644 GIT binary patch literal 1304 zcmY+C+fEZv6oz+?BA|$zQE^J~gb5)Ajfp{pn{v@a)WGdzpgU!>%rrC8#7kd6AIYck z#)SXdGdrofSzYV@_d4%s)VsHgsp&Ukc1?K}Ok z#Am_Wc6L+$*HN4RVCE$EB!Q%%UtRi-0-Cz*^~0kt$6;>AQ5F?8%&($>&BFBJo4qXZ z|9x~7C&O?QCBsQHwBf<4{c&{p-L#Zxx+a*q>7+P2mj=^AoH!`lR^P@9N8zc>&TUrM zAA({_9-F%~kBc}>s9@3$>xCR7fg;5MbIw?p3_r4ICgm=f8R&T;j+F=)8$Wx9NtHd?B?-t)R>L~ z6ZcW#nO4lU*9?YKL$ahDYe0(EYiehhY#4bpa2aeoezE!vt;YH~{Lavt;zAu}z zF1#d7t}=J|4sZzhSEQMPeUTr`zWi)!m5sm8zbTt~^v>Ss-Ou{Cx`QVlIH)+{@!ggf z^Ya7spUWba9^dGdsY|aM_`hO!`$MtpZ(hRg-s_efgOB7vpX(BOXMX(Yc|!v4eICfh zhZ(%jL)q}Zm4}!|65`0{;ASi$qgteQw#tA literal 1508 zcmY+C+iuf95QeuowNPj&r3avtq~TnsDpU{>;?RPWUPPi$wYQd=tb)O{qu7xUSG)o| z5>Leq692dMMq#7L%>U0}XU1Etv}cW((QnQ?F~wOj6=7rMO~dI<_qe;0<^7$#XS+l! zn5qjTX3<=5c1{21VUz%1<|WILwxp_GMf$fAYVvlv!TzU%AhW}86y`R_K8Jlf3evML zwwGuB$H)~WgCGu*!8jb)VDIVfFzkIbbyb?a6U@EoI6pa+2Gc{7I4ImOOTvRVII^Qt zJId`hL9qpojW5ljJW3O>vo4+)9Umq6arE61=Y7m1-@7;(zK^mzOnP?WV?+4HaXj(W zwFh>>!CsR-IryNQhO^;^qm(Vsg4nv_>ES%>+gO^s>(b-1RCdknH%ipDxK6o)P1zhU zI{;JTP#Nri1JCgsez@s4=7VDvABPRc?mO~OkGMlI%)_Zmi1(N`z?tUs=*$(z6?xn{ zod+iGt;FZS`8@8XK6f)GJK2(OJZ=@xVQTrkEGvt=mTE8$_NuIgbW^gXdfWrX*A$+U zCKmo>iFt2u_%BM&NW35H_es6W!qj7LEBarMZb~@YC0>+GjSXRTLp|r!O#X432xQNjD|b+)J+<_&;KJH?PF9`%4n` z{#stX4|rb@^m$W4@61m;J#R?heGG4e7-sM>w`IfsQk`NiMIJmc%yLJ<93K_K4EIV- zYQo(wIdL_+r|RN+Bxy>Bp=b8