improved codes....(you can not update)

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-02-14 17:52:14 +08:00
parent 1b777626f7
commit 322728f0bc
3 changed files with 22 additions and 20 deletions

View File

@ -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()

View File

@ -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<Resource> atomic_counters;
//SmallVector<Resource> acceleration_structures;

View File

@ -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;i<VK_DESCRIPTOR_TYPE_COUNT;i++)
delete[] resource[i].items;
delete[] push_constant.items;
delete[] subpass_input.items;
delete[] input.items;
delete[] output.items;
}
@ -548,16 +548,16 @@ extern "C"
OutputShaderStage(&(spv->input),&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);