VideoBackends: support multiple compute images for some backends (D3D, OGL, Vulkan)

This commit is contained in:
iwubcode 2023-06-10 12:35:36 -05:00 committed by Nayla Hanegan
parent 59cafb9303
commit 0726a0e9c8
No known key found for this signature in database
GPG key ID: 3075216CED0DB01D
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);
}
}