microsoft / ShaderConductor

ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ShaderConductorTest abort DxilModuleReflection::_GetConstantBufferByName

CatDroid opened this issue · comments

Describe the bug
run ShaderConductorTest ,and crash on LinkTest

To Reproduce

  1. vs2019 on Win10 Debug and x64 build
  2. commit id: 30a77c7 branch: maset
  3. start up with ShaderConductorTest
  4. console log :
    [----------] 1 test from LinkTest
    [ RUN ] LinkTest.LinkDxil --- after here, program crash

program is runing TEST(LinkTest, LinkDxil) at ShaderConductorTest.cpp

  1. crash info
    DxilContainerReflection.cpp
    DxilModuleReflection::_GetConstantBufferByName(LPCSTR Name)

crash on "if (it != m_StructuredBufferCBsByName.end()) " map/set iterators in range are from different containers

Name is "cbPS" which i found that in "ShaderConductor/Source/Tests/Data/Input/CalcLight.hlsl"

m_StructuredBufferCBsByName size() is 0
but
m_CBsByName size() is 1 and m_CBsByName contains "cbPS"

more info:
when running:
DxilModuleReflection::CreateReflectionObjects()
m_pDxilModule->GetUAVs()
and
m_pDxilModule->GetSRVs()
both are empty , so "m_StructuredBufferCBsByName" keep empty too