Fix host synchronization for texture with a different guest format

Host synchronization of a guest texture with a different guest format represents a valid use case where the host doesn't support the guest format and conversion to a host-compatible format must be performed. The issue is most evident on Mali GPUs, as they don't support BCn texture formats thus needing manual decoding before submission. It was disabled by mistake in a previous commit, this commit re-enables it.
This commit is contained in:
lynxnb 2022-09-14 11:37:59 +02:00
parent a1ff4e1777
commit 54172322fe

View File

@ -671,8 +671,8 @@ namespace skyline::gpu {
}
void Texture::SynchronizeHost(bool gpuDirty) {
if (!guest || format != guest->format)
return; // We need to skip GPU dirty if the host format and guest format differ as we don't support re-encoding compressed textures which is when this generally occurs
if (!guest)
return;
TRACE_EVENT("gpu", "Texture::SynchronizeHost");
{
@ -708,8 +708,8 @@ namespace skyline::gpu {
}
void Texture::SynchronizeHostInline(const vk::raii::CommandBuffer &commandBuffer, const std::shared_ptr<FenceCycle> &pCycle, bool gpuDirty) {
if (!guest || format != guest->format)
return; // See SynchronizeHost(...)
if (!guest)
return;
TRACE_EVENT("gpu", "Texture::SynchronizeHostInline");