networking i guess
This commit is contained in:
@@ -63,6 +63,12 @@ void CSlangVulkanSpirvShaderCompiler::CompileShaderStage( EShaderStage eStage, c
|
||||
case SHADER_STAGE_PIXEL:
|
||||
eSlangStage = SLANG_STAGE_PIXEL;
|
||||
break;
|
||||
case SHADER_STAGE_RAYGEN:
|
||||
eSlangStage = SLANG_STAGE_RAY_GENERATION;
|
||||
break;
|
||||
case SHADER_STAGE_RAYGEN_SOFTWARE:
|
||||
eSlangStage = SLANG_STAGE_COMPUTE;
|
||||
break;
|
||||
case SHADER_STAGE_CALLABLE:
|
||||
eSlangStage = SLANG_STAGE_CALLABLE;
|
||||
break;
|
||||
@@ -104,6 +110,20 @@ trygetkind:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case slang::TypeReflection::Kind::Resource:
|
||||
V_printf("%s: %i\n", pType->getName(), pType->getResourceShape());
|
||||
switch(pType->getResourceShape())
|
||||
{
|
||||
case SLANG_TEXTURE_2D:
|
||||
input.eDescriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
|
||||
break;
|
||||
case SLANG_STRUCTURED_BUFFER:
|
||||
input.eDescriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case slang::TypeReflection::Kind::Array:
|
||||
{
|
||||
size_t uCount = pType->getTotalArrayElementCount();
|
||||
@@ -123,7 +143,7 @@ trygetkind:
|
||||
V_strncpy(input.szName, pVar->getName(), 32);
|
||||
input.uBinding = pVar->getBindingIndex();
|
||||
input.uSet = pVar->getBindingSpace();
|
||||
V_printf("%i\n", input.uCount);
|
||||
//V_printf("%i\n", input.uCount);
|
||||
inputs.AppendTail(input);
|
||||
}
|
||||
|
||||
@@ -182,7 +202,7 @@ void CSlangVulkanSpirvShaderCompiler::CompileShader( const char *szInput, CCompi
|
||||
{
|
||||
SessionDesc stSessionDesc = {};
|
||||
TargetDesc stTargetDesc = {};
|
||||
PreprocessorMacroDesc stStageMacroDesc = {};
|
||||
PreprocessorMacroDesc stStageMacroDesc[2] = {};
|
||||
const char *szMainName;
|
||||
IModule *pModule = NULL;
|
||||
ISession *pSession = NULL;
|
||||
@@ -215,25 +235,35 @@ void CSlangVulkanSpirvShaderCompiler::CompileShader( const char *szInput, CCompi
|
||||
for ( i = 0; i<SHADER_STAGE_COUNT; i++ )
|
||||
{
|
||||
szMainName = NULL;
|
||||
stSessionDesc.preprocessorMacroCount = 1;
|
||||
switch (i)
|
||||
{
|
||||
case SHADER_STAGE_VERTEX:
|
||||
szMainName = "vsMain";
|
||||
stStageMacroDesc = { "VS_SHADER", "Enabled" };
|
||||
stStageMacroDesc[0] = { "VS_SHADER", "Enabled" };
|
||||
break;
|
||||
case SHADER_STAGE_PIXEL:
|
||||
szMainName = "psMain";
|
||||
stStageMacroDesc = { "PS_SHADER", "Enabled" };
|
||||
stStageMacroDesc[0] = { "PS_SHADER", "Enabled" };
|
||||
break;
|
||||
case SHADER_STAGE_CALLABLE:
|
||||
szMainName = "brdfMain";
|
||||
stStageMacroDesc = { "BRDF_SHADER", "Enabled" };
|
||||
stStageMacroDesc[0] = { "BRDF_SHADER", "Enabled" };
|
||||
break;
|
||||
case SHADER_STAGE_RAYGEN:
|
||||
szMainName = "rayMain";
|
||||
stStageMacroDesc[0] = { "RAY_SHADER", "Enabled" };
|
||||
break;
|
||||
case SHADER_STAGE_RAYGEN_SOFTWARE:
|
||||
szMainName = "rayMain";
|
||||
stStageMacroDesc[0] = { "RAY_SHADER", "Enabled" };
|
||||
stStageMacroDesc[1] = { "SOFTWARE_RAY_TRACING", "Enabled" };
|
||||
stSessionDesc.preprocessorMacroCount = 2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
stSessionDesc.preprocessorMacroCount = 1;
|
||||
stSessionDesc.preprocessorMacros = &stStageMacroDesc;
|
||||
stSessionDesc.preprocessorMacros = stStageMacroDesc;
|
||||
if ( szMainName == NULL )
|
||||
continue;
|
||||
pSession = NULL;
|
||||
|
||||
Reference in New Issue
Block a user