Merge pull request #11923 from iwubcode/multi-texture-compute-support

VideoBackends: support multiple compute images for some backends
This commit is contained in:
Admiral H. Curtiss
2023-07-01 17:47:55 +02:00
committed by GitHub
21 changed files with 107 additions and 59 deletions

View File

@ -512,13 +512,13 @@ void VKGfx::SetSamplerState(u32 index, const SamplerState& state)
m_sampler_states[index] = state;
}
void VKGfx::SetComputeImageTexture(AbstractTexture* texture, bool read, bool write)
void VKGfx::SetComputeImageTexture(u32 index, AbstractTexture* texture, bool read, bool write)
{
VKTexture* vk_texture = static_cast<VKTexture*>(texture);
if (vk_texture)
{
StateTracker::GetInstance()->EndRenderPass();
StateTracker::GetInstance()->SetImageTexture(vk_texture->GetView());
StateTracker::GetInstance()->SetImageTexture(index, vk_texture->GetView());
vk_texture->TransitionToLayout(g_command_buffer_mgr->GetCurrentCommandBuffer(),
read ? (write ? VKTexture::ComputeImageLayout::ReadWrite :
VKTexture::ComputeImageLayout::ReadOnly) :
@ -526,7 +526,7 @@ void VKGfx::SetComputeImageTexture(AbstractTexture* texture, bool read, bool wri
}
else
{
StateTracker::GetInstance()->SetImageTexture(VK_NULL_HANDLE);
StateTracker::GetInstance()->SetImageTexture(index, VK_NULL_HANDLE);
}
}