- the light storage buffer is not dynamic
This commit is contained in:
parent
6d1a85af3c
commit
188714dc14
4 changed files with 8 additions and 17 deletions
|
|
@ -374,7 +374,7 @@ void VkRenderState::ApplyPushConstants()
|
|||
if (mMaterial.mMaterial && mMaterial.mMaterial->tex)
|
||||
mPushConstants.uSpecularMaterial = { mMaterial.mMaterial->tex->Glossiness, mMaterial.mMaterial->tex->SpecularLevel };
|
||||
|
||||
mPushConstants.uLightIndex = screen->mLights->BindUBO(mLightIndex);
|
||||
mPushConstants.uLightIndex = mLightIndex;
|
||||
mPushConstants.uDataIndex = mDataIndex;
|
||||
|
||||
auto fb = GetVulkanFrameBuffer();
|
||||
|
|
@ -474,16 +474,15 @@ void VkRenderState::ApplyMaterial()
|
|||
|
||||
void VkRenderState::ApplyDynamicSet()
|
||||
{
|
||||
if (mViewpointOffset != mLastViewpointOffset || mLightBufferOffset != mLastLightBufferOffset || mMatricesOffset != mLastMatricesOffset || mStreamDataOffset != mLastStreamDataOffset)
|
||||
if (mViewpointOffset != mLastViewpointOffset || mMatricesOffset != mLastMatricesOffset || mStreamDataOffset != mLastStreamDataOffset)
|
||||
{
|
||||
auto fb = GetVulkanFrameBuffer();
|
||||
auto passManager = fb->GetRenderPassManager();
|
||||
|
||||
uint32_t offsets[4] = { mViewpointOffset, mLightBufferOffset, mMatricesOffset, mStreamDataOffset };
|
||||
mCommandBuffer->bindDescriptorSet(VK_PIPELINE_BIND_POINT_GRAPHICS, passManager->GetPipelineLayout(mRenderPassKey.NumTextureLayers), 0, passManager->DynamicSet.get(), 4, offsets);
|
||||
uint32_t offsets[3] = { mViewpointOffset, mMatricesOffset, mStreamDataOffset };
|
||||
mCommandBuffer->bindDescriptorSet(VK_PIPELINE_BIND_POINT_GRAPHICS, passManager->GetPipelineLayout(mRenderPassKey.NumTextureLayers), 0, passManager->DynamicSet.get(), 3, offsets);
|
||||
|
||||
mLastViewpointOffset = mViewpointOffset;
|
||||
mLastLightBufferOffset = mLightBufferOffset;
|
||||
mLastMatricesOffset = mMatricesOffset;
|
||||
mLastStreamDataOffset = mStreamDataOffset;
|
||||
}
|
||||
|
|
@ -496,11 +495,6 @@ void VkRenderState::Bind(int bindingpoint, uint32_t offset)
|
|||
mViewpointOffset = offset;
|
||||
mNeedApply = true;
|
||||
}
|
||||
else if (bindingpoint == LIGHTBUF_BINDINGPOINT)
|
||||
{
|
||||
mLightBufferOffset = offset;
|
||||
mNeedApply = true;
|
||||
}
|
||||
}
|
||||
|
||||
void VkRenderState::BeginFrame()
|
||||
|
|
@ -518,7 +512,6 @@ void VkRenderState::EndRenderPass()
|
|||
mRenderPassKey = {};
|
||||
|
||||
mLastViewpointOffset = 0xffffffff;
|
||||
mLastLightBufferOffset = 0xffffffff;
|
||||
mLastVertexBuffer = nullptr;
|
||||
mLastIndexBuffer = nullptr;
|
||||
mLastModelMatrixEnabled = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue