Refactor material shaders to use separate constant buffer (slot 1) for shared per-view constants

This commit is contained in:
Wojtek Figat
2022-11-27 12:06:31 +01:00
parent 189575efec
commit 835a230323
26 changed files with 92 additions and 194 deletions

View File

@@ -126,6 +126,7 @@ void MaterialComplexityMaterialShader::Draw(RenderContext& renderContext, GPUCon
PROFILE_GPU_CPU_NAMED("Decals");
DrawCall drawCall;
MaterialBase::BindParameters bindParams(context, renderContext, drawCall);
bindParams.BindViewData();
drawCall.WorldDeterminantSign = 1.0f;
context->SetRenderTarget(lightBuffer);
for (int32 i = 0; i < decals.Count(); i++)

View File

@@ -48,6 +48,7 @@ void QuadOverdrawPass::Render(RenderContext& renderContext, GPUContext* context,
Platform::MemoryClear(&drawCall, sizeof(DrawCall));
drawCall.PerInstanceRandom = 1.0f;
MaterialBase::BindParameters bindParams(context, renderContext, drawCall);
bindParams.BindViewData();
renderContext.View.Pass = DrawPass::QuadOverdraw;
context->SetRenderTarget(*renderContext.Buffers->DepthBuffer, (GPUTextureView*)nullptr);
renderContext.List->ExecuteDrawCalls(renderContext, DrawCallsListType::GBuffer);