From 322728f0bc09a8caa7cc3917daa2192eeb479b16 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Tue, 14 Feb 2023 17:52:14 +0800 Subject: [PATCH] improved codes....(you can not update) --- CMakeLists.txt | 1 + VKShaderParse.h | 9 +++++---- glsl2spv.cpp | 32 ++++++++++++++++---------------- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f629ffb..48b2e81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ ELSE() SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT") SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") + add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() diff --git a/VKShaderParse.h b/VKShaderParse.h index b784f25..a3df6a3 100644 --- a/VKShaderParse.h +++ b/VKShaderParse.h @@ -29,12 +29,13 @@ public: SHADER_PARSE_GET_RESOURCE(SSBO, storage_buffers) SHADER_PARSE_GET_RESOURCE(StageInputs, stage_inputs) SHADER_PARSE_GET_RESOURCE(StageOutputs, stage_outputs) - SHADER_PARSE_GET_RESOURCE(ImageSampler, sampled_images) SHADER_PARSE_GET_RESOURCE(SubpassInputs, subpass_inputs) - SHADER_PARSE_GET_RESOURCE(Image2D, storage_images) + SHADER_PARSE_GET_RESOURCE(StorageImages, storage_images) + SHADER_PARSE_GET_RESOURCE(SampledImages, sampled_images) + SHADER_PARSE_GET_RESOURCE(AtomicCounters, atomic_counters) SHADER_PARSE_GET_RESOURCE(PushConstant, push_constant_buffers) - SHADER_PARSE_GET_RESOURCE(Image, separate_images) - SHADER_PARSE_GET_RESOURCE(Sampler, separate_samplers) + SHADER_PARSE_GET_RESOURCE(SeparateImages, separate_images) + SHADER_PARSE_GET_RESOURCE(SeparateSamplers, separate_samplers) //SmallVector atomic_counters; //SmallVector acceleration_structures; diff --git a/glsl2spv.cpp b/glsl2spv.cpp index 7e6f1c0..77535df 100644 --- a/glsl2spv.cpp +++ b/glsl2spv.cpp @@ -46,18 +46,10 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, - VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, - VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000, - VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, - VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorType; constexpr uint32_t VK_DESCRIPTOR_TYPE_COUNT =VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - -VK_DESCRIPTOR_TYPE_SAMPLER - +1+2; // One for push_constant, one for subpass_input. - -constexpr uint32_t ResID_PushConstant =VK_DESCRIPTOR_TYPE_COUNT-2; -constexpr uint32_t ResID_SubpassInput =VK_DESCRIPTOR_TYPE_COUNT-1; + -VK_DESCRIPTOR_TYPE_SAMPLER+1; static TBuiltInResource default_build_in_resource; @@ -318,6 +310,8 @@ extern "C" ShaderStageData input,output; ShaderResourceData resource[VK_DESCRIPTOR_TYPE_COUNT]; + ShaderResourceData push_constant; + ShaderResourceData subpass_input; void Init() { @@ -325,6 +319,9 @@ extern "C" memset(&output,0,sizeof(ShaderStageData)); memset(&resource,0,sizeof(resource)); + + memset(&push_constant,0,sizeof(ShaderResourceData)); + memset(&subpass_input,0,sizeof(ShaderResourceData)); } void Clear() @@ -332,6 +329,9 @@ extern "C" for(uint32_t i=0;iinput),&sp,sp.GetStageInputs()); OutputShaderStage(&(spv->output),&sp,sp.GetStageOutputs()); - + OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, &sp,sp.GetUBO()); OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &sp,sp.GetSSBO()); - OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &sp,sp.GetImageSampler()); - OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_SAMPLER, &sp,sp.GetSampler()); - OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, &sp,sp.GetImage()); - OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, &sp,sp.GetImage2D()); + OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &sp,sp.GetSampledImages()); + OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_SAMPLER, &sp,sp.GetSeparateSamplers()); + OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, &sp,sp.GetSeparateImages()); + OutputShaderResource(spv->resource+VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, &sp,sp.GetStorageImages()); - OutputPushConstant (spv->resource+ResID_PushConstant, &sp,sp.GetPushConstant()); - OutputSubpassInput (spv->resource+ResID_SubpassInput, &sp,sp.GetSubpassInputs()); + OutputPushConstant (&(spv->push_constant), &sp,sp.GetPushConstant()); + OutputSubpassInput (&(spv->subpass_input), &sp,sp.GetSubpassInputs()); } return(spv);