Reintroducing type parameters for vertex data
This commit is contained in:
@@ -214,6 +214,7 @@ void RayTracingPass::publishOutputs() {
|
||||
.name = "RayGenMiss",
|
||||
.modules = {"RayGen", "AnyHit", "Miss"},
|
||||
.entryPoints = {{"raygen", "RayGen"}, {"anyhit", "AnyHit"}, {"miss", "Miss"}},
|
||||
.typeParameter = {{"IVertexData", "StaticMeshVertexData"}},
|
||||
.defines = {{"RAY_TRACING", "1"}},
|
||||
.rootSignature = pipelineLayout,
|
||||
};
|
||||
|
||||
@@ -123,7 +123,7 @@ void ShaderCompiler::createShaders(ShaderPermutation permutation, Gfx::OPipeline
|
||||
{
|
||||
createInfo.dumpIntermediate = true;
|
||||
}
|
||||
//createInfo.typeParameter.add({Pair<const char*, const char*>("IVertexData", permutation.vertexDataName)});
|
||||
createInfo.typeParameter.add({Pair<const char*, const char*>("IVertexData", permutation.vertexDataName)});
|
||||
createInfo.modules.add(permutation.vertexDataName);
|
||||
//createInfo.dumpIntermediate = true;
|
||||
|
||||
|
||||
@@ -344,6 +344,8 @@ void RenderCommand::drawIndexed(uint32 indexCount, uint32 instanceCount, int32 f
|
||||
}
|
||||
void RenderCommand::drawMesh(uint32 groupX, uint32 groupY, uint32 groupZ) {
|
||||
assert(threadId == std::this_thread::get_id());
|
||||
if (groupX * groupY * groupZ == 0) // any dimension is 0
|
||||
return;
|
||||
vkCmdDrawMeshTasksEXT(handle, groupX, groupY, groupZ);
|
||||
}
|
||||
|
||||
|
||||
@@ -147,12 +147,12 @@ void Seele::beginCompilation(const ShaderCompilationInfo& info, SlangCompileTarg
|
||||
// workaround
|
||||
if (info.name == "RayGenMiss")
|
||||
{
|
||||
layout->addMapping("pVertexData", 1);
|
||||
layout->addMapping("pScene", 2);
|
||||
layout->addMapping("pLightEnv", 3);
|
||||
layout->addMapping("pResources", 4);
|
||||
layout->addMapping("pRayTracingParams", 5);
|
||||
}
|
||||
layout->addMapping("pVertexData", 1);
|
||||
// layout->addMapping("pWaterMaterial", 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -159,9 +159,9 @@ void Material::load(ArchiveBuffer& buffer) {
|
||||
void Material::compile() {
|
||||
std::ofstream codeStream("./shaders/generated/" + materialName + ".slang");
|
||||
codeStream << "import MaterialParameter;\n";
|
||||
codeStream << "import LightEnv;\n";
|
||||
codeStream << "import Material;\n";
|
||||
codeStream << "struct Material{\n";
|
||||
codeStream << "import LightEnv;\n";
|
||||
codeStream << "struct Material : IMaterial{\n";
|
||||
codeStream << "\ttypedef " << brdf.profile << " BRDF;\n";
|
||||
codeStream << "\tstatic " << brdf.profile << " prepare(MaterialParameter input) {\n";
|
||||
codeStream << "\t\t" << brdf.profile << " result;\n";
|
||||
|
||||
Reference in New Issue
Block a user