mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 13:20:27 -06:00
VideoBackends / VideoCommon: add new uniform buffer object for custom shader materials (slot 3, geometry shader buffer moves to slot 4 if available)
This commit is contained in:
@ -161,7 +161,7 @@ void Gfx::SetPipeline(const AbstractPipeline* pipeline)
|
||||
m_dirty_bits |= DirtyState_RootSignature | DirtyState_PS_CBV | DirtyState_VS_CBV |
|
||||
DirtyState_GS_CBV | DirtyState_SRV_Descriptor |
|
||||
DirtyState_Sampler_Descriptor | DirtyState_UAV_Descriptor |
|
||||
DirtyState_VS_SRV_Descriptor;
|
||||
DirtyState_VS_SRV_Descriptor | DirtyState_PS_CUS_CBV;
|
||||
}
|
||||
if (dx_pipeline->UseIntegerRTV() != m_state.using_integer_rtv)
|
||||
{
|
||||
@ -524,7 +524,7 @@ bool Gfx::ApplyState()
|
||||
DirtyState_ScissorRect | DirtyState_PS_UAV | DirtyState_PS_CBV | DirtyState_VS_CBV |
|
||||
DirtyState_GS_CBV | DirtyState_SRV_Descriptor | DirtyState_Sampler_Descriptor |
|
||||
DirtyState_UAV_Descriptor | DirtyState_VertexBuffer | DirtyState_IndexBuffer |
|
||||
DirtyState_PrimitiveTopology | DirtyState_VS_SRV_Descriptor);
|
||||
DirtyState_PrimitiveTopology | DirtyState_VS_SRV_Descriptor | DirtyState_PS_CUS_CBV);
|
||||
|
||||
auto* const cmdlist = g_dx_context->GetCommandList();
|
||||
auto* const pipeline = static_cast<const DXPipeline*>(m_current_pipeline);
|
||||
@ -575,6 +575,13 @@ bool Gfx::ApplyState()
|
||||
}
|
||||
}
|
||||
|
||||
if (dirty_bits & DirtyState_PS_CUS_CBV)
|
||||
{
|
||||
cmdlist->SetGraphicsRootConstantBufferView(
|
||||
g_ActiveConfig.bBBoxEnable ? ROOT_PARAMETER_PS_CUS_CBV : ROOT_PARAMETER_PS_CBV2,
|
||||
m_state.constant_buffers[2]);
|
||||
}
|
||||
|
||||
if (dirty_bits & DirtyState_VS_SRV_Descriptor && UsesDynamicVertexLoader(pipeline))
|
||||
{
|
||||
cmdlist->SetGraphicsRootDescriptorTable(ROOT_PARAMETER_VS_SRV,
|
||||
@ -584,7 +591,7 @@ bool Gfx::ApplyState()
|
||||
if (dirty_bits & DirtyState_GS_CBV)
|
||||
{
|
||||
cmdlist->SetGraphicsRootConstantBufferView(ROOT_PARAMETER_GS_CBV,
|
||||
m_state.constant_buffers[2]);
|
||||
m_state.constant_buffers[3]);
|
||||
}
|
||||
|
||||
if (dirty_bits & DirtyState_UAV_Descriptor && g_ActiveConfig.bBBoxEnable)
|
||||
|
Reference in New Issue
Block a user