From f61a2f2e7812df47776868336aec4e9e4f560b0c Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sat, 5 May 2018 18:00:06 -0700 Subject: Added stubs for shader resource layout initialization from pipeline layout --- Graphics/GLSLTools/include/SPIRVShaderResources.h | 10 +++------- Graphics/GLSLTools/src/SPIRVShaderResources.cpp | 12 ------------ 2 files changed, 3 insertions(+), 19 deletions(-) (limited to 'Graphics/GLSLTools') diff --git a/Graphics/GLSLTools/include/SPIRVShaderResources.h b/Graphics/GLSLTools/include/SPIRVShaderResources.h index df853933..504a0b08 100644 --- a/Graphics/GLSLTools/include/SPIRVShaderResources.h +++ b/Graphics/GLSLTools/include/SPIRVShaderResources.h @@ -80,16 +80,14 @@ struct SPIRVShaderResourceAttribs const String Name; - const Uint16 Binding; const Uint16 ArraySize; + const ResourceType Type; + const SHADER_VARIABLE_TYPE VarType : 8; // offset in SPIRV words (uint32_t) for a decoration which was originally declared in the SPIRV binary const uint32_t BindingDecorationOffset; const uint32_t DescriptorSetDecorationOffset; - const Uint8 DescriptorSet; - const ResourceType Type : 4; - const SHADER_VARIABLE_TYPE VarType : 4; SPIRVShaderResourceAttribs(const spirv_cross::Compiler &Compiler, const spirv_cross::Resource &Res, ResourceType _Type, SHADER_VARIABLE_TYPE _VarType); @@ -104,9 +102,7 @@ struct SPIRVShaderResourceAttribs bool IsCompatibleWith(const SPIRVShaderResourceAttribs& Attibs)const { - return Binding == Attibs.Binding && - DescriptorSet == Attibs.DescriptorSet && - ArraySize == Attibs.ArraySize && + return ArraySize == Attibs.ArraySize && Type == Attibs.Type; } }; diff --git a/Graphics/GLSLTools/src/SPIRVShaderResources.cpp b/Graphics/GLSLTools/src/SPIRVShaderResources.cpp index 854f6582..0b869339 100644 --- a/Graphics/GLSLTools/src/SPIRVShaderResources.cpp +++ b/Graphics/GLSLTools/src/SPIRVShaderResources.cpp @@ -49,26 +49,14 @@ static uint32_t GetDecorationOffset(const spirv_cross::Compiler &Compiler, return offset; } -template -static Type GetDecoration(const spirv_cross::Compiler &Compiler, - const spirv_cross::Resource &Res, - spv::Decoration Decoration) -{ - auto dec = Compiler.get_decoration(Res.id, Decoration); - VERIFY(dec <= std::numeric_limits::max(), "Decoration value exceeds maximum representable value ", std::numeric_limits::max()); - return static_cast(dec); -} - SPIRVShaderResourceAttribs::SPIRVShaderResourceAttribs(const spirv_cross::Compiler &Compiler, const spirv_cross::Resource &Res, ResourceType _Type, SHADER_VARIABLE_TYPE _VarType) : Name(Res.name), - Binding(GetDecoration(Compiler, Res, spv::DecorationBinding)), ArraySize(GetResourceArraySize(Compiler, Res)), BindingDecorationOffset(GetDecorationOffset(Compiler, Res, spv::Decoration::DecorationBinding)), DescriptorSetDecorationOffset(GetDecorationOffset(Compiler, Res, spv::Decoration::DecorationDescriptorSet)), - DescriptorSet(GetDecoration(Compiler,Res, spv::DecorationDescriptorSet)), Type(_Type), VarType(_VarType) { -- cgit v1.2.3